diff options
author | Shashank | 2017-05-29 12:40:26 +0530 |
---|---|---|
committer | Shashank | 2017-05-29 12:40:26 +0530 |
commit | 0345245e860375a32c9a437c4a9d9cae807134e9 (patch) | |
tree | ad51ecbfa7bcd3cc5f09834f1bb8c08feaa526a4 /modules/overloading | |
download | scilab_for_xcos_on_cloud-0345245e860375a32c9a437c4a9d9cae807134e9.tar.gz scilab_for_xcos_on_cloud-0345245e860375a32c9a437c4a9d9cae807134e9.tar.bz2 scilab_for_xcos_on_cloud-0345245e860375a32c9a437c4a9d9cae807134e9.zip |
CMSCOPE changed
Diffstat (limited to 'modules/overloading')
1438 files changed, 29045 insertions, 0 deletions
diff --git a/modules/overloading/Makefile b/modules/overloading/Makefile new file mode 100755 index 000000000..142130a37 --- /dev/null +++ b/modules/overloading/Makefile @@ -0,0 +1,1010 @@ +# Makefile.in generated by automake 1.14.1 from Makefile.am. +# modules/overloading/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 +am__append_1 = java +subdir = modules/overloading +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_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 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +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)$(libscioverloading_la_etcdir)" \ + "$(DESTDIR)$(libscioverloading_la_rootdir)" +DATA = $(libscioverloading_la_etc_DATA) \ + $(libscioverloading_la_root_DATA) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +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/overloading +abs_srcdir = /home/shashank/scilab-master_5.5.2/modules/overloading +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 = ../.. + +#### Target ###### +modulename = overloading + +#### overloading : Conf files #### +libscioverloading_la_rootdir = $(mydatadir) +libscioverloading_la_root_DATA = license.txt + +#### overloading : init scripts #### +libscioverloading_la_etcdir = $(mydatadir)/etc +libscioverloading_la_etc_DATA = etc/overloading.quit etc/overloading.start + +# 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 +$(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/overloading/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign modules/overloading/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): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-libscioverloading_la_etcDATA: $(libscioverloading_la_etc_DATA) + @$(NORMAL_INSTALL) + @list='$(libscioverloading_la_etc_DATA)'; test -n "$(libscioverloading_la_etcdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(libscioverloading_la_etcdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libscioverloading_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)$(libscioverloading_la_etcdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(libscioverloading_la_etcdir)" || exit $$?; \ + done + +uninstall-libscioverloading_la_etcDATA: + @$(NORMAL_UNINSTALL) + @list='$(libscioverloading_la_etc_DATA)'; test -n "$(libscioverloading_la_etcdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(libscioverloading_la_etcdir)'; $(am__uninstall_files_from_dir) +install-libscioverloading_la_rootDATA: $(libscioverloading_la_root_DATA) + @$(NORMAL_INSTALL) + @list='$(libscioverloading_la_root_DATA)'; test -n "$(libscioverloading_la_rootdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(libscioverloading_la_rootdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libscioverloading_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)$(libscioverloading_la_rootdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(libscioverloading_la_rootdir)" || exit $$?; \ + done + +uninstall-libscioverloading_la_rootDATA: + @$(NORMAL_UNINSTALL) + @list='$(libscioverloading_la_root_DATA)'; test -n "$(libscioverloading_la_rootdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(libscioverloading_la_rootdir)'; $(am__uninstall_files_from_dir) +tags TAGS: + +ctags CTAGS: + +cscope cscopelist: + + +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 $(DATA) all-local +installdirs: + for dir in "$(DESTDIR)$(libscioverloading_la_etcdir)" "$(DESTDIR)$(libscioverloading_la_rootdir)"; 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) + +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 mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-local + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-data-local \ + install-libscioverloading_la_etcDATA \ + install-libscioverloading_la_rootDATA + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +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 -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-libscioverloading_la_etcDATA \ + uninstall-libscioverloading_la_rootDATA + +.MAKE: check-am install-am install-strip + +.PHONY: all all-am all-local check check-am check-local clean \ + clean-generic clean-libtool clean-local cscopelist-am ctags-am \ + distclean distclean-generic distclean-libtool distclean-local \ + 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-libscioverloading_la_etcDATA \ + install-libscioverloading_la_rootDATA install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ + uninstall-am uninstall-libscioverloading_la_etcDATA \ + uninstall-libscioverloading_la_rootDATA + + +# 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/overloading/Makefile.am b/modules/overloading/Makefile.am new file mode 100755 index 000000000..d752f0189 --- /dev/null +++ b/modules/overloading/Makefile.am @@ -0,0 +1,21 @@ +# 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. + + +#### Target ###### +modulename=overloading + + +#### overloading : Conf files #### +libscioverloading_la_rootdir = $(mydatadir) +libscioverloading_la_root_DATA = license.txt + + + +#### overloading : init scripts #### +libscioverloading_la_etcdir = $(mydatadir)/etc +libscioverloading_la_etc_DATA = etc/overloading.quit etc/overloading.start + +include $(top_srcdir)/Makefile.incl.am diff --git a/modules/overloading/Makefile.in b/modules/overloading/Makefile.in new file mode 100755 index 000000000..9e21ac4c6 --- /dev/null +++ b/modules/overloading/Makefile.in @@ -0,0 +1,1010 @@ +# 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 +@NEED_JAVA_TRUE@am__append_1 = java +subdir = modules/overloading +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_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 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +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)$(libscioverloading_la_etcdir)" \ + "$(DESTDIR)$(libscioverloading_la_rootdir)" +DATA = $(libscioverloading_la_etc_DATA) \ + $(libscioverloading_la_root_DATA) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +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@ + +#### Target ###### +modulename = overloading + +#### overloading : Conf files #### +libscioverloading_la_rootdir = $(mydatadir) +libscioverloading_la_root_DATA = license.txt + +#### overloading : init scripts #### +libscioverloading_la_etcdir = $(mydatadir)/etc +libscioverloading_la_etc_DATA = etc/overloading.quit etc/overloading.start + +# 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 +$(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/overloading/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign modules/overloading/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): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-libscioverloading_la_etcDATA: $(libscioverloading_la_etc_DATA) + @$(NORMAL_INSTALL) + @list='$(libscioverloading_la_etc_DATA)'; test -n "$(libscioverloading_la_etcdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(libscioverloading_la_etcdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libscioverloading_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)$(libscioverloading_la_etcdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(libscioverloading_la_etcdir)" || exit $$?; \ + done + +uninstall-libscioverloading_la_etcDATA: + @$(NORMAL_UNINSTALL) + @list='$(libscioverloading_la_etc_DATA)'; test -n "$(libscioverloading_la_etcdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(libscioverloading_la_etcdir)'; $(am__uninstall_files_from_dir) +install-libscioverloading_la_rootDATA: $(libscioverloading_la_root_DATA) + @$(NORMAL_INSTALL) + @list='$(libscioverloading_la_root_DATA)'; test -n "$(libscioverloading_la_rootdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(libscioverloading_la_rootdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libscioverloading_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)$(libscioverloading_la_rootdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(libscioverloading_la_rootdir)" || exit $$?; \ + done + +uninstall-libscioverloading_la_rootDATA: + @$(NORMAL_UNINSTALL) + @list='$(libscioverloading_la_root_DATA)'; test -n "$(libscioverloading_la_rootdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(libscioverloading_la_rootdir)'; $(am__uninstall_files_from_dir) +tags TAGS: + +ctags CTAGS: + +cscope cscopelist: + + +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 $(DATA) all-local +installdirs: + for dir in "$(DESTDIR)$(libscioverloading_la_etcdir)" "$(DESTDIR)$(libscioverloading_la_rootdir)"; 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) + +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 mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-local + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-data-local \ + install-libscioverloading_la_etcDATA \ + install-libscioverloading_la_rootDATA + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +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 -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-libscioverloading_la_etcDATA \ + uninstall-libscioverloading_la_rootDATA + +.MAKE: check-am install-am install-strip + +.PHONY: all all-am all-local check check-am check-local clean \ + clean-generic clean-libtool clean-local cscopelist-am ctags-am \ + distclean distclean-generic distclean-libtool distclean-local \ + 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-libscioverloading_la_etcDATA \ + install-libscioverloading_la_rootDATA install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ + uninstall-am uninstall-libscioverloading_la_etcDATA \ + uninstall-libscioverloading_la_rootDATA + + +# 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/overloading/etc/overloading.quit b/modules/overloading/etc/overloading.quit new file mode 100755 index 000000000..ab83f0c89 --- /dev/null +++ b/modules/overloading/etc/overloading.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/overloading/etc/overloading.start b/modules/overloading/etc/overloading.start new file mode 100755 index 000000000..2aaebc95d --- /dev/null +++ b/modules/overloading/etc/overloading.start @@ -0,0 +1,14 @@ +// 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 +//Load functions libraries + +// Load functions libraries +// ============================================================================= +load('SCI/modules/overloading/macros/lib'); + diff --git a/modules/overloading/license.txt b/modules/overloading/license.txt new file mode 100755 index 000000000..18e865ac0 --- /dev/null +++ b/modules/overloading/license.txt @@ -0,0 +1,13 @@ +Copyright: +Copyright (c) 2008 - DIGITEO +Copyright (c) 1989-2008 - INRIA +Copyright (c) 1989-2007 - ENPC +Copyright (c) Bruno Pincon + +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 + diff --git a/modules/overloading/locales/ca_ES.po b/modules/overloading/locales/ca_ES.po new file mode 100755 index 000000000..962ed782e --- /dev/null +++ b/modules/overloading/locales/ca_ES.po @@ -0,0 +1,321 @@ +# Catalan translation for scilab +# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 +# This file is distributed under the same license as the scilab package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: scilab\n" +"Report-Msgid-Bugs-To: <localization@lists.scilab.org>\n" +"POT-Creation-Date: 2013-04-16 17:44+0100\n" +"PO-Revision-Date: 2012-04-19 18:05+0000\n" +"Last-Translator: Marc Coll Carrillo <Unknown>\n" +"Language-Team: Catalan <ca@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Launchpad (build 17413)\n" +"Language: ca\n" + +#, c-format +msgid "%s: Invalid index.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: String expected.\n" +msgstr "" +"%s: L'argument d'entrada #%d és d'un tipus incorrecte: Ha de ser un text.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d.\n" +msgstr "" + +#, c-format +msgid "%s: Multidimensional sparse matrices are not handled.\n" +msgstr "" + +#, c-format +msgid "%c: input argument #%d has duplicates\n" +msgstr "" + +#, c-format +msgid "%c: input argument #%d must be sorted in lexicographic order\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: 'c', 'd' or a scalar expected.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Affection of a string in a matrix of numbers is not implemented.\n" +msgstr "" + +#, c-format +msgid "%s: Syntax x(j) only allowed for row cblock's.\n" +msgstr "" + +#, c-format +msgid "" +"%s: In concatenation the number of dimensions for each component must " +"match.\n" +msgstr "" + +#, c-format +msgid "%s: Invalid field name.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: a valid field name expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument #%d.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong number of output arguments.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong size for input argument #%d: Transpose can not be defined.\n" +msgstr "" + +#, c-format +msgid "%s: Invalid path.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Input argument #%d and input argument #%d have incompatible dimensions.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A scalar expected.\n" +msgstr "" + +#, c-format +msgid "%s: Inconsistent dimensions.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong number of input argument(s): %d to %d expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A scalar expected.\n" +msgstr "" +"%s: el parà metre d'entrada #%d té una mida incorrecta: s'esperava un " +"escalar.\n" + +#, c-format +msgid "%s: Wrong value for input argument #%d: Integer >= %d expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A string expected.\n" +msgstr "" +"%s: el parà metre d'entrada #%d té una mida incorrecta: s'esperava una " +"cadena.\n" + +#, c-format +msgid "%s: Wrong value for input argument #%d: Must be in the set {%s}.\n" +msgstr "" +"%s: el parà metre d'entrada #%d té un valor incorrecte: ha d'estar dintre del " +"conjunt {%s}.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A string or scalar expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A string expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d: %s or %s expected.\n" +msgstr "" + +#, c-format +msgid "%s: Inconsistent element-wise operation.\n" +msgstr "" + +#, c-format +msgid "%s: Too many subscripts.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong number of input argument: %d to %d expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Hypermatrix expected.\n" +msgstr "" + +#, c-format +msgid "%s: Operand is not a boolean hypermatrix.\n" +msgstr "" + +#, c-format +msgid "%s: Incompatible operand dimensions.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument(s): hypermatrix expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument #%d: 3D maximum expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for argument: Incompatible dimensions.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument(s): integer scalars expected.\n" +msgstr "" + +#, c-format +msgid "%s: Only one -1 value admitted.\n" +msgstr "" + +#, c-format +msgid "%s: Input and output matrices must have the same number of elements" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: '%s', '%s' or '%s' expected.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: Scalar positive integer expected.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: Scalar positive integer or character " +"string expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A real matrix expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: integer values expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong number of input arguments: At least %d expected.\n" +msgstr "" + +#, c-format +msgid "%s: Invalid syntax for a MIMO system.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d: %d or %s expected.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Insertion of a sparse matrix in a matrix of numbers is not defined.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: An integer matrix expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input arguments.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument(s).\n" +msgstr "" + +msgid "" +" Warning: Syntax vector ^ scalar is obsolete it will be removed in scilab-" +"6.\n" +" Use vector .^ scalar instead.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong type for input arguments #%d and #%d: Integer values expected.\n" +msgstr "" + +#, c-format +msgid "%s: Not yet implemented.\n" +msgstr "" + +#, c-format +msgid "%s: A null assignment can have only one non-colon index.\n" +msgstr "" + +#, c-format +msgid "%s: Unable to diagonalize.\n" +msgstr "" + +#, c-format +msgid "%s: Sparse insertion case is not implemented.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: An integer expected.\n" +msgstr "" + +#, c-format +msgid "%s: Field names mismatch.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d: not a valid field name.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for argument #%d: Real vector expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for argument #%d: Real scalar expected.\n" +msgstr "" + +#, c-format +msgid "" +"%s: input and output matrices must have the same number of elements.\n" +msgstr "" +"%s: les matrius d'entrada i de sortida han de tenir el mateix nombre " +"d'elements.\n" + +#, c-format +msgid "%s: Wrong size or value for input argument #%d.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d.\n" +msgstr "" + +#, c-format +msgid "%s: Not implemented.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong assignment: for insertion in cell, use e.g. x(i,j).entries=y.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Incompatible sizes for properties '%s' and '%s': Same sizes expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong number of input arguments: %d expected.\n" +msgstr "" diff --git a/modules/overloading/locales/cs_CZ.po b/modules/overloading/locales/cs_CZ.po new file mode 100755 index 000000000..4e918120c --- /dev/null +++ b/modules/overloading/locales/cs_CZ.po @@ -0,0 +1,324 @@ +# 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-05-24 21:44+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: Invalid index.\n" +msgstr "%s: Neplatný index.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: String expected.\n" +msgstr "%s: Å patný typ vstupnÃho argumentu #%d: OÄekáván Å™etÄ›zec.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d.\n" +msgstr "%s: Å patný typ vstupnÃho argumentu #%d.\n" + +#, c-format +msgid "%s: Multidimensional sparse matrices are not handled.\n" +msgstr "%s: MnohorozmÄ›rné Å™Ãdké matice nejsou zpracovávány.\n" + +#, c-format +msgid "%c: input argument #%d has duplicates\n" +msgstr "" + +#, c-format +msgid "%c: input argument #%d must be sorted in lexicographic order\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: 'c', 'd' or a scalar expected.\n" +msgstr "" +"%s: Å patná hodnota vstupnÃho argumentu #%d: OÄekáván skalár, 'c', nebo 'd'.\n" + +#, c-format +msgid "" +"%s: Affection of a string in a matrix of numbers is not implemented.\n" +msgstr "%s: OvlivnÄ›nà řetÄ›zce v matici ÄÃsel nenà zavedeno.\n" + +#, c-format +msgid "%s: Syntax x(j) only allowed for row cblock's.\n" +msgstr "%s: Syntaxe x(j) je povolena pouze pro cbloky řádku.\n" + +#, c-format +msgid "" +"%s: In concatenation the number of dimensions for each component must " +"match.\n" +msgstr "%s: Ve zÅ™etÄ›zenà musà odpovÃdat poÄet rozmÄ›rů pro každou Äást.\n" + +#, c-format +msgid "%s: Invalid field name.\n" +msgstr "%s: Neplatný název pole.\n" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: a valid field name expected.\n" +msgstr "" +"%s: Å patná hodnota vstupnÃho argumentu #%d: OÄekáván platný název pole.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d.\n" +msgstr "%s: Å patná velikost vstupnÃho argumentu #%d.\n" + +#, c-format +msgid "%s: Wrong number of output arguments.\n" +msgstr "%s: Å patný poÄet výstupnÃch argumentů.\n" + +#, c-format +msgid "" +"%s: Wrong size for input argument #%d: Transpose can not be defined.\n" +msgstr "" +"%s: Å Patná velikost vstupnÃho argumentu #%d: Transpozice nemůže být urÄena.\n" + +#, c-format +msgid "%s: Invalid path.\n" +msgstr "%s: Neplatná cesta.\n" + +#, c-format +msgid "" +"%s: Input argument #%d and input argument #%d have incompatible dimensions.\n" +msgstr "%s: Vstupnà argument #%d a #%d najà nekompatibilnà rozmÄ›ry.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A scalar expected.\n" +msgstr "%s: Å patný typ vstupnÃho argumentu #%d: OÄekáván skalár.\n" + +#, c-format +msgid "%s: Inconsistent dimensions.\n" +msgstr "%s: Rozporné rozmÄ›ry.\n" + +#, c-format +msgid "%s: Wrong number of input argument(s): %d to %d expected.\n" +msgstr "" + +#, 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 value for input argument #%d: Integer >= %d expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A string expected.\n" +msgstr "%s: Å patná velikost vstupnÃho argumentu #%d: OÄekáván Å™etÄ›zec.\n" + +#, c-format +msgid "%s: Wrong value for input argument #%d: Must be in the set {%s}.\n" +msgstr "%s: Å patná hodnota vstupnÃho argumentu #%d: Musà být v sadÄ› {%s}.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A string or scalar expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A string expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d: %s or %s expected.\n" +msgstr "" + +#, c-format +msgid "%s: Inconsistent element-wise operation.\n" +msgstr "%s: Rozporné operace směřujÃcà k prvkům.\n" + +#, c-format +msgid "%s: Too many subscripts.\n" +msgstr "%s: PÅ™ÃliÅ¡ mnoho dolnÃch indexů.\n" + +#, c-format +msgid "%s: Wrong number of input argument: %d to %d expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Hypermatrix expected.\n" +msgstr "" + +#, c-format +msgid "%s: Operand is not a boolean hypermatrix.\n" +msgstr "" + +#, c-format +msgid "%s: Incompatible operand dimensions.\n" +msgstr "%s: Nekompatibilnà rozmÄ›ry operandu.\n" + +#, c-format +msgid "%s: Wrong type for input argument(s): hypermatrix expected.\n" +msgstr "%s: Å patný typ vstupnÃch argumentů: oÄekávána hypermatice.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: 3D maximum expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for argument: Incompatible dimensions.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument(s): integer scalars expected.\n" +msgstr "" +"%s: Å patná velikost vstupnÃch argumentů: OÄekávány celoÄÃselné skaláry.\n" + +#, c-format +msgid "%s: Only one -1 value admitted.\n" +msgstr "%s: PÅ™ijata pouze jedna hodnota -1.\n" + +#, c-format +msgid "%s: Input and output matrices must have the same number of elements" +msgstr "%s: Vstupnà a výstupnà matice musà mÃt stejný poÄet prvků" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: '%s', '%s' or '%s' expected.\n" +msgstr "" +"%s: Å patná hodnota vstupnÃho argumentu #%d: OÄekáváno '%s', '%s' nebo '%s'.\n" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: Scalar positive integer expected.\n" +msgstr "" +"%s: Å patná hodnota vstupnÃho argumentu #%d: OÄekáván celoÄÃselný kladný " +"skalár.\n" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: Scalar positive integer or character " +"string expected.\n" +msgstr "" +"%s: Å patná hodnota vstupnÃho argumentu #%d: OÄekáván kladné skalárnà celé " +"ÄÃslo nebo Å™etÄ›zec znaku.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A real matrix expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: integer values expected.\n" +msgstr "" +"%s: Å patný txp vstupnÃho argumentu #%d: OÄekávány celoÄÃselné hodnoty.\n" + +#, c-format +msgid "%s: Wrong number of input arguments: At least %d expected.\n" +msgstr "%s: Å patný poÄet vstupnÃch argumentů: OÄekávány alespoň %d.\n" + +#, c-format +msgid "%s: Invalid syntax for a MIMO system.\n" +msgstr "%s: Neplatná syntaxe pro systém MIMO.\n" + +#, c-format +msgid "%s: Wrong value for input argument #%d: %d or %s expected.\n" +msgstr "%s: Å patná hodnota vstupnÃho argumentu #%d: OÄekáváno %d nebo %s.\n" + +#, c-format +msgid "" +"%s: Insertion of a sparse matrix in a matrix of numbers is not defined.\n" +msgstr "%s: Vloženà řÃdké matice do ÄÃselné matice nenà zavedeno.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: An integer matrix expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input arguments.\n" +msgstr "%s: Å patná velikost vstupnÃch argumentů.\n" + +#, c-format +msgid "%s: Wrong size for input argument(s).\n" +msgstr "%s: Å patná velikost vstupnÃch argumentů.\n" + +msgid "" +" Warning: Syntax vector ^ scalar is obsolete it will be removed in scilab-" +"6.\n" +" Use vector .^ scalar instead.\n" +msgstr "" +" VarovánÃ: Syntaxe vektor ^ skalár je zastaralá, bude odstranÄ›na v scilab-" +"6.\n" +" MÃsto toho použijte vektor .^ skalár.\n" + +#, c-format +msgid "" +"%s: Wrong type for input arguments #%d and #%d: Integer values expected.\n" +msgstr "" + +#, c-format +msgid "%s: Not yet implemented.\n" +msgstr "%s: Nenà jeÅ¡tÄ› zavedeno.\n" + +#, c-format +msgid "%s: A null assignment can have only one non-colon index.\n" +msgstr "%s? Prázdné pÅ™idÄ›lenà může mÃt index pouze bez dvojteÄky.\n" + +#, c-format +msgid "%s: Unable to diagonalize.\n" +msgstr "" + +#, c-format +msgid "%s: Sparse insertion case is not implemented.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: An integer expected.\n" +msgstr "%s: Å patný typ vstupnÃho argumentu #%d: OÄekáváno celé ÄÃslo.\n" + +#, c-format +msgid "%s: Field names mismatch.\n" +msgstr "%s: Neshoda názvů polÃ.\n" + +#, c-format +msgid "%s: Wrong value for input argument #%d: not a valid field name.\n" +msgstr "%s: Å patný typ vstupnÃho argumentu #%d: Nenà platný název pole.\n" + +#, c-format +msgid "%s: Wrong type for argument #%d: Real vector expected.\n" +msgstr "%s: Å patný typ argumentu %d: OÄekáván reálný vektor.\n" + +#, c-format +msgid "%s: Wrong type for argument #%d: Real scalar expected.\n" +msgstr "%s: Å patný typ argumentu %d: OÄekáván reálný skalár.\n" + +#, c-format +msgid "" +"%s: input and output matrices must have the same number of elements.\n" +msgstr "%s: vstupnà a výstupnà matice musà mÃt stejný poÄet prvků.\n" + +#, c-format +msgid "%s: Wrong size or value for input argument #%d.\n" +msgstr "%s: Å patná velikost nebo hodnota vstupnÃho argumentu #%d.\n" + +#, c-format +msgid "%s: Wrong value for input argument #%d.\n" +msgstr "%s: Å patná hodnota vstupnÃho argumentu #%d.\n" + +#, c-format +msgid "%s: Not implemented.\n" +msgstr "%s: Nezavedeno.\n" + +#, c-format +msgid "" +"%s: Wrong assignment: for insertion in cell, use e.g. x(i,j).entries=y.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Incompatible sizes for properties '%s' and '%s': Same sizes expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong number of input arguments: %d expected.\n" +msgstr "%s: Å patný poÄet vstupnÃch argumentů: OÄekáváno %d.\n" diff --git a/modules/overloading/locales/de_DE.po b/modules/overloading/locales/de_DE.po new file mode 100755 index 000000000..42910bf53 --- /dev/null +++ b/modules/overloading/locales/de_DE.po @@ -0,0 +1,323 @@ +# German translation for scilab +# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 +# This file is distributed under the same license as the scilab package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: scilab\n" +"Report-Msgid-Bugs-To: <localization@lists.scilab.org>\n" +"POT-Creation-Date: 2013-04-16 17:44+0100\n" +"PO-Revision-Date: 2013-01-26 04:12+0000\n" +"Last-Translator: Scilab.team <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: Invalid index.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: String expected.\n" +msgstr "%s: falscher Typ für Eingangsargument #%d: Zeichenkette erwartet.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d.\n" +msgstr "" + +#, c-format +msgid "%s: Multidimensional sparse matrices are not handled.\n" +msgstr "" + +#, c-format +msgid "%c: input argument #%d has duplicates\n" +msgstr "" + +#, c-format +msgid "%c: input argument #%d must be sorted in lexicographic order\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: 'c', 'd' or a scalar expected.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Affection of a string in a matrix of numbers is not implemented.\n" +msgstr "" + +#, c-format +msgid "%s: Syntax x(j) only allowed for row cblock's.\n" +msgstr "" + +#, c-format +msgid "" +"%s: In concatenation the number of dimensions for each component must " +"match.\n" +msgstr "" + +#, c-format +msgid "%s: Invalid field name.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: a valid field name expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument #%d.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong number of output arguments.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong size for input argument #%d: Transpose can not be defined.\n" +msgstr "" + +#, c-format +msgid "%s: Invalid path.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Input argument #%d and input argument #%d have incompatible dimensions.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A scalar expected.\n" +msgstr "" + +#, c-format +msgid "%s: Inconsistent dimensions.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong number of input argument(s): %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 für Eingabeargument #%d: Ein Skalar wird erwartet.\n" + +#, c-format +msgid "%s: Wrong value for input argument #%d: Integer >= %d expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A string expected.\n" +msgstr "" +"%s: Falsche Größe für Eingabeargument #%d: Eine Zeichenkette wird 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 Eingabeargument #%d: Muss ein Teil der Menge {%s} " +"sein.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A string or scalar expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A string expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d: %s or %s expected.\n" +msgstr "" + +#, c-format +msgid "%s: Inconsistent element-wise operation.\n" +msgstr "" + +#, c-format +msgid "%s: Too many subscripts.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong number of input argument: %d to %d expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Hypermatrix expected.\n" +msgstr "" + +#, c-format +msgid "%s: Operand is not a boolean hypermatrix.\n" +msgstr "" + +#, c-format +msgid "%s: Incompatible operand dimensions.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument(s): hypermatrix expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument #%d: 3D maximum expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for argument: Incompatible dimensions.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument(s): integer scalars expected.\n" +msgstr "" + +#, c-format +msgid "%s: Only one -1 value admitted.\n" +msgstr "" + +#, c-format +msgid "%s: Input and output matrices must have the same number of elements" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: '%s', '%s' or '%s' expected.\n" +msgstr "" +"%s: Falscher Wert für Eingabeargument #%d: '%s', '%s' or '%s' erwartet.\n" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: Scalar positive integer expected.\n" +msgstr "" +"%s: Falscher Wert für Eingabeargument #%d: Skalare positive Ganzzahl " +"erwartet.\n" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: Scalar positive integer or character " +"string expected.\n" +msgstr "" +"%s: Falscher Wert für Eingabeargument #%d: Skalare positive Ganzzahl oder " +"Zeichenkette erwartet.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A real matrix expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: integer values expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong number of input arguments: At least %d expected.\n" +msgstr "" + +#, c-format +msgid "%s: Invalid syntax for a MIMO system.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d: %d or %s expected.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Insertion of a sparse matrix in a matrix of numbers is not defined.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: An integer matrix expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input arguments.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument(s).\n" +msgstr "" + +msgid "" +" Warning: Syntax vector ^ scalar is obsolete it will be removed in scilab-" +"6.\n" +" Use vector .^ scalar instead.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong type for input arguments #%d and #%d: Integer values expected.\n" +msgstr "" + +#, c-format +msgid "%s: Not yet implemented.\n" +msgstr "" + +#, c-format +msgid "%s: A null assignment can have only one non-colon index.\n" +msgstr "" + +#, c-format +msgid "%s: Unable to diagonalize.\n" +msgstr "" + +#, c-format +msgid "%s: Sparse insertion case is not implemented.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: An integer expected.\n" +msgstr "" + +#, c-format +msgid "%s: Field names mismatch.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d: not a valid field name.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for argument #%d: Real vector expected.\n" +msgstr "%s: Falscher Argumenttyp %d: Echter Vektor erwartet.\n" + +#, c-format +msgid "%s: Wrong type for argument #%d: Real scalar expected.\n" +msgstr "%s: Falscher Argumenttyp %d: Echtes Skalar erwartet.\n" + +#, c-format +msgid "" +"%s: input and output matrices must have the same number of elements.\n" +msgstr "" +"%s: Eingabe- und Ausgabe-Matrizen müssen über die gleiche Anzahl an " +"Elementen verfügen.\n" + +#, c-format +msgid "%s: Wrong size or value for input argument #%d.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d.\n" +msgstr "" + +#, c-format +msgid "%s: Not implemented.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong assignment: for insertion in cell, use e.g. x(i,j).entries=y.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Incompatible sizes for properties '%s' and '%s': Same sizes expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong number of input arguments: %d expected.\n" +msgstr "" diff --git a/modules/overloading/locales/es_ES.po b/modules/overloading/locales/es_ES.po new file mode 100755 index 000000000..728d61b70 --- /dev/null +++ b/modules/overloading/locales/es_ES.po @@ -0,0 +1,322 @@ +# Spanish translation for scilab +# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 +# This file is distributed under the same license as the scilab package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: scilab\n" +"Report-Msgid-Bugs-To: <localization@lists.scilab.org>\n" +"POT-Creation-Date: 2013-04-16 17:44+0100\n" +"PO-Revision-Date: 2013-01-26 04:09+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: Invalid index.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: String expected.\n" +msgstr "" +"%s: Tipo incorrecto del argumento de entrada #%d: Se esperaba un string.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d.\n" +msgstr "" + +#, c-format +msgid "%s: Multidimensional sparse matrices are not handled.\n" +msgstr "" + +#, c-format +msgid "%c: input argument #%d has duplicates\n" +msgstr "" + +#, c-format +msgid "%c: input argument #%d must be sorted in lexicographic order\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: 'c', 'd' or a scalar expected.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Affection of a string in a matrix of numbers is not implemented.\n" +msgstr "" + +#, c-format +msgid "%s: Syntax x(j) only allowed for row cblock's.\n" +msgstr "" + +#, c-format +msgid "" +"%s: In concatenation the number of dimensions for each component must " +"match.\n" +msgstr "" + +#, c-format +msgid "%s: Invalid field name.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: a valid field name expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument #%d.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong number of output arguments.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong size for input argument #%d: Transpose can not be defined.\n" +msgstr "" + +#, c-format +msgid "%s: Invalid path.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Input argument #%d and input argument #%d have incompatible dimensions.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A scalar expected.\n" +msgstr "" + +#, c-format +msgid "%s: Inconsistent dimensions.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong number of input argument(s): %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 value for input argument #%d: Integer >= %d expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A string expected.\n" +msgstr "" +"%s: Tamaño incorrecto del argumento de entrada #%d: Se esperaba un string.\n" + +#, c-format +msgid "%s: Wrong value for input argument #%d: Must be in the set {%s}.\n" +msgstr "" +"%s: Valor incorrecto del argumento de entrada #%d: Debe estar en el conjunto " +"{%s}.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A string or scalar expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A string expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d: %s or %s expected.\n" +msgstr "" + +#, c-format +msgid "%s: Inconsistent element-wise operation.\n" +msgstr "" + +#, c-format +msgid "%s: Too many subscripts.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong number of input argument: %d to %d expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Hypermatrix expected.\n" +msgstr "" + +#, c-format +msgid "%s: Operand is not a boolean hypermatrix.\n" +msgstr "" + +#, c-format +msgid "%s: Incompatible operand dimensions.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument(s): hypermatrix expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument #%d: 3D maximum expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for argument: Incompatible dimensions.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument(s): integer scalars expected.\n" +msgstr "" + +#, c-format +msgid "%s: Only one -1 value admitted.\n" +msgstr "" + +#, c-format +msgid "%s: Input and output matrices must have the same number of elements" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: '%s', '%s' or '%s' expected.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: Scalar positive integer expected.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: Scalar positive integer or character " +"string expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A real matrix expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: integer values expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong number of input arguments: At least %d expected.\n" +msgstr "" + +#, c-format +msgid "%s: Invalid syntax for a MIMO system.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d: %d or %s expected.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Insertion of a sparse matrix in a matrix of numbers is not defined.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: An integer matrix expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input arguments.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument(s).\n" +msgstr "" + +msgid "" +" Warning: Syntax vector ^ scalar is obsolete it will be removed in scilab-" +"6.\n" +" Use vector .^ scalar instead.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong type for input arguments #%d and #%d: Integer values expected.\n" +msgstr "" + +#, c-format +msgid "%s: Not yet implemented.\n" +msgstr "" + +#, c-format +msgid "%s: A null assignment can have only one non-colon index.\n" +msgstr "" + +#, c-format +msgid "%s: Unable to diagonalize.\n" +msgstr "" + +#, c-format +msgid "%s: Sparse insertion case is not implemented.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: An integer expected.\n" +msgstr "" + +#, c-format +msgid "%s: Field names mismatch.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d: not a valid field name.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for argument #%d: Real vector expected.\n" +msgstr "" +"%s: Tipo incorrecto para el argumento %d: Se esperaba un vector real.\n" + +#, c-format +msgid "%s: Wrong type for argument #%d: Real scalar expected.\n" +msgstr "" +"%s: Tipo incorrecto para el argumento de entrada %d: Se esperaba un escalar " +"real.\n" + +#, c-format +msgid "" +"%s: input and output matrices must have the same number of elements.\n" +msgstr "" +"%s: las matrices de entrada y salida deben contener la misma cantidad de " +"elementos.\n" + +#, c-format +msgid "%s: Wrong size or value for input argument #%d.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d.\n" +msgstr "" + +#, c-format +msgid "%s: Not implemented.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong assignment: for insertion in cell, use e.g. x(i,j).entries=y.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Incompatible sizes for properties '%s' and '%s': Same sizes expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong number of input arguments: %d expected.\n" +msgstr "" diff --git a/modules/overloading/locales/fr_FR.po b/modules/overloading/locales/fr_FR.po new file mode 100755 index 000000000..b5602a6fd --- /dev/null +++ b/modules/overloading/locales/fr_FR.po @@ -0,0 +1,380 @@ +# French 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-02-19 13:50+0000\n" +"Last-Translator: Julie PAUL <Unknown>\n" +"Language-Team: French <fr@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Launchpad (build 17413)\n" +"Language: fr\n" + +#, c-format +msgid "%s: Invalid index.\n" +msgstr "%s : Index invalide.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: String expected.\n" +msgstr "" +"%s : Type erroné de l'argument d'entrée n°%d : Une chaîne de caractères " +"attendue.\n" + +#, 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: Multidimensional sparse matrices are not handled.\n" +msgstr "" +"%s : Les matrices creuses multidimensionnelles ne sont pas prises en " +"charge.\n" + +#, c-format +msgid "%c: input argument #%d has duplicates\n" +msgstr "%c : L'argument d'entrée n°%d a des doublons.\n" + +#, c-format +msgid "%c: input argument #%d must be sorted in lexicographic order\n" +msgstr "" +"%c : L'argument d'entrée n°%d doit être trié dans l'ordre lexicographique.\n" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: 'c', 'd' or a scalar expected.\n" +msgstr "" +"%s : Valeur erronée de l'argument d'entrée n°%d : 'c', 'd' ou un scalaire " +"attendu.\n" + +#, c-format +msgid "" +"%s: Affection of a string in a matrix of numbers is not implemented.\n" +msgstr "" +"%s : L'affectation d'une chaîne de caractères dans une matrice de nombres " +"n'est pas implémentée.\n" + +#, c-format +msgid "%s: Syntax x(j) only allowed for row cblock's.\n" +msgstr "" +"%s : La syntaxe x(j) est seulement autorisée pour les blocs C ligne.\n" + +#, c-format +msgid "" +"%s: In concatenation the number of dimensions for each component must " +"match.\n" +msgstr "" +"%s : En concaténation, le nombre de dimensions de chaque composant doit " +"correspondre.\n" + +#, c-format +msgid "%s: Invalid field name.\n" +msgstr "%s : Nom de champ invalide.\n" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: a valid field name expected.\n" +msgstr "" +"%s : Valeur erronée de l'argument d'entrée n°%d : Un nom de champ valide " +"attendu.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d.\n" +msgstr "%s : Dimension erronée de l'argument d'entrée n°%d.\n" + +#, c-format +msgid "%s: Wrong number of output arguments.\n" +msgstr "%s : Nombre erroné d'arguments de sortie.\n" + +#, c-format +msgid "" +"%s: Wrong size for input argument #%d: Transpose can not be defined.\n" +msgstr "" +"%s : Dimension erronée de l'argument d'entrée n°%d : La transposée ne peut " +"pas être définie.\n" + +#, c-format +msgid "%s: Invalid path.\n" +msgstr "%s : Chemin invalide.\n" + +#, c-format +msgid "" +"%s: Input argument #%d and input argument #%d have incompatible dimensions.\n" +msgstr "" +"%s : Les arguments d'entrée n°%d et n°%d ont des dimensions incompatibles.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A scalar expected.\n" +msgstr "" +"%s : Type erroné de l'argument d'entrée n°%d : Un scalaire attendu.\n" + +#, c-format +msgid "%s: Inconsistent dimensions.\n" +msgstr "%s : Dimensions incohérentes.\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 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 value for input argument #%d: Integer >= %d expected.\n" +msgstr "" +"%s : Valeur erronée de l'argument d'entrée n°%d : Un entier >= %d 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: Must be in the set {%s}.\n" +msgstr "" +"%s : Valeur erronée de l'argument d'entrée n°%d : Doit être dans l'ensemble " +"{%s}.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A string or scalar expected.\n" +msgstr "" +"%s : Type erroné de l'argument d'entrée n°%d : Une chaîne de caractères ou " +"un scalaire attendu.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A string expected.\n" +msgstr "" +"%s : Type erroné 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 or %s expected.\n" +msgstr "" +"%s : Valeur erronée de l'argument d'entrée n°%d : %s ou %s attendu.\n" + +#, c-format +msgid "%s: Inconsistent element-wise operation.\n" +msgstr "%s : Opération élément par élément incohérente.\n" + +#, c-format +msgid "%s: Too many subscripts.\n" +msgstr "%s : Trop d'indices.\n" + +#, c-format +msgid "%s: Wrong number of input argument: %d to %d expected.\n" +msgstr "%s : Nombre erroné d'arguments d'entrée : %d à %d attendus.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Hypermatrix expected.\n" +msgstr "" +"%s : Type erroné de l'argument d'entrée n°%d : Une hypermatrice attendue.\n" + +#, c-format +msgid "%s: Operand is not a boolean hypermatrix.\n" +msgstr "%s : L'opérande n'est pas une hypermatrice booléenne.\n" + +#, c-format +msgid "%s: Incompatible operand dimensions.\n" +msgstr "%s : Dimensions de l'opérande incompatibles.\n" + +#, c-format +msgid "%s: Wrong type for input argument(s): hypermatrix expected.\n" +msgstr "" +"%s : Type erroné de l'argument ou des arguments d'entrée : Une hypermatrice " +"attendue.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: 3D maximum expected.\n" +msgstr "" +"%s : Dimension erronée de l'argument d'entrée n°%d : Au maximum de la 3D " +"attendue.\n" + +#, c-format +msgid "%s: Wrong size for argument: Incompatible dimensions.\n" +msgstr "%s : Dimensions erronées de l'argument : Dimensions incompatibles\n" + +#, c-format +msgid "%s: Wrong size for input argument(s): integer scalars expected.\n" +msgstr "" +"%s : Dimension erronée de l'argument ou des arguments d'entrée : Des " +"scalaires entiers attendus.\n" + +#, c-format +msgid "%s: Only one -1 value admitted.\n" +msgstr "%s : Une seule valeur -1 est possible.\n" + +#, c-format +msgid "%s: Input and output matrices must have the same number of elements" +msgstr "" +"%s : Les matrices d'entrée et de sortie doivent avoir le même nombre " +"d'éléments." + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: '%s', '%s' or '%s' expected.\n" +msgstr "" +"%s : Valeur erronée de l'argument d'entrée n°%d : '%s', '%s' ou '%s' " +"attendu.\n" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: Scalar positive integer expected.\n" +msgstr "" +"%s : Valeur erronée de l'argument d'entrée n°%d : Un scalaire entier positif " +"attendu.\n" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: Scalar positive integer or character " +"string expected.\n" +msgstr "" +"%s : Valeur erronée de l'argument d'entrée n°%d : Un scalaire entier positif " +"ou une chaîne de caractères attendu.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A 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: integer values expected.\n" +msgstr "" +"%s : Type erroné de l'argument d'entrée n°%d : Des valeurs entières " +"attendues.\n" + +#, c-format +msgid "%s: Wrong number of input arguments: At least %d expected.\n" +msgstr "%s : Nombre erroné d'arguments d'entrée : %d au moins attendus.\n" + +#, c-format +msgid "%s: Invalid syntax for a MIMO system.\n" +msgstr "%s : Syntaxe invalide pour un système MIMO.\n" + +#, c-format +msgid "%s: Wrong value for input argument #%d: %d or %s expected.\n" +msgstr "" +"%s : Valeur erronée de l'argument d'entrée n°%d : %d ou %s attendu.\n" + +#, c-format +msgid "" +"%s: Insertion of a sparse matrix in a matrix of numbers is not defined.\n" +msgstr "" +"%s : L'insertion d'une matrice creuse dans une matrice de nombre n'est pas " +"définie.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: An integer matrix expected.\n" +msgstr "" +"%s : Type erroné de l'argument d'entrée n°%d : Une matrice entière " +"attendue.\n" + +#, c-format +msgid "%s: Wrong size for input arguments.\n" +msgstr "%s : Dimension erronée des arguments d'entrée.\n" + +#, c-format +msgid "%s: Wrong size for input argument(s).\n" +msgstr "%s : Dimension erronée de l'argument ou des argument(s) d'entrée.\n" + +msgid "" +" Warning: Syntax vector ^ scalar is obsolete it will be removed in scilab-" +"6.\n" +" Use vector .^ scalar instead.\n" +msgstr "" +" Attention : La syntaxe vector ^ scalar est obsolète. Elle sera supprimée " +"dans Scilab 6.\n" +" Veuillez utiliser vector .^ scalar à la place.\n" + +#, c-format +msgid "" +"%s: Wrong type for input arguments #%d and #%d: Integer values expected.\n" +msgstr "" +"%s : Type erroné des arguments d'entrée n°%d et n°%d : Des valeurs entières " +"attendues.\n" + +#, c-format +msgid "%s: Not yet implemented.\n" +msgstr "%s : Pas encore implémenté.\n" + +#, c-format +msgid "%s: A null assignment can have only one non-colon index.\n" +msgstr "" +"%s : Une assignation à null peut seulement avoir un seul index qui ne soit " +"pas :\n" + +#, c-format +msgid "%s: Unable to diagonalize.\n" +msgstr "%s : Impossible de diagonaliser.\n" + +#, c-format +msgid "%s: Sparse insertion case is not implemented.\n" +msgstr "" +"%s : Le cas de l'insertion dans une matrice creuse n'est pas implémenté.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: An integer expected.\n" +msgstr "%s : Type erroné de l'argument d'entrée n°%d : Un entier attendu.\n" + +#, c-format +msgid "%s: Field names mismatch.\n" +msgstr "%s : Les noms de champs ne correspondent pas.\n" + +#, c-format +msgid "%s: Wrong value for input argument #%d: not a valid field name.\n" +msgstr "" +"%s : Valeur erronée de l'argument d'entrée n°%d : Ceci n'est pas un nom de " +"champ valide.\n" + +#, c-format +msgid "%s: Wrong type for argument #%d: Real vector expected.\n" +msgstr "%s : Type erroné de l'argument %d : Un vecteur réel attendu.\n" + +#, c-format +msgid "%s: Wrong type for argument #%d: Real scalar expected.\n" +msgstr "%s : Type erroné de l'argument %d : Un scalaire réel attendu.\n" + +#, c-format +msgid "" +"%s: input and output matrices must have the same number of elements.\n" +msgstr "" +"%s : Les matrices d'entrée et de sortie doivent avoir le même nombre " +"d'éléments.\n" + +#, c-format +msgid "%s: Wrong size or value for input argument #%d.\n" +msgstr "%s : Dimension ou valeur erronée de l'argument d'entrée n°%d.\n" + +#, c-format +msgid "%s: Wrong value for input argument #%d.\n" +msgstr "%s : Valeur erronée de l'argument d'entrée n°%d.\n" + +#, c-format +msgid "%s: Not implemented.\n" +msgstr "%s : Non implémenté.\n" + +#, c-format +msgid "" +"%s: Wrong assignment: for insertion in cell, use e.g. x(i,j).entries=y.\n" +msgstr "" +"%s : Affectation erronée: pour l'insertion dans une cellule, utilisez par " +"exemple x(i,j).entries=y.\n" + +#, c-format +msgid "" +"%s: Incompatible sizes for properties '%s' and '%s': Same sizes expected.\n" +msgstr "" +"%s : Dimensions incompatibles des propriétés '%s' et '%s' : Mêmes dimensions " +"attendues.\n" + +#, c-format +msgid "%s: Wrong number of input arguments: %d expected.\n" +msgstr "%s : Nombre erroné d'arguments d'entrée : %d attendus.\n" diff --git a/modules/overloading/locales/it_IT.po b/modules/overloading/locales/it_IT.po new file mode 100755 index 000000000..4914ff9ff --- /dev/null +++ b/modules/overloading/locales/it_IT.po @@ -0,0 +1,351 @@ +# 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-03-24 15:42+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: Invalid index.\n" +msgstr "%s: Indice non valido.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: String expected.\n" +msgstr "" +"%s: L'argomento in ingresso #%d è di tipo sbagliato: era attesa una " +"stringa.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d.\n" +msgstr "%s: L'argomento in ingresso #%d è di tipo sbagliato.\n" + +#, c-format +msgid "%s: Multidimensional sparse matrices are not handled.\n" +msgstr "%s: Le matrici sparse multidimensionali non sono gestite.\n" + +#, c-format +msgid "%c: input argument #%d has duplicates\n" +msgstr "%c: l'argomento in ingresso #%d ha dei duplicati.\n" + +#, c-format +msgid "%c: input argument #%d must be sorted in lexicographic order\n" +msgstr "" +"%c: l'argomento in ingresso #%d deve essere classificato in ordine " +"lessicografico.\n" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: 'c', 'd' or a scalar expected.\n" +msgstr "" +"%s: L'argomento in ingresso #%d ha un valore sbagliato: era atteso \"c\", " +"\"d\" o uno scalare.\n" + +#, c-format +msgid "" +"%s: Affection of a string in a matrix of numbers is not implemented.\n" +msgstr "" + +#, c-format +msgid "%s: Syntax x(j) only allowed for row cblock's.\n" +msgstr "" + +#, c-format +msgid "" +"%s: In concatenation the number of dimensions for each component must " +"match.\n" +msgstr "" +"%s: In una concatenazione il numero delle dimensioni di ogni componente deve " +"essere simile.\n" + +#, c-format +msgid "%s: Invalid field name.\n" +msgstr "%s: Il nome del campo non è valido.\n" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: a valid field name expected.\n" +msgstr "" +"%s: L'argomento in ingresso #%d ha un valore sbagliato: era atteso un nome " +"di campo valido.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d.\n" +msgstr "%s: L'argomento in ingresso #%d ha una dimensione sbagliata.\n" + +#, c-format +msgid "%s: Wrong number of output arguments.\n" +msgstr "%s: Il numero degli argomenti in uscita è sbagliato.\n" + +#, c-format +msgid "" +"%s: Wrong size for input argument #%d: Transpose can not be defined.\n" +msgstr "" +"%s: L'argomento in ingresso #%d ha una dimensione sbagliata: non si può " +"definire la trasposta.\n" + +#, c-format +msgid "%s: Invalid path.\n" +msgstr "%s: Percorso non valido.\n" + +#, c-format +msgid "" +"%s: Input argument #%d and input argument #%d have incompatible dimensions.\n" +msgstr "" +"%s: L'argomento in ingresso #%d e #%d hanno dimensioni non compatibili.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A scalar expected.\n" +msgstr "" +"%s: L'argomento in ingresso #%d è di tipo sbagliato: era atteso uno " +"scalare.\n" + +#, c-format +msgid "%s: Inconsistent dimensions.\n" +msgstr "%s: Dimensioni non consistenti.\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 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 value for input argument #%d: Integer >= %d expected.\n" +msgstr "" +"%s: L'argomento in ingresso #%d ha un valore sbagliato: era atteso un intero " +">=%d.\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: Must be in the set {%s}.\n" +msgstr "" +"%s: L'argomento in ingresso #%d ha un valore sbagliato: deve essere " +"nell'insieme {%s}.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A string or scalar expected.\n" +msgstr "" +"%s: L'argomento in ingresso #%d è di tipo sbagliato: era attesa una stringa " +"o uno scalare.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A string expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d: %s or %s expected.\n" +msgstr "" + +#, c-format +msgid "%s: Inconsistent element-wise operation.\n" +msgstr "" + +#, c-format +msgid "%s: Too many subscripts.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong number of input argument: %d to %d expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Hypermatrix expected.\n" +msgstr "" + +#, c-format +msgid "%s: Operand is not a boolean hypermatrix.\n" +msgstr "" + +#, c-format +msgid "%s: Incompatible operand dimensions.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument(s): hypermatrix expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument #%d: 3D maximum expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for argument: Incompatible dimensions.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument(s): integer scalars expected.\n" +msgstr "" + +#, c-format +msgid "%s: Only one -1 value admitted.\n" +msgstr "" + +#, c-format +msgid "%s: Input and output matrices must have the same number of elements" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: '%s', '%s' or '%s' expected.\n" +msgstr "" +"%s: Valore errato nell'input per l'argomento #%d: era atteso '%s', '%s' " +"oppure '%s' .\n" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: Scalar positive integer expected.\n" +msgstr "" +"%s: Valore errato nell'input per l'argomento #%d: era atteso un valore " +"scalare intero positivo\n" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: Scalar positive integer or character " +"string expected.\n" +msgstr "" +"%s: L'argomento in ingresso #%d ha un valore sbagliato: era atteso uno " +"scalare intero positivo o una stringa di caratteri.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A real matrix expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: integer values expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong number of input arguments: At least %d expected.\n" +msgstr "" + +#, c-format +msgid "%s: Invalid syntax for a MIMO system.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d: %d or %s expected.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Insertion of a sparse matrix in a matrix of numbers is not defined.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: An integer matrix expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input arguments.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument(s).\n" +msgstr "" + +msgid "" +" Warning: Syntax vector ^ scalar is obsolete it will be removed in scilab-" +"6.\n" +" Use vector .^ scalar instead.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong type for input arguments #%d and #%d: Integer values expected.\n" +msgstr "" + +#, c-format +msgid "%s: Not yet implemented.\n" +msgstr "" + +#, c-format +msgid "%s: A null assignment can have only one non-colon index.\n" +msgstr "" + +#, c-format +msgid "%s: Unable to diagonalize.\n" +msgstr "" + +#, c-format +msgid "%s: Sparse insertion case is not implemented.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: An integer expected.\n" +msgstr "" + +#, c-format +msgid "%s: Field names mismatch.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d: not a valid field name.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for argument #%d: Real vector expected.\n" +msgstr "" +"%s: L'argomento in ingresso %d è di tipo sbagliato: era atteso un vettore " +"reale.\n" + +#, c-format +msgid "%s: Wrong type for 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: input and output matrices must have the same number of elements.\n" +msgstr "" +"%s: le matrici di ingresso e di uscita devono avere lo stesso numero di " +"elementi.\n" + +#, c-format +msgid "%s: Wrong size or value for input argument #%d.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d.\n" +msgstr "" + +#, c-format +msgid "%s: Not implemented.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong assignment: for insertion in cell, use e.g. x(i,j).entries=y.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Incompatible sizes for properties '%s' and '%s': Same sizes expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong number of input arguments: %d expected.\n" +msgstr "" diff --git a/modules/overloading/locales/ja_JP.po b/modules/overloading/locales/ja_JP.po new file mode 100755 index 000000000..46f16faab --- /dev/null +++ b/modules/overloading/locales/ja_JP.po @@ -0,0 +1,316 @@ +# 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-02-17 14:52+0000\n" +"Last-Translator: Rui Hirokawa <Unknown>\n" +"Language-Team: Japanese <z-saito@guitar.ocn.ne.jp>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Launchpad (build 17413)\n" +"X-Poedit-Country: Japan\n" +"Language: ja\n" +"X-Poedit-Language: Japanese\n" + +#, c-format +msgid "%s: Invalid index.\n" +msgstr "%s: æ·»å—ãŒä¸æ£ã§ã™.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: String expected.\n" +msgstr "%s: 入力引数 #%d ã®åž‹ãŒé–“é•ã£ã¦ã„ã¾ã™: æ–‡å—列を指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d.\n" +msgstr "%s: 入力引数 #%d ã®åž‹ãŒé–“é•ã£ã¦ã„ã¾ã™.\n" + +#, c-format +msgid "%s: Multidimensional sparse matrices are not handled.\n" +msgstr "%s: 多次元疎行列ã¯å‡¦ç†ã§ãã¾ã›ã‚“.\n" + +#, c-format +msgid "%c: input argument #%d has duplicates\n" +msgstr "%c: 入力引数 #%d ãŒäºŒé‡ã«æŒ‡å®šã•ã‚Œã¦ã„ã¾ã™\n" + +#, c-format +msgid "%c: input argument #%d must be sorted in lexicographic order\n" +msgstr "%c: 入力引数 #%d ã¯è¾žæ›¸å¼é †åºã§ä¿å˜ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™\n" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: 'c', 'd' or a scalar expected.\n" +msgstr "%s: 入力引数 #%d ã®å€¤ãŒé–“é•ã£ã¦ã„ã¾ã™: 'c', 'd'ã¾ãŸã¯ã‚¹ã‚«ãƒ©ãƒ¼ã‚’指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "" +"%s: Affection of a string in a matrix of numbers is not implemented.\n" +msgstr "%s: 数値行列ã«æ–‡å—列を指定ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“.\n" + +#, c-format +msgid "%s: Syntax x(j) only allowed for row cblock's.\n" +msgstr "%s: 構文 x(i) 㯠cblockã®è¡Œã§ã®ã¿ä½¿ç”¨å¯èƒ½ã§ã™.\n" + +#, c-format +msgid "" +"%s: In concatenation the number of dimensions for each component must " +"match.\n" +msgstr "%s: çµåˆæ™‚, å„è¦ç´ ã®æ¬¡å…ƒæ•°ã¯ä¸€è‡´ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™.\n" + +#, c-format +msgid "%s: Invalid field name.\n" +msgstr "%s: フィールドåãŒä¸æ£ã§ã™.\n" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: a valid field name expected.\n" +msgstr "%s: 入力引数 #%d ã®å€¤ãŒé–“é•ã£ã¦ã„ã¾ã™: 有効ãªãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰åを指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d.\n" +msgstr "%s: 入力引数 #%d ã®å¤§ãã•ãŒé–“é•ã£ã¦ã„ã¾ã™.\n" + +#, c-format +msgid "%s: Wrong number of output arguments.\n" +msgstr "%s: 出力引数ã®æ•°ãŒé–“é•ã£ã¦ã„ã¾ã™.\n" + +#, c-format +msgid "" +"%s: Wrong size for input argument #%d: Transpose can not be defined.\n" +msgstr "%s: 入力引数 #%d ã®å¤§ãã•ãŒé–“é•ã£ã¦ã„ã¾ã™: 転置ãŒå®šç¾©ã§ãã¾ã›ã‚“.\n" + +#, c-format +msgid "%s: Invalid path.\n" +msgstr "%s: パスãŒç„¡åŠ¹ã§ã™.\n" + +#, c-format +msgid "" +"%s: Input argument #%d and input argument #%d have incompatible dimensions.\n" +msgstr "%s: 入力引数 #%d ã¨å…¥åŠ›å¼•æ•° #%d ã¯æ¬¡å…ƒã«äº’æ›æ€§ãŒã‚ã‚Šã¾ã›ã‚“.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A scalar expected.\n" +msgstr "%s: 入力引数 #%d ã®åž‹ãŒé–“é•ã£ã¦ã„ã¾ã™: スカラーを指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "%s: Inconsistent dimensions.\n" +msgstr "%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 size for input argument #%d: A scalar expected.\n" +msgstr "%s: 入力引数 #%d ã®å¤§ãã•ãŒé–“é•ã£ã¦ã„ã¾ã™: スカラーを指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "%s: Wrong value for input argument #%d: Integer >= %d expected.\n" +msgstr "%s: 入力引数 #%d ã®å€¤ãŒé–“é•ã£ã¦ã„ã¾ã™: %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: Must be in the set {%s}.\n" +msgstr "%s: 入力引数 #%d ã®å€¤ãŒæ£ã—ãã‚ã‚Šã¾ã›ã‚“: é›†åˆ {%s} ã«å«ã¾ã‚Œã‚‹å€¤ã‚’指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A string or scalar expected.\n" +msgstr "%s: 入力引数 #%d ã®åž‹ãŒé–“é•ã£ã¦ã„ã¾ã™: æ–‡å—列ã¾ãŸã¯ã‚¹ã‚«ãƒ©ãƒ¼ã‚’指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A string expected.\n" +msgstr "%s: 入力引数 #%d ã®åž‹ãŒé–“é•ã£ã¦ã„ã¾ã™: æ–‡å—列を指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "%s: Wrong value for input argument #%d: %s or %s expected.\n" +msgstr "%s: 入力引数 #%d ã®å€¤ãŒé–“é•ã£ã¦ã„ã¾ã™: %s ã¾ãŸã¯ %sを指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "%s: Inconsistent element-wise operation.\n" +msgstr "%s: è¦ç´ 毎ã®å‡¦ç†ã«æ•´åˆæ€§ãŒã‚ã‚Šã¾ã›ã‚“.\n" + +#, c-format +msgid "%s: Too many subscripts.\n" +msgstr "%s: æ·»å—記å·ãŒå¤šã™ãŽã¾ã™.\n" + +#, c-format +msgid "%s: Wrong number of input argument: %d to %d expected.\n" +msgstr "%s: 入力引数ã®æ•°ãŒé–“é•ã£ã¦ã„ã¾ã™: %d ã‹ã‚‰ %d 個ã®å¼•æ•°ã‚’指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Hypermatrix expected.\n" +msgstr "%s: 入力引数 #%d ã®åž‹ãŒé–“é•ã£ã¦ã„ã¾ã™: ãƒã‚¤ãƒ‘ー行列を指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "%s: Operand is not a boolean hypermatrix.\n" +msgstr "%s: オペランドã¯è«–ç†å€¤ãƒã‚¤ãƒ‘ー行列ã§ã¯ã‚ã‚Šã¾ã›ã‚“.\n" + +#, c-format +msgid "%s: Incompatible operand dimensions.\n" +msgstr "%s: オペランドã®æ¬¡å…ƒã«äº’æ›æ€§ãŒã‚ã‚Šã¾ã›ã‚“.\n" + +#, c-format +msgid "%s: Wrong type for input argument(s): hypermatrix expected.\n" +msgstr "%s: 入力引数ã®åž‹ãŒé–“é•ã£ã¦ã„ã¾ã™: ãƒã‚¤ãƒ‘ー行列を指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: 3D maximum expected.\n" +msgstr "%s: 入力引数 #%d ã®å¤§ãã•ãŒé–“é•ã£ã¦ã„ã¾ã™: 3D最大値を指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "%s: Wrong size for argument: Incompatible dimensions.\n" +msgstr "%s: 引数ã®å¤§ãã•ãŒé–“é•ã£ã¦ã„ã¾ã™: 次元ã«äº’æ›æ€§ãŒã‚ã‚Šã¾ã›ã‚“.\n" + +#, c-format +msgid "%s: Wrong size for input argument(s): integer scalars expected.\n" +msgstr "%s: 入力引数ã®å¤§ãã•ãŒé–“é•ã£ã¦ã„ã¾ã™: 整数スカラーを指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "%s: Only one -1 value admitted.\n" +msgstr "%s: one -1 個ã®å€¤ã®ã¿ä½¿ç”¨å¯èƒ½ã§ã™.\n" + +#, c-format +msgid "%s: Input and output matrices must have the same number of elements" +msgstr "%s: 入力/出力行列ã®è¦ç´ æ•°ã¯åŒã˜ã§ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: '%s', '%s' or '%s' expected.\n" +msgstr "%s: 入力引数 #%d ã®å€¤ãŒé–“é•ã£ã¦ã„ã¾ã™: '%s', '%s' ã¾ãŸã¯ '%s' を指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: Scalar positive integer expected.\n" +msgstr "%s: 入力引数 #%d ã®å€¤ãŒé–“é•ã£ã¦ã„ã¾ã™: æ£ã®ã‚¹ã‚«ãƒ©ãƒ¼æ•´æ•°ã‚’指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: Scalar positive integer or character " +"string expected.\n" +msgstr "%s: 入力引数 #%d ã®å€¤ãŒé–“é•ã£ã¦ã„ã¾ã™: æ£ã®ã‚¹ã‚«ãƒ©ãƒ¼æ•´æ•°ã¾ãŸã¯æ–‡å—列を指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A real matrix expected.\n" +msgstr "%s: 入力引数 #%d ã®åž‹ãŒé–“é•ã£ã¦ã„ã¾ã™: 実数ã®è¡Œåˆ—を指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: integer values expected.\n" +msgstr "%s: 入力引数 #%d ã®åž‹ã¯é–“é•ã£ã¦ã„ã¾ã™: 整数値を指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "%s: Wrong number of input arguments: At least %d expected.\n" +msgstr "%s: 入力引数ã®æ•°ãŒæ£ã—ãã‚ã‚Šã¾ã›ã‚“: %d 個以上ã®å¼•æ•°ã‚’指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "%s: Invalid syntax for a MIMO system.\n" +msgstr "%s: MIMOシステムã®æ§‹æ–‡ãŒä¸æ£ã§ã™.\n" + +#, c-format +msgid "%s: Wrong value for input argument #%d: %d or %s expected.\n" +msgstr "%s: 入力引数 #%d ã®å€¤ãŒé–“é•ã£ã¦ã„ã¾ã™: %d ã¾ãŸã¯ %s を指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "" +"%s: Insertion of a sparse matrix in a matrix of numbers is not defined.\n" +msgstr "%s: 数値行列ã¸ã®ç–Žè¡Œåˆ—ã®æŒ¿å…¥ã¯å®šç¾©ã•ã‚Œã¦ã„ã¾ã›ã‚“.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: An integer matrix expected.\n" +msgstr "%s: 入力引数 #%d ã®åž‹ãŒé–“é•ã£ã¦ã„ã¾ã™: 整数行列を指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "%s: Wrong size for input arguments.\n" +msgstr "%s: 入力引数ã®å¤§ãã•ãŒé–“é•ã£ã¦ã„ã¾ã™.\n" + +#, c-format +msgid "%s: Wrong size for input argument(s).\n" +msgstr "%s: 入力引数ã®å¤§ãã•ãŒé–“é•ã£ã¦ã„ã¾ã™.\n" + +msgid "" +" Warning: Syntax vector ^ scalar is obsolete it will be removed in scilab-" +"6.\n" +" Use vector .^ scalar instead.\n" +msgstr "" +" è¦å‘Š: 構文 vector ^ scalar ã¯å»ƒæ¢äºˆå®šã§, scilab-6 ã§å»ƒæ¢ã•ã‚Œã¾ã™.\n" +" 代ã‚ã‚Šã« vector .^ scalar を指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "" +"%s: Wrong type for input arguments #%d and #%d: Integer values expected.\n" +msgstr "%s: 入力引数 #%d ãŠã‚ˆã³ #%d ã®åž‹ãŒé–“é•ã£ã¦ã„ã¾ã™: 整数値を指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "%s: Not yet implemented.\n" +msgstr "%s: ã¾ã 実装ã•ã‚Œã¦ã„ã¾ã›ã‚“.\n" + +#, c-format +msgid "%s: A null assignment can have only one non-colon index.\n" +msgstr "%s: ヌル値代入時, コãƒãƒ³ä»¥ä¸‹ã®æ·»å—を指定ã§ãã‚‹ã®ã¯ä¸€ã¤ã ã‘ã§ã™.\n" + +#, c-format +msgid "%s: Unable to diagonalize.\n" +msgstr "%s: 対角化ã§ãã¾ã›ã‚“.\n" + +#, c-format +msgid "%s: Sparse insertion case is not implemented.\n" +msgstr "%s: 疎行列ã®æŒ¿å…¥ã¯å®Ÿè£…ã•ã‚Œã¦ã„ã¾ã›ã‚“.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: An integer expected.\n" +msgstr "%s: 入力引数 #%d ã®åž‹ãŒé–“é•ã£ã¦ã„ã¾ã™: 整数を指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "%s: Field names mismatch.\n" +msgstr "%s: フィールドåãŒä¸€è‡´ã—ã¾ã›ã‚“.\n" + +#, c-format +msgid "%s: Wrong value for input argument #%d: not a valid field name.\n" +msgstr "%s: 入力引数 #%d ã®å€¤ãŒé–“é•ã£ã¦ã„ã¾ã™: æ£ã—ã„フィールドåã§ã¯ã‚ã‚Šã¾ã›ã‚“.\n" + +#, c-format +msgid "%s: Wrong type for argument #%d: Real vector expected.\n" +msgstr "%s: 引数 %d ã®åž‹ãŒé–“é•ã£ã¦ã„ã¾ã™: 実数ベクトルを指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "%s: Wrong type for argument #%d: Real scalar expected.\n" +msgstr "%s: 引数 %d ã®åž‹ãŒé–“é•ã£ã¦ã„ã¾ã™: 実数スカラーを指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "" +"%s: input and output matrices must have the same number of elements.\n" +msgstr "%s: 入力ãŠã‚ˆã³å‡ºåŠ›ã®è¡Œåˆ—ã®è¦ç´ ã®æ•°ã¯åŒã˜ã¨ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™.\n" + +#, c-format +msgid "%s: Wrong size or value for input argument #%d.\n" +msgstr "%s: 入力引数 #%d ã®å¤§ãã•ã¾ãŸã¯å€¤ãŒé–“é•ã£ã¦ã„ã¾ã™.\n" + +#, c-format +msgid "%s: Wrong value for input argument #%d.\n" +msgstr "%s: 入力引数 #%d ã®å€¤ãŒé–“é•ã£ã¦ã„ã¾ã™.\n" + +#, c-format +msgid "%s: Not implemented.\n" +msgstr "%s: 実装ã•ã‚Œã¦ã„ã¾ã›ã‚“.\n" + +#, c-format +msgid "" +"%s: Wrong assignment: for insertion in cell, use e.g. x(i,j).entries=y.\n" +msgstr "%s: 引数ãŒé–“é•ã£ã¦ã„ã¾ã™: 例ãˆã°, セルã«æŒ¿å…¥ã™ã‚‹å ´åˆ, x(i,j).エントリ=y ã¨ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "" +"%s: Incompatible sizes for properties '%s' and '%s': Same sizes expected.\n" +msgstr "%s: プãƒãƒ‘ティ '%s' ãŠã‚ˆã³ '%s' ã®å¤§ãã•ã«äº’æ›æ€§ãŒã‚ã‚Šã¾ã›ã‚“: åŒã˜å¤§ãã•ã§æŒ‡å®šã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "%s: Wrong number of input arguments: %d expected.\n" +msgstr "%s: 入力引数ã®æ•°ãŒé–“é•ã£ã¦ã„ã¾ã™: %d 個ã®å¼•æ•°ã‚’指定ã—ã¦ãã ã•ã„.\n" diff --git a/modules/overloading/locales/overloading.pot b/modules/overloading/locales/overloading.pot new file mode 100755 index 000000000..4215c8ebe --- /dev/null +++ b/modules/overloading/locales/overloading.pot @@ -0,0 +1,647 @@ +# Localization of the module overloading-macros +# Please see in SCI/tools/localization for localization management +# Copyright (C) 2007-2008 - INRIA +# Copyright (C) 2008-2011 - DIGITEO +# Copyright (C) 2012-2014 - Scilab-Enterprises +# This file is distributed under the same license as the Scilab package. +# +msgid "" +msgstr "" +"Project-Id-Version: Scilab\n" +"Report-Msgid-Bugs-To: <localization@lists.scilab.org>\n" +"POT-Creation-Date: 2013-04-16 17:44+0100\n" +"Last-Translator: Vincent COUVERT <vincent.couvert@scilab-enterprises.com>\n" +"Language-Team: Scilab Localization <localization@lists.scilab.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" +"Revision-Date: 2015-03-27 13:54+0100\n" + +# File: macros/%0_i_st.sci, line: 19 +#, c-format +msgid "%s: Invalid index.\n" +msgstr "" + +# +# File: macros/%0_i_st.sci, line: 22 +# File: macros/%c_a_c.sci, line: 17 +# File: macros/%c_a_c.sci, line: 21 +#, c-format +msgid "%s: Wrong type for input argument #%d: String expected.\n" +msgstr "" + +# +# File: macros/%3d_i_h.sci, line: 31 +# File: macros/%3d_i_h.sci, line: 41 +# File: macros/%c_i_lss.sci, line: 16 +# File: macros/%c_i_r.sci, line: 16 +# File: macros/%ce_size.sci, line: 24 +# File: macros/%champdat_i_h.sci, line: 41 +# File: macros/%grayplot_i_h.sci, line: 41 +# File: macros/%p_i_lss.sci, line: 18 +# File: macros/%p_i_lss.sci, line: 22 +# File: macros/%ticks_i_h.sci, line: 42 +# File: macros/generic_i_h.sci, line: 14 +# File: macros/generic_i_h.sci, line: 69 +# File: macros/generic_i_s.sci, line: 31 +#, c-format +msgid "%s: Wrong type for input argument #%d.\n" +msgstr "" + +# +# File: macros/%b_i_sp.sci, line: 21 +#, c-format +msgid "%s: Multidimensional sparse matrices are not handled.\n" +msgstr "" + +# +# File: macros/%c_dsearch.sci, line: 16 +#, c-format +msgid "%c: input argument #%d has duplicates\n" +msgstr "" + +# +# File: macros/%c_dsearch.sci, line: 35 +#, c-format +msgid "%c: input argument #%d must be sorted in lexicographic order\n" +msgstr "" + +# +# File: macros/%c_i_lss.sci, line: 20 +# File: macros/%c_i_r.sci, line: 20 +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: 'c', 'd' or a scalar expected.\n" +msgstr "" + +# +# File: macros/%c_i_s.sci, line: 16 +#, c-format +msgid "%s: Affection of a string in a matrix of numbers is not implemented.\n" +msgstr "" + +# +# File: macros/%cblock_e.sci, line: 31 +#, c-format +msgid "%s: Syntax x(j) only allowed for row cblock's.\n" +msgstr "" + +# +# File: macros/%ce_c_ce.sci, line: 15 +# File: macros/%hm_c_hm.sci, line: 15 +# File: macros/%hm_f_hm.sci, line: 15 +# File: macros/%st_c_st.sci, line: 15 +#, c-format +msgid "" +"%s: In concatenation the number of dimensions for each component must " +"match.\n" +msgstr "" + +# +# File: macros/%ce_e.sci, line: 21 +# File: macros/%st_e.sci, line: 25 +#, c-format +msgid "%s: Invalid field name.\n" +msgstr "" + +# +# File: macros/%ce_e.sci, line: 44 +#, c-format +msgid "%s: Wrong value for input argument #%d: a valid field name expected.\n" +msgstr "" + +# +# File: macros/%ce_size.sci, line: 18 +# File: macros/%ce_size.sci, line: 20 +# File: macros/%ip_string.sci, line: 19 +# File: macros/%s_q_hm.sci, line: 13 +# File: macros/%s_x_hm.sci, line: 13 +# File: macros/%st_size.sci, line: 20 +#, c-format +msgid "%s: Wrong size for input argument #%d.\n" +msgstr "" + +# +# File: macros/%ce_size.sci, line: 31 +# File: macros/%st_size.sci, line: 33 +#, c-format +msgid "%s: Wrong number of output arguments.\n" +msgstr "" + +# +# File: macros/%ce_t.sci, line: 13 +# File: macros/%st_t.sci, line: 14 +#, c-format +msgid "%s: Wrong size for input argument #%d: Transpose can not be defined.\n" +msgstr "" + +# +# File: macros/%champdat_i_h.sci, line: 31 +# File: macros/%grayplot_i_h.sci, line: 31 +# File: macros/%ticks_i_h.sci, line: 32 +#, c-format +msgid "%s: Invalid path.\n" +msgstr "" + +# +# File: macros/%hm_1_hm.sci, line: 11 +# File: macros/%hm_2_hm.sci, line: 12 +# File: macros/%hm_3_hm.sci, line: 11 +# File: macros/%hm_4_hm.sci, line: 11 +#, c-format +msgid "" +"%s: Input argument #%d and input argument #%d have incompatible dimensions.\n" +msgstr "" + +# +# File: macros/%hm_1_s.sci, line: 13 +# File: macros/%hm_2_s.sci, line: 12 +# File: macros/%hm_3_s.sci, line: 12 +# File: macros/%hm_4_s.sci, line: 13 +# File: macros/%s_1_hm.sci, line: 13 +# File: macros/%s_2_hm.sci, line: 13 +# File: macros/%s_3_hm.sci, line: 13 +# File: macros/%s_4_hm.sci, line: 13 +# File: macros/%sp_p_s.sci, line: 14 +#, c-format +msgid "%s: Wrong type for input argument #%d: A scalar expected.\n" +msgstr "" + +# +# File: macros/%hm_c_hm.sci, line: 21 +# File: macros/%hm_f_hm.sci, line: 21 +# File: macros/%st_c_st.sci, line: 26 +#, c-format +msgid "%s: Inconsistent dimensions.\n" +msgstr "" + +# +# File: macros/%hm_cumprod.sci, line: 40 +# File: macros/%hm_cumsum.sci, line: 40 +# File: macros/%hm_prod.sci, line: 40 +# File: macros/%hm_sum.sci, line: 40 +# File: macros/%p_cumprod.sci, line: 28 +# File: macros/%p_cumsum.sci, line: 27 +# File: macros/%p_prod.sci, line: 28 +# File: macros/%p_sum.sci, line: 30 +# File: macros/%r_cumprod.sci, line: 29 +# File: macros/%r_cumsum.sci, line: 29 +# File: macros/%r_prod.sci, line: 29 +# File: macros/%r_sum.sci, line: 30 +# File: macros/%sp_cumprod.sci, line: 27 +# File: macros/%sp_cumsum.sci, line: 27 +# File: macros/%sp_prod.sci, line: 27 +# File: macros/%sp_sum.sci, line: 27 +# File: macros/%spb_cumprod.sci, line: 31 +# File: macros/%spb_cumsum.sci, line: 31 +# File: macros/%spb_prod.sci, line: 31 +# File: macros/%spb_sum.sci, line: 31 +#, c-format +msgid "%s: Wrong number of input argument(s): %d to %d expected.\n" +msgstr "" + +# +# File: macros/%hm_cumprod.sci, line: 47 +# File: macros/%hm_cumsum.sci, line: 47 +# File: macros/%hm_prod.sci, line: 47 +# File: macros/%hm_sum.sci, line: 47 +# File: macros/%p_cumprod.sci, line: 35 +# File: macros/%p_cumsum.sci, line: 34 +# File: macros/%p_prod.sci, line: 35 +# File: macros/%p_sum.sci, line: 37 +# File: macros/%r_cumprod.sci, line: 36 +# File: macros/%r_cumsum.sci, line: 36 +# File: macros/%r_prod.sci, line: 36 +# File: macros/%r_sum.sci, line: 37 +# File: macros/%sp_cumprod.sci, line: 34 +# File: macros/%sp_cumsum.sci, line: 34 +# File: macros/%sp_prod.sci, line: 34 +# File: macros/%sp_sum.sci, line: 34 +# File: macros/%spb_cumprod.sci, line: 38 +# File: macros/%spb_cumsum.sci, line: 38 +# File: macros/%spb_prod.sci, line: 38 +# File: macros/%spb_sum.sci, line: 38 +#, c-format +msgid "%s: Wrong size for input argument #%d: A scalar expected.\n" +msgstr "" + +# +# File: macros/%hm_cumprod.sci, line: 50 +# File: macros/%hm_cumsum.sci, line: 50 +# File: macros/%hm_prod.sci, line: 50 +# File: macros/%hm_sum.sci, line: 50 +# File: macros/%p_cumprod.sci, line: 38 +# File: macros/%p_cumsum.sci, line: 37 +# File: macros/%p_prod.sci, line: 38 +# File: macros/%p_sum.sci, line: 40 +# File: macros/%r_cumprod.sci, line: 39 +# File: macros/%r_cumsum.sci, line: 39 +# File: macros/%r_prod.sci, line: 39 +# File: macros/%r_sum.sci, line: 40 +# File: macros/%sp_cumprod.sci, line: 37 +# File: macros/%sp_cumsum.sci, line: 37 +# File: macros/%sp_prod.sci, line: 37 +# File: macros/%sp_sum.sci, line: 37 +# File: macros/%spb_cumprod.sci, line: 41 +# File: macros/%spb_cumsum.sci, line: 41 +# File: macros/%spb_prod.sci, line: 41 +# File: macros/%spb_sum.sci, line: 41 +#, c-format +msgid "%s: Wrong value for input argument #%d: Integer >= %d expected.\n" +msgstr "" + +# +# File: macros/%hm_cumprod.sci, line: 54 +# File: macros/%hm_cumprod.sci, line: 72 +# File: macros/%hm_cumsum.sci, line: 54 +# File: macros/%hm_cumsum.sci, line: 72 +# File: macros/%hm_prod.sci, line: 54 +# File: macros/%hm_prod.sci, line: 72 +# File: macros/%hm_sum.sci, line: 54 +# File: macros/%hm_sum.sci, line: 72 +# File: macros/%p_cumprod.sci, line: 42 +# File: macros/%p_cumsum.sci, line: 41 +# File: macros/%p_prod.sci, line: 42 +# File: macros/%p_sum.sci, line: 44 +# File: macros/%r_cumprod.sci, line: 43 +# File: macros/%r_cumsum.sci, line: 43 +# File: macros/%r_prod.sci, line: 43 +# File: macros/%r_sum.sci, line: 44 +# File: macros/%sp_cumprod.sci, line: 41 +# File: macros/%sp_cumsum.sci, line: 41 +# File: macros/%sp_prod.sci, line: 41 +# File: macros/%sp_sum.sci, line: 41 +# File: macros/%spb_cumprod.sci, line: 45 +# File: macros/%spb_cumprod.sci, line: 63 +# File: macros/%spb_cumsum.sci, line: 45 +# File: macros/%spb_cumsum.sci, line: 63 +# File: macros/%spb_prod.sci, line: 45 +# File: macros/%spb_prod.sci, line: 63 +# File: macros/%spb_sum.sci, line: 45 +# File: macros/%spb_sum.sci, line: 63 +#, c-format +msgid "%s: Wrong size for input argument #%d: A string expected.\n" +msgstr "" + +# +# File: macros/%hm_cumprod.sci, line: 57 +# File: macros/%hm_cumsum.sci, line: 57 +# File: macros/%hm_prod.sci, line: 57 +# File: macros/%hm_sum.sci, line: 57 +# File: macros/%p_cumprod.sci, line: 45 +# File: macros/%p_cumsum.sci, line: 44 +# File: macros/%p_prod.sci, line: 45 +# File: macros/%p_sum.sci, line: 47 +# File: macros/%r_cumprod.sci, line: 46 +# File: macros/%r_cumsum.sci, line: 46 +# File: macros/%r_prod.sci, line: 46 +# File: macros/%r_sum.sci, line: 47 +# File: macros/%sp_cumprod.sci, line: 44 +# File: macros/%sp_cumsum.sci, line: 44 +# File: macros/%sp_prod.sci, line: 44 +# File: macros/%sp_sum.sci, line: 44 +# File: macros/%spb_cumprod.sci, line: 48 +# File: macros/%spb_cumsum.sci, line: 48 +# File: macros/%spb_prod.sci, line: 48 +# File: macros/%spb_sum.sci, line: 48 +#, c-format +msgid "%s: Wrong value for input argument #%d: Must be in the set {%s}.\n" +msgstr "" + +# +# File: macros/%hm_cumprod.sci, line: 63 +# File: macros/%hm_cumsum.sci, line: 63 +# File: macros/%hm_prod.sci, line: 63 +# File: macros/%hm_sum.sci, line: 63 +# File: macros/%p_cumprod.sci, line: 52 +# File: macros/%p_cumsum.sci, line: 52 +# File: macros/%p_prod.sci, line: 52 +# File: macros/%p_sum.sci, line: 54 +# File: macros/%r_cumprod.sci, line: 53 +# File: macros/%r_cumsum.sci, line: 54 +# File: macros/%r_prod.sci, line: 53 +# File: macros/%r_sum.sci, line: 54 +# File: macros/%sp_cumprod.sci, line: 51 +# File: macros/%sp_cumsum.sci, line: 52 +# File: macros/%sp_prod.sci, line: 51 +# File: macros/%sp_sum.sci, line: 51 +# File: macros/%spb_cumprod.sci, line: 54 +# File: macros/%spb_cumsum.sci, line: 54 +# File: macros/%spb_prod.sci, line: 54 +# File: macros/%spb_sum.sci, line: 54 +#, c-format +msgid "%s: Wrong type for input argument #%d: A string or scalar expected.\n" +msgstr "" + +# +# File: macros/%hm_cumprod.sci, line: 68 +# File: macros/%hm_cumsum.sci, line: 68 +# File: macros/%hm_prod.sci, line: 68 +# File: macros/%hm_sum.sci, line: 68 +# File: macros/%spb_cumprod.sci, line: 59 +# File: macros/%spb_cumsum.sci, line: 59 +# File: macros/%spb_prod.sci, line: 59 +# File: macros/%spb_sum.sci, line: 59 +#, c-format +msgid "%s: Wrong type for input argument #%d: A string expected.\n" +msgstr "" + +# +# File: macros/%hm_cumprod.sci, line: 76 +# File: macros/%hm_cumsum.sci, line: 76 +# File: macros/%hm_prod.sci, line: 76 +# File: macros/%hm_sum.sci, line: 76 +# File: macros/%spb_cumprod.sci, line: 67 +# File: macros/%spb_cumsum.sci, line: 67 +# File: macros/%spb_prod.sci, line: 67 +# File: macros/%spb_sum.sci, line: 67 +#, c-format +msgid "%s: Wrong value for input argument #%d: %s or %s expected.\n" +msgstr "" + +# +# File: macros/%hm_d_hm.sci, line: 15 +# File: macros/%hm_d_s.sci, line: 13 +# File: macros/%hm_j_hm.sci, line: 15 +# File: macros/%hm_j_s.sci, line: 13 +# File: macros/%hm_q_hm.sci, line: 15 +# File: macros/%hm_x_hm.sci, line: 15 +# File: macros/%hm_x_p.sci, line: 13 +# File: macros/%hm_x_s.sci, line: 13 +#, c-format +msgid "%s: Inconsistent element-wise operation.\n" +msgstr "" + +# +# File: macros/%hm_e.sci, line: 21 +#, c-format +msgid "%s: Too many subscripts.\n" +msgstr "" + +# +# File: macros/%hm_eye.sci, line: 13 +#, c-format +msgid "%s: Wrong number of input argument: %d to %d expected.\n" +msgstr "" + +# +# File: macros/%hm_eye.sci, line: 16 +#, c-format +msgid "%s: Wrong type for input argument #%d: Hypermatrix expected.\n" +msgstr "" + +# +# File: macros/%hm_g_hm.sci, line: 16 +#, c-format +msgid "%s: Operand is not a boolean hypermatrix.\n" +msgstr "" + +# +# File: macros/%hm_g_hm.sci, line: 25 +# File: macros/%hm_h_hm.sci, line: 26 +#, c-format +msgid "%s: Incompatible operand dimensions.\n" +msgstr "" + +# +# File: macros/%hm_h_hm.sci, line: 17 +#, c-format +msgid "%s: Wrong type for input argument(s): hypermatrix expected.\n" +msgstr "" + +# +# File: macros/%hm_m_s.sci, line: 17 +# File: macros/%s_m_hm.sci, line: 17 +#, c-format +msgid "%s: Wrong size for input argument #%d: 3D maximum expected.\n" +msgstr "" + +# +# File: macros/%hm_m_s.sci, line: 20 +# File: macros/%s_m_hm.sci, line: 20 +#, c-format +msgid "%s: Wrong size for argument: Incompatible dimensions.\n" +msgstr "" + +# +# File: macros/%hm_matrix.sci, line: 17 +#, c-format +msgid "%s: Wrong size for input argument(s): integer scalars expected.\n" +msgstr "" + +# +# File: macros/%hm_matrix.sci, line: 36 +#, c-format +msgid "%s: Only one -1 value admitted.\n" +msgstr "" + +# +# File: macros/%hm_matrix.sci, line: 42 +#, c-format +msgid "%s: Input and output matrices must have the same number of elements" +msgstr "" + +# +# File: macros/%hm_size.sci, line: 27 +#, c-format +msgid "%s: Wrong value for input argument #%d: '%s', '%s' or '%s' expected.\n" +msgstr "" + +# +# File: macros/%hm_size.sci, line: 32 +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: Scalar positive integer expected.\n" +msgstr "" + +# +# File: macros/%hm_size.sci, line: 40 +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: Scalar positive integer or character " +"string expected.\n" +msgstr "" + +# +# File: macros/%hm_stdev.sci, line: 16 +#, c-format +msgid "%s: Wrong type for input argument #%d: A real matrix expected.\n" +msgstr "" + +# +# File: macros/%i_b_s.sci, line: 14 +# File: macros/%s_b_i.sci, line: 13 +#, c-format +msgid "%s: Wrong type for input argument #%d: integer values expected.\n" +msgstr "" + +# +# File: macros/%l_isequal.sci, line: 12 +#, c-format +msgid "%s: Wrong number of input arguments: At least %d expected.\n" +msgstr "" + +# +# File: macros/%lss_i_p.sci, line: 28 +# File: macros/%lss_i_s.sci, line: 38 +#, c-format +msgid "%s: Invalid syntax for a MIMO system.\n" +msgstr "" + +# +# File: macros/%lss_norm.sci, line: 17 +# File: macros/%r_norm.sci, line: 17 +#, c-format +msgid "%s: Wrong value for input argument #%d: %d or %s expected.\n" +msgstr "" + +# +# File: macros/%msp_i_s.sci, line: 31 +# File: macros/%sp_i_s.sci, line: 31 +#, c-format +msgid "" +"%s: Insertion of a sparse matrix in a matrix of numbers is not defined.\n" +msgstr "" + +# +# File: macros/%p_j_s.sci, line: 15 +# File: macros/%p_p_s.sci, line: 15 +#, c-format +msgid "%s: Wrong type for input argument #%d: An integer matrix expected.\n" +msgstr "" + +# +# File: macros/%p_v_p.sci, line: 16 +#, c-format +msgid "%s: Wrong size for input arguments.\n" +msgstr "" + +# +# File: macros/%p_v_r.sci, line: 18 +# File: macros/%r_v_p.sci, line: 17 +# File: macros/%r_v_r.sci, line: 17 +# File: macros/%r_v_s.sci, line: 17 +# File: macros/%s_v_r.sci, line: 16 +# File: macros/%s_v_s.sci, line: 15 +#, c-format +msgid "%s: Wrong size for input argument(s).\n" +msgstr "" + +# +# File: macros/%r_p_s.sci, line: 23 +msgid "" +" Warning: Syntax vector ^ scalar is obsolete it will be removed in " +"scilab-6.\n" +" Use vector .^ scalar instead.\n" +msgstr "" + +# +# File: macros/%s_b_s.sci, line: 12 +#, c-format +msgid "" +"%s: Wrong type for input arguments #%d and #%d: Integer values expected.\n" +msgstr "" + +# +# File: macros/%s_b_s.sci, line: 19 +# File: macros/%s_i_st.sci, line: 93 +#, c-format +msgid "%s: Not yet implemented.\n" +msgstr "" + +# +# File: macros/%s_i_s.sci, line: 148 +# File: macros/%s_i_st.sci, line: 33 +# File: macros/%s_i_st.sci, line: 66 +# File: macros/generic_i_hm.sci, line: 51 +#, c-format +msgid "%s: A null assignment can have only one non-colon index.\n" +msgstr "" + +# +# File: macros/%s_pow.sci, line: 39 +# File: macros/%s_pow.sci, line: 62 +#, c-format +msgid "%s: Unable to diagonalize.\n" +msgstr "" + +# +# File: macros/%sp_i_sp.sci, line: 33 +#, c-format +msgid "%s: Sparse insertion case is not implemented.\n" +msgstr "" + +# +# File: macros/%sp_p_s.sci, line: 17 +#, c-format +msgid "%s: Wrong type for input argument #%d: An integer expected.\n" +msgstr "" + +# +# File: macros/%st_c_st.sci, line: 19 +#, c-format +msgid "%s: Field names mismatch.\n" +msgstr "" + +# +# File: macros/%st_e.sci, line: 48 +#, c-format +msgid "%s: Wrong value for input argument #%d: not a valid field name.\n" +msgstr "" + +# +# File: macros/%st_matrix.sci, line: 15 +#, c-format +msgid "%s: Wrong type for argument #%d: Real vector expected.\n" +msgstr "" + +# +# File: macros/%st_matrix.sci, line: 21 +#, c-format +msgid "%s: Wrong type for argument #%d: Real scalar expected.\n" +msgstr "" + +# +# File: macros/%st_matrix.sci, line: 30 +#, c-format +msgid "%s: input and output matrices must have the same number of elements.\n" +msgstr "" + +# +# File: macros/%st_size.sci, line: 22 +#, c-format +msgid "%s: Wrong size or value for input argument #%d.\n" +msgstr "" + +# +# File: macros/%st_size.sci, line: 26 +#, c-format +msgid "%s: Wrong value for input argument #%d.\n" +msgstr "" + +# +# File: macros/createstruct.sci, line: 162 +# File: macros/createstruct.sci, line: 174 +#, c-format +msgid "%s: Not implemented.\n" +msgstr "" + +# +# File: macros/generic_i_ce.sci, line: 12 +#, c-format +msgid "" +"%s: Wrong assignment: for insertion in cell, use e.g. x(i,j).entries=y.\n" +msgstr "" + +# +# File: macros/generic_i_h.sci, line: 52 +#, c-format +msgid "" +"%s: Incompatible sizes for properties '%s' and '%s': Same sizes expected.\n" +msgstr "" + +# +# File: macros/generic_i_s.sci, line: 33 +#, c-format +msgid "%s: Wrong number of input arguments: %d expected.\n" +msgstr "" diff --git a/modules/overloading/locales/pl_PL.po b/modules/overloading/locales/pl_PL.po new file mode 100755 index 000000000..bc8e082df --- /dev/null +++ b/modules/overloading/locales/pl_PL.po @@ -0,0 +1,323 @@ +# 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: 2013-01-26 04:12+0000\n" +"Last-Translator: Scilab.team <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: Invalid index.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: String expected.\n" +msgstr "" +"%s: NieprawidÅ‚owy typ argumentu wejÅ›ciowego nr %d: oczekiwano Å‚aÅ„cuch.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d.\n" +msgstr "" + +#, c-format +msgid "%s: Multidimensional sparse matrices are not handled.\n" +msgstr "" + +#, c-format +msgid "%c: input argument #%d has duplicates\n" +msgstr "" + +#, c-format +msgid "%c: input argument #%d must be sorted in lexicographic order\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: 'c', 'd' or a scalar expected.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Affection of a string in a matrix of numbers is not implemented.\n" +msgstr "" + +#, c-format +msgid "%s: Syntax x(j) only allowed for row cblock's.\n" +msgstr "" + +#, c-format +msgid "" +"%s: In concatenation the number of dimensions for each component must " +"match.\n" +msgstr "" + +#, c-format +msgid "%s: Invalid field name.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: a valid field name expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument #%d.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong number of output arguments.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong size for input argument #%d: Transpose can not be defined.\n" +msgstr "" + +#, c-format +msgid "%s: Invalid path.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Input argument #%d and input argument #%d have incompatible dimensions.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A scalar expected.\n" +msgstr "" + +#, c-format +msgid "%s: Inconsistent dimensions.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong number of input argument(s): %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 value for input argument #%d: Integer >= %d expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A string expected.\n" +msgstr "" +"%s: NieprawidÅ‚owy rozmiar dla argumentu wejÅ›ciowego nr %d: Oczekiwano ciÄ…gu " +"znaków.\n" + +#, c-format +msgid "%s: Wrong value for input argument #%d: Must be in the set {%s}.\n" +msgstr "" +"%s: NieprawidÅ‚owa wartość parametru wejÅ›ciowego nr %d: Musi być ze zbioru " +"{%s}.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A string or scalar expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A string expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d: %s or %s expected.\n" +msgstr "" + +#, c-format +msgid "%s: Inconsistent element-wise operation.\n" +msgstr "" + +#, c-format +msgid "%s: Too many subscripts.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong number of input argument: %d to %d expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Hypermatrix expected.\n" +msgstr "" + +#, c-format +msgid "%s: Operand is not a boolean hypermatrix.\n" +msgstr "" + +#, c-format +msgid "%s: Incompatible operand dimensions.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument(s): hypermatrix expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument #%d: 3D maximum expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for argument: Incompatible dimensions.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument(s): integer scalars expected.\n" +msgstr "" + +#, c-format +msgid "%s: Only one -1 value admitted.\n" +msgstr "" + +#, c-format +msgid "%s: Input and output matrices must have the same number of elements" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: '%s', '%s' or '%s' expected.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: Scalar positive integer expected.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: Scalar positive integer or character " +"string expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A real matrix expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: integer values expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong number of input arguments: At least %d expected.\n" +msgstr "" + +#, c-format +msgid "%s: Invalid syntax for a MIMO system.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d: %d or %s expected.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Insertion of a sparse matrix in a matrix of numbers is not defined.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: An integer matrix expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input arguments.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument(s).\n" +msgstr "" + +msgid "" +" Warning: Syntax vector ^ scalar is obsolete it will be removed in scilab-" +"6.\n" +" Use vector .^ scalar instead.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong type for input arguments #%d and #%d: Integer values expected.\n" +msgstr "" + +#, c-format +msgid "%s: Not yet implemented.\n" +msgstr "" + +#, c-format +msgid "%s: A null assignment can have only one non-colon index.\n" +msgstr "" + +#, c-format +msgid "%s: Unable to diagonalize.\n" +msgstr "" + +#, c-format +msgid "%s: Sparse insertion case is not implemented.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: An integer expected.\n" +msgstr "" + +#, c-format +msgid "%s: Field names mismatch.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d: not a valid field name.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for argument #%d: Real vector expected.\n" +msgstr "" +"%s: NieprawidÅ‚owy typ parametru %d: Oczekiwano wektora liczb rzeczywistych.\n" + +#, c-format +msgid "%s: Wrong type for argument #%d: Real scalar expected.\n" +msgstr "" +"%s: NieprawidÅ‚owy typ argumentu %d: Oczekiwano skalara typu rzeczywistego.\n" + +#, c-format +msgid "" +"%s: input and output matrices must have the same number of elements.\n" +msgstr "" +"%s: macierze wejÅ›ciowa i wyjÅ›ciowa muszÄ… posiadać takÄ… samÄ… liczbÄ™ " +"elementów.\n" + +#, c-format +msgid "%s: Wrong size or value for input argument #%d.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d.\n" +msgstr "" + +#, c-format +msgid "%s: Not implemented.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong assignment: for insertion in cell, use e.g. x(i,j).entries=y.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Incompatible sizes for properties '%s' and '%s': Same sizes expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong number of input arguments: %d expected.\n" +msgstr "" diff --git a/modules/overloading/locales/pt_BR.po b/modules/overloading/locales/pt_BR.po new file mode 100755 index 000000000..83f1d1bd4 --- /dev/null +++ b/modules/overloading/locales/pt_BR.po @@ -0,0 +1,330 @@ +# Brazilian Portuguese translation for scilab +# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 +# This file is distributed under the same license as the scilab package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: scilab\n" +"Report-Msgid-Bugs-To: <localization@lists.scilab.org>\n" +"POT-Creation-Date: 2013-04-16 17:44+0100\n" +"PO-Revision-Date: 2013-01-26 04:12+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: Invalid index.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: String expected.\n" +msgstr "" +"%s: Tipo incorreto para o argumento de entrada #%d: esperava-se um texto.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d.\n" +msgstr "" + +#, c-format +msgid "%s: Multidimensional sparse matrices are not handled.\n" +msgstr "" + +#, c-format +msgid "%c: input argument #%d has duplicates\n" +msgstr "" + +#, c-format +msgid "%c: input argument #%d must be sorted in lexicographic order\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: 'c', 'd' or a scalar expected.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Affection of a string in a matrix of numbers is not implemented.\n" +msgstr "" + +#, c-format +msgid "%s: Syntax x(j) only allowed for row cblock's.\n" +msgstr "" + +#, c-format +msgid "" +"%s: In concatenation the number of dimensions for each component must " +"match.\n" +msgstr "" + +#, c-format +msgid "%s: Invalid field name.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: a valid field name expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument #%d.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong number of output arguments.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong size for input argument #%d: Transpose can not be defined.\n" +msgstr "" + +#, c-format +msgid "%s: Invalid path.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Input argument #%d and input argument #%d have incompatible dimensions.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A scalar expected.\n" +msgstr "" + +#, c-format +msgid "%s: Inconsistent dimensions.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong number of input argument(s): %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 value for input argument #%d: Integer >= %d expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A string expected.\n" +msgstr "" +"%s: Tamanho incorreto para o argumento de entrada #%d: esperava-se um " +"texto.\n" + +#, c-format +msgid "%s: Wrong value for input argument #%d: Must be in the set {%s}.\n" +msgstr "" +"%s: Valor incorreto para o argumento de entrada #%d: deve pertencer ao " +"conjunto {%s}.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A string or scalar expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A string expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d: %s or %s expected.\n" +msgstr "" + +#, c-format +msgid "%s: Inconsistent element-wise operation.\n" +msgstr "" + +#, c-format +msgid "%s: Too many subscripts.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong number of input argument: %d to %d expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Hypermatrix expected.\n" +msgstr "" + +#, c-format +msgid "%s: Operand is not a boolean hypermatrix.\n" +msgstr "" + +#, c-format +msgid "%s: Incompatible operand dimensions.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument(s): hypermatrix expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument #%d: 3D maximum expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for argument: Incompatible dimensions.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument(s): integer scalars expected.\n" +msgstr "" + +#, c-format +msgid "%s: Only one -1 value admitted.\n" +msgstr "" + +#, c-format +msgid "%s: Input and output matrices must have the same number of elements" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: '%s', '%s' or '%s' expected.\n" +msgstr "" +"%s: Valor incorreto para o argumento de entrada #%d: esperava-se \"%s\", " +"\"%s\" ou \"%s\".\n" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: Scalar positive integer expected.\n" +msgstr "" +"%s: Valor incorreto para o argumento de entrada #%d: esperava-se um escalar " +"inteiro positivo.\n" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: Scalar positive integer or character " +"string expected.\n" +msgstr "" +"%s: Valor incorreto para o argumento de entrada #%d: esperava-se um escalar " +"inteiro positivo ou uma sequência de caracteres.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A real matrix expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: integer values expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong number of input arguments: At least %d expected.\n" +msgstr "" + +#, c-format +msgid "%s: Invalid syntax for a MIMO system.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d: %d or %s expected.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Insertion of a sparse matrix in a matrix of numbers is not defined.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: An integer matrix expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input arguments.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument(s).\n" +msgstr "" + +msgid "" +" Warning: Syntax vector ^ scalar is obsolete it will be removed in scilab-" +"6.\n" +" Use vector .^ scalar instead.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong type for input arguments #%d and #%d: Integer values expected.\n" +msgstr "" + +#, c-format +msgid "%s: Not yet implemented.\n" +msgstr "" + +#, c-format +msgid "%s: A null assignment can have only one non-colon index.\n" +msgstr "" + +#, c-format +msgid "%s: Unable to diagonalize.\n" +msgstr "" + +#, c-format +msgid "%s: Sparse insertion case is not implemented.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: An integer expected.\n" +msgstr "" + +#, c-format +msgid "%s: Field names mismatch.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d: not a valid field name.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for argument #%d: Real vector expected.\n" +msgstr "" +"%s: Tipo incorreto para o argumento %d: esperava-se um vetor de números " +"reais.\n" + +#, c-format +msgid "%s: Wrong type for argument #%d: Real scalar expected.\n" +msgstr "" +"%s: Tipo incorreto para o argumento %d: esperava-se um escalar real.\n" + +#, c-format +msgid "" +"%s: input and output matrices must have the same number of elements.\n" +msgstr "" +"%s: as matrizes de entrada e de saÃda têm que ter a mesma quantidade de " +"elementos.\n" + +#, c-format +msgid "%s: Wrong size or value for input argument #%d.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d.\n" +msgstr "" + +#, c-format +msgid "%s: Not implemented.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong assignment: for insertion in cell, use e.g. x(i,j).entries=y.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Incompatible sizes for properties '%s' and '%s': Same sizes expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong number of input arguments: %d expected.\n" +msgstr "" diff --git a/modules/overloading/locales/ru_RU.po b/modules/overloading/locales/ru_RU.po new file mode 100755 index 000000000..f3fabcbd0 --- /dev/null +++ b/modules/overloading/locales/ru_RU.po @@ -0,0 +1,354 @@ +# Russian 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-03-25 15:20+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: Invalid index.\n" +msgstr "%s: ÐедопуÑтимый индекÑ.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: String expected.\n" +msgstr "%s: Ðеверный тип входного параметра â„–%d: ожидалаÑÑŒ Ñтрока.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d.\n" +msgstr "%s: Ðеверный тип входного аргумента â„–%d.\n" + +#, c-format +msgid "%s: Multidimensional sparse matrices are not handled.\n" +msgstr "%s: ÐÐµÐ»ÑŒÐ·Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ð°Ñ‚ÑŒ Ñ Ð¼Ð½Ð¾Ð³Ð¾Ð¼ÐµÑ€Ð½Ñ‹Ð¼Ð¸ разрежёнными матрицами.\n" + +#, c-format +msgid "%c: input argument #%d has duplicates\n" +msgstr "%c: у входного аргумента â„–%d еÑÑ‚ÑŒ дубликаты\n" + +#, c-format +msgid "%c: input argument #%d must be sorted in lexicographic order\n" +msgstr "" +"%c: входной аргумент â„–%d должен быть отÑортирован в лекÑикографичеÑком " +"порÑдке\n" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: 'c', 'd' or a scalar expected.\n" +msgstr "" +"%s: Ðеверное значение входного аргумента â„–%d: ожидалиÑÑŒ 'c', 'd' или " +"ÑкалÑÑ€.\n" + +#, c-format +msgid "" +"%s: Affection of a string in a matrix of numbers is not implemented.\n" +msgstr "%s: Ð’Ñтавка Ñтрокового Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð² матрицу чиÑел не реализовано.\n" + +#, c-format +msgid "%s: Syntax x(j) only allowed for row cblock's.\n" +msgstr "%s: СинтакÑÐ¸Ñ x(j) разрешён только Ð´Ð»Ñ Ñтроки cblock'ов.\n" + +#, c-format +msgid "" +"%s: In concatenation the number of dimensions for each component must " +"match.\n" +msgstr "" +"%s: При конкатенации чиÑло размерноÑтей Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ компонента должно " +"Ñовпадать.\n" + +#, c-format +msgid "%s: Invalid field name.\n" +msgstr "%s: ÐедопуÑтимое Ð¸Ð¼Ñ Ð¿Ð¾Ð»Ñ.\n" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: a valid field name expected.\n" +msgstr "" +"%s: Ðеверное значение входного аргумента â„–%d: ожидалоÑÑŒ допуÑтимое Ð¸Ð¼Ñ " +"полÑ.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d.\n" +msgstr "%s: Ðеверный размер входного аргумента â„–%d.\n" + +#, c-format +msgid "%s: Wrong number of output arguments.\n" +msgstr "%s: Ðеверное количеÑтво выходных аргументов.\n" + +#, c-format +msgid "" +"%s: Wrong size for input argument #%d: Transpose can not be defined.\n" +msgstr "" +"%s: Ðеверный размер входного аргумента â„–%d: Ð½ÐµÐ»ÑŒÐ·Ñ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ð¸Ñ‚ÑŒ " +"транÑпонирование.\n" + +#, c-format +msgid "%s: Invalid path.\n" +msgstr "%s: ÐедопуÑтимый путь.\n" + +#, c-format +msgid "" +"%s: Input argument #%d and input argument #%d have incompatible dimensions.\n" +msgstr "%s: Входные аргументы â„–%d и â„–%d имеют неÑовмеÑтимые размеры.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A scalar expected.\n" +msgstr "%s: Ðеверный тип входного аргумента â„–%d: ожидалÑÑ ÑкалÑÑ€.\n" + +#, c-format +msgid "%s: Inconsistent dimensions.\n" +msgstr "%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 size for input argument #%d: A scalar expected.\n" +msgstr "%s: Ðеверный размер входного параметра â„–%d: ожидалÑÑ ÑкалÑÑ€.\n" + +#, c-format +msgid "%s: Wrong value for input argument #%d: Integer >= %d expected.\n" +msgstr "" +"%s: Ðеверное значение входного аргумента â„–%d: ожидалоÑÑŒ целое чиÑло >= %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: Must be in the set {%s}.\n" +msgstr "" +"%s: Ðеверное значение входного параметра â„–%d: должно быть из множеÑтва " +"{%s}.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A string or scalar expected.\n" +msgstr "" +"%s: Ðеверный тип входного аргумента â„–%d: ожидалоÑÑŒ Ñтроковое значение или " +"ÑкалÑÑ€.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A string expected.\n" +msgstr "%s: Ðеверный тип входного аргумента â„–%d: ОжидалаÑÑŒ Ñтрока.\n" + +#, c-format +msgid "%s: Wrong value for input argument #%d: %s or %s expected.\n" +msgstr "%s: Ðеверное значение входного аргумента â„–%d: ожидалоÑÑŒ %s или %s.\n" + +#, c-format +msgid "%s: Inconsistent element-wise operation.\n" +msgstr "%s: ÐеÑовмеÑÑ‚Ð¸Ð¼Ð°Ñ Ð¿Ð¾ÑÐ»ÐµÐ¼ÐµÐ½Ñ‚Ð½Ð°Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ.\n" + +#, c-format +msgid "%s: Too many subscripts.\n" +msgstr "%s: Слишком много подындекÑов.\n" + +#, c-format +msgid "%s: Wrong number of input argument: %d to %d expected.\n" +msgstr "%s: Ðеверное количеÑтво входных аргументов: ожидалоÑÑŒ от %d до %d.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Hypermatrix expected.\n" +msgstr "%s: Ðеверный тип входного аргумента â„–%d: ожидалаÑÑŒ гиперматрица.\n" + +#, c-format +msgid "%s: Operand is not a boolean hypermatrix.\n" +msgstr "%s: Операнд не ÑвлÑетÑÑ Ð³Ð¸Ð¿ÐµÑ€Ð¼Ð°Ñ‚Ñ€Ð¸Ñ†ÐµÐ¹ логичеÑких значений.\n" + +#, c-format +msgid "%s: Incompatible operand dimensions.\n" +msgstr "%s: ÐеÑовмеÑтимые размерноÑти операндов.\n" + +#, c-format +msgid "%s: Wrong type for input argument(s): hypermatrix expected.\n" +msgstr "%s: Ðеверный тип входных аргументов: ожидалаÑÑŒ гиперматрица.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: 3D maximum expected.\n" +msgstr "" +"%s: Ðеверный размер входного аргумента â„–%d: ожидалоÑÑŒ макÑимум три " +"измерениÑ.\n" + +#, c-format +msgid "%s: Wrong size for argument: Incompatible dimensions.\n" +msgstr "%s: Ðеверный размер аргумента: неÑовмеÑтимые размерноÑти.\n" + +#, c-format +msgid "%s: Wrong size for input argument(s): integer scalars expected.\n" +msgstr "" +"%s: Ðеверный размер входных аргументов: ожидалиÑÑŒ целочиÑленные ÑкалÑры.\n" + +#, c-format +msgid "%s: Only one -1 value admitted.\n" +msgstr "%s: ДопуÑтимо только одно значение: -1.\n" + +#, c-format +msgid "%s: Input and output matrices must have the same number of elements" +msgstr "" +"%s: Ð’Ñ…Ð¾Ð´Ð½Ð°Ñ Ð¸ Ð²Ñ‹Ñ…Ð¾Ð´Ð½Ð°Ñ Ð¼Ð°Ñ‚Ñ€Ð¸Ñ†Ñ‹ должны иметь одинаковое количеÑтво Ñлементов." + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: '%s', '%s' or '%s' expected.\n" +msgstr "" +"%s: Ðеверное значение входного аргумента â„–%d: ожидалоÑÑŒ «%s», «%s» или " +"«%s».\n" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: Scalar positive integer expected.\n" +msgstr "" +"%s: Ðеверное значение входного аргумента â„–%d: ожидалоÑÑŒ целое положительное " +"чиÑло.\n" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: Scalar positive integer or character " +"string expected.\n" +msgstr "" +"%s: Ðеверное значение входного аргумента â„–%d: ожидалоÑÑŒ положительное целое " +"чиÑло либо ÑÐ¸Ð¼Ð²Ð¾Ð»ÑŒÐ½Ð°Ñ Ñтрока.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A real matrix expected.\n" +msgstr "" +"%s: Ðеверный тип входного аргумента â„–%d: ожидалаÑÑŒ вещеÑÑ‚Ð²ÐµÐ½Ð½Ð°Ñ Ð¼Ð°Ñ‚Ñ€Ð¸Ñ†Ð°.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: integer values expected.\n" +msgstr "" +"%s: Ðеверный тип входного аргумента â„–%d: ожидалиÑÑŒ целочиÑленные значениÑ.\n" + +#, c-format +msgid "%s: Wrong number of input arguments: At least %d expected.\n" +msgstr "" +"%s: Ðеверное количеÑтво входных аргументов: ОжидалоÑÑŒ как минимум %d.\n" + +#, c-format +msgid "%s: Invalid syntax for a MIMO system.\n" +msgstr "%s: ÐедопуÑтимый ÑинтакÑÐ¸Ñ Ð´Ð»Ñ MIMO-ÑиÑтемы.\n" + +#, c-format +msgid "%s: Wrong value for input argument #%d: %d or %s expected.\n" +msgstr "%s: Ðеверное значение входного аргумента â„–%d: ожидалоÑÑŒ %d или %s.\n" + +#, c-format +msgid "" +"%s: Insertion of a sparse matrix in a matrix of numbers is not defined.\n" +msgstr "%s: Ð’Ñтавка разрежённой матрицы в матрицу чиÑел не определена.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: An integer matrix expected.\n" +msgstr "" +"%s: Ðеверный тип входного аргумента â„–%d: ожидалаÑÑŒ матрица целочиÑленных " +"значений.\n" + +#, c-format +msgid "%s: Wrong size for input arguments.\n" +msgstr "%s: Ðеверный размер входных аргументов.\n" + +#, c-format +msgid "%s: Wrong size for input argument(s).\n" +msgstr "%s: Ðеверные размеры аргументов.\n" + +msgid "" +" Warning: Syntax vector ^ scalar is obsolete it will be removed in scilab-" +"6.\n" +" Use vector .^ scalar instead.\n" +msgstr "" +" Внимание: ÑинтакÑÐ¸Ñ Ð²ÐµÐºÑ‚Ð¾Ñ€ ^ ÑкалÑÑ€ уÑтарел и будет удалён в Scilab-6.\n" +" ВмеÑто Ñтого иÑпользуйте вектор .^ ÑкалÑÑ€.\n" + +#, c-format +msgid "" +"%s: Wrong type for input arguments #%d and #%d: Integer values expected.\n" +msgstr "" +"%s: Ðеверный тип входных аргументов â„–%d и â„–%d: ожидалиÑÑŒ целочиÑленные " +"значениÑ.\n" + +#, c-format +msgid "%s: Not yet implemented.\n" +msgstr "%s: Пока не реализовано.\n" + +#, c-format +msgid "%s: A null assignment can have only one non-colon index.\n" +msgstr "" +"%s: ПриÑвоение Ð½ÑƒÐ»Ñ Ð¼Ð¾Ð¶ÐµÑ‚ иметь только одно указание индекÑов без " +"двоеточиÑ.\n" + +#, c-format +msgid "%s: Unable to diagonalize.\n" +msgstr "%s: Ðевозможно привеÑти к диагональному виду.\n" + +#, c-format +msgid "%s: Sparse insertion case is not implemented.\n" +msgstr "%s: Случай вÑтавки в разрежённую матрицу не реализован.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: An integer expected.\n" +msgstr "%s: Ðеверный тип входного аргумента â„–%d: ожидалоÑÑŒ целое чиÑло.\n" + +#, c-format +msgid "%s: Field names mismatch.\n" +msgstr "%s: Имена полей не Ñовпадают.\n" + +#, c-format +msgid "%s: Wrong value for input argument #%d: not a valid field name.\n" +msgstr "" +"%s: Ðеверное значение входного аргумента â„–%d: неправильное Ð¸Ð¼Ñ Ð¿Ð¾Ð»Ñ.\n" + +#, c-format +msgid "%s: Wrong type for argument #%d: Real vector expected.\n" +msgstr "%s: Ðеверный тип параметра %d: ожидалÑÑ Ð²ÐµÑ‰ÐµÑтвенный вектор.\n" + +#, c-format +msgid "%s: Wrong type for argument #%d: Real scalar expected.\n" +msgstr "%s: Ðеверный тип параметра %d: ожидалÑÑ Ð²ÐµÑ‰ÐµÑтвенный ÑкалÑÑ€.\n" + +#, c-format +msgid "" +"%s: input and output matrices must have the same number of elements.\n" +msgstr "" +"%s: Ð²Ñ…Ð¾Ð´Ð½Ð°Ñ Ð¸ Ð²Ñ‹Ñ…Ð¾Ð´Ð½Ð°Ñ Ð¼Ð°Ñ‚Ñ€Ð¸Ñ†Ñ‹ должны иметь одинаковое чиÑло Ñлементов.\n" + +#, c-format +msgid "%s: Wrong size or value for input argument #%d.\n" +msgstr "%s: Ðеверный размер или значение входного аргумента â„–%d.\n" + +#, c-format +msgid "%s: Wrong value for input argument #%d.\n" +msgstr "%s: Ðеверное значение входного аргумента â„–%d.\n" + +#, c-format +msgid "%s: Not implemented.\n" +msgstr "%s: Ðе реализовано.\n" + +#, c-format +msgid "" +"%s: Wrong assignment: for insertion in cell, use e.g. x(i,j).entries=y.\n" +msgstr "" +"%s: Ðеверное приÑвоение: Ð´Ð»Ñ Ð²Ñтавки в cell-маÑÑив иÑпользуйте, например, " +"x(i,j).entries=y.\n" + +#, c-format +msgid "" +"%s: Incompatible sizes for properties '%s' and '%s': Same sizes expected.\n" +msgstr "" +"%s: ÐеÑовмеÑтимые размеры Ð´Ð»Ñ ÑвойÑтв '%s' и '%s': ожидалиÑÑŒ одинаковые " +"размеры.\n" + +#, c-format +msgid "%s: Wrong number of input arguments: %d expected.\n" +msgstr "%s: Ðеверное количеÑтво входных аргументов: ожидалоÑÑŒ %d.\n" diff --git a/modules/overloading/locales/uk_UA.po b/modules/overloading/locales/uk_UA.po new file mode 100755 index 000000000..65d15f60b --- /dev/null +++ b/modules/overloading/locales/uk_UA.po @@ -0,0 +1,385 @@ +# Ukrainian translation for scilab +# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 +# This file is distributed under the same license as the scilab package. +# +# FIRST AUTHOR <EMAIL@ADDRESS>, 2010. +# Yuri Chornoivan <yurchor@gmail.com>, 2010. +msgid "" +msgstr "" +"Project-Id-Version: scilab\n" +"Report-Msgid-Bugs-To: <localization@lists.scilab.org>\n" +"POT-Creation-Date: 2013-04-16 17:44+0100\n" +"PO-Revision-Date: 2014-02-23 07:52+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: Invalid index.\n" +msgstr "%s: некоректний індекÑ.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: String expected.\n" +msgstr "" +"%s: помилковий тип вхідного параметра â„–%d: Ñлід викориÑтовувати тип " +"«string».\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d.\n" +msgstr "%s: помилковий тип вхідного параметра â„–%d.\n" + +#, c-format +msgid "%s: Multidimensional sparse matrices are not handled.\n" +msgstr "%s: обробки багатовимірних розріджених матриць не передбачено.\n" + +#, c-format +msgid "%c: input argument #%d has duplicates\n" +msgstr "%c: Ð´ÑƒÐ±Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Ð²Ñ…Ñ–Ð´Ð½Ð¾Ð³Ð¾ параметра â„–%d\n" + +#, c-format +msgid "%c: input argument #%d must be sorted in lexicographic order\n" +msgstr "" +"%c: дані вхідного параметра â„–%d має бути упорÑдковано у лекÑикографічному " +"порÑдку\n" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: 'c', 'd' or a scalar expected.\n" +msgstr "" +"%s: помилкове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ñ…Ñ–Ð´Ð½Ð¾Ð³Ð¾ параметра â„–%d: мало бути вказано «c», «d» " +"або ÑкалÑÑ€.\n" + +#, c-format +msgid "" +"%s: Affection of a string in a matrix of numbers is not implemented.\n" +msgstr "%s: прив’Ñзку Ñ€Ñдка у чиÑловій матриці не реалізовано.\n" + +#, c-format +msgid "%s: Syntax x(j) only allowed for row cblock's.\n" +msgstr "" +"%s: ÑинтакÑичну конÑтрукцію x(j) можна викориÑтовувати лише у Ñ€Ñдкових " +"cblock.\n" + +#, c-format +msgid "" +"%s: In concatenation the number of dimensions for each component must " +"match.\n" +msgstr "" +"%s: у разі викориÑÑ‚Ð°Ð½Ð½Ñ Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ð½Ð¾ÑÑ‚Ñ– вÑÑ–Ñ… компонентів мають бути " +"однаковими.\n" + +#, c-format +msgid "%s: Invalid field name.\n" +msgstr "%s: некоректна назва полÑ.\n" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: a valid field name expected.\n" +msgstr "" +"%s: помилкова розмірніÑÑ‚ÑŒ вхідного параметра â„–%d: мало бути вказано коректну " +"назву полÑ.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d.\n" +msgstr "%s: помилкова розмірніÑÑ‚ÑŒ вхідного параметра â„–%d.\n" + +#, c-format +msgid "%s: Wrong number of output arguments.\n" +msgstr "%s: помилкова кількіÑÑ‚ÑŒ вихідних параметрів.\n" + +#, c-format +msgid "" +"%s: Wrong size for input argument #%d: Transpose can not be defined.\n" +msgstr "" +"%s: помилкова розмірніÑÑ‚ÑŒ вхідного параметра â„–%d: транÑÐ¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ може " +"бути визначено.\n" + +#, c-format +msgid "%s: Invalid path.\n" +msgstr "%s: некоректний шлÑÑ….\n" + +#, c-format +msgid "" +"%s: Input argument #%d and input argument #%d have incompatible dimensions.\n" +msgstr "%s: розмірноÑÑ‚Ñ– вхідних параметрів â„–%d Ñ– â„–%d неÑуміÑні.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A scalar expected.\n" +msgstr "" +"%s: помилковий тип вхідного параметра â„–%d: Ñлід викориÑтовувати ÑкалÑрний " +"тип.\n" + +#, c-format +msgid "%s: Inconsistent dimensions.\n" +msgstr "%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 size for input argument #%d: A scalar expected.\n" +msgstr "" +"%s: помилкова розмірніÑÑ‚ÑŒ вхідного параметра â„–%d: Ñлід викориÑтовувати " +"дійÑне чиÑло.\n" + +#, c-format +msgid "%s: Wrong value for input argument #%d: Integer >= %d expected.\n" +msgstr "" +"%s: помилкове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ñ…Ñ–Ð´Ð½Ð¾Ð³Ð¾ параметра â„–%d: мало бути викориÑтано ціле " +"чиÑло >= %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: Must be in the set {%s}.\n" +msgstr "" +"%s: помилкове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ñ…Ñ–Ð´Ð½Ð¾Ð³Ð¾ параметра â„–%d: Ñлід викориÑтовувати Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ " +"з набору {%s}.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A string or scalar expected.\n" +msgstr "" +"%s: помилковий тип вхідного параметра â„–%d: Ñлід викориÑтовувати тип «string» " +"або ÑкалÑрний (чиÑловий) тип.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A string expected.\n" +msgstr "" +"%s: помилковий тип вхідного параметра â„–%d: Ñлід викориÑтовувати тип " +"«string».\n" + +#, c-format +msgid "%s: Wrong value for input argument #%d: %s or %s expected.\n" +msgstr "" +"%s: помилкове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ñ…Ñ–Ð´Ð½Ð¾Ð³Ð¾ параметра â„–%d: Ñлід викориÑтовувати %s або " +"%s.\n" + +#, c-format +msgid "%s: Inconsistent element-wise operation.\n" +msgstr "%s: неÑуміÑна поелементна операціÑ.\n" + +#, c-format +msgid "%s: Too many subscripts.\n" +msgstr "%s: занадто багато підіндекÑів.\n" + +#, c-format +msgid "%s: Wrong number of input argument: %d to %d expected.\n" +msgstr "" +"%s: помилкова кількіÑÑ‚ÑŒ вхідних параметрів: Ñлід викориÑтовувати від %d до " +"%d параметрів.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Hypermatrix expected.\n" +msgstr "" +"%s: помилковий тип вхідного параметра â„–%d: мало бути викориÑтано " +"гіперматрицю.\n" + +#, c-format +msgid "%s: Operand is not a boolean hypermatrix.\n" +msgstr "%s: операнд не Ñ” булевою гіперматрицею.\n" + +#, c-format +msgid "%s: Incompatible operand dimensions.\n" +msgstr "%s: неÑуміÑні розмірноÑÑ‚Ñ– операндів.\n" + +#, c-format +msgid "%s: Wrong type for input argument(s): hypermatrix expected.\n" +msgstr "" +"%s: помилковий тип вхідних параметрів: мало бути вказано гіперматрицю.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: 3D maximum expected.\n" +msgstr "" +"%s: помилкова розмірніÑÑ‚ÑŒ вхідного параметра â„–%d: розмірніÑÑ‚ÑŒ не повинна " +"перевищувати 3.\n" + +#, c-format +msgid "%s: Wrong size for argument: Incompatible dimensions.\n" +msgstr "%s: помилкова розмірніÑÑ‚ÑŒ параметра: неÑуміÑні розмірноÑÑ‚Ñ–.\n" + +#, c-format +msgid "%s: Wrong size for input argument(s): integer scalars expected.\n" +msgstr "" +"%s: помилкова розмірніÑÑ‚ÑŒ вхідних параметрів: мало бути вказано цілі чиÑла.\n" + +#, c-format +msgid "%s: Only one -1 value admitted.\n" +msgstr "%s: приймаєтьÑÑ Ð»Ð¸ÑˆÐµ одне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ -1.\n" + +#, c-format +msgid "%s: Input and output matrices must have the same number of elements" +msgstr "" +"%s: матриці вхідних Ñ– вихідних даних повинні ÑкладатиÑÑ Ð· однакової " +"кількоÑÑ‚Ñ– елементів" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: '%s', '%s' or '%s' expected.\n" +msgstr "" +"%s: помилкове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ñ…Ñ–Ð´Ð½Ð¾Ð³Ð¾ параметра â„–%d: Ñлід викориÑтовувати «%s», " +"«%s» або «%s».\n" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: Scalar positive integer expected.\n" +msgstr "" +"%s: помилкове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ñ…Ñ–Ð´Ð½Ð¾Ð³Ð¾ параметра â„–%d: Ñлід викориÑтовувати додатне " +"ціле значеннÑ.\n" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: Scalar positive integer or character " +"string expected.\n" +msgstr "" +"%s: помилкове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ñ…Ñ–Ð´Ð½Ð¾Ð³Ð¾ параметра â„–%d: мало бути вказано додатне " +"чиÑло або Ñ€Ñдок з Ñимволів.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A real matrix expected.\n" +msgstr "" +"%s: помилкове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ñ…Ñ–Ð´Ð½Ð¾Ð³Ð¾ параметра â„–%d: мало бути вказано матрицю з " +"дійÑними елементами.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: integer values expected.\n" +msgstr "" +"%s: помилковий тип вхідного параметра â„–%d: мало бути вказано цілі чиÑла.\n" + +#, c-format +msgid "%s: Wrong number of input arguments: At least %d expected.\n" +msgstr "" +"%s: помилкова кількіÑÑ‚ÑŒ вхідних параметрів: мало бути не менше за %d.\n" + +#, c-format +msgid "%s: Invalid syntax for a MIMO system.\n" +msgstr "%s: некоректна ÑинтакÑична конÑÑ‚Ñ€ÑƒÐºÑ†Ñ–Ñ Ð´Ð»Ñ ÑиÑтеми MIMO.\n" + +#, c-format +msgid "%s: Wrong value for input argument #%d: %d or %s expected.\n" +msgstr "" +"%s: помилкове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ñ…Ñ–Ð´Ð½Ð¾Ð³Ð¾ параметра â„–%d: мало бути вказано %d або %s.\n" + +#, c-format +msgid "" +"%s: Insertion of a sparse matrix in a matrix of numbers is not defined.\n" +msgstr "" +"%s: вÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ñ€Ñ–Ð´Ð¶ÐµÐ½Ð¾Ñ— матриці до чиÑлової матриці не визначено.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: An integer matrix expected.\n" +msgstr "" +"%s: помилковий тип вхідного параметра â„–%d: мало бути вказано матрицю з цілих " +"значень.\n" + +#, c-format +msgid "%s: Wrong size for input arguments.\n" +msgstr "%s: помилкова розмірніÑÑ‚ÑŒ вхідних параметрів.\n" + +#, c-format +msgid "%s: Wrong size for input argument(s).\n" +msgstr "%s: помилкова розмірніÑÑ‚ÑŒ вхідних параметрів.\n" + +msgid "" +" Warning: Syntax vector ^ scalar is obsolete it will be removed in scilab-" +"6.\n" +" Use vector .^ scalar instead.\n" +msgstr "" +" ПопередженнÑ: ÑинтакÑичні конÑтрукції «вектор ^ ÑкалÑр» вважаютьÑÑ " +"заÑтарілими. Ці конÑтрукції буде заборонено у scilab-6.\n" +" СкориÑтайтеÑÑ ÐºÐ¾Ð½Ñтрукцією «вектор .^ ÑкалÑр».\n" + +#, c-format +msgid "" +"%s: Wrong type for input arguments #%d and #%d: Integer values expected.\n" +msgstr "" +"%s: помилковий тип вхідних параметрів â„–%d Ñ– â„–%d: мало бути викориÑтано цілі " +"величини.\n" + +#, c-format +msgid "%s: Not yet implemented.\n" +msgstr "%s: ще не реалізовано.\n" + +#, c-format +msgid "%s: A null assignment can have only one non-colon index.\n" +msgstr "" +"%s: Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð¾Ñ€Ð¾Ð¶Ð½ÑŒÐ¾Ð³Ð¾ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ðµ лише Ð´Ð»Ñ Ð¾Ð´Ð½Ð¾Ð³Ð¾ індекÑу без " +"двокрапки.\n" + +#, c-format +msgid "%s: Unable to diagonalize.\n" +msgstr "%s: не вдалоÑÑ Ð´Ñ–Ð°Ð³Ð¾Ð½Ð°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸.\n" + +#, c-format +msgid "%s: Sparse insertion case is not implemented.\n" +msgstr "%s: випадок вÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ñ€Ñ–Ð´Ð¶ÐµÐ½Ð¾Ñ— матриці не реалізовано.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: An integer expected.\n" +msgstr "%s: помилковий тип вхідного параметра â„–%d: мало бути ціле чиÑло.\n" + +#, c-format +msgid "%s: Field names mismatch.\n" +msgstr "%s: невідоповідніÑÑ‚ÑŒ назв полів.\n" + +#, c-format +msgid "%s: Wrong value for input argument #%d: not a valid field name.\n" +msgstr "" +"%s: помилкове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ñ…Ñ–Ð´Ð½Ð¾Ð³Ð¾ параметра â„–%d: некоректна назва полÑ.\n" + +#, c-format +msgid "%s: Wrong type for argument #%d: Real vector expected.\n" +msgstr "" +"%s: помилковий тип параметра %d: мало бути вказано вектор дійÑних значень.\n" + +#, c-format +msgid "%s: Wrong type for argument #%d: Real scalar expected.\n" +msgstr "" +"%s: помилковий тип параметра %d: мало бути вказано дійÑне чиÑлове значеннÑ.\n" + +#, c-format +msgid "" +"%s: input and output matrices must have the same number of elements.\n" +msgstr "" +"%s: у матрицÑÑ… вхідних Ñ– вихідних даних має бути однакова кількіÑÑ‚ÑŒ " +"елементів.\n" + +#, c-format +msgid "%s: Wrong size or value for input argument #%d.\n" +msgstr "%s: помилкова розмірніÑÑ‚ÑŒ ао Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ñ…Ñ–Ð´Ð½Ð¾Ð³Ð¾ параметра â„–%d.\n" + +#, c-format +msgid "%s: Wrong value for input argument #%d.\n" +msgstr "%s: помилкове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ñ…Ñ–Ð´Ð½Ð¾Ð³Ð¾ параметра â„–%d.\n" + +#, c-format +msgid "%s: Not implemented.\n" +msgstr "%s: не реалізовано.\n" + +#, c-format +msgid "" +"%s: Wrong assignment: for insertion in cell, use e.g. x(i,j).entries=y.\n" +msgstr "" +"%s: помилкове визначеннÑ: Ð´Ð»Ñ Ð²ÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ð´Ð¾ комірки ÑкориÑтайтеÑÑ, " +"наприклад, запиÑом x(i,j).entries=y.\n" + +#, c-format +msgid "" +"%s: Incompatible sizes for properties '%s' and '%s': Same sizes expected.\n" +msgstr "" +"%s: неÑуміÑні розмірноÑÑ‚Ñ– влаÑтивоÑтей «%s» Ñ– «%s»: розмірноÑÑ‚Ñ– мають " +"збігатиÑÑ.\n" + +#, c-format +msgid "%s: Wrong number of input arguments: %d expected.\n" +msgstr "" +"%s: помилкова кількіÑÑ‚ÑŒ вхідних параметрів: Ñлід викориÑтовувати %d.\n" diff --git a/modules/overloading/locales/zh_CN.po b/modules/overloading/locales/zh_CN.po new file mode 100755 index 000000000..0dc620c03 --- /dev/null +++ b/modules/overloading/locales/zh_CN.po @@ -0,0 +1,312 @@ +# Simplified Chinese translation for scilab +# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 +# This file is distributed under the same license as the scilab package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: scilab\n" +"Report-Msgid-Bugs-To: <localization@lists.scilab.org>\n" +"POT-Creation-Date: 2013-04-16 17:44+0100\n" +"PO-Revision-Date: 2013-01-26 04:09+0000\n" +"Last-Translator: Scilab.team <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: Invalid index.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: String expected.\n" +msgstr "%s:输入å‚æ•°#%d的类型错误:应该为å—符串。\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d.\n" +msgstr "" + +#, c-format +msgid "%s: Multidimensional sparse matrices are not handled.\n" +msgstr "" + +#, c-format +msgid "%c: input argument #%d has duplicates\n" +msgstr "" + +#, c-format +msgid "%c: input argument #%d must be sorted in lexicographic order\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: 'c', 'd' or a scalar expected.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Affection of a string in a matrix of numbers is not implemented.\n" +msgstr "" + +#, c-format +msgid "%s: Syntax x(j) only allowed for row cblock's.\n" +msgstr "" + +#, c-format +msgid "" +"%s: In concatenation the number of dimensions for each component must " +"match.\n" +msgstr "" + +#, c-format +msgid "%s: Invalid field name.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: a valid field name expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument #%d.\n" +msgstr "%s:第%d个输入å‚数的大å°é”™è¯¯ã€‚\n" + +#, c-format +msgid "%s: Wrong number of output arguments.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong size for input argument #%d: Transpose can not be defined.\n" +msgstr "" + +#, c-format +msgid "%s: Invalid path.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Input argument #%d and input argument #%d have incompatible dimensions.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A scalar expected.\n" +msgstr "" + +#, c-format +msgid "%s: Inconsistent dimensions.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong number of input argument(s): %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 value for input argument #%d: Integer >= %d expected.\n" +msgstr "" + +#, 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: Must be in the set {%s}.\n" +msgstr "%s:第%d个输入å‚数的值错误:必须在集åˆ{%s}ä¸ã€‚\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A string or scalar expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A string expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d: %s or %s expected.\n" +msgstr "" + +#, c-format +msgid "%s: Inconsistent element-wise operation.\n" +msgstr "" + +#, c-format +msgid "%s: Too many subscripts.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong number of input argument: %d to %d expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Hypermatrix expected.\n" +msgstr "" + +#, c-format +msgid "%s: Operand is not a boolean hypermatrix.\n" +msgstr "" + +#, c-format +msgid "%s: Incompatible operand dimensions.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument(s): hypermatrix expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument #%d: 3D maximum expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for argument: Incompatible dimensions.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument(s): integer scalars expected.\n" +msgstr "" + +#, c-format +msgid "%s: Only one -1 value admitted.\n" +msgstr "" + +#, c-format +msgid "%s: Input and output matrices must have the same number of elements" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: '%s', '%s' or '%s' expected.\n" +msgstr "%s:第%d个输入å‚数的值出错:应该为‘%s’ã€â€˜%s’或‘%s’。\n" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: Scalar positive integer expected.\n" +msgstr "%s:第%d个输入å‚数的值错误:应该为æ£æ•´æ•°æ ‡é‡ã€‚\n" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: Scalar positive integer or character " +"string expected.\n" +msgstr "%s:第%d个输入å‚数的值错误:应该为æ£æ•´æ•°æ ‡é‡æˆ–å—符串。\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A real matrix expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: integer values expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong number of input arguments: At least %d expected.\n" +msgstr "" + +#, c-format +msgid "%s: Invalid syntax for a MIMO system.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d: %d or %s expected.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Insertion of a sparse matrix in a matrix of numbers is not defined.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: An integer matrix expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input arguments.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument(s).\n" +msgstr "" + +msgid "" +" Warning: Syntax vector ^ scalar is obsolete it will be removed in scilab-" +"6.\n" +" Use vector .^ scalar instead.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong type for input arguments #%d and #%d: Integer values expected.\n" +msgstr "" + +#, c-format +msgid "%s: Not yet implemented.\n" +msgstr "" + +#, c-format +msgid "%s: A null assignment can have only one non-colon index.\n" +msgstr "" + +#, c-format +msgid "%s: Unable to diagonalize.\n" +msgstr "" + +#, c-format +msgid "%s: Sparse insertion case is not implemented.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: An integer expected.\n" +msgstr "" + +#, c-format +msgid "%s: Field names mismatch.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d: not a valid field name.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for argument #%d: Real vector expected.\n" +msgstr "%s:第%d个å‚数的类型错误:应该为实数å‘é‡ã€‚\n" + +#, c-format +msgid "%s: Wrong type for argument #%d: Real scalar expected.\n" +msgstr "%s:å‚æ•°%dçš„ç±»åž‹é”™è¯¯ï¼šåº”è¯¥ä¸ºå®žæ•°æ ‡é‡ã€‚\n" + +#, c-format +msgid "" +"%s: input and output matrices must have the same number of elements.\n" +msgstr "%s:输入和输出矩阵必须有相åŒæ•°ç›®çš„å…ƒç´ ã€‚\n" + +#, c-format +msgid "%s: Wrong size or value for input argument #%d.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d.\n" +msgstr "" + +#, c-format +msgid "%s: Not implemented.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong assignment: for insertion in cell, use e.g. x(i,j).entries=y.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Incompatible sizes for properties '%s' and '%s': Same sizes expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong number of input arguments: %d expected.\n" +msgstr "" diff --git a/modules/overloading/locales/zh_TW.po b/modules/overloading/locales/zh_TW.po new file mode 100755 index 000000000..01b0c3da1 --- /dev/null +++ b/modules/overloading/locales/zh_TW.po @@ -0,0 +1,312 @@ +# Traditional Chinese translation for scilab +# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 +# This file is distributed under the same license as the scilab package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: scilab\n" +"Report-Msgid-Bugs-To: <localization@lists.scilab.org>\n" +"POT-Creation-Date: 2013-04-16 17:44+0100\n" +"PO-Revision-Date: 2013-01-26 04:11+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" + +#, c-format +msgid "%s: Invalid index.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: String expected.\n" +msgstr "%s: 第 %d 個輸入åƒæ•¸åž‹æ…‹éŒ¯èª¤: 應該是å—串型態.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d.\n" +msgstr "" + +#, c-format +msgid "%s: Multidimensional sparse matrices are not handled.\n" +msgstr "" + +#, c-format +msgid "%c: input argument #%d has duplicates\n" +msgstr "" + +#, c-format +msgid "%c: input argument #%d must be sorted in lexicographic order\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: 'c', 'd' or a scalar expected.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Affection of a string in a matrix of numbers is not implemented.\n" +msgstr "" + +#, c-format +msgid "%s: Syntax x(j) only allowed for row cblock's.\n" +msgstr "" + +#, c-format +msgid "" +"%s: In concatenation the number of dimensions for each component must " +"match.\n" +msgstr "" + +#, c-format +msgid "%s: Invalid field name.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: a valid field name expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument #%d.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong number of output arguments.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong size for input argument #%d: Transpose can not be defined.\n" +msgstr "" + +#, c-format +msgid "%s: Invalid path.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Input argument #%d and input argument #%d have incompatible dimensions.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A scalar expected.\n" +msgstr "" + +#, c-format +msgid "%s: Inconsistent dimensions.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong number of input argument(s): %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 value for input argument #%d: Integer >= %d expected.\n" +msgstr "" + +#, 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: Must be in the set {%s}.\n" +msgstr "%s: 輸入åƒæ•¸ #%d 的數值錯誤: 應該屬於 {%s} 集åˆä¸.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A string or scalar expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A string expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d: %s or %s expected.\n" +msgstr "" + +#, c-format +msgid "%s: Inconsistent element-wise operation.\n" +msgstr "" + +#, c-format +msgid "%s: Too many subscripts.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong number of input argument: %d to %d expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Hypermatrix expected.\n" +msgstr "" + +#, c-format +msgid "%s: Operand is not a boolean hypermatrix.\n" +msgstr "" + +#, c-format +msgid "%s: Incompatible operand dimensions.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument(s): hypermatrix expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument #%d: 3D maximum expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for argument: Incompatible dimensions.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument(s): integer scalars expected.\n" +msgstr "" + +#, c-format +msgid "%s: Only one -1 value admitted.\n" +msgstr "" + +#, c-format +msgid "%s: Input and output matrices must have the same number of elements" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: '%s', '%s' or '%s' expected.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: Scalar positive integer expected.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: Scalar positive integer or character " +"string expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A real matrix expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: integer values expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong number of input arguments: At least %d expected.\n" +msgstr "" + +#, c-format +msgid "%s: Invalid syntax for a MIMO system.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d: %d or %s expected.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Insertion of a sparse matrix in a matrix of numbers is not defined.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: An integer matrix expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input arguments.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument(s).\n" +msgstr "" + +msgid "" +" Warning: Syntax vector ^ scalar is obsolete it will be removed in scilab-" +"6.\n" +" Use vector .^ scalar instead.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong type for input arguments #%d and #%d: Integer values expected.\n" +msgstr "" + +#, c-format +msgid "%s: Not yet implemented.\n" +msgstr "" + +#, c-format +msgid "%s: A null assignment can have only one non-colon index.\n" +msgstr "" + +#, c-format +msgid "%s: Unable to diagonalize.\n" +msgstr "" + +#, c-format +msgid "%s: Sparse insertion case is not implemented.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: An integer expected.\n" +msgstr "" + +#, c-format +msgid "%s: Field names mismatch.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d: not a valid field name.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for argument #%d: Real vector expected.\n" +msgstr "%s: åƒæ•¸ %d 型態錯誤 : 應為實數å‘é‡.\n" + +#, c-format +msgid "%s: Wrong type for argument #%d: Real scalar expected.\n" +msgstr "%s: åƒæ•¸%d型別錯誤 : 應該是純é‡å¯¦æ•¸.\n" + +#, c-format +msgid "" +"%s: input and output matrices must have the same number of elements.\n" +msgstr "%sï¼šè¼¸å…¥èˆ‡è¼¸å‡ºçŸ©é™£å¿…é ˆæœ‰ç›¸åŒçš„å…ƒç´ æ•¸é‡ã€‚\n" + +#, c-format +msgid "%s: Wrong size or value for input argument #%d.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d.\n" +msgstr "" + +#, c-format +msgid "%s: Not implemented.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong assignment: for insertion in cell, use e.g. x(i,j).entries=y.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Incompatible sizes for properties '%s' and '%s': Same sizes expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong number of input arguments: %d expected.\n" +msgstr "" diff --git a/modules/overloading/macros/%0_i_st.bin b/modules/overloading/macros/%0_i_st.bin Binary files differnew file mode 100755 index 000000000..7fd284a23 --- /dev/null +++ b/modules/overloading/macros/%0_i_st.bin diff --git a/modules/overloading/macros/%0_i_st.sci b/modules/overloading/macros/%0_i_st.sci new file mode 100755 index 000000000..420e3f9d8 --- /dev/null +++ b/modules/overloading/macros/%0_i_st.sci @@ -0,0 +1,24 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2010 - INRIA - Serge Steer <serge.steer@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 + +function st=%0_i_st(i,void,st) + if type(i)==10 then + f=getfield(1,st); + k=find(f(3:$)==i); + if k<>[] then + f(k+2)=[]; + setfield(k+2,null(),st); + setfield(1,f,st); + else + error(msprintf(_("%s: Invalid index.\n"),"%0_i_st")); + end + else + error(msprintf(_("%s: Wrong type for input argument #%d: String expected.\n"),"%0_i_st",1)); + end +endfunction diff --git a/modules/overloading/macros/%3d_i_h.bin b/modules/overloading/macros/%3d_i_h.bin Binary files differnew file mode 100755 index 000000000..cf1142475 --- /dev/null +++ b/modules/overloading/macros/%3d_i_h.bin diff --git a/modules/overloading/macros/%3d_i_h.sci b/modules/overloading/macros/%3d_i_h.sci new file mode 100755 index 000000000..a033ef47a --- /dev/null +++ b/modules/overloading/macros/%3d_i_h.sci @@ -0,0 +1,43 @@ +// 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 +function h=%3d_i_h(i,v,h) + if type(i)==10 then + set(h,i,v) + elseif type(i)==15 then + hdl=h + p=i($) + if type(p)==1|type(p)==4|type(p)==2|type(p)==129|type(p)==15 then + index=i($) + i($)=null() + else + index=: + end + n=lstsize(i) + for k=1:n-1 + p=i(k) + if type(p)==10 then + hdl=get(hdl,p), + elseif type(p)==1|type(p)==4|type(p)==2|type(p)==129 then + hdl=hdl(p) + elseif type(p)==15 then + hdl=hdl(p(:)) + else + error(msprintf(_("%s: Wrong type for input argument #%d.\n"),"%3d_i_h",1)); + end + end + if type(index)==15 then + hdl=hdl(index(:)) + else + hdl=hdl(index) + end + set(hdl,i($),v) + else + error(msprintf(_("%s: Wrong type for input argument #%d.\n"),"%3d_i_h",1)); + end +endfunction diff --git a/modules/overloading/macros/%ar_p.bin b/modules/overloading/macros/%ar_p.bin Binary files differnew file mode 100755 index 000000000..01c259184 --- /dev/null +++ b/modules/overloading/macros/%ar_p.bin diff --git a/modules/overloading/macros/%ar_p.sci b/modules/overloading/macros/%ar_p.sci new file mode 100755 index 000000000..75e8d6327 --- /dev/null +++ b/modules/overloading/macros/%ar_p.sci @@ -0,0 +1,163 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ENPC +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should 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 %ar_p(l) + // to provide automatic print of ar objects with armap + // + // We use armp_p as the default function for printing + armap_p(l) + +endfunction +function armap(ar,out) + //used for display of armax objects + //! + [lhs,rhs]=argn(0) + if rhs==1 then out=%io(2),end + deff("[ta]=%cv(x)",["[m,n]=size(x);"; + "frmt=format();frmt=10**frmt(2)/max([1,norm(x)]);"; + "x=round(frmt*x)/frmt;"; + "t=[];for k=1:m,t=[t;''|''],end;"; + "ta=t;for k=1:n,"; + " aa=string(x(:,k)),"; + " for l=1:m,"; + " if part(aa(l),1)<>''-'' then "; + " aa(l)='' ''+aa(l),"; + " end,"; + " end,"; + " n=max(length(aa)),"; + " aa=part(aa+blank,1:n),"; + " ta=ta+aa+part(blank,1),"; + "end;ta=ta+t;"]) + + // D(x)=Ax + Bu + //------------- + write(out," ") + if ar(1)<>"ar" then write(%io(2)," This is not an ARMAX");return;end; + // + [ny,vid]=size(ar(2)); + if ar(3) == [] then + write(out," A(z^-1)y= D(z^-1) e(t)"); + else + write(out," A(z^-1)y=B(z^-1)u + D(z^-1) e(t)"); + end + + write(out," "); + M=["A","B","D"]; + lll=lines(); + lll=lll(1); + if ar(3)==[] then I=[1,3];else I=1:3 ;end + for i=I; + [a]=ar(i+1) + [na,lna]=size(a) + nli=int((lna/na)); + if i==2,nli=int((lna/ar(6)));end; + blank=[];for k=1:na,blank=[blank;" "],end + blank1=part(blank,1:7) + // blank1([na/2,na/2+1])=[' '+M(i)+'(s)= '] + blank1([int(na/2)+1])=[" "+M(i)+"(x)="] + t=blank1; + nna=na; + blank1=part(blank,1:6) + if i==2;nna=ar(6);end + for j=1:nli; + ta=a(:,1+(j-1)*nna:j*nna); + if t==[],t=blank+%cv(ta);else t=t+%cv(ta);end; + str="x^"+string(j-1) + if length(str)==3,str=str+" ";end + if j<>nli;str=str+"+ ";else str=str+" ";end + // blank1([na/2,na/2+1])=[' ';str]; + blank1([int(na/2)+1])=[str]; + t=t+blank1 + if length(t(1))>=lll,write(out,t),write(out," ");t=[];end + end + write(out,t); + write(out," "); + end + write(%io(2)," e(t)=Sig*w(t); w(t) "+string(ny)+"-dim white noise"); + write(out," "); + [a]=ar(7) + [na,lna]=size(a) + blank=[];for k=1:na,blank=[blank;" "],end + blank1=part(blank,1:8) + // blank1([na/2,na/2+1])=[' ';' Sig= '] + blank1([int(na/2)+1])=[" Sig= "] + t=blank1; + ta=a; + t=t+%cv(ta); + write(out,t); + write(out," "); + +endfunction +function armap_p(ar,out) + //used for display of armax objects + //use Scilan Polynomial matrix display + //! + [lhs,rhs]=argn(0) + if rhs==1 then out=%io(2),end + deff("[ta]=%cv(x)",["[m,n]=size(x);"; + "frmt=format();frmt=10**frmt(2)/max([1,norm(x)]);"; + "x=round(frmt*x)/frmt;"; + "t=[];for k=1:m,t=[t;''|''],end;"; + "ta=t;for k=1:n,"; + " aa=string(x(:,k)),"; + " for l=1:m,"; + " if part(aa(l),1)<>''-'' then "; + " aa(l)='' ''+aa(l),"; + " end,"; + " end,"; + " n=max(length(aa)),"; + " aa=part(aa+blank,1:n),"; + " ta=ta+aa+part(blank,1),"; + "end;ta=ta+t;"]) + + // D(x)=Ax + Bu + //------------- + write(out," ") + if ar(1)<>"ar" then write(%io(2)," This is not an ARMAX");return;end; + // + [ny,vid]=size(ar(2)); + if ar(3) == [] then + write(out," A(z^-1)y= D(z^-1) e(t)"); + else + write(out," A(z^-1)y=B(z^-1)u + D(z^-1) e(t)"); + end + + write(out," "); + M=["A","B","D"]; + lll=lines(); + lll=lll(1); + if ar(3)==[] then I=[1,3];else I=1:3 ;end + A=inv_coeff(ar(2)); + //print(out,A); + disp(A,"A(x) ="); + write(out," "); + if ar(3)<>[] then + [mb,nb]=size(ar(3)); + B=inv_coeff(ar(3),(nb/ar("nu"))-1); + //print(out,B); + disp(B, "B(x) ="); + write(out," "); + end + D=inv_coeff(ar(4)); + //print(out,D); + disp(D, "D(x)"); + write(out," "); + write(%io(2)," e(t)=Sig*w(t); w(t) "+string(ny)+"-dim white noise"); + write(out," "); + [a]=ar(7) + [na,lna]=size(a) + blank=[];for k=1:na,blank=[blank;" "],end + blank1=part(blank,1:8) + // blank1([na/2,na/2+1])=[' ';' Sig= '] + blank1([int(na/2)+1])=[" Sig= "] + t=blank1; + ta=a; + t=t+%cv(ta); + write(out,t); + write(out," "); +endfunction diff --git a/modules/overloading/macros/%b_c_spb.bin b/modules/overloading/macros/%b_c_spb.bin Binary files differnew file mode 100755 index 000000000..125299035 --- /dev/null +++ b/modules/overloading/macros/%b_c_spb.bin diff --git a/modules/overloading/macros/%b_c_spb.sci b/modules/overloading/macros/%b_c_spb.sci new file mode 100755 index 000000000..c1a412615 --- /dev/null +++ b/modules/overloading/macros/%b_c_spb.sci @@ -0,0 +1,13 @@ +// 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 +function r=%b_c_spb(a,b) + // perform [a b] where a is a boolean matrix + // and b a boolean sparse matrix + r=[sparse(a),b] +endfunction diff --git a/modules/overloading/macros/%b_diag.bin b/modules/overloading/macros/%b_diag.bin Binary files differnew file mode 100755 index 000000000..11f2db449 --- /dev/null +++ b/modules/overloading/macros/%b_diag.bin diff --git a/modules/overloading/macros/%b_diag.sci b/modules/overloading/macros/%b_diag.sci new file mode 100755 index 000000000..f15807a72 --- /dev/null +++ b/modules/overloading/macros/%b_diag.sci @@ -0,0 +1,32 @@ +// 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 +function d=%b_diag(a,k) + + [lhs,rhs]=argn(0) + if rhs==1 then k=0,end + [m,n]=size(a) + if m>1&n>1 then + if k<=0 then + mn=min(m+k,n) + i0=-k+1 + else + mn=min(m,n-k) + i0=k*m+1 + end + a=matrix(a,m*n,1) + i=i0+((0:mn-1)*(m+1)) + d=a(i) + else + nn = max(m,n)+abs(k) + mn=max(m,n) + i=(1:mn)+((1:mn)+(k-1))*nn + d(i)=a + d=matrix(d,nn,nn) + end +endfunction diff --git a/modules/overloading/macros/%b_e.bin b/modules/overloading/macros/%b_e.bin Binary files differnew file mode 100755 index 000000000..89759c084 --- /dev/null +++ b/modules/overloading/macros/%b_e.bin diff --git a/modules/overloading/macros/%b_e.sci b/modules/overloading/macros/%b_e.sci new file mode 100755 index 000000000..a4d137e80 --- /dev/null +++ b/modules/overloading/macros/%b_e.sci @@ -0,0 +1,34 @@ +// 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 +function f=%b_e(varargin) + //A(i,j,k,..) + + rhs=size(varargin) + M=varargin(rhs) + + nind=rhs-1 + dims=[] + for k=3:nind + ind=varargin(k) + if type(ind)==2|type(ind)==129 then ind=horner(ind,1),end + if type(ind)==4 then ind=find(ind),end + if or(ind<>1) then error(21),end + n=size(ind,"*") + dims=[dims,n] + end + f=M(varargin(1:min(2,rhs-1))) + k=find(dims>1) + if k<>[] then + dims(k($)+1:$)=[] + N=prod(dims) + szf=size(f) + f=f(:) + f=mlist(["hm","dims","entries"],int32([szf dims]),matrix(f(:,ones(1,N)),-1,1)) + end +endfunction diff --git a/modules/overloading/macros/%b_f_spb.bin b/modules/overloading/macros/%b_f_spb.bin Binary files differnew file mode 100755 index 000000000..8d9a091e2 --- /dev/null +++ b/modules/overloading/macros/%b_f_spb.bin diff --git a/modules/overloading/macros/%b_f_spb.sci b/modules/overloading/macros/%b_f_spb.sci new file mode 100755 index 000000000..96402ddb8 --- /dev/null +++ b/modules/overloading/macros/%b_f_spb.sci @@ -0,0 +1,13 @@ +// 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 +function r=%b_f_spb(a,b) + // perform [a;b] where a is a boolean matrix + // and b a boolean sparse matrix + r=[sparse(a);b] +endfunction diff --git a/modules/overloading/macros/%b_g_s.bin b/modules/overloading/macros/%b_g_s.bin Binary files differnew file mode 100755 index 000000000..e56a10bb0 --- /dev/null +++ b/modules/overloading/macros/%b_g_s.bin diff --git a/modules/overloading/macros/%b_g_s.sci b/modules/overloading/macros/%b_g_s.sci new file mode 100755 index 000000000..e8cf10b9e --- /dev/null +++ b/modules/overloading/macros/%b_g_s.sci @@ -0,0 +1,13 @@ +// 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 +function r=%b_g_s(a,b) + // r=a|b + + r=a|(b<>0) +endfunction diff --git a/modules/overloading/macros/%b_g_spb.bin b/modules/overloading/macros/%b_g_spb.bin Binary files differnew file mode 100755 index 000000000..170d3f9ee --- /dev/null +++ b/modules/overloading/macros/%b_g_spb.bin diff --git a/modules/overloading/macros/%b_g_spb.sci b/modules/overloading/macros/%b_g_spb.sci new file mode 100755 index 000000000..5509f0e2b --- /dev/null +++ b/modules/overloading/macros/%b_g_spb.sci @@ -0,0 +1,13 @@ +// 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 +function r=%b_g_spb(a,b) + // perform logical elementwise a|b where a is a boolean sparse matrix + // and b a boolean matrix + r=sparse(a)|b +endfunction diff --git a/modules/overloading/macros/%b_h_s.bin b/modules/overloading/macros/%b_h_s.bin Binary files differnew file mode 100755 index 000000000..b179ce4ff --- /dev/null +++ b/modules/overloading/macros/%b_h_s.bin diff --git a/modules/overloading/macros/%b_h_s.sci b/modules/overloading/macros/%b_h_s.sci new file mode 100755 index 000000000..97ecca492 --- /dev/null +++ b/modules/overloading/macros/%b_h_s.sci @@ -0,0 +1,13 @@ +// 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 +function r=%b_h_s(a,b) + // r=a&b + + r=a&(b<>0) +endfunction diff --git a/modules/overloading/macros/%b_h_spb.bin b/modules/overloading/macros/%b_h_spb.bin Binary files differnew file mode 100755 index 000000000..14269a924 --- /dev/null +++ b/modules/overloading/macros/%b_h_spb.bin diff --git a/modules/overloading/macros/%b_h_spb.sci b/modules/overloading/macros/%b_h_spb.sci new file mode 100755 index 000000000..8cb166cae --- /dev/null +++ b/modules/overloading/macros/%b_h_spb.sci @@ -0,0 +1,13 @@ +// 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 +function r=%b_h_spb(a,b) + // perform logical elementwise and a&b where a is a boolean sparse matrix + // and b a boolean matrix + r=sparse(a)&b +endfunction diff --git a/modules/overloading/macros/%b_i_b.bin b/modules/overloading/macros/%b_i_b.bin Binary files differnew file mode 100755 index 000000000..e29192682 --- /dev/null +++ b/modules/overloading/macros/%b_i_b.bin diff --git a/modules/overloading/macros/%b_i_b.sci b/modules/overloading/macros/%b_i_b.sci new file mode 100755 index 000000000..afae7fec3 --- /dev/null +++ b/modules/overloading/macros/%b_i_b.sci @@ -0,0 +1,17 @@ +// 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 +function M=%b_i_b(varargin) + //insertion of a boolean matrix in an matrix of boolean for more than 2 indices + + rhs=argn(2) + M=varargin(rhs) + M=mlist(["hm","dims","entries"],int32(size(M)),M(:)) + varargin(rhs)=M; + M=generic_i_hm(%f,varargin(:)) +endfunction diff --git a/modules/overloading/macros/%b_i_ce.bin b/modules/overloading/macros/%b_i_ce.bin Binary files differnew file mode 100755 index 000000000..a2e5db8c6 --- /dev/null +++ b/modules/overloading/macros/%b_i_ce.bin diff --git a/modules/overloading/macros/%b_i_ce.sci b/modules/overloading/macros/%b_i_ce.sci new file mode 100755 index 000000000..44d8a9faf --- /dev/null +++ b/modules/overloading/macros/%b_i_ce.sci @@ -0,0 +1,13 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - Vincent Couvert +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should 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=%b_i_ce(varargin) + // Insertion of a boolean matrix in a cell + M=generic_i_ce(varargin(:)) +endfunction + diff --git a/modules/overloading/macros/%b_i_h.bin b/modules/overloading/macros/%b_i_h.bin Binary files differnew file mode 100755 index 000000000..064b45976 --- /dev/null +++ b/modules/overloading/macros/%b_i_h.bin diff --git a/modules/overloading/macros/%b_i_h.sci b/modules/overloading/macros/%b_i_h.sci new file mode 100755 index 000000000..1f591f105 --- /dev/null +++ b/modules/overloading/macros/%b_i_h.sci @@ -0,0 +1,15 @@ +// 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 +function h=%b_i_h(i,v,h) + h=generic_i_h(i,v,h) +endfunction + + + + diff --git a/modules/overloading/macros/%b_i_hm.bin b/modules/overloading/macros/%b_i_hm.bin Binary files differnew file mode 100755 index 000000000..7b69a3817 --- /dev/null +++ b/modules/overloading/macros/%b_i_hm.bin diff --git a/modules/overloading/macros/%b_i_hm.sci b/modules/overloading/macros/%b_i_hm.sci new file mode 100755 index 000000000..6b4ad7020 --- /dev/null +++ b/modules/overloading/macros/%b_i_hm.sci @@ -0,0 +1,15 @@ +// 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 +function M=%b_i_hm(varargin) + + //insertion of an boolean matrix in an hypermatrix + + M=generic_i_hm(%f,varargin(:)) + +endfunction diff --git a/modules/overloading/macros/%b_i_s.bin b/modules/overloading/macros/%b_i_s.bin Binary files differnew file mode 100755 index 000000000..3088f1a61 --- /dev/null +++ b/modules/overloading/macros/%b_i_s.bin diff --git a/modules/overloading/macros/%b_i_s.sci b/modules/overloading/macros/%b_i_s.sci new file mode 100755 index 000000000..26ae99ecb --- /dev/null +++ b/modules/overloading/macros/%b_i_s.sci @@ -0,0 +1,35 @@ +// 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 +function M=%b_i_s(varargin) + + + [lhs,rhs]=argn(0) + M=varargin(rhs) + //if M<>[] then M=M<>0,end + N=varargin(rhs-1)//inserted matrix + index=varargin(1) // + + if rhs==3&(type(index)==10|type(index)==15) then + M=createstruct(index,N) + if type(index(1))<>10 & index(2)=="entries" then + // change struct to cell + f=getfield(1,M);f(1)="ce" + setfield(1,f,M) + end + elseif rhs>4 then //more than 2 indices: insertion of a boolean in a matrix of numbers + M=varargin($) + if M<>[] then varargin($-1)=bool2s(varargin($-1)),end + M=mlist(["hm","dims","entries"],int32(size(M)),M(:)) + varargin($)=M; + M=generic_i_hm(%f,varargin(:)) + else //type conversion + M=varargin($) + M(varargin(1:$-2))=bool2s(varargin($-1)) + end +endfunction diff --git a/modules/overloading/macros/%b_i_sp.bin b/modules/overloading/macros/%b_i_sp.bin Binary files differnew file mode 100755 index 000000000..e55eb7214 --- /dev/null +++ b/modules/overloading/macros/%b_i_sp.bin diff --git a/modules/overloading/macros/%b_i_sp.sci b/modules/overloading/macros/%b_i_sp.sci new file mode 100755 index 000000000..a6124005f --- /dev/null +++ b/modules/overloading/macros/%b_i_sp.sci @@ -0,0 +1,24 @@ +// 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 +function M=%b_i_sp(varargin) + + [lhs,rhs]=argn(0) + M=varargin(rhs) + N=bool2s(varargin(rhs-1))//inserted matrix + if rhs<=4 then + if rhs==3 then + M(varargin(1))=N + else + M(varargin(1),varargin(2))=N + end + else + error(msprintf(_("%s: Multidimensional sparse matrices are not handled.\n"),"%b_i_sp")); + end + +endfunction diff --git a/modules/overloading/macros/%b_i_spb.bin b/modules/overloading/macros/%b_i_spb.bin Binary files differnew file mode 100755 index 000000000..63d9ce57c --- /dev/null +++ b/modules/overloading/macros/%b_i_spb.bin diff --git a/modules/overloading/macros/%b_i_spb.sci b/modules/overloading/macros/%b_i_spb.sci new file mode 100755 index 000000000..f26349523 --- /dev/null +++ b/modules/overloading/macros/%b_i_spb.sci @@ -0,0 +1,30 @@ +// 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 +function a=%b_i_spb(i,j,b,a) + // %spis(i,j,b,a) insert full matrix b into sparse matrix a for some special cases + // a(i,j)=b + //! + + [lhs,rhs]=argn(0) + if rhs==3 then + a=b; + b=j; + [m,n]=size(a) + a=a(:) + a(i)=b + end + [ij,v]=spget(a) + if ij==[] then + a=sparse([],[],[m,n]) + else + j=int((ij(:,1)-1)/m)+1 + i=ij(:,1)-m*(j-1) + a=sparse([i j],v,[m,n]) + end +endfunction diff --git a/modules/overloading/macros/%b_i_st.bin b/modules/overloading/macros/%b_i_st.bin Binary files differnew file mode 100755 index 000000000..939ff8eee --- /dev/null +++ b/modules/overloading/macros/%b_i_st.bin diff --git a/modules/overloading/macros/%b_i_st.sci b/modules/overloading/macros/%b_i_st.sci new file mode 100755 index 000000000..6a4aaf2e1 --- /dev/null +++ b/modules/overloading/macros/%b_i_st.sci @@ -0,0 +1,11 @@ +// 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 +function out=%b_i_st(i,in,out) + out=generic_i_st(i,in,out) +endfunction diff --git a/modules/overloading/macros/%b_iconvert.bin b/modules/overloading/macros/%b_iconvert.bin Binary files differnew file mode 100755 index 000000000..5bcba3f95 --- /dev/null +++ b/modules/overloading/macros/%b_iconvert.bin diff --git a/modules/overloading/macros/%b_iconvert.sci b/modules/overloading/macros/%b_iconvert.sci new file mode 100755 index 000000000..6955d11ee --- /dev/null +++ b/modules/overloading/macros/%b_iconvert.sci @@ -0,0 +1,16 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +function r=%b_iconvert(val,it) + + [m,n]=size(val) + if m*n==0 then r=[],return,end + k=find(val) + r(m,n)=iconvert(0,it) + r(find(val))=iconvert(1,it) +endfunction diff --git a/modules/overloading/macros/%b_matrix.bin b/modules/overloading/macros/%b_matrix.bin Binary files differnew file mode 100755 index 000000000..2e6cc5469 --- /dev/null +++ b/modules/overloading/macros/%b_matrix.bin diff --git a/modules/overloading/macros/%b_matrix.sci b/modules/overloading/macros/%b_matrix.sci new file mode 100755 index 000000000..22f9dab35 --- /dev/null +++ b/modules/overloading/macros/%b_matrix.sci @@ -0,0 +1,11 @@ +// 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 +function y=%b_matrix(a,varargin) + y=%hm_matrix(a,varargin(:)) +endfunction diff --git a/modules/overloading/macros/%b_n_hm.bin b/modules/overloading/macros/%b_n_hm.bin Binary files differnew file mode 100755 index 000000000..31d0f3e13 --- /dev/null +++ b/modules/overloading/macros/%b_n_hm.bin diff --git a/modules/overloading/macros/%b_n_hm.sci b/modules/overloading/macros/%b_n_hm.sci new file mode 100755 index 000000000..38342097f --- /dev/null +++ b/modules/overloading/macros/%b_n_hm.sci @@ -0,0 +1,16 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2011 - INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function M=%b_n_hm(s,M) + //s<>M + if size(s,"*")<> 1 then + M=%t;return + end + M.entries=s<>M.entries +endfunction diff --git a/modules/overloading/macros/%b_o_hm.bin b/modules/overloading/macros/%b_o_hm.bin Binary files differnew file mode 100755 index 000000000..184c5ab6b --- /dev/null +++ b/modules/overloading/macros/%b_o_hm.bin diff --git a/modules/overloading/macros/%b_o_hm.sci b/modules/overloading/macros/%b_o_hm.sci new file mode 100755 index 000000000..6149a3421 --- /dev/null +++ b/modules/overloading/macros/%b_o_hm.sci @@ -0,0 +1,16 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2011 - INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function M=%b_o_hm(s,M) + //s==M + if size(s,"*")<> 1 then + M=%f;return + end + M.entries=s==M.entries +endfunction diff --git a/modules/overloading/macros/%b_string.bin b/modules/overloading/macros/%b_string.bin Binary files differnew file mode 100755 index 000000000..96af16b7a --- /dev/null +++ b/modules/overloading/macros/%b_string.bin diff --git a/modules/overloading/macros/%b_string.sci b/modules/overloading/macros/%b_string.sci new file mode 100755 index 000000000..4ad1a69ee --- /dev/null +++ b/modules/overloading/macros/%b_string.sci @@ -0,0 +1,14 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - E. Segre +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should 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=%b_string(b) + // thanks to E. Segre for this efficient implementation + a=["F" "T"] + s=matrix(a(1+b),size(b)) +endfunction + diff --git a/modules/overloading/macros/%b_tril.bin b/modules/overloading/macros/%b_tril.bin Binary files differnew file mode 100755 index 000000000..e2f21212d --- /dev/null +++ b/modules/overloading/macros/%b_tril.bin diff --git a/modules/overloading/macros/%b_tril.sci b/modules/overloading/macros/%b_tril.sci new file mode 100755 index 000000000..d9a32e6ab --- /dev/null +++ b/modules/overloading/macros/%b_tril.sci @@ -0,0 +1,17 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - Bruno Pincon +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +function [d]=%b_tril(a,k) + // Copyright INRIA (modified by bruno, June 10 2004) + [lhs,rhs] = argn() + if rhs==1 then k=0,end + [m,n] = size(a) + d(m,n) = %f // create an m x n boolean mat with %f elts + i = find(tril(ones(a),k)) + d(i) = a(i) +endfunction diff --git a/modules/overloading/macros/%b_triu.bin b/modules/overloading/macros/%b_triu.bin Binary files differnew file mode 100755 index 000000000..6922127f0 --- /dev/null +++ b/modules/overloading/macros/%b_triu.bin diff --git a/modules/overloading/macros/%b_triu.sci b/modules/overloading/macros/%b_triu.sci new file mode 100755 index 000000000..be85df8e9 --- /dev/null +++ b/modules/overloading/macros/%b_triu.sci @@ -0,0 +1,17 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - Bruno Pincon +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +function [d]=%b_triu(a,k) + // Copyright INRIA (modified by bruno, June 10 2004) + [lhs,rhs]= argn() + if rhs==1 then k=0,end + [m,n] = size(a) + d(m,n) = %f // create an m x n boolean mat with %f elts + i = find(triu(ones(a),k)) + d(i) = a(i) +endfunction diff --git a/modules/overloading/macros/%c_a_c.bin b/modules/overloading/macros/%c_a_c.bin Binary files differnew file mode 100755 index 000000000..db2657c2b --- /dev/null +++ b/modules/overloading/macros/%c_a_c.bin diff --git a/modules/overloading/macros/%c_a_c.sci b/modules/overloading/macros/%c_a_c.sci new file mode 100755 index 000000000..6881671d5 --- /dev/null +++ b/modules/overloading/macros/%c_a_c.sci @@ -0,0 +1,32 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA +// 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 + +function r=%c_a_c(a,b) + // overload string added to a string + // see strops.f + + if (type(a)<> 10 | type(b)<> 10) then + if ( type(a)<> 10 ) then + error(msprintf(_("%s: Wrong type for input argument #%d: String expected.\n"),"%%c_a_c",1)); + end + + if ( type(b)<> 10 ) then + error(msprintf(_("%s: Wrong type for input argument #%d: String expected.\n"),"%%c_a_c",2)); + end + end + + if size(b,"*") == 1 then + b = b(ones(a)); + elseif size(a,"*") == 1 then + a = a(ones(b)); + end + + r = a + b; +endfunction diff --git a/modules/overloading/macros/%c_b_c.bin b/modules/overloading/macros/%c_b_c.bin Binary files differnew file mode 100755 index 000000000..6141284f2 --- /dev/null +++ b/modules/overloading/macros/%c_b_c.bin diff --git a/modules/overloading/macros/%c_b_c.sci b/modules/overloading/macros/%c_b_c.sci new file mode 100755 index 000000000..620a9bb06 --- /dev/null +++ b/modules/overloading/macros/%c_b_c.sci @@ -0,0 +1,21 @@ +// 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 +function r=%c_b_c(varargin) + if size(varargin)==2 then + if type(varargin(1))==10 & type(varargin(2))==10 then + r=asciimat(asciimat(varargin(1)):asciimat(varargin(2))) + end + elseif size(varargin)==3 then + if type(varargin(1))==10 & type(varargin(2))==10 & type(varargin(3))==10 then + r=asciimat(asciimat(varargin(1)):asciimat(varargin(2)):asciimat(varargin(3))) + end + else + error(43) + end +endfunction diff --git a/modules/overloading/macros/%c_b_s.bin b/modules/overloading/macros/%c_b_s.bin Binary files differnew file mode 100755 index 000000000..4b78025e3 --- /dev/null +++ b/modules/overloading/macros/%c_b_s.bin diff --git a/modules/overloading/macros/%c_b_s.sci b/modules/overloading/macros/%c_b_s.sci new file mode 100755 index 000000000..97c3db06a --- /dev/null +++ b/modules/overloading/macros/%c_b_s.sci @@ -0,0 +1,18 @@ +// 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 + +function r=%c_b_s(varargin) + if size(varargin)==3 then + if type(varargin(1))==10 & type(varargin(2))==1 & type(varargin(3))==10 then + r=asciimat(asciimat(varargin(1)):varargin(2):asciimat(varargin(3))) + end + else + error(43) + end +endfunction diff --git a/modules/overloading/macros/%c_diag.bin b/modules/overloading/macros/%c_diag.bin Binary files differnew file mode 100755 index 000000000..e5f4ff4e8 --- /dev/null +++ b/modules/overloading/macros/%c_diag.bin diff --git a/modules/overloading/macros/%c_diag.sci b/modules/overloading/macros/%c_diag.sci new file mode 100755 index 000000000..d549160c5 --- /dev/null +++ b/modules/overloading/macros/%c_diag.sci @@ -0,0 +1,33 @@ +// 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 + +function d=%c_diag(a,k) + + [lhs,rhs]=argn(0) + if rhs==1 then k=0,end + [m,n]=size(a) + if m>1&n>1 then + if k<=0 then + mn=min(m+k,n) + i0=-k+1 + else + mn=min(m,n-k) + i0=k*m+1 + end + a=matrix(a,m*n,1) + i=i0+((0:mn-1)*(m+1)) + d=a(i) + else + nn = max(m,n)+abs(k) + mn=max(m,n) + i=(1:mn)+((1:mn)+(k-1))*nn + d(i)=a + d=matrix(d,nn,nn) + end +endfunction diff --git a/modules/overloading/macros/%c_dsearch.bin b/modules/overloading/macros/%c_dsearch.bin Binary files differnew file mode 100755 index 000000000..ccf466bbe --- /dev/null +++ b/modules/overloading/macros/%c_dsearch.bin diff --git a/modules/overloading/macros/%c_dsearch.sci b/modules/overloading/macros/%c_dsearch.sci new file mode 100755 index 000000000..9261ddb6e --- /dev/null +++ b/modules/overloading/macros/%c_dsearch.sci @@ -0,0 +1,73 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) - 2013 - Samuel GOUGEON +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function [i_bin, counts, outside] = %c_dsearch(T, bins, discrete) + + // CHECKING PARAMETERS + // ------------------- + bins2 = unique(bins) + if size(bins2,"*")~=size(bins,"*") + msg = _("%c: input argument #%d has duplicates\n") + error(msprintf(msg, "dsearch", 2)) + end + + // DISCRETE CASE + // ------------- + if argn(2)>2 & discrete=="d" then + [nb, i_bin] = members(T, bins) + outside = sum(bool2s(nb==0)) + counts = zeros(bins) + inds = [ 0 ; gsort(i_bin(:),"g","i") ; size(bins,"*")+1] + tmp = find(inds(2:$)~=inds(1:$-1))+1 + counts(inds(tmp(1:$-1))) = tmp(2:$)-tmp(1:$-1) + counts($) = sum(T==bins($)) + + // SORTED CASE + // ----------- + else + if or(bins2~=bins) + msg = _("%c: input argument #%d must be sorted in lexicographic order\n") + error(msprintf(msg, "dsearch", 2)) + end + T0 = T + [T, k] = gsort(T0,"g","i") + + // index of the first T(i) >= bins(1) + i0 = min(find(strcmp(T(:), bins(1))>=0)) + if i0==[] then + i0 = 1 + end + // Initializations + i_bin = zeros(T) + counts = zeros(bins(2:$)) + + // Loop over the bins + nT = size(T,"*") + for i = 1:size(bins,"*")-1 + j = find(strcmp(T(i0:$), bins(i+1))<=0) + if j==[] then + counts(i) = 0 + else + counts(i) = max(j) + i_bin(i0+j-1) = i + i0 = i0 + max(j) + end + if i0>nT then + break + end + end + + // Taking into account the original T order + i_bin = i_bin(:) + i_bin(k(:)) = i_bin + i_bin = matrix(i_bin, size(k)) + // + outside = sum(bool2s(i_bin==0)) + end +endfunction diff --git a/modules/overloading/macros/%c_e.bin b/modules/overloading/macros/%c_e.bin Binary files differnew file mode 100755 index 000000000..8a1cee6c9 --- /dev/null +++ b/modules/overloading/macros/%c_e.bin diff --git a/modules/overloading/macros/%c_e.sci b/modules/overloading/macros/%c_e.sci new file mode 100755 index 000000000..85e2dd247 --- /dev/null +++ b/modules/overloading/macros/%c_e.sci @@ -0,0 +1,34 @@ +// 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 +function f=%c_e(varargin) + //A(i,j,k,..) + + rhs=size(varargin) + M=varargin(rhs) + + nind=rhs-1 + dims=[] + for k=3:nind + ind=varargin(k) + if type(ind)==2|type(ind)==129 then ind=horner(ind,1),end + if type(ind)==4 then ind=find(ind),end + if or(ind<>1) then error(21),end + n=size(ind,"*") + dims=[dims,n] + end + f=M(varargin(1:min(2,rhs-1))) + k=find(dims>1) + if k<>[] then + dims(k($)+1:$)=[] + N=prod(dims) + szf=size(f) + f=f(:) + f=mlist(["hm","dims","entries"],int32([szf dims]),matrix(f(:,ones(1,N)),-1,1)) + end +endfunction diff --git a/modules/overloading/macros/%c_eye.bin b/modules/overloading/macros/%c_eye.bin Binary files differnew file mode 100755 index 000000000..0638b673b --- /dev/null +++ b/modules/overloading/macros/%c_eye.bin diff --git a/modules/overloading/macros/%c_eye.sci b/modules/overloading/macros/%c_eye.sci new file mode 100755 index 000000000..4389512ec --- /dev/null +++ b/modules/overloading/macros/%c_eye.sci @@ -0,0 +1,14 @@ +// 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 + +function x=%c_eye(a) + + [m,n]=size(a) + x=eye(m,n) +endfunction diff --git a/modules/overloading/macros/%c_f_s.bin b/modules/overloading/macros/%c_f_s.bin Binary files differnew file mode 100755 index 000000000..08186b576 --- /dev/null +++ b/modules/overloading/macros/%c_f_s.bin diff --git a/modules/overloading/macros/%c_f_s.sci b/modules/overloading/macros/%c_f_s.sci new file mode 100755 index 000000000..5e4e68ec3 --- /dev/null +++ b/modules/overloading/macros/%c_f_s.sci @@ -0,0 +1,17 @@ +// 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 + +function r=%c_f_s(a,b) + + if b==[] then + r=a + else + error(43) + end +endfunction diff --git a/modules/overloading/macros/%c_i_c.bin b/modules/overloading/macros/%c_i_c.bin Binary files differnew file mode 100755 index 000000000..0b98a3766 --- /dev/null +++ b/modules/overloading/macros/%c_i_c.bin diff --git a/modules/overloading/macros/%c_i_c.sci b/modules/overloading/macros/%c_i_c.sci new file mode 100755 index 000000000..95e6c8711 --- /dev/null +++ b/modules/overloading/macros/%c_i_c.sci @@ -0,0 +1,16 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function M=%c_i_c(varargin) + //insertion of an string matrix in an matrix of string for more than 2 indices + M=varargin($) + M=mlist(["hm","dims","entries"],int32(size(M)),M(:)) + varargin($)=M; + M=generic_i_hm("",varargin(:)) +endfunction diff --git a/modules/overloading/macros/%c_i_ce.bin b/modules/overloading/macros/%c_i_ce.bin Binary files differnew file mode 100755 index 000000000..0e3300b79 --- /dev/null +++ b/modules/overloading/macros/%c_i_ce.bin diff --git a/modules/overloading/macros/%c_i_ce.sci b/modules/overloading/macros/%c_i_ce.sci new file mode 100755 index 000000000..0649060e3 --- /dev/null +++ b/modules/overloading/macros/%c_i_ce.sci @@ -0,0 +1,13 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - Vincent Couvert +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should 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=%c_i_ce(varargin) + // Insertion of a string matrix in a cell + M=generic_i_ce(varargin(:)) +endfunction diff --git a/modules/overloading/macros/%c_i_h.bin b/modules/overloading/macros/%c_i_h.bin Binary files differnew file mode 100755 index 000000000..d2d29aa72 --- /dev/null +++ b/modules/overloading/macros/%c_i_h.bin diff --git a/modules/overloading/macros/%c_i_h.sci b/modules/overloading/macros/%c_i_h.sci new file mode 100755 index 000000000..b221ceb01 --- /dev/null +++ b/modules/overloading/macros/%c_i_h.sci @@ -0,0 +1,16 @@ +// 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 + +function h=%c_i_h(i,v,h) + h=generic_i_h(i,v,h) +endfunction + + + + diff --git a/modules/overloading/macros/%c_i_hm.bin b/modules/overloading/macros/%c_i_hm.bin Binary files differnew file mode 100755 index 000000000..4c984493f --- /dev/null +++ b/modules/overloading/macros/%c_i_hm.bin diff --git a/modules/overloading/macros/%c_i_hm.sci b/modules/overloading/macros/%c_i_hm.sci new file mode 100755 index 000000000..c21db3388 --- /dev/null +++ b/modules/overloading/macros/%c_i_hm.sci @@ -0,0 +1,14 @@ +// 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 + +function M=%c_i_hm(varargin) + + //insertion of an polynomial matrix in an hypermatrix + M=generic_i_hm("",varargin(:)) +endfunction diff --git a/modules/overloading/macros/%c_i_lss.bin b/modules/overloading/macros/%c_i_lss.bin Binary files differnew file mode 100755 index 000000000..0624e5875 --- /dev/null +++ b/modules/overloading/macros/%c_i_lss.bin diff --git a/modules/overloading/macros/%c_i_lss.sci b/modules/overloading/macros/%c_i_lss.sci new file mode 100755 index 000000000..5881b23b2 --- /dev/null +++ b/modules/overloading/macros/%c_i_lss.sci @@ -0,0 +1,25 @@ +// 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 + +function s2=%c_i_lss(i,j,s1,s2) + + if type(i)==10 then // sl('dt') + [lhs,rhs]=argn(0) + if rhs<>3 then error(21),end + if i<>"dt" then + error(msprintf(_("%s: Wrong type for input argument #%d.\n"),"%c_i_lss",1)); + end + s2=s1;kf=7 + if j<>"c"&j<>"d" then + error(msprintf(_("%s: Wrong value for input argument #%d: ''c'', ''d'' or a scalar expected.\n"),"%c_i_lss",2)); + end + s2(kf)=j + return + end +endfunction diff --git a/modules/overloading/macros/%c_i_r.bin b/modules/overloading/macros/%c_i_r.bin Binary files differnew file mode 100755 index 000000000..2c0edf966 --- /dev/null +++ b/modules/overloading/macros/%c_i_r.bin diff --git a/modules/overloading/macros/%c_i_r.sci b/modules/overloading/macros/%c_i_r.sci new file mode 100755 index 000000000..ac8bd9128 --- /dev/null +++ b/modules/overloading/macros/%c_i_r.sci @@ -0,0 +1,25 @@ +// 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 + +function s2=%c_i_r(i,j,s1,s2) + + if type(i)==10 then // sl('dt') + [lhs,rhs]=argn(0) + if rhs<>3 then error(21),end + if i<>"dt" then + error(msprintf(_("%s: Wrong type for input argument #%d.\n"),"%c_i_r",1)); + end + s2=s1;kf=4 + if j<>"c"&j<>"d" then + error(msprintf(_("%s: Wrong value for input argument #%d: ''c'', ''d'' or a scalar expected.\n"),"%c_i_r",2)); + end + s2(kf)=j + return + end +endfunction diff --git a/modules/overloading/macros/%c_i_s.bin b/modules/overloading/macros/%c_i_s.bin Binary files differnew file mode 100755 index 000000000..f1484004d --- /dev/null +++ b/modules/overloading/macros/%c_i_s.bin diff --git a/modules/overloading/macros/%c_i_s.sci b/modules/overloading/macros/%c_i_s.sci new file mode 100755 index 000000000..c265fee31 --- /dev/null +++ b/modules/overloading/macros/%c_i_s.sci @@ -0,0 +1,54 @@ +// 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 + +function M=%c_i_s(varargin) + [lhs,rhs]=argn(0) + M=varargin(rhs) + N=varargin(rhs-1)//inserted matrix + index=varargin(1) // + if size(M,"*")<>0 then + error(msprintf(_("%s: Affection of a string in a matrix of numbers is not implemented.\n"),"%c_i_s")); + end + if rhs==3 then + if type(index)==10 then //M.x=N or M.entries=N + M=struct() + M(index)=N + if index=="entries" then //M.entries=N + // change struct to cell + f=getfield(1,M);f(1)="ce" + setfield(1,f,M) + end + return + elseif type(index)==15 then + //M(i).x=N or M(i,j,..).x=N or M.x(i,j,..)or M(i,j..) + //check for a name in the index list + isstr=%f; for ii=index,if type(ii)==10 then isstr=%t,break,end,end + if isstr then + M=createstruct(index,N) + if type(index(1))<>10 & index(2)=="entries" then + // change struct to cell + f=getfield(1,M);f(1)="ce" + setfield(1,f,M) + end + else + M(index(:))=N + end + return + end + + elseif rhs>4 then //more than 2 indices: insertion of a string in an empty matrix + M=varargin($) + M=mlist(["hm","dims","entries"],int32(size(M)),M(:)) + varargin($)=M; + M=generic_i_hm("",varargin(:)) + else //should not occur (hard coded case) + M=var + end +endfunction + diff --git a/modules/overloading/macros/%c_i_st.bin b/modules/overloading/macros/%c_i_st.bin Binary files differnew file mode 100755 index 000000000..a4cae2baf --- /dev/null +++ b/modules/overloading/macros/%c_i_st.bin diff --git a/modules/overloading/macros/%c_i_st.sci b/modules/overloading/macros/%c_i_st.sci new file mode 100755 index 000000000..3779a65bb --- /dev/null +++ b/modules/overloading/macros/%c_i_st.sci @@ -0,0 +1,12 @@ +// 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 + +function out=%c_i_st(i,in,out) + out=generic_i_st(i,in,out) +endfunction diff --git a/modules/overloading/macros/%c_matrix.bin b/modules/overloading/macros/%c_matrix.bin Binary files differnew file mode 100755 index 000000000..87fcfcc3e --- /dev/null +++ b/modules/overloading/macros/%c_matrix.bin diff --git a/modules/overloading/macros/%c_matrix.sci b/modules/overloading/macros/%c_matrix.sci new file mode 100755 index 000000000..2f06566a3 --- /dev/null +++ b/modules/overloading/macros/%c_matrix.sci @@ -0,0 +1,11 @@ +// 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 +function a=%c_matrix(a,varargin) + y=%hm_matrix(a,varargin(:)) +endfunction diff --git a/modules/overloading/macros/%c_n_l.bin b/modules/overloading/macros/%c_n_l.bin Binary files differnew file mode 100755 index 000000000..cd29caf9b --- /dev/null +++ b/modules/overloading/macros/%c_n_l.bin diff --git a/modules/overloading/macros/%c_n_l.sci b/modules/overloading/macros/%c_n_l.sci new file mode 100755 index 000000000..142a351c2 --- /dev/null +++ b/modules/overloading/macros/%c_n_l.sci @@ -0,0 +1,14 @@ +// 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 +function r=%c_n_l(l1,l2) + //%c_n_l(l1,l2) : l1==l2 + //! + + r=%t +endfunction diff --git a/modules/overloading/macros/%c_n_st.bin b/modules/overloading/macros/%c_n_st.bin Binary files differnew file mode 100755 index 000000000..9dfb09320 --- /dev/null +++ b/modules/overloading/macros/%c_n_st.bin diff --git a/modules/overloading/macros/%c_n_st.sci b/modules/overloading/macros/%c_n_st.sci new file mode 100755 index 000000000..e1e0de268 --- /dev/null +++ b/modules/overloading/macros/%c_n_st.sci @@ -0,0 +1,14 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA, Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function r=%c_n_st(a,b) + // implements r=a~=b + // for a a matrix of strings and b a struct + r=%t +endfunction diff --git a/modules/overloading/macros/%c_o_l.bin b/modules/overloading/macros/%c_o_l.bin Binary files differnew file mode 100755 index 000000000..5ca0890c8 --- /dev/null +++ b/modules/overloading/macros/%c_o_l.bin diff --git a/modules/overloading/macros/%c_o_l.sci b/modules/overloading/macros/%c_o_l.sci new file mode 100755 index 000000000..4b81ee8df --- /dev/null +++ b/modules/overloading/macros/%c_o_l.sci @@ -0,0 +1,14 @@ +// 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 + +function [r]=%c_o_l(l1,l2) + //%c_o_l(l1,l2) : l1==l2 + //! + r=%f +endfunction diff --git a/modules/overloading/macros/%c_o_st.bin b/modules/overloading/macros/%c_o_st.bin Binary files differnew file mode 100755 index 000000000..061d2b5da --- /dev/null +++ b/modules/overloading/macros/%c_o_st.bin diff --git a/modules/overloading/macros/%c_o_st.sci b/modules/overloading/macros/%c_o_st.sci new file mode 100755 index 000000000..306060deb --- /dev/null +++ b/modules/overloading/macros/%c_o_st.sci @@ -0,0 +1,14 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA, Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function r=%c_o_st(a,b) + // implements r=a==b + // for a a matrix of strings and b a struct + r=%f +endfunction diff --git a/modules/overloading/macros/%c_ones.bin b/modules/overloading/macros/%c_ones.bin Binary files differnew file mode 100755 index 000000000..3309a3b96 --- /dev/null +++ b/modules/overloading/macros/%c_ones.bin diff --git a/modules/overloading/macros/%c_ones.sci b/modules/overloading/macros/%c_ones.sci new file mode 100755 index 000000000..21a1e770b --- /dev/null +++ b/modules/overloading/macros/%c_ones.sci @@ -0,0 +1,14 @@ +// 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 + +function x=%c_ones(a) + // Copyright INRIA + [m,n]=size(a) + x=ones(m,n) +endfunction diff --git a/modules/overloading/macros/%c_rand.bin b/modules/overloading/macros/%c_rand.bin Binary files differnew file mode 100755 index 000000000..8fadf4d7d --- /dev/null +++ b/modules/overloading/macros/%c_rand.bin diff --git a/modules/overloading/macros/%c_rand.sci b/modules/overloading/macros/%c_rand.sci new file mode 100755 index 000000000..37d084e40 --- /dev/null +++ b/modules/overloading/macros/%c_rand.sci @@ -0,0 +1,14 @@ +// 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 + +function x=%c_rand(a) + + [m,n]=size(a) + x=rand(m,n) +endfunction diff --git a/modules/overloading/macros/%c_tril.bin b/modules/overloading/macros/%c_tril.bin Binary files differnew file mode 100755 index 000000000..043469281 --- /dev/null +++ b/modules/overloading/macros/%c_tril.bin diff --git a/modules/overloading/macros/%c_tril.sci b/modules/overloading/macros/%c_tril.sci new file mode 100755 index 000000000..22822d886 --- /dev/null +++ b/modules/overloading/macros/%c_tril.sci @@ -0,0 +1,21 @@ +// 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 + +function d=%c_tril(a,k) + + [lhs,rhs]=argn(0) + if rhs==1 then k=0,end + + [m,n]=size(a) + i=find(tril(ones(a),k)) + a=matrix(a,m*n,1) + d=emptystr(m*n,1) + d(i)=a(i) + d=matrix(d,m,n) +endfunction diff --git a/modules/overloading/macros/%c_triu.bin b/modules/overloading/macros/%c_triu.bin Binary files differnew file mode 100755 index 000000000..79f162c49 --- /dev/null +++ b/modules/overloading/macros/%c_triu.bin diff --git a/modules/overloading/macros/%c_triu.sci b/modules/overloading/macros/%c_triu.sci new file mode 100755 index 000000000..21b874cf1 --- /dev/null +++ b/modules/overloading/macros/%c_triu.sci @@ -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 + +function d=%c_triu(a,k) + // g_triu - implement triu function for sparse matrix, rationnal matrix ,.. + [lhs,rhs]=argn(0) + if rhs==1 then k=0,end + + [m,n]=size(a) + if k<=0 then + mn=min(m,n-k) + else + mn=min(m+k,n) + end + a=matrix(a,m*n,1) + i=(1:mn)+((1:mn)+(k-1))*m + d=emptystr(m*n,1) + d(i)=a(i) + d=matrix(d,m,n) +endfunction diff --git a/modules/overloading/macros/%cblock_c_cblock.bin b/modules/overloading/macros/%cblock_c_cblock.bin Binary files differnew file mode 100755 index 000000000..409e24727 --- /dev/null +++ b/modules/overloading/macros/%cblock_c_cblock.bin diff --git a/modules/overloading/macros/%cblock_c_cblock.sci b/modules/overloading/macros/%cblock_c_cblock.sci new file mode 100755 index 000000000..3becb6018 --- /dev/null +++ b/modules/overloading/macros/%cblock_c_cblock.sci @@ -0,0 +1,27 @@ +// 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 +function a=%cblock_c_cblock(a,b) + na=length(a) + if na==1 then a=b,return,end + if length(b)==1 then return,end + v1=getfield(na,a) + v2=getfield(2,b) + + if size(v1,1)<>size(v2,1) then error(5),end + if type(v1)==type(v2) then + setfield(na,[v1 v2],a) + else + setfield(na+1,v2,a);na=na+1 + end + + for k=3:length(b) + setfield(na+1,getfield(k,b),a) + na=na+1 + end +endfunction diff --git a/modules/overloading/macros/%cblock_c_s.bin b/modules/overloading/macros/%cblock_c_s.bin Binary files differnew file mode 100755 index 000000000..0a819efd0 --- /dev/null +++ b/modules/overloading/macros/%cblock_c_s.bin diff --git a/modules/overloading/macros/%cblock_c_s.sci b/modules/overloading/macros/%cblock_c_s.sci new file mode 100755 index 000000000..875fa71e6 --- /dev/null +++ b/modules/overloading/macros/%cblock_c_s.sci @@ -0,0 +1,19 @@ +// 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 +function a=%cblock_c_s(a,b) + if b==[] then return,end + v=getfield($,a) + + if size(v,1)<>size(b,1) then error(5),end + if type(b)==type(v) then + setfield($,[v b],a) + else + setfield($+1,b,a) + end +endfunction diff --git a/modules/overloading/macros/%cblock_e.bin b/modules/overloading/macros/%cblock_e.bin Binary files differnew file mode 100755 index 000000000..985de8ce0 --- /dev/null +++ b/modules/overloading/macros/%cblock_e.bin diff --git a/modules/overloading/macros/%cblock_e.sci b/modules/overloading/macros/%cblock_e.sci new file mode 100755 index 000000000..b59e44e34 --- /dev/null +++ b/modules/overloading/macros/%cblock_e.sci @@ -0,0 +1,63 @@ +// 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 +function y=%cblock_e(varargin) + x=varargin($) + dims=[]; + for k=2:length(x) + dims=[dims;size(getfield(k,x))]; + end + m=dims(1,1) // common row number + + dims=cumsum([1 dims(:,2)']); + n=dims($)-1 // number of columns + y=mlist("cblock") + + j=varargin($-1) + if type(j)==2|type(j)==129 then + j=horner(j,n) + elseif type(j)==4 then + j=find(j) + elseif and(size(j)==[-1,-1]) then + j=1:n + end + if length(varargin)==2 then //y=x(i) + if m<>1 then + error(msprintf(_("%s: Syntax x(j) only allowed for row cblock''s.\n"),"cblock_e")); + end + i=1 + else //y=x(i,j) + i=varargin(1) + end + + first=%t + + for k=1:size(j,"*") + jk=j(k) + I=find(jk>=dims(1:$-1)&jk<dims(2:$)) + if I>1 then jk=jk-dims(I)+1,end + v=getfield(I+1,x) + if first then + temp=v(i,jk) + first=%f + else + if type(v)==type(temp) then + temp=[temp v(i,jk)] + else + setfield(length(y)+1,temp,y) + temp=v(i,jk) + end + end + end + if length(y)==1 then + y=temp + else + setfield(length(y)+1,temp,y) + end + +endfunction diff --git a/modules/overloading/macros/%cblock_f_cblock.bin b/modules/overloading/macros/%cblock_f_cblock.bin Binary files differnew file mode 100755 index 000000000..d0b8d3de2 --- /dev/null +++ b/modules/overloading/macros/%cblock_f_cblock.bin diff --git a/modules/overloading/macros/%cblock_f_cblock.sci b/modules/overloading/macros/%cblock_f_cblock.sci new file mode 100755 index 000000000..c6ff50533 --- /dev/null +++ b/modules/overloading/macros/%cblock_f_cblock.sci @@ -0,0 +1,17 @@ +// 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 +function a=%cblock_f_cblock(a,b) + if length(a)==1 then a=b,return,end + if length(b)==1 then return,end + + if length(a)<>length(b) then error(6),end + for k=2:length(a) + setfield(k,[getfield(k,a);getfield(k,b)],a) + end +endfunction diff --git a/modules/overloading/macros/%cblock_p.bin b/modules/overloading/macros/%cblock_p.bin Binary files differnew file mode 100755 index 000000000..fc119ac99 --- /dev/null +++ b/modules/overloading/macros/%cblock_p.bin diff --git a/modules/overloading/macros/%cblock_p.sci b/modules/overloading/macros/%cblock_p.sci new file mode 100755 index 000000000..0e400da78 --- /dev/null +++ b/modules/overloading/macros/%cblock_p.sci @@ -0,0 +1,43 @@ +// 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 + +function %cblock_p(m) + n=size(definedfields(m),"*") + txt=[]; + for k=2:n + txt=[txt string(getfield(k,m))]; + end + l=max(length(txt),"r"); + n=size(txt,2); + for k=1:n + txt(:,k)=part(txt(:,k),1:l(k)); + end + + nlc=lines() + k1=1 + while %t + L=cumsum(l(k1:$)+2) + k2=max(find(L<nlc(1)-3)) + if k2==[] then k2=k1 ;else k2=k1-1+k2;end + t=emptystr(size(txt,1),1); + for i=k1:k2 + t=t+txt(:,i)+" "; + end + if k1==1&k2==n then mprintf("%s\n"," "+t),break,end + + if k1==k2 then + mprintf("%s\n",["Column "+string(k1);" ";" "+t]) + else + mprintf("%s\n",["Columns "+string(k1)+" to "+string(k2);" ";+" "+t;" "]) + end + if k2==n then break,end + k1=k2+1 + end +endfunction + diff --git a/modules/overloading/macros/%cblock_size.bin b/modules/overloading/macros/%cblock_size.bin Binary files differnew file mode 100755 index 000000000..690f3be80 --- /dev/null +++ b/modules/overloading/macros/%cblock_size.bin diff --git a/modules/overloading/macros/%cblock_size.sci b/modules/overloading/macros/%cblock_size.sci new file mode 100755 index 000000000..1d1ce7e0e --- /dev/null +++ b/modules/overloading/macros/%cblock_size.sci @@ -0,0 +1,17 @@ +// 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 +function [m,n]=%cblock_size(M) + n=size(definedfields(M),"*")-1; + m=size(getfield(2,M),1); + n=0 + for k=2:size(definedfields(M),"*") + n=n+size(getfield(k,M),2); + end + if argn(2)==1 then m=[m,n],end +endfunction diff --git a/modules/overloading/macros/%ce_6.bin b/modules/overloading/macros/%ce_6.bin Binary files differnew file mode 100755 index 000000000..166d1118e --- /dev/null +++ b/modules/overloading/macros/%ce_6.bin diff --git a/modules/overloading/macros/%ce_6.sci b/modules/overloading/macros/%ce_6.sci new file mode 100755 index 000000000..11c1ffb87 --- /dev/null +++ b/modules/overloading/macros/%ce_6.sci @@ -0,0 +1,50 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - F. Delebecque, S. Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function s=%ce_6(varargin) + // called in the context of complex struct insertion + // to realize partial extraction + + nind=size(varargin)-1; //the number of indexes + s=varargin($); // the struct + + if size(varargin)==2 & type(varargin(1))==10 then //X.b extraction assumed + f=getfield(1,s); + if or(varargin(1)==f(3:$)) then //field exists + // perform standard field extraction + s=%st_e(varargin(:)); + else //field does not exists + // return empty struct + s=mlist(["ce","dims"],int32([0 0])) + end + + else //X(i,j,k) extraction assumed + //check if indexes are in the dimension bounds + dims=s.dims + if size(dims,"*")<nind then dims($:nind)=1;end + if size(dims,"*")>nind then dims=[dims(1:nind-1) prod(dims(nind:$))];end // Bug 3833 fix: This line where present in %st_6 but not there + indmax=ones(1,nind); + for k=1:nind,indmax(k)=max(varargin(k));end + + if and(indmax<=dims) then //Yes + // perform standard sub-matrix extraction + s=%st_e(varargin(:)); + else // i,j,k out of bounds + f=getfield(1,s);f=f(3:$); + if f==[] then + // the original struct has no field return an empty struct + s.dims=int32([0 0]); + else + // return a 1x1 struct with fields set to [] + for k=1:size(f,"*"),setfield(k+2,[],s);end + s.dims=int32([1 1]); + end + end + end +endfunction diff --git a/modules/overloading/macros/%ce_c_ce.bin b/modules/overloading/macros/%ce_c_ce.bin Binary files differnew file mode 100755 index 000000000..89bb695e5 --- /dev/null +++ b/modules/overloading/macros/%ce_c_ce.bin diff --git a/modules/overloading/macros/%ce_c_ce.sci b/modules/overloading/macros/%ce_c_ce.sci new file mode 100755 index 000000000..3445f9b7c --- /dev/null +++ b/modules/overloading/macros/%ce_c_ce.sci @@ -0,0 +1,38 @@ +// 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 + +function r=%ce_c_ce(a,b) + da=a.dims;if size(da,"*")<2 then da(2)=1,end + db=b.dims;if size(db,"*")<2 then db(2)=1,end + da=double(da);db=double(db); + if size(da,"*")<>size(db,"*") then + error(msprintf(_("%s: In concatenation the number of dimensions for each component must match.\n"),"ce_c_ce")); + end + + kd=find(da<>db) + kd(find(kd==2))=[] + if kd<>[] then + error(5) + end + v=[matrix(1:prod(da),da(1)*da(2),prod(da)/(da(1)*da(2))); + -matrix(1:prod(db),db(1)*db(2),prod(db)/(db(1)*db(2)))] + val=list() + for k=1:size(v,"*") + if v(k)>0 then + val(k)=a.entries(v(k)) + else + val(k)=b.entries(-v(k)) + end + end + da(2)=da(2)+db(2) + r=mlist(["ce","dims","entries"],int32(da),val) +endfunction + + + diff --git a/modules/overloading/macros/%ce_e.bin b/modules/overloading/macros/%ce_e.bin Binary files differnew file mode 100755 index 000000000..ca7755fa6 --- /dev/null +++ b/modules/overloading/macros/%ce_e.bin diff --git a/modules/overloading/macros/%ce_e.sci b/modules/overloading/macros/%ce_e.sci new file mode 100755 index 000000000..646d91b6a --- /dev/null +++ b/modules/overloading/macros/%ce_e.sci @@ -0,0 +1,103 @@ +// 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 +function s=%ce_e(varargin) + //extraction from struct + w=varargin($); + if type(varargin(1))==15 //x(i,j,k).f or x.f(i,j,k) + index=varargin($-1); + if type(index($))==10 then //x(i,j,k).f + f=index($); + //ijk=list2vec(index(1)); + [indx,I]=convertindex(double(w.dims),index(1)(:)); + // I<->ijk + all_fields=getfield(1,w);all_fields=all_fields(3:$); + fieldnum=find(f==all_fields); + if fieldnum==[] then error(msprintf(_("%s: Invalid field name.\n"),"%ce_e"));end + good_list=getfield(2+fieldnum,w); + if size(I,"*")==1 then + s=good_list(I) //list(good_list(I)) ? + else + s=list(); + for kk=1:size(I,"*") + s(kk)=good_list(I(kk));end + end + return; + else //x.f(i,j,k) + f=index(1); + li=w(f); + [indx,I]=convertindex(double(w.dims),index($)(:)); + s=li(I); + return; + end + end + + if type(varargin(1))==10 then + //field x.f + fields=getfield(1,w);nu=find(fields(3:$)==varargin(1)); + if nu==[] then + error(msprintf(_("%s: Wrong value for input argument #%d: a valid field name expected.\n"),"%ce_e",1));return; + end + s=getfield(nu+2,w); + if prod(getfield(2,w))==1 then s=s(1);end + return; + end + + //substruct x(i,j,k...) + nind=size(varargin)-1 + + dims1=double(w.dims) + if nind<size(dims1,"*") then + //reduce the dimension according to the number of indexes + dims1=[dims1(1:nind-1) prod(dims1(nind:$))] + if size(dims1,"*")==1 then dims1=[dims1 1],end + end + //get the "linear" vector of indexes + [indx,I]=convertindex(dims1,varargin(1:$-1)); + dims=zeros(1,nind) + + //computing dimensions of the result + //following loop should be merged in the convertindex code + for kk=1:nind + ik=varargin(kk) + + if or(type(ik)==[2 129]) then + ik=horner(ik,dims1(kk)) + end + if type(ik)==4 then + dims(kk)=max(find(ik)) + elseif size(ik,1)~=-1 then + dims(kk)=size(ik,"*") + else + dims(kk)=dims1(kk) + end + end + + while dims($)==1 then dims($)=[],end + select size(dims,"*") + case 0 then + dims=[1,1] + case 1 then + dims=[dims,1] + else + dims=matrix(dims,1,-1) + end + s=mlist(getfield(1,w),int32(dims)); + sz=size(getfield(1,w),"*"); + for k=3:sz + ww=getfield(k,w); + if type(ww)~=15 then ww=list(ww);end + if prod(dims)==1 + setfield(k,ww(I),s); + elseif prod(dims)==0 //VC 27/05/2004 after modification in convertindex + setfield(k,list(),s); + else + setfield(k,list(ww(I)),s); + end + end +endfunction diff --git a/modules/overloading/macros/%ce_f_ce.bin b/modules/overloading/macros/%ce_f_ce.bin Binary files differnew file mode 100755 index 000000000..7bd23351d --- /dev/null +++ b/modules/overloading/macros/%ce_f_ce.bin diff --git a/modules/overloading/macros/%ce_f_ce.sci b/modules/overloading/macros/%ce_f_ce.sci new file mode 100755 index 000000000..29b5ca1bb --- /dev/null +++ b/modules/overloading/macros/%ce_f_ce.sci @@ -0,0 +1,16 @@ +// 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 + +function R=%ce_f_ce(M1,M2) + //R=[M1' M2']' + R=%ce_t(%ce_c_ce(%ce_t(M1),%ce_t(M2))) +endfunction + + + diff --git a/modules/overloading/macros/%ce_i_ce.bin b/modules/overloading/macros/%ce_i_ce.bin Binary files differnew file mode 100755 index 000000000..02757001d --- /dev/null +++ b/modules/overloading/macros/%ce_i_ce.bin diff --git a/modules/overloading/macros/%ce_i_ce.sci b/modules/overloading/macros/%ce_i_ce.sci new file mode 100755 index 000000000..5a5008305 --- /dev/null +++ b/modules/overloading/macros/%ce_i_ce.sci @@ -0,0 +1,118 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - F. Delebecque, S. Steer, V. Couvert +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should 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=%ce_i_ce(varargin) + //insert the cell varargin($-1) into the cell varargin($) + //at position varargin(1), varargin(2),varargin(3),... + //insert the cell varargin($-1) as the field varargin(1) + //of the cell varargin($) + + [lhs,rhs]=argn(0) + M=varargin($) + N=varargin($-1)//inserted matrix + dims=double(matrix(M.dims,1,-1)); + // Dimensions modified so that convertindex works correctly + + //computing the dimension of the result + nd=size(dims,"*") + + olddims=dims + + reduced_index=%f + if rhs-2>nd then //more indices than M number of dims + dims(nd+1:rhs-2)=1; + elseif rhs-2<nd then //less indices than M number of dims + dims=[dims(1:rhs-3) prod(dims(rhs-2:$))] + if size(find(dims>1),"*")>1 then reduced_index=%t,end + end + //convert N-dimensional indexes to 1-D and extend dims if necessary + [Ndims,I]=convertindex(list(dims,double(matrix(N.dims,1,-1))),varargin(1:$-2)); + Ndims=matrix(Ndims,1,-1) + if reduced_index&or(Ndims<>dims) then error(21),end + if or(Ndims>dims) then + //extend the destination matrix + I1=0 + for k=size(Ndims,"*"):-1:1 + ik1=(1:dims(k))'; + if ik1<>[] then + if Ndims(k)>1 then + if size(I1,"*")>1 then + I1=(Ndims(k)*I1).*.ones(ik1)+ones(I1).*.(ik1-1); + else + I1=Ndims(k)*I1+ik1-1; + end + else + I1=Ndims(k)*I1+ik1-1; + end + end + end + // create the resulting matrix + v2=list();for k=1:prod(Ndims),v2(k)=[];end + + // populate it with M entries + w=getfield(3,M); + if type(w)<>15 then w=list(w),end + if type(v2)<>15 then v2=list(v2);end + for i=1:size(I1,"*"), + if w<>list() then + v2(I1(i)+1)=w(i); + else + v2(I1(i)+1)=[]; + end + end + R=mlist(["ce","dims","entries"],int32(Ndims),v2); + else //the dimension agree + R=M + end + + //insert N entries into result + for k=1 + kf=1 + v2=getfield(3,R); + w=getfield(3,N); + if type(w)<>15 then w=list(w),end + if type(v2)<>15 then v2=list(v2);end + for i=1:size(I,"*"), + if w<>list() then + v2(I(i))=w(i); + else + v2(I(i))=[]; + end + end + if length(v2)==1 then v2=v2(1);end + setfield(3,v2,R); + end + + //remove trailing unitary dimensions + if reduced_index then + Ndims=olddims + else + while Ndims($)==1 then Ndims($)=[],end + select size(Ndims,"*") + case 0 then + Ndims=[1,1] + case 1 then + k=find(olddims<>1&olddims<>0) + if k==[] // M was a scalar + if mtlb_mode() then + Ndims=[1,Ndims] + else + Ndims=[Ndims,1] + end + else // M was a vector + olddims(k)=Ndims + Ndims=olddims; + end + else + Ndims=matrix(Ndims,1,-1) + end + end + R.dims=int32(Ndims) + M=R +endfunction diff --git a/modules/overloading/macros/%ce_i_s.bin b/modules/overloading/macros/%ce_i_s.bin Binary files differnew file mode 100755 index 000000000..878e504c7 --- /dev/null +++ b/modules/overloading/macros/%ce_i_s.bin diff --git a/modules/overloading/macros/%ce_i_s.sci b/modules/overloading/macros/%ce_i_s.sci new file mode 100755 index 000000000..f147663c5 --- /dev/null +++ b/modules/overloading/macros/%ce_i_s.sci @@ -0,0 +1,13 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - V. Couvert +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should 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]=%ce_i_s(varargin) + // Insertion of a cell in [] + M=generic_i_s(varargin(:)) +endfunction diff --git a/modules/overloading/macros/%ce_i_st.bin b/modules/overloading/macros/%ce_i_st.bin Binary files differnew file mode 100755 index 000000000..bd0fe8e1a --- /dev/null +++ b/modules/overloading/macros/%ce_i_st.bin diff --git a/modules/overloading/macros/%ce_i_st.sci b/modules/overloading/macros/%ce_i_st.sci new file mode 100755 index 000000000..ce4be0fe9 --- /dev/null +++ b/modules/overloading/macros/%ce_i_st.sci @@ -0,0 +1,11 @@ +// 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 +function out=%ce_i_st(i,in,out) + out=generic_i_st(i,in,out) +endfunction diff --git a/modules/overloading/macros/%ce_matrix.bin b/modules/overloading/macros/%ce_matrix.bin Binary files differnew file mode 100755 index 000000000..4b23b3a83 --- /dev/null +++ b/modules/overloading/macros/%ce_matrix.bin diff --git a/modules/overloading/macros/%ce_matrix.sci b/modules/overloading/macros/%ce_matrix.sci new file mode 100755 index 000000000..237842ab9 --- /dev/null +++ b/modules/overloading/macros/%ce_matrix.sci @@ -0,0 +1,25 @@ +// 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 +function m=%ce_matrix(m,varargin) + dims=m.dims + new=[] + for v=varargin + new=[new,v] + end + n=find(new==-1) + if size(n,"*")==1 then + d=prod(dims)/abs(prod(new)) + if d<>int(d) then error(60),end + new(n)=d + elseif n<>[] then + error(42) + end + if prod(new)<>prod(dims) then error(60),end + m.dims=new +endfunction diff --git a/modules/overloading/macros/%ce_p.bin b/modules/overloading/macros/%ce_p.bin Binary files differnew file mode 100755 index 000000000..5a241fed1 --- /dev/null +++ b/modules/overloading/macros/%ce_p.bin diff --git a/modules/overloading/macros/%ce_p.sci b/modules/overloading/macros/%ce_p.sci new file mode 100755 index 000000000..ec0743f9c --- /dev/null +++ b/modules/overloading/macros/%ce_p.sci @@ -0,0 +1,11 @@ +// 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 +function %ce_p(c) + disp(%ce_string(c)) +endfunction diff --git a/modules/overloading/macros/%ce_size.bin b/modules/overloading/macros/%ce_size.bin Binary files differnew file mode 100755 index 000000000..0b63a2b8f --- /dev/null +++ b/modules/overloading/macros/%ce_size.bin diff --git a/modules/overloading/macros/%ce_size.sci b/modules/overloading/macros/%ce_size.sci new file mode 100755 index 000000000..36acdafb5 --- /dev/null +++ b/modules/overloading/macros/%ce_size.sci @@ -0,0 +1,37 @@ +// 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 +function varargout=%ce_size(M,job) + // returns dimensions of a cell + [lhs,rhs]=argn(0) + dims=matrix(double(M.dims),1,-1); + if rhs==2 then + if job=="*" then + varargout(1)=prod(dims) + return + elseif type(job)==1 then + if size(job,"*") >1 then error(msprintf(_("%s: Wrong size for input argument #%d.\n"),"%ce_size",2));end + if job<=0|job>size(dims,"*") then + error(msprintf(_("%s: Wrong size for input argument #%d.\n"),"%ce_size",2)); + end + varargout(1)=dims(job) + else + error(msprintf(_("%s: Wrong type for input argument #%d.\n"),"%ce_size",2)); + end + return + end + if lhs==1 then + varargout(1)=matrix(dims,1,-1) + else + if lhs>size(dims,"*") then error(msprintf(_("%s: Wrong number of output arguments.\n"),"%ce_size")),end + for k=1:lhs + varargout(k)=dims(k) + end + end +endfunction + diff --git a/modules/overloading/macros/%ce_string.bin b/modules/overloading/macros/%ce_string.bin Binary files differnew file mode 100755 index 000000000..9e2ddb842 --- /dev/null +++ b/modules/overloading/macros/%ce_string.bin diff --git a/modules/overloading/macros/%ce_string.sci b/modules/overloading/macros/%ce_string.sci new file mode 100755 index 000000000..a5e764ab4 --- /dev/null +++ b/modules/overloading/macros/%ce_string.sci @@ -0,0 +1,60 @@ +// 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 +function str=%ce_string(c) + str=[]; + ll=lines() + val=c.entries + dims=double(c.dims); + if type(val)==15 then // Whole cell array display + for k=1:length(val) + tp=typeof(val(k)) + if tp=="st" then + str(k)="{"+strcat(string(double(val(k).dims)),"x")+" struct}" + //str(k)=%st_string(val(k)) + else + sz=size(val(k)) + if prod(sz)==0 then + str(k)="{}" + else + tmp=sci2exp(val(k),ll(1)) + if size(tmp,"*")==1 then + str(k)=tmp + else + str(k)="{"+strcat(string(sz),"x")+" "+tp+"}" + end + end + end + end + else // cell display + tp=typeof(val) + dims=[1 1] + if tp=="st" then + str="{"+strcat(string(double(val.dims)),"x")+" struct}" + else + sz=size(val) + if prod(sz)==0 then + str="{}" + else + tmp=sci2exp(val,ll(1)) + if size(tmp,"*")==1 then + str=tmp + else + str="{"+strcat(string(sz),"x")+" "+tp+"}" + end + end + end + end + + if size(dims,"*")>2 then + str=hypermat(dims,str) + else + str=matrix(str,dims(1),-1) + end +endfunction + diff --git a/modules/overloading/macros/%ce_t.bin b/modules/overloading/macros/%ce_t.bin Binary files differnew file mode 100755 index 000000000..1970c8c96 --- /dev/null +++ b/modules/overloading/macros/%ce_t.bin diff --git a/modules/overloading/macros/%ce_t.sci b/modules/overloading/macros/%ce_t.sci new file mode 100755 index 000000000..e97a1a093 --- /dev/null +++ b/modules/overloading/macros/%ce_t.sci @@ -0,0 +1,22 @@ +// 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 + +function R=%ce_t(M) + D=double(M.dims) + if size(D,"*")>2 then + error(msprintf(_("%s: Wrong size for input argument #%d: Transpose can not be defined.\n"),"%ce_t",1)); + end + NewInd=matrix(matrix(1:prod(D),D)',1,-1) + F=getfield(1,M) + R=mlist(F,int32([D(2) D(1)])) + for k=3:size(F,"*") + v=getfield(k,M) + setfield(k,list(v(NewInd)),R) + end +endfunction diff --git a/modules/overloading/macros/%champdat_i_h.bin b/modules/overloading/macros/%champdat_i_h.bin Binary files differnew file mode 100755 index 000000000..bf17eab5e --- /dev/null +++ b/modules/overloading/macros/%champdat_i_h.bin diff --git a/modules/overloading/macros/%champdat_i_h.sci b/modules/overloading/macros/%champdat_i_h.sci new file mode 100755 index 000000000..15d0f47f8 --- /dev/null +++ b/modules/overloading/macros/%champdat_i_h.sci @@ -0,0 +1,43 @@ +// 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 +function h=%champdat_i_h(i,v,h) + if type(i)==10 then + set(h,i,v) + elseif type(i)==15 then + hdl=h + p=i($) + if type(p)==1|type(p)==4|type(p)==2|type(p)==129|type(p)==15 then + index=i($) + i($)=null() + else + index=: + end + n=lstsize(i) + for k=1:n-1 + p=i(k) + if type(p)==10 then + hdl=get(hdl,p), + elseif type(p)==1|type(p)==4|type(p)==2|type(p)==129 then + hdl=hdl(p) + elseif type(p)==15 then + hdl=hdl(p(:)) + else + error(msprintf(_("%s: Invalid path.\n"),"%champdat_i_h")); + end + end + if type(index)==15 then + hdl=hdl(index(:)) + else + hdl=hdl(index) + end + set(hdl,i($),v) + else + error(msprintf(_("%s: Wrong type for input argument #%d.\n"),"%champdat_i_h",1)); + end +endfunction diff --git a/modules/overloading/macros/%choose.bin b/modules/overloading/macros/%choose.bin Binary files differnew file mode 100755 index 000000000..e7a9d1e30 --- /dev/null +++ b/modules/overloading/macros/%choose.bin diff --git a/modules/overloading/macros/%choose.sci b/modules/overloading/macros/%choose.sci new file mode 100755 index 000000000..21d3ec2a8 --- /dev/null +++ b/modules/overloading/macros/%choose.sci @@ -0,0 +1,49 @@ +// 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 + + +function [flag]=%choose(x) + // Utility function for use with schur + // [U,dim]=schur(A,choose) returns orth. basis + // for eigenspace associated to selected polynomials + //Needs two global variables : + // %sel = list of selected polynomials (user defined) + // eps = threshold for polynomials selection (eps= 0.0001 as default value) + // see below + // Example: + // A=... + // chis=poly(A,'s'); //Characteristic polynomial + // w=factors(chis); //Factors of chis in a list + // %sel=list(w(2),w(3)); // two selected polynomials + // eps=0.01; //Threshold (see almosteq below) + // [U,dim]=schur(A,%choose); //Ordered Schur form + // U1=U(:,1:dim);chi1=poly(U1'*A*U1,'s') //Check + // w1=factors(chi1) // w1 = %sel ? + // + // Copyright INRIA + eps=0.0001; //modify eps here ! + // + flag=0;s=poly(0,"s"); + select x(1) + case 1 then + // ASSUME x(3) NOT ZERO (for gev pb. x(3)=0 => eval @ infty) + vp=x(2)/x(3);pol=s-vp; //disp(pol); + for p=%sel; if almosteq(pol,p,eps) then flag=1;end;end + case 2 then + pol=s^2-x(2)*s+x(3); //disp(pol); + for p=%sel; if almosteq(pol,p,eps) then flag=1;end;end + end + +endfunction +function trfa=almosteq(pol,p,eps) + // returns %T if pol ~ p %F if not + if degree(pol)<>degree(p) then trfa=%F;return;end + if norm((coeff(p)-coeff(pol)),1)<=eps then trfa=%T;return;end + trfa=%F; +endfunction diff --git a/modules/overloading/macros/%fptr_i_st.bin b/modules/overloading/macros/%fptr_i_st.bin Binary files differnew file mode 100755 index 000000000..3fec0d73d --- /dev/null +++ b/modules/overloading/macros/%fptr_i_st.bin diff --git a/modules/overloading/macros/%fptr_i_st.sci b/modules/overloading/macros/%fptr_i_st.sci new file mode 100755 index 000000000..face6de8a --- /dev/null +++ b/modules/overloading/macros/%fptr_i_st.sci @@ -0,0 +1,12 @@ +// 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 + +function out=%fptr_i_st(i,in,out) + out=generic_i_st(i,in,out) +endfunction diff --git a/modules/overloading/macros/%grayplot_i_h.bin b/modules/overloading/macros/%grayplot_i_h.bin Binary files differnew file mode 100755 index 000000000..4405ff051 --- /dev/null +++ b/modules/overloading/macros/%grayplot_i_h.bin diff --git a/modules/overloading/macros/%grayplot_i_h.sci b/modules/overloading/macros/%grayplot_i_h.sci new file mode 100755 index 000000000..140ca0c11 --- /dev/null +++ b/modules/overloading/macros/%grayplot_i_h.sci @@ -0,0 +1,43 @@ +// 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 +function h=%grayplot_i_h(i,v,h) + if type(i)==10 then + set(h,i,v) + elseif type(i)==15 then + hdl=h + p=i($) + if type(p)==1|type(p)==4|type(p)==2|type(p)==129|type(p)==15 then + index=i($) + i($)=null() + else + index=: + end + n=lstsize(i) + for k=1:n-1 + p=i(k) + if type(p)==10 then + hdl=get(hdl,p), + elseif type(p)==1|type(p)==4|type(p)==2|type(p)==129 then + hdl=hdl(p) + elseif type(p)==15 then + hdl=hdl(p(:)) + else + error(msprintf(_("%s: Invalid path.\n"),"%grayplot_i_h")); + end + end + if type(index)==15 then + hdl=hdl(index(:)) + else + hdl=hdl(index) + end + set(hdl,i($),v) + else + error(msprintf(_("%s: Wrong type for input argument #%d.\n"),"%grayplot_i_h",1)); + end +endfunction diff --git a/modules/overloading/macros/%h_i_st.bin b/modules/overloading/macros/%h_i_st.bin Binary files differnew file mode 100755 index 000000000..d52ef80ae --- /dev/null +++ b/modules/overloading/macros/%h_i_st.bin diff --git a/modules/overloading/macros/%h_i_st.sci b/modules/overloading/macros/%h_i_st.sci new file mode 100755 index 000000000..d081ddc49 --- /dev/null +++ b/modules/overloading/macros/%h_i_st.sci @@ -0,0 +1,11 @@ +// 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 +function out=%h_i_st(i,in,out) + out=generic_i_st(i,in,out) +endfunction diff --git a/modules/overloading/macros/%hmS_k_hmS_generic.bin b/modules/overloading/macros/%hmS_k_hmS_generic.bin Binary files differnew file mode 100755 index 000000000..1f11760f6 --- /dev/null +++ b/modules/overloading/macros/%hmS_k_hmS_generic.bin diff --git a/modules/overloading/macros/%hmS_k_hmS_generic.sci b/modules/overloading/macros/%hmS_k_hmS_generic.sci new file mode 100755 index 000000000..6ade511fa --- /dev/null +++ b/modules/overloading/macros/%hmS_k_hmS_generic.sci @@ -0,0 +1,36 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2014 - Samuel GOUGEON +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function r = %hmS_k_hmS_generic(a, b) + + // Code used by %s_k_hm(), %hm_k_s() and %hm_k_hm() + // Fully rewritten and factorized after bug http://bugzilla.scilab.org/13339 + + sa = size(a) + sb = size(b) + sa = [sa ones(1,ndims(b)-ndims(a))] + sb = [sb ones(1,ndims(a)-ndims(b))] + La = length(a) + Lb = length(b) + a = a(:) + b = b(:) + ia = (1:La).' .*.ones(b); + ib = ones(a) .*. (1:Lb).'; + ir = (ia-1).*Lb + ib; + pa = ind2sub(sa, ia) + pb = ind2sub(sb, ib) + clear ia ib + pr = (pa-1).*repmat(sb, La*Lb, 1) + pb + clear pa pb + nir = sub2ind(sa.*sb, pr) + [v,k] = gsort(nir,"g","i") + clear pr nir v + r = a.*.b + r = matrix(r(ir(k)), sa.*sb) +endfunction diff --git a/modules/overloading/macros/%hm_1_hm.bin b/modules/overloading/macros/%hm_1_hm.bin Binary files differnew file mode 100755 index 000000000..aa2a26967 --- /dev/null +++ b/modules/overloading/macros/%hm_1_hm.bin diff --git a/modules/overloading/macros/%hm_1_hm.sci b/modules/overloading/macros/%hm_1_hm.sci new file mode 100755 index 000000000..876dc19f8 --- /dev/null +++ b/modules/overloading/macros/%hm_1_hm.sci @@ -0,0 +1,14 @@ +// 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 +function M1=%hm_1_hm(M1,M2) + if and(M1.dims==M2.dims)==%f then + error(msprintf(_("%s: Input argument #%d and input argument #%d have incompatible dimensions.\n"),"%hm_1_hm",1,2)); + end + M1.entries=(M1.entries<M2.entries) +endfunction diff --git a/modules/overloading/macros/%hm_1_s.bin b/modules/overloading/macros/%hm_1_s.bin Binary files differnew file mode 100755 index 000000000..df2cebd85 --- /dev/null +++ b/modules/overloading/macros/%hm_1_s.bin diff --git a/modules/overloading/macros/%hm_1_s.sci b/modules/overloading/macros/%hm_1_s.sci new file mode 100755 index 000000000..42ee4ac14 --- /dev/null +++ b/modules/overloading/macros/%hm_1_s.sci @@ -0,0 +1,16 @@ +// 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 + +function M=%hm_1_s(M,s) + //M<s + if size(s,"*")<> 1 then + error(msprintf(_("%s: Wrong type for input argument #%d: A scalar expected.\n"),"%hm_1_s",2)); + end + M("entries")=M("entries")<s +endfunction diff --git a/modules/overloading/macros/%hm_2_hm.bin b/modules/overloading/macros/%hm_2_hm.bin Binary files differnew file mode 100755 index 000000000..8753a7221 --- /dev/null +++ b/modules/overloading/macros/%hm_2_hm.bin diff --git a/modules/overloading/macros/%hm_2_hm.sci b/modules/overloading/macros/%hm_2_hm.sci new file mode 100755 index 000000000..e4ef8b288 --- /dev/null +++ b/modules/overloading/macros/%hm_2_hm.sci @@ -0,0 +1,15 @@ +// 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 + +function M1=%hm_2_hm(M1,M2) + if and(M1.dims==M2.dims)==%f then + error(msprintf(_("%s: Input argument #%d and input argument #%d have incompatible dimensions.\n"),"%hm_2_hm",1,2)); + end + M1.entries=(M1.entries>M2.entries) +endfunction diff --git a/modules/overloading/macros/%hm_2_s.bin b/modules/overloading/macros/%hm_2_s.bin Binary files differnew file mode 100755 index 000000000..61657865d --- /dev/null +++ b/modules/overloading/macros/%hm_2_s.bin diff --git a/modules/overloading/macros/%hm_2_s.sci b/modules/overloading/macros/%hm_2_s.sci new file mode 100755 index 000000000..b1e7a1f75 --- /dev/null +++ b/modules/overloading/macros/%hm_2_s.sci @@ -0,0 +1,15 @@ +// 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 +function M=%hm_2_s(M,s) + //M>s + if size(s,"*")<> 1 then + error(msprintf(_("%s: Wrong type for input argument #%d: A scalar expected.\n"),"%hm_2_s",2)); + end + M("entries")=M("entries")>s +endfunction diff --git a/modules/overloading/macros/%hm_3_hm.bin b/modules/overloading/macros/%hm_3_hm.bin Binary files differnew file mode 100755 index 000000000..26d2d4559 --- /dev/null +++ b/modules/overloading/macros/%hm_3_hm.bin diff --git a/modules/overloading/macros/%hm_3_hm.sci b/modules/overloading/macros/%hm_3_hm.sci new file mode 100755 index 000000000..46b35b988 --- /dev/null +++ b/modules/overloading/macros/%hm_3_hm.sci @@ -0,0 +1,14 @@ +// 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 +function M1=%hm_3_hm(M1,M2) + if and(M1.dims==M2.dims)==%f then + error(msprintf(_("%s: Input argument #%d and input argument #%d have incompatible dimensions.\n"),"%hm_3_hm",1,2)); + end + M1.entries=(M1.entries>=M2.entries) +endfunction diff --git a/modules/overloading/macros/%hm_3_s.bin b/modules/overloading/macros/%hm_3_s.bin Binary files differnew file mode 100755 index 000000000..0cb55494e --- /dev/null +++ b/modules/overloading/macros/%hm_3_s.bin diff --git a/modules/overloading/macros/%hm_3_s.sci b/modules/overloading/macros/%hm_3_s.sci new file mode 100755 index 000000000..14499e330 --- /dev/null +++ b/modules/overloading/macros/%hm_3_s.sci @@ -0,0 +1,15 @@ +// 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 +function M=%hm_3_s(M,s) + //M<=s + if size(s,"*")<> 1 then + error(msprintf(_("%s: Wrong type for input argument #%d: A scalar expected.\n"),"%hm_3_s",2)); + end + M("entries")=M("entries")<=s +endfunction diff --git a/modules/overloading/macros/%hm_4_hm.bin b/modules/overloading/macros/%hm_4_hm.bin Binary files differnew file mode 100755 index 000000000..80d34a669 --- /dev/null +++ b/modules/overloading/macros/%hm_4_hm.bin diff --git a/modules/overloading/macros/%hm_4_hm.sci b/modules/overloading/macros/%hm_4_hm.sci new file mode 100755 index 000000000..7d3e6032c --- /dev/null +++ b/modules/overloading/macros/%hm_4_hm.sci @@ -0,0 +1,14 @@ +// 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 +function M1=%hm_4_hm(M1,M2) + if and(M1.dims==M2.dims)==%f then + error(msprintf(_("%s: Input argument #%d and input argument #%d have incompatible dimensions.\n"),"%hm_4_hm",1,2)); + end + M1.entries=(M1.entries<=M2.entries) +endfunction diff --git a/modules/overloading/macros/%hm_4_s.bin b/modules/overloading/macros/%hm_4_s.bin Binary files differnew file mode 100755 index 000000000..36c9966c7 --- /dev/null +++ b/modules/overloading/macros/%hm_4_s.bin diff --git a/modules/overloading/macros/%hm_4_s.sci b/modules/overloading/macros/%hm_4_s.sci new file mode 100755 index 000000000..1ef73210f --- /dev/null +++ b/modules/overloading/macros/%hm_4_s.sci @@ -0,0 +1,16 @@ +// 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 +function M=%hm_4_s(M,s) + + //M>=s + if size(s,"*")<> 1 then + error(msprintf(_("%s: Wrong type for input argument #%d: A scalar expected.\n"),"%hm_4_s",2)); + end + M("entries")=M("entries")>=s +endfunction diff --git a/modules/overloading/macros/%hm_5.bin b/modules/overloading/macros/%hm_5.bin Binary files differnew file mode 100755 index 000000000..70b45996b --- /dev/null +++ b/modules/overloading/macros/%hm_5.bin diff --git a/modules/overloading/macros/%hm_5.sci b/modules/overloading/macros/%hm_5.sci new file mode 100755 index 000000000..5b693bceb --- /dev/null +++ b/modules/overloading/macros/%hm_5.sci @@ -0,0 +1,11 @@ +// 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 +function M=%hm_5(M) + M.entries=~(M.entries) +endfunction diff --git a/modules/overloading/macros/%hm_a_hm.bin b/modules/overloading/macros/%hm_a_hm.bin Binary files differnew file mode 100755 index 000000000..8a230536b --- /dev/null +++ b/modules/overloading/macros/%hm_a_hm.bin diff --git a/modules/overloading/macros/%hm_a_hm.sci b/modules/overloading/macros/%hm_a_hm.sci new file mode 100755 index 000000000..5d26fa48a --- /dev/null +++ b/modules/overloading/macros/%hm_a_hm.sci @@ -0,0 +1,16 @@ +// 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 + +function M1=%hm_a_hm(M1,M2) + // hypermatrix addition + if or(M1.dims<>M2.dims) then + error(8) + end + M1.entries=M1.entries+M2.entries +endfunction diff --git a/modules/overloading/macros/%hm_a_r.bin b/modules/overloading/macros/%hm_a_r.bin Binary files differnew file mode 100755 index 000000000..9be36a78d --- /dev/null +++ b/modules/overloading/macros/%hm_a_r.bin diff --git a/modules/overloading/macros/%hm_a_r.sci b/modules/overloading/macros/%hm_a_r.sci new file mode 100755 index 000000000..76e363162 --- /dev/null +++ b/modules/overloading/macros/%hm_a_r.sci @@ -0,0 +1,31 @@ +// 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 +function f=%hm_a_r(m,f) + //f= m+f + //! + + [num,den]=f(["num","den"]) + szf=size(den) + szm=size(m) + + if and(szf>=0)&and(szm>=0) then + num=num(:);den=den(:);m=m(:) + if prod(szf)==1&prod(szm)>1 then + den=den(ones(m)) + end + [num,den]=simp(num+m.*den,den) + num=matrix(num,szf) + den=matrix(den,szf) + f=rlist(num,den,f.dt) + else + error(8) + end + +endfunction + diff --git a/modules/overloading/macros/%hm_a_s.bin b/modules/overloading/macros/%hm_a_s.bin Binary files differnew file mode 100755 index 000000000..a1b12e003 --- /dev/null +++ b/modules/overloading/macros/%hm_a_s.bin diff --git a/modules/overloading/macros/%hm_a_s.sci b/modules/overloading/macros/%hm_a_s.sci new file mode 100755 index 000000000..d8c8e6760 --- /dev/null +++ b/modules/overloading/macros/%hm_a_s.sci @@ -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 + +function M1=%hm_a_s(M1,M2) + + // hypermatrix + scalar + + if and(size(M2)==[1 1]) then + M1.entries=M1.entries+M2 + else + dims1=matrix(M1.dims,-1,1) + dims2=size(M2)'; + dims2(3:size(dims1,"*"))=1; + if and(dims1==dims2) then //should not occur + M1.entries=M1.entries+matrix(M2,-1,1) + else + error(8) + end + end +endfunction diff --git a/modules/overloading/macros/%hm_abs.bin b/modules/overloading/macros/%hm_abs.bin Binary files differnew file mode 100755 index 000000000..5f28df1db --- /dev/null +++ b/modules/overloading/macros/%hm_abs.bin diff --git a/modules/overloading/macros/%hm_abs.sci b/modules/overloading/macros/%hm_abs.sci new file mode 100755 index 000000000..964bf39b3 --- /dev/null +++ b/modules/overloading/macros/%hm_abs.sci @@ -0,0 +1,13 @@ +// 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 + +function M=%hm_abs(M) + + M("entries")=abs(M("entries")) +endfunction diff --git a/modules/overloading/macros/%hm_and.bin b/modules/overloading/macros/%hm_and.bin Binary files differnew file mode 100755 index 000000000..7b4545bb5 --- /dev/null +++ b/modules/overloading/macros/%hm_and.bin diff --git a/modules/overloading/macros/%hm_and.sci b/modules/overloading/macros/%hm_and.sci new file mode 100755 index 000000000..a08083b4a --- /dev/null +++ b/modules/overloading/macros/%hm_and.sci @@ -0,0 +1,58 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2010 - INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function x=%hm_and(m,d) + if argn(2)==1|d=="*" then + x=and(m.entries); + return + end + dims=m.dims; + if d=="m" then + d=find(dims>1,1) + if d==[] then + x=and(m.entries); + return + end + end + if type(dims)==8 then + flag=1; + dims=double(dims); + else + flag=0; + end + N=size(dims,"*"); + p1=prod(dims(1:d-1));// step to build one vector on which and is applied + p2=p1*dims(d);//step for beginning of next vectors + ind=(0:p1:p2-1)';// selection for building one vector + deb=(1:p1); + I=ind*ones(deb)+ones(ind)*deb + + ind=(0:p2:prod(dims)-1); + I=ones(ind).*.I+ind.*.ones(I) + + x=and(matrix(m.entries(I),dims(d),-1),1); + + dims(d)=1 + while dims($)==1 then + dims($)=[]; + end + if d==N then + dims=dims(1:$); + else + dims(d)=1; + end + if size(dims,"*")==2 then + x=matrix(x,dims(1),dims(2)); + elseif dims<>[] then + if flag==1 then + dims=int32(dims); + end + x=hypermat(dims,x); + end +endfunction diff --git a/modules/overloading/macros/%hm_bool2s.bin b/modules/overloading/macros/%hm_bool2s.bin Binary files differnew file mode 100755 index 000000000..69740b439 --- /dev/null +++ b/modules/overloading/macros/%hm_bool2s.bin diff --git a/modules/overloading/macros/%hm_bool2s.sci b/modules/overloading/macros/%hm_bool2s.sci new file mode 100755 index 000000000..81538a478 --- /dev/null +++ b/modules/overloading/macros/%hm_bool2s.sci @@ -0,0 +1,12 @@ +// 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 + +function Ms=%hm_bool2s(Mb) + Ms=hypermat(Mb.dims,bool2s(Mb.entries)) +endfunction diff --git a/modules/overloading/macros/%hm_c_hm.bin b/modules/overloading/macros/%hm_c_hm.bin Binary files differnew file mode 100755 index 000000000..9357e3a96 --- /dev/null +++ b/modules/overloading/macros/%hm_c_hm.bin diff --git a/modules/overloading/macros/%hm_c_hm.sci b/modules/overloading/macros/%hm_c_hm.sci new file mode 100755 index 000000000..a708f37b3 --- /dev/null +++ b/modules/overloading/macros/%hm_c_hm.sci @@ -0,0 +1,27 @@ +// 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 + +function M1=%hm_c_hm(M1,M2) + + d1=M1.dims; + d2=M2.dims; + if size(d1,"*")<>size(d2,"*") then + error(msprintf(_("%s: In concatenation the number of dimensions for each component must match.\n"),"%hm_c_hm")); + end + + kd=find(d1<>d2) + kd(find(kd==2))=[] + if kd<>[] then + error(msprintf(_("%s: Inconsistent dimensions.\n"),"%hm_c_hm")); + end + + M1.entries=matrix([matrix(M1.entries,double(d1(1)*d1(2)),-1);... + matrix(M2.entries,double(d2(1)*d2(2)),-1)] ,-1,1) + M1.dims(2)=d1(2)+d2(2) +endfunction diff --git a/modules/overloading/macros/%hm_ceil.bin b/modules/overloading/macros/%hm_ceil.bin Binary files differnew file mode 100755 index 000000000..e87f54603 --- /dev/null +++ b/modules/overloading/macros/%hm_ceil.bin diff --git a/modules/overloading/macros/%hm_ceil.sci b/modules/overloading/macros/%hm_ceil.sci new file mode 100755 index 000000000..0055c9e8c --- /dev/null +++ b/modules/overloading/macros/%hm_ceil.sci @@ -0,0 +1,13 @@ +// 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 + +function M=%hm_ceil(M) + + M("entries")=ceil(M("entries")) +endfunction diff --git a/modules/overloading/macros/%hm_conj.bin b/modules/overloading/macros/%hm_conj.bin Binary files differnew file mode 100755 index 000000000..4c06aa121 --- /dev/null +++ b/modules/overloading/macros/%hm_conj.bin diff --git a/modules/overloading/macros/%hm_conj.sci b/modules/overloading/macros/%hm_conj.sci new file mode 100755 index 000000000..1f21b0fa4 --- /dev/null +++ b/modules/overloading/macros/%hm_conj.sci @@ -0,0 +1,13 @@ +// 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 + +function M=%hm_conj(M) + + M("entries")=conj(M("entries")) +endfunction diff --git a/modules/overloading/macros/%hm_cos.bin b/modules/overloading/macros/%hm_cos.bin Binary files differnew file mode 100755 index 000000000..3e726a54d --- /dev/null +++ b/modules/overloading/macros/%hm_cos.bin diff --git a/modules/overloading/macros/%hm_cos.sci b/modules/overloading/macros/%hm_cos.sci new file mode 100755 index 000000000..e492c9405 --- /dev/null +++ b/modules/overloading/macros/%hm_cos.sci @@ -0,0 +1,13 @@ +// 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 + +function M=%hm_cos(M) + + M("entries")=cos(M("entries")) +endfunction diff --git a/modules/overloading/macros/%hm_cumprod.bin b/modules/overloading/macros/%hm_cumprod.bin Binary files differnew file mode 100755 index 000000000..b363aa9fb --- /dev/null +++ b/modules/overloading/macros/%hm_cumprod.bin diff --git a/modules/overloading/macros/%hm_cumprod.sci b/modules/overloading/macros/%hm_cumprod.sci new file mode 100755 index 000000000..a0170c97c --- /dev/null +++ b/modules/overloading/macros/%hm_cumprod.sci @@ -0,0 +1,97 @@ +// 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 + +function a = %hm_cumprod(varargin) + a = varargin(1) + dims = size(a); + tm = type(a.entries) + + nargs = size(varargin); + select nargs + case 1 + d = 0; + if tm == 8 then + typ = "native"; + else + typ = "double"; + end + case 2 + if or(varargin(2) == ["native", "double"]) then + d = 0; + typ = varargin(2); + else + d = varargin(2); + if tm == 8 then + typ = "native"; + else + typ = "double"; + end + end + case 3 + d = varargin(2); + typ = varargin(3); + else + error(msprintf(_("%s: Wrong number of input argument(s): %d to %d expected.\n"),"cumprod", 1, 3)); + end + + // Check second argument : d + select type(d) + case 1 + if size(d,'*') <> 1 then + error(msprintf(_("%s: Wrong size for input argument #%d: A scalar expected.\n"),"cumprod", 2)) + end + if int(d) <> d | d < 0 then + error(msprintf(_("%s: Wrong value for input argument #%d: Integer >= %d expected.\n"),"cumprod", 2, 1)) + end + case 10 + if size(d,'*') <> 1 then + error(msprintf(_("%s: Wrong size for input argument #%d: A string expected.\n"),"cumprod",2)) + end + if and(d<>["r","c","*","m"]) then + error(msprintf(_("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"),.. + "cumprod",2,"""*"",""r"",""c"",""m""")) + end + pos=[1,2,0,find(dims>1,1)]; + d=pos(find(d==["r","c","*","m"])) + else + error(msprintf(_("%s: Wrong type for input argument #%d: A string or scalar expected.\n"),"cumprod",2)) + end + + // Check third argument + if type(typ)<>10 then + error(msprintf(_("%s: Wrong type for input argument #%d: A string expected.\n"),"cumprod",3)) + end + + if size(typ,"*")<>1 then + error(msprintf(_("%s: Wrong size for input argument #%d: A string expected.\n"),"cumprod",3)) + end + + if and(typ <> ["native" "double"]) then + error(msprintf(_("%s: Wrong value for input argument #%d: ""%s"" or ""%s"" expected.\n"),"cumprod", 3, "native", "double")); + end + + if d == 0 then // '*' + a=matrix(cumprod(a.entries, "*", typ), dims); + elseif d > size(dims,"*") then + //requested summation direction exceeds array dims, return the array, converted + //to double if necessary. + if typ == "double" & or(tm == [4 8]) then + a.entries=double(a.entries), + end + a=a + else + //permute the array dimension to put the selected dimension first + p=1:size(dims,"*"); + p([1,d])=p([d,1]); + a=matrix(permute(a,p),dims(d),-1) + a=cumprod(a,1,typ); + //permute back + a=permute(matrix(a,dims(p)),p) + end +endfunction diff --git a/modules/overloading/macros/%hm_cumsum.bin b/modules/overloading/macros/%hm_cumsum.bin Binary files differnew file mode 100755 index 000000000..221114149 --- /dev/null +++ b/modules/overloading/macros/%hm_cumsum.bin diff --git a/modules/overloading/macros/%hm_cumsum.sci b/modules/overloading/macros/%hm_cumsum.sci new file mode 100755 index 000000000..ddc411fbc --- /dev/null +++ b/modules/overloading/macros/%hm_cumsum.sci @@ -0,0 +1,110 @@ +// 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 + +function a = %hm_cumsum(varargin) + a = varargin(1) + dims = size(a); + tm = type(a.entries) + + nargs = size(varargin); + select nargs + case 1 + d = 0; + if tm == 8 then + typ = "native"; + else + typ = "double"; + end + case 2 + if or(varargin(2) == ["native", "double"]) then + d = 0; + typ = varargin(2); + else + d = varargin(2); + if tm == 8 then + typ = "native"; + else + typ = "double"; + end + end + case 3 + d = varargin(2); + typ = varargin(3); + else + error(msprintf(_("%s: Wrong number of input argument(s): %d to %d expected.\n"),"cumsum", 1, 3)); + end + + // Check second argument : d + select type(d) + case 1 + if size(d,'*') <> 1 then + error(msprintf(_("%s: Wrong size for input argument #%d: A scalar expected.\n"),"cumsum", 2)) + end + if int(d) <> d | d < 0 then + error(msprintf(_("%s: Wrong value for input argument #%d: Integer >= %d expected.\n"),"cumsum", 2, 1)) + end + case 10 + if size(d,'*') <> 1 then + error(msprintf(_("%s: Wrong size for input argument #%d: A string expected.\n"),"cumsum",2)) + end + if and(d<>["r","c","*","m"]) then + error(msprintf(_("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"),.. + "cumsum",2,"""*"",""r"",""c"",""m""")) + end + pos=[1,2,0,find(dims>1,1)]; + d=pos(find(d==["r","c","*","m"])) + else + error(msprintf(_("%s: Wrong type for input argument #%d: A string or scalar expected.\n"),"cumsum",2)) + end + + // Check third argument + if type(typ)<>10 then + error(msprintf(_("%s: Wrong type for input argument #%d: A string expected.\n"),"cumsum",3)) + end + + if size(typ,"*")<>1 then + error(msprintf(_("%s: Wrong size for input argument #%d: A string expected.\n"),"cumsum",3)) + end + + if and(typ <> ["native" "double"]) then + error(msprintf(_("%s: Wrong value for input argument #%d: ""%s"" or ""%s"" expected.\n"),"cumsum", 3, "native", "double")); + end + + if d == 0 then // '*' + a=matrix(cumsum(a.entries, "*", typ), dims); + elseif d > size(dims,"*") then + //requested summation direction exceeds array dims, return the array, converted + //to double if necessary. + if typ == "double" & or(tm == [4 8]) then + a.entries=double(a.entries), + end + a=a + else + //permute the array dimension to put the selected dimension first + p=1:size(dims,"*"); + p([1,d])=p([d,1]); + a=matrix(permute(a,p),dims(d),-1) + a=cumsum(a,1,typ); + //permute back + a=permute(matrix(a,dims(p)),p) +// N=size(dims,"*"); +// p1=prod(dims(1:d-1));//summation step +// p2=p1*dims(d);//step for next to sum +// ind=(0:p1:p2-1);// selection for summation +// deb=(1:p1)'; +// I=deb*ones(ind)+ones(deb)*ind +// +// +// ind=(0:p2:prod(dims)-1)'; +// I=ones(ind).*.I+ind.*.ones(I) +// a=cumsum(matrix(a.entries(I),-1,dims(d)),2,typ) +// a(I)=matrix(a,-1,1) +// a=hypermat(dims,a) + end +endfunction diff --git a/modules/overloading/macros/%hm_d_hm.bin b/modules/overloading/macros/%hm_d_hm.bin Binary files differnew file mode 100755 index 000000000..a0df16760 --- /dev/null +++ b/modules/overloading/macros/%hm_d_hm.bin diff --git a/modules/overloading/macros/%hm_d_hm.sci b/modules/overloading/macros/%hm_d_hm.sci new file mode 100755 index 000000000..2d43f9506 --- /dev/null +++ b/modules/overloading/macros/%hm_d_hm.sci @@ -0,0 +1,17 @@ +// 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 + +function M2=%hm_d_hm(M1,M2) + + if and(M1("dims")==M2("dims")) then + M2("entries")=M1("entries")./M2("entries") + else + error(msprintf(_("%s: Inconsistent element-wise operation.\n"),"%hm_d_hm")); + end +endfunction diff --git a/modules/overloading/macros/%hm_d_s.bin b/modules/overloading/macros/%hm_d_s.bin Binary files differnew file mode 100755 index 000000000..d0007bf85 --- /dev/null +++ b/modules/overloading/macros/%hm_d_s.bin diff --git a/modules/overloading/macros/%hm_d_s.sci b/modules/overloading/macros/%hm_d_s.sci new file mode 100755 index 000000000..c3f115b3c --- /dev/null +++ b/modules/overloading/macros/%hm_d_s.sci @@ -0,0 +1,17 @@ +// 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 + +function M1=%hm_d_s(M1,M2) + + if size(M2,"*")<>1 then + error(msprintf(_("%s: Inconsistent element-wise operation.\n"),"%hm_d_s")); + else + M1("entries")=M1("entries")./M2 + end +endfunction diff --git a/modules/overloading/macros/%hm_degree.bin b/modules/overloading/macros/%hm_degree.bin Binary files differnew file mode 100755 index 000000000..c9ffdaf55 --- /dev/null +++ b/modules/overloading/macros/%hm_degree.bin diff --git a/modules/overloading/macros/%hm_degree.sci b/modules/overloading/macros/%hm_degree.sci new file mode 100755 index 000000000..782ac47bc --- /dev/null +++ b/modules/overloading/macros/%hm_degree.sci @@ -0,0 +1,12 @@ +// 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 + +function P=%hm_degree(P) + P("entries")=degree(P("entries")) +endfunction diff --git a/modules/overloading/macros/%hm_dsearch.bin b/modules/overloading/macros/%hm_dsearch.bin Binary files differnew file mode 100755 index 000000000..637b6750e --- /dev/null +++ b/modules/overloading/macros/%hm_dsearch.bin diff --git a/modules/overloading/macros/%hm_dsearch.sci b/modules/overloading/macros/%hm_dsearch.sci new file mode 100755 index 000000000..621cbe01b --- /dev/null +++ b/modules/overloading/macros/%hm_dsearch.sci @@ -0,0 +1,17 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2013 - Samuel Gougeon +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + + +function [ind, occ, info] = %hm_dsearch(H, r, flag) + if argn(2)<3 then + flag = "c"; + end + [ind, occ, info] = dsearch(H(:), r, flag) + ind = matrix(ind, size(H)) +endfunction diff --git a/modules/overloading/macros/%hm_e.bin b/modules/overloading/macros/%hm_e.bin Binary files differnew file mode 100755 index 000000000..4a0ed1dd2 --- /dev/null +++ b/modules/overloading/macros/%hm_e.bin diff --git a/modules/overloading/macros/%hm_e.sci b/modules/overloading/macros/%hm_e.sci new file mode 100755 index 000000000..4b8663b99 --- /dev/null +++ b/modules/overloading/macros/%hm_e.sci @@ -0,0 +1,96 @@ +// 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 + +function [M] = %hm_e(varargin) + + // version modified by Bruno + // extract an sub_hypermatrix + [lhs,rhs]=argn(0) + M=varargin(rhs) + dims=double(M.dims) // new hypermatrices have an int32 dims field + nbdims = size(dims,"*"); + nb_index_vect = rhs-1; + + if nb_index_vect > nbdims then + error(msprintf(_("%s: Too many subscripts.\n"),"%hm_e")); + elseif nb_index_vect < nbdims then + nbdims = nb_index_vect; + dims(nbdims) = prod(dims(nbdims:$)) + end + + I = 0 + dims1 = []; + + for k=nb_index_vect:-1:1 + ik=varargin(k) + type_ik = type(ik) + if type_ik==1 then // usual subscript + if min(size(ik))<0 then + if rhs==2 then // subscript is : in fact + M=matrix(M.entries,-1,1) + return + end + ik=1:dims(k) + else + ik=round(ik) + if min(ik) <= 0 then, error(21), end + if max(ik) > dims(k) then, error(21), end + end + elseif type_ik==2 then // poly subscript + ik=round(horner(ik,dims(k))) + if min(ik) <= 0 then, error(21), end + if max(ik) > dims(k) then, error(21), end + elseif type_ik == 129 then // implicit poly subscript (p.e. 1:$) + ik=round(horner(ik(:),dims(k))) + if min(ik(1),ik(3)) <= 0 then, error(21), end + if max(ik(1),ik(3)) > dims(k) then, error(21), end + ik = ik(1):ik(2):ik(3) + elseif type_ik==4 | type_ik==6 then // boolean and sparse boolean subscript + if size(ik,"*") ~= dims(k) then, error(21), end + ik=find(ik) + elseif typeof(ik) == "hypermat" then // hm boolean subscript + if type(ik.entries) ~= 4 then, error(21), end + if size(ik,"*") ~= dims(k) then, error(21), end + ik=find(ik.entries) + else + error(21) + end + + nik = size(ik, "*"); + if (nik == 0) then, M=[], return, end + dims1 = [nik, dims1] + if nik > 1 then + ik=ik(:) + if size(I,"*") > 1 then + I=(dims(k)*I).*.ones(ik)+ones(I).*.(ik-1) + else + I=dims(k)*I+ik-1 + end + else + I=dims(k)*I+ik-1 + end + end + // + dims1(max(find(dims1>1))+1:$)=[] // elimine la fin si les dims sont 1 + // exemple dims1 = [2 4 1 6 7 1 1] alors on obtient dims1 = [2 4 1 6 7] + // (pour compatibilite avec Matlab) + + select size(dims1,"*") + case 0 + M = M.entries(I+1) + case 1 + M = M.entries(I+1) + case 2 + M = matrix(M.entries(I+1),dims1(1),dims1(2)) + else + M = mlist(["hm","dims","entries"],int32(dims1),M.entries(I+1)) + end + +endfunction + diff --git a/modules/overloading/macros/%hm_exp.bin b/modules/overloading/macros/%hm_exp.bin Binary files differnew file mode 100755 index 000000000..b69067199 --- /dev/null +++ b/modules/overloading/macros/%hm_exp.bin diff --git a/modules/overloading/macros/%hm_exp.sci b/modules/overloading/macros/%hm_exp.sci new file mode 100755 index 000000000..910651f1e --- /dev/null +++ b/modules/overloading/macros/%hm_exp.sci @@ -0,0 +1,12 @@ +// 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 + +function M=%hm_exp(M) + M("entries")=exp(M("entries")) +endfunction diff --git a/modules/overloading/macros/%hm_eye.bin b/modules/overloading/macros/%hm_eye.bin Binary files differnew file mode 100755 index 000000000..ca847a014 --- /dev/null +++ b/modules/overloading/macros/%hm_eye.bin diff --git a/modules/overloading/macros/%hm_eye.sci b/modules/overloading/macros/%hm_eye.sci new file mode 100755 index 000000000..21cec6491 --- /dev/null +++ b/modules/overloading/macros/%hm_eye.sci @@ -0,0 +1,22 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2013 - Scilab Enterprises - Charlotte HECQUET +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should 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=%hm_eye(varargin) + + if size(varargin) <> 1 then + error(msprintf(_("%s: Wrong number of input argument: %d to %d expected.\n"), "eye", 1, 2)); + end + if typeof(varargin(1)) <> "hypermat" then + error(msprintf(_("%s: Wrong type for input argument #%d: Hypermatrix expected.\n"), "eye", 1)); + end + + M = zeros(varargin(1)); + M(sub2ind(size(varargin(1)), (1:min(size(varargin(1))))' .*. ones(1,ndims(varargin(1))))) = 1; + +endfunction diff --git a/modules/overloading/macros/%hm_f_hm.bin b/modules/overloading/macros/%hm_f_hm.bin Binary files differnew file mode 100755 index 000000000..c32ec03c5 --- /dev/null +++ b/modules/overloading/macros/%hm_f_hm.bin diff --git a/modules/overloading/macros/%hm_f_hm.sci b/modules/overloading/macros/%hm_f_hm.sci new file mode 100755 index 000000000..86fc5f3c8 --- /dev/null +++ b/modules/overloading/macros/%hm_f_hm.sci @@ -0,0 +1,27 @@ +// 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 + +function M1=%hm_f_hm(M1,M2) + + d1=M1.dims; + d2=M2.dims; + if size(d1,"*")<>size(d2,"*") then + error(msprintf(_("%s: In concatenation the number of dimensions for each component must match.\n"),"%hm_f_hm")); + end + + + kd=find(d1(2:$)<>d2(2:$)) + if kd<>[] then + error(msprintf(_("%s: Inconsistent dimensions.\n"),"%hm_f_hm")); + end + + M1.entries=matrix([matrix(M1.entries,double(d1(1)),-1); + matrix(M2.entries,double(d2(1)),-1)],-1,1) + M1.dims(1)=d1(1)+d2(1); +endfunction diff --git a/modules/overloading/macros/%hm_find.bin b/modules/overloading/macros/%hm_find.bin Binary files differnew file mode 100755 index 000000000..a28fb120f --- /dev/null +++ b/modules/overloading/macros/%hm_find.bin diff --git a/modules/overloading/macros/%hm_find.sci b/modules/overloading/macros/%hm_find.sci new file mode 100755 index 000000000..456e7bcf4 --- /dev/null +++ b/modules/overloading/macros/%hm_find.sci @@ -0,0 +1,33 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) -2011 - INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function varargout=%hm_find(Mb,nmax) + lhs=argn(1) + if argn(2)==2 then + I=find(Mb.entries,nmax) + else + I=find(Mb.entries) + end + if lhs==1 then + varargout=list(I) + else + dims=size(Mb); + nd=size(dims,"*") + if nd>lhs then + dims=[dims(1:lhs-1) prod(dims(lhs:$))] + else + dims(nd+1:lhs)=1; + end + varargout=list() + I=ind2sub(dims,I) + for k=1:size(I,2) + varargout(k)=I(:,k)' + end + end +endfunction diff --git a/modules/overloading/macros/%hm_floor.bin b/modules/overloading/macros/%hm_floor.bin Binary files differnew file mode 100755 index 000000000..77fef8ffc --- /dev/null +++ b/modules/overloading/macros/%hm_floor.bin diff --git a/modules/overloading/macros/%hm_floor.sci b/modules/overloading/macros/%hm_floor.sci new file mode 100755 index 000000000..766ecc29e --- /dev/null +++ b/modules/overloading/macros/%hm_floor.sci @@ -0,0 +1,13 @@ +// 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 + +function M=%hm_floor(M) + + M("entries")=floor(M("entries")) +endfunction diff --git a/modules/overloading/macros/%hm_g_hm.bin b/modules/overloading/macros/%hm_g_hm.bin Binary files differnew file mode 100755 index 000000000..768c26305 --- /dev/null +++ b/modules/overloading/macros/%hm_g_hm.bin diff --git a/modules/overloading/macros/%hm_g_hm.sci b/modules/overloading/macros/%hm_g_hm.sci new file mode 100755 index 000000000..90bec7041 --- /dev/null +++ b/modules/overloading/macros/%hm_g_hm.sci @@ -0,0 +1,27 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) Bruno Pincon +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should 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=%hm_g_hm(a,b) + // define the operation a | b for boolean hypermatrices a and b + // a | b is defined if a and b are boolean hypermatrices + // and if a and b have the same dimensions + // or if one have only one element + if type(a.entries) ~= 4 | type(b.entries) ~= 4 then + error(msprintf(_("%s: Operand is not a boolean hypermatrix.\n"),"%hm_g_hm")); + end + if and(a.dims==b.dims) then + r=hypermat(a.dims,a.entries | b.entries) + elseif prod(a.dims) == 1 then + r=hypermat(b.dims,a.entries | b.entries) + elseif prod(b.dims) == 1 then + r=hypermat(a.dims,a.entries | b.entries) + else + error(msprintf(_("%s: Incompatible operand dimensions.\n"),"%hm_g_hm")); + end +endfunction diff --git a/modules/overloading/macros/%hm_h_hm.bin b/modules/overloading/macros/%hm_h_hm.bin Binary files differnew file mode 100755 index 000000000..8710e4437 --- /dev/null +++ b/modules/overloading/macros/%hm_h_hm.bin diff --git a/modules/overloading/macros/%hm_h_hm.sci b/modules/overloading/macros/%hm_h_hm.sci new file mode 100755 index 000000000..41bcf0361 --- /dev/null +++ b/modules/overloading/macros/%hm_h_hm.sci @@ -0,0 +1,28 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) Bruno Pincon +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should 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=%hm_h_hm(a,b) + // define the operation a & b for boolean hypermatrices a and b + // a & b is defined if a and b are boolean hypermatrices + // and if a and b have the same dimensions + // or if one have only one element + if type(a.entries) ~= 4 | type(b.entries) ~= 4 then + error(msprintf(_("%s: Wrong type for input argument(s): hypermatrix expected.\n"),"%hm_h_hm")); + end + if and(a.dims==b.dims) then + r=hypermat(a.dims,a.entries & b.entries) + elseif prod(a.dims) == 1 then + r=hypermat(b.dims,a.entries & b.entries) + elseif prod(b.dims) == 1 then + r=hypermat(a.dims,a.entries & b.entries) + else + error(msprintf(_("%s: Incompatible operand dimensions.\n"),"%hm_h_hm")); + end +endfunction diff --git a/modules/overloading/macros/%hm_i_b.bin b/modules/overloading/macros/%hm_i_b.bin Binary files differnew file mode 100755 index 000000000..45b3012d3 --- /dev/null +++ b/modules/overloading/macros/%hm_i_b.bin diff --git a/modules/overloading/macros/%hm_i_b.sci b/modules/overloading/macros/%hm_i_b.sci new file mode 100755 index 000000000..d6558b62d --- /dev/null +++ b/modules/overloading/macros/%hm_i_b.sci @@ -0,0 +1,72 @@ +// 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 + + +function M=%hm_i_b(varargin) + //insertion of an hypermatrix in a matrix derived from %hm_i_hm + [lhs,rhs]=argn(0) + M=varargin(rhs) //Matrix + N=varargin(rhs-1)//inserted hypermatrix + dims=size(M)' + + v=M(:) + + + nd=size(dims,"*") + if rhs-2>nd then dims(nd+1:rhs-2)=1;end + + //convert N-dimensional indexes to 1-D + [Ndims,I]=convertindex(list(dims,double(matrix(N.dims,1,-1))),varargin(1:$-2)) + + if or(Ndims>dims) then + //extend the destination matrix + I1=0 + for k=size(Ndims,"*"):-1:1 + ik1=(1:dims(k))' + if ik1<>[] then + if Ndims(k)>1 then + if size(I1,"*")>1 then + I1=(Ndims(k)*I1).*.ones(ik1)+ones(I1).*.(ik1-1) + else + I1=Ndims(k)*I1+ik1-1 + end + else + I1=Ndims(k)*I1+ik1-1 + end + end + end + select type(v) + case 1 + v1=zeros(prod(Ndims),1) + case 2 then + v1=zeros(prod(Ndims),1) + case 4 then + v1=(zeros(prod(Ndims),1)==1) + case 8 then + v1=iconvert(zeros(prod(Ndims),1),inttype(v)) + case 10 then + v1=emptystr(prod(Ndims),1) + end + v1(I1+1)=v;v=v1 + end + + v(I)=matrix(N.entries,-1,1) + + while Ndims($)==1 then Ndims($)=[],end + select size(Ndims,"*") + case 0 + M=v + case 1 + M=v + case 2 + M=matrix(v,Ndims(1),Ndims(2)) + else + M=mlist(["hm","dims","entries"],matrix(Ndims,1,-1),v) + end +endfunction diff --git a/modules/overloading/macros/%hm_i_ce.bin b/modules/overloading/macros/%hm_i_ce.bin Binary files differnew file mode 100755 index 000000000..54ca2f6a1 --- /dev/null +++ b/modules/overloading/macros/%hm_i_ce.bin diff --git a/modules/overloading/macros/%hm_i_ce.sci b/modules/overloading/macros/%hm_i_ce.sci new file mode 100755 index 000000000..1208ef47b --- /dev/null +++ b/modules/overloading/macros/%hm_i_ce.sci @@ -0,0 +1,13 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - Vincent Couvert +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should 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=%hm_i_ce(varargin) + // Insertion of a hypermatrix in a cell + M=generic_i_ce(varargin(:)) +endfunction diff --git a/modules/overloading/macros/%hm_i_h.bin b/modules/overloading/macros/%hm_i_h.bin Binary files differnew file mode 100755 index 000000000..a543a2b69 --- /dev/null +++ b/modules/overloading/macros/%hm_i_h.bin diff --git a/modules/overloading/macros/%hm_i_h.sci b/modules/overloading/macros/%hm_i_h.sci new file mode 100755 index 000000000..ebb12ebe1 --- /dev/null +++ b/modules/overloading/macros/%hm_i_h.sci @@ -0,0 +1,12 @@ +// 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 + +function h=%hm_i_h(i,v,h) + h=generic_i_h(i,v,h) +endfunction diff --git a/modules/overloading/macros/%hm_i_hm.bin b/modules/overloading/macros/%hm_i_hm.bin Binary files differnew file mode 100755 index 000000000..83c782f74 --- /dev/null +++ b/modules/overloading/macros/%hm_i_hm.bin diff --git a/modules/overloading/macros/%hm_i_hm.sci b/modules/overloading/macros/%hm_i_hm.sci new file mode 100755 index 000000000..a589561ca --- /dev/null +++ b/modules/overloading/macros/%hm_i_hm.sci @@ -0,0 +1,72 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - Vincent Couvert +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should 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=%hm_i_hm(varargin) + + //insertion of a matrix in an hypermatrix + [lhs,rhs]=argn(0) + M=varargin(rhs) + N=varargin(rhs-1)//inserted matrix + dims=matrix(double(M.dims),-1,1); + + v=matrix(M.entries,-1,1); + + + nd=size(dims,"*") + if rhs-2>nd then dims(nd+1:rhs-2)=1;end + + //convert N-dimensional indexes to 1-D + [Ndims,I]=convertindex(list(dims,double(matrix(N.dims,1,-1))),varargin(1:$-2)) + + if or(Ndims>dims) then + //extend the destination matrix + I1=0 + for k=size(Ndims,"*"):-1:1 + ik1=(1:dims(k))' + if ik1<>[] then + if Ndims(k)>1 then + if size(I1,"*")>1 then + I1=(Ndims(k)*I1).*.ones(ik1)+ones(I1).*.(ik1-1) + else + I1=Ndims(k)*I1+ik1-1 + end + else + I1=Ndims(k)*I1+ik1-1 + end + end + end + select type(v) + case 1 + v1=zeros(prod(Ndims),1) + case 2 then + v1=zeros(prod(Ndims),1) + case 4 then + v1=(zeros(prod(Ndims),1)==1) + case 8 then + v1=iconvert(zeros(prod(Ndims),1),inttype(v)) + case 10 then + v1=emptystr(prod(Ndims),1) + end + v1(I1+1)=v;v=v1 + end + + v(I)=matrix(N.entries,-1,1) + + while Ndims($)==1 then Ndims($)=[],end + select size(Ndims,"*") + case 0 + M=v + case 1 + M=v + case 2 + M=matrix(v,Ndims(1),Ndims(2)) + else + M=mlist(["hm","dims","entries"],int32(matrix(Ndims,1,-1)),v) + end +endfunction diff --git a/modules/overloading/macros/%hm_i_i.bin b/modules/overloading/macros/%hm_i_i.bin Binary files differnew file mode 100755 index 000000000..4afb1f969 --- /dev/null +++ b/modules/overloading/macros/%hm_i_i.bin diff --git a/modules/overloading/macros/%hm_i_i.sci b/modules/overloading/macros/%hm_i_i.sci new file mode 100755 index 000000000..b896a3b8c --- /dev/null +++ b/modules/overloading/macros/%hm_i_i.sci @@ -0,0 +1,71 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - Vincent Couvert +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should 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=%hm_i_i(varargin) + //insertion of an hypermatrix in a matrix derived from %hm_i_hm + [lhs,rhs]=argn(0) + M=varargin(rhs) //Matrix + N=varargin(rhs-1)//inserted hypermatrix + dims=size(M)' + + v=M(:) + + + nd=size(dims,"*") + if rhs-2>nd then dims(nd+1:rhs-2)=1;end + + //convert N-dimensional indexes to 1-D + [Ndims,I]=convertindex(list(dims,double(matrix(N.dims,1,-1))),varargin(1:$-2)) + + if or(Ndims>dims) then + //extend the destination matrix + I1=0 + for k=size(Ndims,"*"):-1:1 + ik1=(1:dims(k))' + if ik1<>[] then + if Ndims(k)>1 then + if size(I1,"*")>1 then + I1=(Ndims(k)*I1).*.ones(ik1)+ones(I1).*.(ik1-1) + else + I1=Ndims(k)*I1+ik1-1 + end + else + I1=Ndims(k)*I1+ik1-1 + end + end + end + select type(v) + case 1 + v1=zeros(prod(Ndims),1) + case 2 then + v1=zeros(prod(Ndims),1) + case 4 then + v1=(zeros(prod(Ndims),1)==1) + case 8 then + v1=iconvert(zeros(prod(Ndims),1),inttype(v)) + case 10 then + v1=emptystr(prod(Ndims),1) + end + v1(I1+1)=v;v=v1 + end + + v(I)=matrix(N.entries,-1,1) + + while Ndims($)==1 then Ndims($)=[],end + select size(Ndims,"*") + case 0 + M=v + case 1 + M=v + case 2 + M=matrix(v,Ndims(1),Ndims(2)) + else + M=mlist(["hm","dims","entries"],int32(matrix(Ndims,1,-1)),v) + end +endfunction diff --git a/modules/overloading/macros/%hm_i_p.bin b/modules/overloading/macros/%hm_i_p.bin Binary files differnew file mode 100755 index 000000000..5c2d2b1bd --- /dev/null +++ b/modules/overloading/macros/%hm_i_p.bin diff --git a/modules/overloading/macros/%hm_i_p.sci b/modules/overloading/macros/%hm_i_p.sci new file mode 100755 index 000000000..758a8e140 --- /dev/null +++ b/modules/overloading/macros/%hm_i_p.sci @@ -0,0 +1,71 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - Vincent Couvert +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should 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=%hm_i_p(varargin) + + //insertion of an hypermatrix in a matrix derived from %hm_i_hm + [lhs,rhs]=argn(0) + M=varargin(rhs) //Matrix + N=varargin(rhs-1)//inserted hypermatrix + dims=size(M)' + + v=M(:) + + + nd=size(dims,"*") + if rhs-2>nd then dims(nd+1:rhs-2)=1;end + + //convert N-dimensional indexes to 1-D + [Ndims,I]=convertindex(list(dims,double(matrix(N.dims,1,-1))),varargin(1:$-2)) + + if or(Ndims>dims) then + //extend the destination matrix + I1=0 + for k=size(Ndims,"*"):-1:1 + ik1=(1:dims(k))' + if ik1<>[] then + if Ndims(k)>1 then + if size(I1,"*")>1 then + I1=(Ndims(k)*I1).*.ones(ik1)+ones(I1).*.(ik1-1) + else + I1=Ndims(k)*I1+ik1-1 + end + else + I1=Ndims(k)*I1+ik1-1 + end + end + end + select type(v) + case 1 + v1=zeros(prod(Ndims),1) + case 2 then + v1=zeros(prod(Ndims),1) + case 4 then + v1=(zeros(prod(Ndims),1)==1) + case 8 then + v1=iconvert(zeros(prod(Ndims),1),inttype(v)) + case 10 then + v1=emptystr(prod(Ndims),1) + end + v1(I1+1)=v;v=v1 + end + + v(I)=matrix(N.entries,-1,1) + + while Ndims($)==1 then Ndims($)=[],end + select size(Ndims,"*") + case 0 + M=v + case 1 + M=v + case 2 + M=matrix(v,Ndims(1),Ndims(2)) + else + M=mlist(["hm","dims","entries"],matrix(Ndims,1,-1),v) + end +endfunction diff --git a/modules/overloading/macros/%hm_i_r.bin b/modules/overloading/macros/%hm_i_r.bin Binary files differnew file mode 100755 index 000000000..1f2c8c94a --- /dev/null +++ b/modules/overloading/macros/%hm_i_r.bin diff --git a/modules/overloading/macros/%hm_i_r.sci b/modules/overloading/macros/%hm_i_r.sci new file mode 100755 index 000000000..dbbea7f37 --- /dev/null +++ b/modules/overloading/macros/%hm_i_r.sci @@ -0,0 +1,20 @@ +// 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 +function N=%r_i_hm(varargin) + //author Serge Steer INRIA + M=varargin($); + N=varargin($-1);//inserted matrix + // M(i,...)=N + Den=ones(M); + M(varargin(1:$-2))=N.num + Den(varargin(1:$-2))=N.den + N.num=M + N.den=Den + +endfunction diff --git a/modules/overloading/macros/%hm_i_s.bin b/modules/overloading/macros/%hm_i_s.bin Binary files differnew file mode 100755 index 000000000..d9d60d0cd --- /dev/null +++ b/modules/overloading/macros/%hm_i_s.bin diff --git a/modules/overloading/macros/%hm_i_s.sci b/modules/overloading/macros/%hm_i_s.sci new file mode 100755 index 000000000..6e8643442 --- /dev/null +++ b/modules/overloading/macros/%hm_i_s.sci @@ -0,0 +1,78 @@ +// 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 + +function M=%hm_i_s(varargin) + + //insertion of an hypermatrix in a matrix derived from %hm_i_hm + [lhs,rhs]=argn(0) + M=varargin(rhs) //Matrix + N=varargin(rhs-1)//inserted hypermatrix + dims=size(M)' + + if isempty(M) & rhs == 3 & type(varargin(1)) == 10 then + // Fix for bug 13247 + // the matrix is empty and the index is a field name, so we create a struct + M = struct(varargin(1), N) + return; + end + + v=M(:) + nd=size(dims,"*") + + if rhs-2>nd then dims(nd+1:rhs-2)=1;end + + //convert N-dimensional indexes to 1-D + [Ndims,I]=convertindex(list(dims,double(matrix(N.dims,1,-1))),varargin(1:$-2)) + + if or(Ndims>dims) then + //extend the destination matrix + I1=0 + for k=size(Ndims,"*"):-1:1 + ik1=(1:dims(k))' + if ik1<>[] then + if Ndims(k)>1 then + if size(I1,"*")>1 then + I1=(Ndims(k)*I1).*.ones(ik1)+ones(I1).*.(ik1-1) + else + I1=Ndims(k)*I1+ik1-1 + end + else + I1=Ndims(k)*I1+ik1-1 + end + end + end + select type(v) + case 1 + v1=zeros(prod(Ndims),1) + case 2 then + v1=zeros(prod(Ndims),1) + case 4 then + v1=(zeros(prod(Ndims),1)==1) + case 8 then + v1=iconvert(zeros(prod(Ndims),1),inttype(v)) + case 10 then + v1=emptystr(prod(Ndims),1) + end + v1(I1+1)=v;v=v1 + end + + v(I)=matrix(N.entries,-1,1) + + while Ndims($)==1 then Ndims($)=[],end + select size(Ndims,"*") + case 0 + M=v + case 1 + M=v + case 2 + M=matrix(v,Ndims(1),Ndims(2)) + else + M=mlist(["hm","dims","entries"],int32(matrix(Ndims,1,-1)),v) + end +endfunction diff --git a/modules/overloading/macros/%hm_i_st.bin b/modules/overloading/macros/%hm_i_st.bin Binary files differnew file mode 100755 index 000000000..a75ffbc60 --- /dev/null +++ b/modules/overloading/macros/%hm_i_st.bin diff --git a/modules/overloading/macros/%hm_i_st.sci b/modules/overloading/macros/%hm_i_st.sci new file mode 100755 index 000000000..9aaf8e0b3 --- /dev/null +++ b/modules/overloading/macros/%hm_i_st.sci @@ -0,0 +1,12 @@ +// 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 + +function out=%hm_i_st(i,in,out) + out=generic_i_st(i,in,out) +endfunction diff --git a/modules/overloading/macros/%hm_iconvert.bin b/modules/overloading/macros/%hm_iconvert.bin Binary files differnew file mode 100755 index 000000000..727c1e87b --- /dev/null +++ b/modules/overloading/macros/%hm_iconvert.bin diff --git a/modules/overloading/macros/%hm_iconvert.sci b/modules/overloading/macros/%hm_iconvert.sci new file mode 100755 index 000000000..f7001f1ee --- /dev/null +++ b/modules/overloading/macros/%hm_iconvert.sci @@ -0,0 +1,12 @@ +// 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 + +function x=%hm_iconvert(x,it) + x.entries=iconvert(x.entries,it) +endfunction diff --git a/modules/overloading/macros/%hm_imag.bin b/modules/overloading/macros/%hm_imag.bin Binary files differnew file mode 100755 index 000000000..6c1911da9 --- /dev/null +++ b/modules/overloading/macros/%hm_imag.bin diff --git a/modules/overloading/macros/%hm_imag.sci b/modules/overloading/macros/%hm_imag.sci new file mode 100755 index 000000000..ec71befae --- /dev/null +++ b/modules/overloading/macros/%hm_imag.sci @@ -0,0 +1,13 @@ +// 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 + +function M=%hm_imag(M) + + M("entries")=imag(M("entries")) +endfunction diff --git a/modules/overloading/macros/%hm_int.bin b/modules/overloading/macros/%hm_int.bin Binary files differnew file mode 100755 index 000000000..d85355c0b --- /dev/null +++ b/modules/overloading/macros/%hm_int.bin diff --git a/modules/overloading/macros/%hm_int.sci b/modules/overloading/macros/%hm_int.sci new file mode 100755 index 000000000..2ee2fb357 --- /dev/null +++ b/modules/overloading/macros/%hm_int.sci @@ -0,0 +1,12 @@ +// 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 + +function M=%hm_int(M) + M("entries")=int(M("entries")) +endfunction diff --git a/modules/overloading/macros/%hm_isnan.bin b/modules/overloading/macros/%hm_isnan.bin Binary files differnew file mode 100755 index 000000000..2ce4a9f5a --- /dev/null +++ b/modules/overloading/macros/%hm_isnan.bin diff --git a/modules/overloading/macros/%hm_isnan.sci b/modules/overloading/macros/%hm_isnan.sci new file mode 100755 index 000000000..6dacded30 --- /dev/null +++ b/modules/overloading/macros/%hm_isnan.sci @@ -0,0 +1,12 @@ +// 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 + +function b=%hm_isnan(M) + b=hypermat(M.dims,isnan(M.entries)) +endfunction diff --git a/modules/overloading/macros/%hm_isreal.bin b/modules/overloading/macros/%hm_isreal.bin Binary files differnew file mode 100755 index 000000000..4164965a5 --- /dev/null +++ b/modules/overloading/macros/%hm_isreal.bin diff --git a/modules/overloading/macros/%hm_isreal.sci b/modules/overloading/macros/%hm_isreal.sci new file mode 100755 index 000000000..060387839 --- /dev/null +++ b/modules/overloading/macros/%hm_isreal.sci @@ -0,0 +1,16 @@ +// 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 + +function b=%hm_isreal(M,eps) + if argn(2)==1 then + b=isreal(M.entries) + else + b=isreal(M.entries,eps) + end +endfunction diff --git a/modules/overloading/macros/%hm_j_hm.bin b/modules/overloading/macros/%hm_j_hm.bin Binary files differnew file mode 100755 index 000000000..83ada8e2b --- /dev/null +++ b/modules/overloading/macros/%hm_j_hm.bin diff --git a/modules/overloading/macros/%hm_j_hm.sci b/modules/overloading/macros/%hm_j_hm.sci new file mode 100755 index 000000000..30646d779 --- /dev/null +++ b/modules/overloading/macros/%hm_j_hm.sci @@ -0,0 +1,17 @@ +// 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 + +function M2=%hm_j_hm(M1,M2) + + if and(M1("dims")==M2("dims")) then + M2("entries")=M1("entries").^M2("entries") + else + error(msprintf(_("%s: Inconsistent element-wise operation.\n"),"%hm_j_hm")); + end +endfunction diff --git a/modules/overloading/macros/%hm_j_s.bin b/modules/overloading/macros/%hm_j_s.bin Binary files differnew file mode 100755 index 000000000..09c56b225 --- /dev/null +++ b/modules/overloading/macros/%hm_j_s.bin diff --git a/modules/overloading/macros/%hm_j_s.sci b/modules/overloading/macros/%hm_j_s.sci new file mode 100755 index 000000000..2709f1fa7 --- /dev/null +++ b/modules/overloading/macros/%hm_j_s.sci @@ -0,0 +1,17 @@ +// 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 + +function M1=%hm_j_s(M1,M2) + + if size(M2,"*")<>1 then + error(msprintf(_("%s: Inconsistent element-wise operation.\n"),"%hm_j_s")); + else + M1(:) = M1(:) .^ M2 + end +endfunction diff --git a/modules/overloading/macros/%hm_k_hm.bin b/modules/overloading/macros/%hm_k_hm.bin Binary files differnew file mode 100755 index 000000000..43167d10f --- /dev/null +++ b/modules/overloading/macros/%hm_k_hm.bin diff --git a/modules/overloading/macros/%hm_k_hm.sci b/modules/overloading/macros/%hm_k_hm.sci new file mode 100755 index 000000000..fd57061ef --- /dev/null +++ b/modules/overloading/macros/%hm_k_hm.sci @@ -0,0 +1,12 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2014 - Samuel GOUGEON +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function r = %hm_k_hm(a, b) + r = %hmS_k_hmS_generic(a, b) +endfunction diff --git a/modules/overloading/macros/%hm_k_s.bin b/modules/overloading/macros/%hm_k_s.bin Binary files differnew file mode 100755 index 000000000..d87b526e9 --- /dev/null +++ b/modules/overloading/macros/%hm_k_s.bin diff --git a/modules/overloading/macros/%hm_k_s.sci b/modules/overloading/macros/%hm_k_s.sci new file mode 100755 index 000000000..d3289be91 --- /dev/null +++ b/modules/overloading/macros/%hm_k_s.sci @@ -0,0 +1,12 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2014 - Samuel GOUGEON +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function r = %hm_k_s(a, b) + r = %hmS_k_hmS_generic(a, b) +endfunction diff --git a/modules/overloading/macros/%hm_log.bin b/modules/overloading/macros/%hm_log.bin Binary files differnew file mode 100755 index 000000000..9ceabbf48 --- /dev/null +++ b/modules/overloading/macros/%hm_log.bin diff --git a/modules/overloading/macros/%hm_log.sci b/modules/overloading/macros/%hm_log.sci new file mode 100755 index 000000000..0e7674931 --- /dev/null +++ b/modules/overloading/macros/%hm_log.sci @@ -0,0 +1,13 @@ +// 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 + +function M=%hm_log(M) + + M("entries")=log(M("entries")) +endfunction diff --git a/modules/overloading/macros/%hm_m_p.bin b/modules/overloading/macros/%hm_m_p.bin Binary files differnew file mode 100755 index 000000000..83240ef51 --- /dev/null +++ b/modules/overloading/macros/%hm_m_p.bin diff --git a/modules/overloading/macros/%hm_m_p.sci b/modules/overloading/macros/%hm_m_p.sci new file mode 100755 index 000000000..8aabe6629 --- /dev/null +++ b/modules/overloading/macros/%hm_m_p.sci @@ -0,0 +1,16 @@ +// 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 + +function M1=%hm_m_p(M1,M2) + if size(M2,"*")<>1 then + M1=M1*mlist(["hm","dims","entries"],size(M2),matrix(M2,-1,1)) + else + M1.entries=M1.entries*M2 + end +endfunction diff --git a/modules/overloading/macros/%hm_m_r.bin b/modules/overloading/macros/%hm_m_r.bin Binary files differnew file mode 100755 index 000000000..33d6b5a7c --- /dev/null +++ b/modules/overloading/macros/%hm_m_r.bin diff --git a/modules/overloading/macros/%hm_m_r.sci b/modules/overloading/macros/%hm_m_r.sci new file mode 100755 index 000000000..9303d94e5 --- /dev/null +++ b/modules/overloading/macros/%hm_m_r.sci @@ -0,0 +1,34 @@ +// 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 + +function f2=%hm_m_r(n1,f2) + // %s_m_r(n1,f2) + //operation f2=n1*f2 + //author Serge Steer INRIA + //! + [n2,d2]=f2(["num","den"]); + sz2=size(n2); + if prod(sz2)==0 then f2=[],return,end + sz1=size(n1); + n1=n1(:) + + if or(sz2==-1) then + n2=n2+0;d2=d2+0; + end + + // + if prod(sz2)==1 then + num=n1*n2, + den=d2(ones(n1)) + else, + error(10) + end, + + f2=rlist(matrix(num,sz1),matrix(den,sz1),f2.dt) +endfunction diff --git a/modules/overloading/macros/%hm_m_s.bin b/modules/overloading/macros/%hm_m_s.bin Binary files differnew file mode 100755 index 000000000..29e2b6886 --- /dev/null +++ b/modules/overloading/macros/%hm_m_s.bin diff --git a/modules/overloading/macros/%hm_m_s.sci b/modules/overloading/macros/%hm_m_s.sci new file mode 100755 index 000000000..2998c3a74 --- /dev/null +++ b/modules/overloading/macros/%hm_m_s.sci @@ -0,0 +1,31 @@ +// 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 + +function M1=%hm_m_s(M1,M2) + + siz1 = size(M1); + siz2 = size(M2); + + if size(M2,"*")<>1 then + if length(siz1)<>3 then + error(msprintf(_("%s: Wrong size for input argument #%d: 3D maximum expected.\n"),"%hm_m_s",2)); + end + if siz1(2)<>siz2(1) then + error(msprintf(_("%s: Wrong size for argument: Incompatible dimensions.\n"),"hm_m_s")); + end + res = zeros(siz1(1), siz2(2), siz1(3)); + for i=1:siz1(3) + res(:, :, i) = M1(:, :, i)*M2; + end + M1 = res; + else + M1.entries = M1.entries*M2 + end + +endfunction diff --git a/modules/overloading/macros/%hm_matrix.bin b/modules/overloading/macros/%hm_matrix.bin Binary files differnew file mode 100755 index 000000000..e3ad4af58 --- /dev/null +++ b/modules/overloading/macros/%hm_matrix.bin diff --git a/modules/overloading/macros/%hm_matrix.sci b/modules/overloading/macros/%hm_matrix.sci new file mode 100755 index 000000000..a140eadb4 --- /dev/null +++ b/modules/overloading/macros/%hm_matrix.sci @@ -0,0 +1,53 @@ +// 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 +function a=%hm_matrix(a,varargin) + dims=size(a);nd=size(dims,"*") + if size(varargin)==1 then + sz=varargin(1) + else + sz=[] + for k=1:size(varargin) + if size(varargin(k),"*")<>1|type(varargin(k))<>1 then + error(msprintf(_("%s: Wrong size for input argument(s): integer scalars expected.\n"),"%hm_matrix")); + end + sz=[sz varargin(k)] + end + sz=round(sz) + end + nd1=size(sz,"*") + if nd1<=0 then error(60),end + if nd1<=2 then a=matrix(a.entries,sz),return,end + if nd<nd1 then + dims(nd+1:nd1)=1 + elseif nd>nd1 then + dims=[dims(1:nd1-1) prod(dims(nd1:nd))] + end + nd=size(dims,"*") + k=find(sz==-1) + P=prod(dims) + if k<>[] then + if size(k,"*")>1 then + error(msprintf(_("%s: Only one -1 value admitted.\n"),"%hm_matrix")); + end + sz(k)=floor(P/(prod(sz(sz>0)))) + end + + if prod(P)<>prod(sz) then + error(msprintf(_("%s: Input and output matrices must have the same number of elements"),"%hm_matrix")); + end + + if type(a)<>17 then + a=hypermat(sz,a) + return + end + + a.dims=int32(matrix(sz,1,-1)); + + +endfunction diff --git a/modules/overloading/macros/%hm_max.bin b/modules/overloading/macros/%hm_max.bin Binary files differnew file mode 100755 index 000000000..ed6f24efb --- /dev/null +++ b/modules/overloading/macros/%hm_max.bin diff --git a/modules/overloading/macros/%hm_max.sci b/modules/overloading/macros/%hm_max.sci new file mode 100755 index 000000000..eddc2c18b --- /dev/null +++ b/modules/overloading/macros/%hm_max.sci @@ -0,0 +1,107 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 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 [x,k] = %hm_max(varargin) + n = size(varargin) + // One input argument + if n == 1 then + // Retrieve the dimensions + m = varargin(1).dims + // Compute the max of column vector + // varargin(1).entries gives column vector + [x,k] = max(varargin(1).entries) + // check if lhs = 2 and if varargin(1) is vector + if (argn(1) > 1 & (m(length(m)) <> size(varargin(1), "*"))) then + k = ind2sub(m, k(1)) + end + else + if n==2 then + d=varargin(2) + // Check if d is a string + if type(d)==10 then + [x,k]=%hm_oriented_max(varargin(1),d) + return + end + end + // if the second input argument is a matrix or hypermatrix + // Obtain column vector + x=varargin(1)(:) + dims=size(varargin(1)) + for kk=2:n + sz=size(varargin(kk)) + // check if the dim are different + if or(dims<>sz) then + if prod(dims)<>1&prod(sz)<>1 then + error(42) + end + // the first argument is a scalar + if prod(dims)==1 then dims=sz,end + end + // max between hypermatrix and hypermatrix + [x,k]=max(x,varargin(kk)(:)) + end + x=hypermat(dims,x) + k=hypermat(dims,k) + end +endfunction + +function [x,k]=%hm_oriented_max(m,d) + if d=="m" then + d=find(m.dims>1,1) + if d==[] then + [x,k1]=max(m.entries) + k=ind2sub(m.dims,k1(1)) + return, + end + elseif d=="r" then + d=1 + elseif d=="c" then + d=2 + end + dims=m.dims; + if type(dims==8) then flag=1; dims=double(dims); else flag=0;end + N=size(dims,"*"); + p1=prod(dims(1:d-1));// step for one max + p2=p1*dims(d);//step for beginning of vector to max + ind=(0:p1:p2-1)';// selection for vector to max + deb=(1:p1); + I=ind*ones(deb)+ones(ind)*deb + + ind=(0:p2:prod(dims)-1); + I=ones(ind).*.I+ind.*.ones(I) + + [x,k]=max(matrix(m.entries(I),dims(d),-1),"r") + + dims(d)=1 + if d==N then + dims=dims(1:$) + else + dims(d)=1 + end + if size(dims,"*")==2 then + if flag==1 then dims=int32(dims);end + x=matrix(x,dims(1),dims(2)) + k=matrix(k,dims(1),dims(2)) + else + if flag==1 then dims=int32(dims);end + x=hypermat(dims,matrix(x,-1,1)) + k=hypermat(dims,matrix(k,-1,1)) + end +endfunction + + + + + + + + + + diff --git a/modules/overloading/macros/%hm_mean.bin b/modules/overloading/macros/%hm_mean.bin Binary files differnew file mode 100755 index 000000000..27d72a454 --- /dev/null +++ b/modules/overloading/macros/%hm_mean.bin diff --git a/modules/overloading/macros/%hm_mean.sci b/modules/overloading/macros/%hm_mean.sci new file mode 100755 index 000000000..081b31b8a --- /dev/null +++ b/modules/overloading/macros/%hm_mean.sci @@ -0,0 +1,39 @@ +// 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 +function x=%hm_mean(m,d) + if argn(2)==1 then + x=mean(m.entries) + return + end + dims=m.dims; + if type(dims==8) then flag=1; dims=double(dims); else flag=0;end + N=size(dims,"*"); + p1=prod(dims(1:d-1));// step to build one vector on which mean is applied + p2=p1*dims(d);//step for beginning of next vectors + ind=(0:p1:p2-1)';// selection for building one vector + deb=(1:p1); + I=ind*ones(deb)+ones(ind)*deb + + ind=(0:p2:prod(dims)-1); + I=ones(ind).*.I+ind.*.ones(I) + + x=mean(matrix(m.entries(I),dims(d),-1),1) + dims(d)=1 + if d==N then + dims=dims(1:$) + else + dims(d)=1 + end + if size(dims,"*")==2 then + x=matrix(x,dims(1),dims(2)) + else + if flag==1 then dims=int32(dims);end + x=hypermat(dims,x(:)) + end +endfunction diff --git a/modules/overloading/macros/%hm_median.bin b/modules/overloading/macros/%hm_median.bin Binary files differnew file mode 100755 index 000000000..e225d9d1e --- /dev/null +++ b/modules/overloading/macros/%hm_median.bin diff --git a/modules/overloading/macros/%hm_median.sci b/modules/overloading/macros/%hm_median.sci new file mode 100755 index 000000000..c573428f6 --- /dev/null +++ b/modules/overloading/macros/%hm_median.sci @@ -0,0 +1,37 @@ +// 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 +function x=%hm_median(m,d) + if argn(2)==1 then + x=median(m.entries) + return + end + dims=m.dims; + N=size(dims,"*"); + p1=prod(dims(1:d-1));// step to build one vector on which median is applied + p2=p1*dims(d);//step for beginning of next vectors + ind=(0:p1:p2-1)';// selection for building one vector + deb=(1:p1); + I=ind*ones(deb)+ones(ind)*deb + + ind=(0:p2:prod(dims)-1); + I=ones(ind).*.I+ind.*.ones(I) + + x=median(matrix(m.entries(I),dims(d),-1),1) + dims(d)=1 + if d==N then + dims=dims(1:$) + else + dims(d)=1 + end + if size(dims,"*")==2 then + x=matrix(x,dims(1),dims(2)) + else + x=hypermat(dims,x) + end +endfunction diff --git a/modules/overloading/macros/%hm_min.bin b/modules/overloading/macros/%hm_min.bin Binary files differnew file mode 100755 index 000000000..fc0423d5d --- /dev/null +++ b/modules/overloading/macros/%hm_min.bin diff --git a/modules/overloading/macros/%hm_min.sci b/modules/overloading/macros/%hm_min.sci new file mode 100755 index 000000000..6769e6d81 --- /dev/null +++ b/modules/overloading/macros/%hm_min.sci @@ -0,0 +1,98 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 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 [x,k] = %hm_min(varargin) + n = size(varargin) + // One input argument + if n ==1 then + // Retrieve the dimensions + m = varargin(1).dims + // Compute the min of column vector + // varargin(1).entries gives column vector + [x,k] = min(varargin(1).entries) + // check if lhs = 2 and if varargin(1) is vector + if (argn(1) > 1 & (m(length(m)) <> size(varargin(1), "*"))) then + k = ind2sub(m, k(1)) + end + else + if n==2 then + d=varargin(2) + // Check if d is a string + if type(d)==10 then + [x,k]=%hm_oriented_min(varargin(1),d) + return + end + end + // if the second input argument is a matrix or hypermatrix + // Obtain column vector + x=varargin(1)(:) + dims=size(varargin(1)) + for kk=2:n + sz=size(varargin(kk)) + // check if the dim are different + if or(dims<>sz) then + if prod(dims)<>1&prod(sz)<>1 then + error(42) + end + // the first argument is a scalar + if prod(dims)==1 then dims=sz,end + end + // min between hypermatrix and hypermatrix + [x,k]=min(x,varargin(kk)(:)) + end + x=hypermat(dims,x) + k=hypermat(dims,k) + end +endfunction + +function [x,k]=%hm_oriented_min(m,d) + if d=="m" then + d=find(dims>1,1) + if d==[] then + [x,k1]=max(m.entries) + k=ind2sub(m.dims,k1(1)) + return, + end + elseif d=="r" then + d=1 + elseif d=="c" then + d=2 + end + dims=m.dims; + if type(dims==8) then flag=1; dims=double(dims); else flag=0;end + N=size(dims,"*"); + p1=prod(dims(1:d-1));// step for one min + p2=p1*dims(d);//step for beginning of vector to min + ind=(0:p1:p2-1)';// selection for vector to min + deb=(1:p1); + I=ind*ones(deb)+ones(ind)*deb + + ind=(0:p2:prod(dims)-1); + I=ones(ind).*.I+ind.*.ones(I) + + [x,k]=min(matrix(m.entries(I),dims(d),-1),"r") + + dims(d)=1 + if d==N then + dims=dims(1:$) + else + dims(d)=1 + end + if size(dims,"*")==2 then + if flag==1 then dims=int32(dims);end + x=matrix(x,dims(1),dims(2)) + k=matrix(k,dims(1),dims(2)) + else + if flag==1 then dims=int32(dims);end + x=hypermat(dims,x) + k=hypermat(dims,matrix(k,-1,1)) + end +endfunction + + diff --git a/modules/overloading/macros/%hm_n_b.bin b/modules/overloading/macros/%hm_n_b.bin Binary files differnew file mode 100755 index 000000000..e40962081 --- /dev/null +++ b/modules/overloading/macros/%hm_n_b.bin diff --git a/modules/overloading/macros/%hm_n_b.sci b/modules/overloading/macros/%hm_n_b.sci new file mode 100755 index 000000000..bd364af60 --- /dev/null +++ b/modules/overloading/macros/%hm_n_b.sci @@ -0,0 +1,17 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2011 - INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function M=%hm_n_b(M,s) + //M<>s + if size(s,"*")<> 1 then + M=%t; + else + M.entries=M.entries<>s + end +endfunction diff --git a/modules/overloading/macros/%hm_n_c.bin b/modules/overloading/macros/%hm_n_c.bin Binary files differnew file mode 100755 index 000000000..bb729a7ab --- /dev/null +++ b/modules/overloading/macros/%hm_n_c.bin diff --git a/modules/overloading/macros/%hm_n_c.sci b/modules/overloading/macros/%hm_n_c.sci new file mode 100755 index 000000000..f63a04f72 --- /dev/null +++ b/modules/overloading/macros/%hm_n_c.sci @@ -0,0 +1,17 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2011 - INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function M=%hm_n_c(M,s) + //M<>s + if size(s,"*")<> 1 then + M=%t; + else + M.entries=M.entries<>s + end +endfunction diff --git a/modules/overloading/macros/%hm_n_hm.bin b/modules/overloading/macros/%hm_n_hm.bin Binary files differnew file mode 100755 index 000000000..12c087208 --- /dev/null +++ b/modules/overloading/macros/%hm_n_hm.bin diff --git a/modules/overloading/macros/%hm_n_hm.sci b/modules/overloading/macros/%hm_n_hm.sci new file mode 100755 index 000000000..d535b165e --- /dev/null +++ b/modules/overloading/macros/%hm_n_hm.sci @@ -0,0 +1,16 @@ +// 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 +function r=%hm_n_hm(a,b) + r=and(a.dims==b.dims) + if r then + r=hypermat(a.dims,a.entries<>b.entries) + else + r=%t + end +endfunction diff --git a/modules/overloading/macros/%hm_n_i.bin b/modules/overloading/macros/%hm_n_i.bin Binary files differnew file mode 100755 index 000000000..e0d30ec48 --- /dev/null +++ b/modules/overloading/macros/%hm_n_i.bin diff --git a/modules/overloading/macros/%hm_n_i.sci b/modules/overloading/macros/%hm_n_i.sci new file mode 100755 index 000000000..f936d5f85 --- /dev/null +++ b/modules/overloading/macros/%hm_n_i.sci @@ -0,0 +1,17 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2011 - INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function M=%hm_n_i(M,s) + //M<>s + if size(s,"*")<> 1 then + M=%t; + else + M.entries=M.entries<>s + end +endfunction diff --git a/modules/overloading/macros/%hm_n_p.bin b/modules/overloading/macros/%hm_n_p.bin Binary files differnew file mode 100755 index 000000000..20f11e9b2 --- /dev/null +++ b/modules/overloading/macros/%hm_n_p.bin diff --git a/modules/overloading/macros/%hm_n_p.sci b/modules/overloading/macros/%hm_n_p.sci new file mode 100755 index 000000000..04bc23ae1 --- /dev/null +++ b/modules/overloading/macros/%hm_n_p.sci @@ -0,0 +1,17 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2011 - INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function M=%hm_n_p(M,s) + //M<>s + if size(s,"*")<> 1 then + M=%t; + else + M.entries=M.entries<>s; + end +endfunction diff --git a/modules/overloading/macros/%hm_n_s.bin b/modules/overloading/macros/%hm_n_s.bin Binary files differnew file mode 100755 index 000000000..6e1713247 --- /dev/null +++ b/modules/overloading/macros/%hm_n_s.bin diff --git a/modules/overloading/macros/%hm_n_s.sci b/modules/overloading/macros/%hm_n_s.sci new file mode 100755 index 000000000..9fb3fbbea --- /dev/null +++ b/modules/overloading/macros/%hm_n_s.sci @@ -0,0 +1,16 @@ +// 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 + +function M=%hm_n_s(M,s) + //M<>s + if size(s,"*")<> 1 then + M=%t;return + end + M("entries")=M("entries")<>s +endfunction diff --git a/modules/overloading/macros/%hm_o_b.bin b/modules/overloading/macros/%hm_o_b.bin Binary files differnew file mode 100755 index 000000000..4b6d18677 --- /dev/null +++ b/modules/overloading/macros/%hm_o_b.bin diff --git a/modules/overloading/macros/%hm_o_b.sci b/modules/overloading/macros/%hm_o_b.sci new file mode 100755 index 000000000..61135a20c --- /dev/null +++ b/modules/overloading/macros/%hm_o_b.sci @@ -0,0 +1,16 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2011 - INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +function M=%hm_o_b(M,s) + //M==s + if size(s,"*")<> 1 then + M=%f + else + M.entries=M.entries==s + end +endfunction diff --git a/modules/overloading/macros/%hm_o_c.bin b/modules/overloading/macros/%hm_o_c.bin Binary files differnew file mode 100755 index 000000000..89003ffde --- /dev/null +++ b/modules/overloading/macros/%hm_o_c.bin diff --git a/modules/overloading/macros/%hm_o_c.sci b/modules/overloading/macros/%hm_o_c.sci new file mode 100755 index 000000000..5ce6b6928 --- /dev/null +++ b/modules/overloading/macros/%hm_o_c.sci @@ -0,0 +1,17 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2011 - INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function M=%hm_o_c(M,s) + //M==s + if size(s,"*")<> 1 then + M=%f + else + M.entries=M.entries==s + end +endfunction diff --git a/modules/overloading/macros/%hm_o_hm.bin b/modules/overloading/macros/%hm_o_hm.bin Binary files differnew file mode 100755 index 000000000..00d1fc761 --- /dev/null +++ b/modules/overloading/macros/%hm_o_hm.bin diff --git a/modules/overloading/macros/%hm_o_hm.sci b/modules/overloading/macros/%hm_o_hm.sci new file mode 100755 index 000000000..11bc954be --- /dev/null +++ b/modules/overloading/macros/%hm_o_hm.sci @@ -0,0 +1,17 @@ +// 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 + +function r=%hm_o_hm(a,b) + r=and(a.dims==b.dims) + if r then + r=hypermat(a.dims,a.entries==b.entries) + else + r=%f + end +endfunction diff --git a/modules/overloading/macros/%hm_o_i.bin b/modules/overloading/macros/%hm_o_i.bin Binary files differnew file mode 100755 index 000000000..05b89ec63 --- /dev/null +++ b/modules/overloading/macros/%hm_o_i.bin diff --git a/modules/overloading/macros/%hm_o_i.sci b/modules/overloading/macros/%hm_o_i.sci new file mode 100755 index 000000000..b8f32fe6a --- /dev/null +++ b/modules/overloading/macros/%hm_o_i.sci @@ -0,0 +1,17 @@ +// 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 +function M=%hm_o_i(M,s) + // Copyright INRIA + //M==s + if size(s,"*")<> 1 then + M=%f + return + end + M.entries=M.entries==s +endfunction diff --git a/modules/overloading/macros/%hm_o_p.bin b/modules/overloading/macros/%hm_o_p.bin Binary files differnew file mode 100755 index 000000000..d8411ea56 --- /dev/null +++ b/modules/overloading/macros/%hm_o_p.bin diff --git a/modules/overloading/macros/%hm_o_p.sci b/modules/overloading/macros/%hm_o_p.sci new file mode 100755 index 000000000..bcf047c2b --- /dev/null +++ b/modules/overloading/macros/%hm_o_p.sci @@ -0,0 +1,17 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2011 - INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function M=%hm_o_p(M,s) + //M==s + if size(s,"*")<> 1 then + M=%f + else + M.entries=M.entries==s + end +endfunction diff --git a/modules/overloading/macros/%hm_o_s.bin b/modules/overloading/macros/%hm_o_s.bin Binary files differnew file mode 100755 index 000000000..deb82dcee --- /dev/null +++ b/modules/overloading/macros/%hm_o_s.bin diff --git a/modules/overloading/macros/%hm_o_s.sci b/modules/overloading/macros/%hm_o_s.sci new file mode 100755 index 000000000..2eca96100 --- /dev/null +++ b/modules/overloading/macros/%hm_o_s.sci @@ -0,0 +1,19 @@ +// 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 + + +function M=%hm_o_s(M,s) + + //M==s + if size(s,"*")<> 1 then + M=%f + return + end + M("entries")=M("entries")==s +endfunction diff --git a/modules/overloading/macros/%hm_ones.bin b/modules/overloading/macros/%hm_ones.bin Binary files differnew file mode 100755 index 000000000..f2666736c --- /dev/null +++ b/modules/overloading/macros/%hm_ones.bin diff --git a/modules/overloading/macros/%hm_ones.sci b/modules/overloading/macros/%hm_ones.sci new file mode 100755 index 000000000..75617b705 --- /dev/null +++ b/modules/overloading/macros/%hm_ones.sci @@ -0,0 +1,34 @@ +// 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 + +function M=%hm_ones(varargin) + + nv=size(varargin) + if nv==1 then + M=varargin(1) + if type(M)==1 then + dims=M + else + dims=M("dims") + end + M=hypermat(dims,ones(prod(double(dims)),1)) + else + dims=ones(1,nv) + for k=1:nv,dims(k)=int(varargin(k)),end + //remove highest singleton dimensions + ks=find(dims==1); + ns=size(ks,"*"); + while ns>0&nv>2&ks(ns)==nv then ns=ns-1,nv=nv-1,end + if nv==2 then + M=ones(varargin(1:nv)) + else + M=hypermat(dims(1:nv),ones(prod(dims(1:nv)),1)) + end + end +endfunction diff --git a/modules/overloading/macros/%hm_or.bin b/modules/overloading/macros/%hm_or.bin Binary files differnew file mode 100755 index 000000000..cd6e713d0 --- /dev/null +++ b/modules/overloading/macros/%hm_or.bin diff --git a/modules/overloading/macros/%hm_or.sci b/modules/overloading/macros/%hm_or.sci new file mode 100755 index 000000000..c760364d3 --- /dev/null +++ b/modules/overloading/macros/%hm_or.sci @@ -0,0 +1,58 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2010 - INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function x=%hm_or(m,d) + if argn(2)==1|d=="*" then + x=or(m.entries); + return + end + dims=m.dims; + if d=="m" then + d=find(dims>1,1); + if d==[] then + x=or(m.entries); + return + end + end + if type(dims)==8 then + flag=1; + dims=double(dims); + else + flag=0; + end + N=size(dims,"*"); + p1=prod(dims(1:d-1));// step to build one vector on which or is applied + p2=p1*dims(d);//step for beginning of next vectors + ind=(0:p1:p2-1)';// selection for building one vector + deb=(1:p1); + I=ind*ones(deb)+ones(ind)*deb; + + ind=(0:p2:prod(dims)-1); + I=ones(ind).*.I+ind.*.ones(I); + + x=or(matrix(m.entries(I),dims(d),-1),1); + + dims(d)=1 + while dims($)==1 then + dims($)=[]; + end + if d==N then + dims=dims(1:$); + else + dims(d)=1; + end + if size(dims,"*")==2 then + x=matrix(x,dims(1),dims(2)); + elseif dims<>[] then + if flag==1 then + dims=int32(dims); + end; + x=hypermat(dims,x); + end +endfunction diff --git a/modules/overloading/macros/%hm_p.bin b/modules/overloading/macros/%hm_p.bin Binary files differnew file mode 100755 index 000000000..8de021341 --- /dev/null +++ b/modules/overloading/macros/%hm_p.bin diff --git a/modules/overloading/macros/%hm_p.sci b/modules/overloading/macros/%hm_p.sci new file mode 100755 index 000000000..983b76282 --- /dev/null +++ b/modules/overloading/macros/%hm_p.sci @@ -0,0 +1,34 @@ +// 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 + +function %hm_p(M) + // hypermatrix display + dims=double(M("dims")) + nd=size(dims,"*") + if nd<3 then + if nd==1 then + disp(M("entries")) + else + disp(matrix(M("entries"),dims(1),dims(2))) + end + return + end + I=(1:dims(3)); + for k=4:nd + I=[ones(1,dims(k)).*.I; + (1:dims(k)).*.ones(1,size(I,2))]; + end + k=1;sz=dims(1)*dims(2) + for II=I + tit="(:,:,"+strcat(string(II'),",")+")" + write(%io(2),tit) + disp(matrix(M("entries")(k:k-1+sz),dims(1),dims(2))) + k=k+sz + end +endfunction diff --git a/modules/overloading/macros/%hm_prod.bin b/modules/overloading/macros/%hm_prod.bin Binary files differnew file mode 100755 index 000000000..ecc9da690 --- /dev/null +++ b/modules/overloading/macros/%hm_prod.bin diff --git a/modules/overloading/macros/%hm_prod.sci b/modules/overloading/macros/%hm_prod.sci new file mode 100755 index 000000000..c3d58581e --- /dev/null +++ b/modules/overloading/macros/%hm_prod.sci @@ -0,0 +1,103 @@ +// 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 + +function a = %hm_prod(varargin) + a = varargin(1) + dims = size(a); + tm = type(a.entries) + + nargs = size(varargin); + select nargs + case 1 + d = 0; + if tm == 8 then + typ = "native"; + else + typ = "double"; + end + case 2 + if or(varargin(2) == ["native", "double"]) then + d = 0; + typ = varargin(2); + else + d = varargin(2); + if tm == 8 then + typ = "native"; + else + typ = "double"; + end + end + case 3 + d = varargin(2); + typ = varargin(3); + else + error(msprintf(_("%s: Wrong number of input argument(s): %d to %d expected.\n"),"prod", 1, 3)); + end + + // Check second argument : d + select type(d) + case 1 + if size(d,'*') <> 1 then + error(msprintf(_("%s: Wrong size for input argument #%d: A scalar expected.\n"),"prod", 2)) + end + if int(d) <> d | d < 0 then + error(msprintf(_("%s: Wrong value for input argument #%d: Integer >= %d expected.\n"),"prod", 2, 1)) + end + case 10 + if size(d,'*') <> 1 then + error(msprintf(_("%s: Wrong size for input argument #%d: A string expected.\n"),"prod",2)) + end + if and(d<>["r","c","*","m"]) then + error(msprintf(_("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"),.. + "prod",2,"""*"",""r"",""c"",""m""")) + end + pos=[1,2,0,find(dims>1,1)]; + d=pos(find(d==["r","c","*","m"])) + else + error(msprintf(_("%s: Wrong type for input argument #%d: A string or scalar expected.\n"),"prod",2)) + end + + // Check third argument + if type(typ)<>10 then + error(msprintf(_("%s: Wrong type for input argument #%d: A string expected.\n"),"prod",3)) + end + + if size(typ,"*")<>1 then + error(msprintf(_("%s: Wrong size for input argument #%d: A string expected.\n"),"prod",3)) + end + + if and(typ <> ["native" "double"]) then + error(msprintf(_("%s: Wrong value for input argument #%d: ""%s"" or ""%s"" expected.\n"),"prod", 3, "native", "double")); + end + + if d == 0 then // '*' + a=prod(a.entries, "*", typ), dims; + elseif d > size(dims,"*") then + //requested summation direction exceeds array dims, return the array, converted + //to double if necessary. + if typ == "double" & or(tm == [4 8]) then + a.entries=double(a.entries), + end + a=a + else + //permute the array dimension to put the selected dimension first + p=1:size(dims,"*"); + p([1,d])=p([d,1]); + a=matrix(permute(a,p),dims(d),-1) + a=prod(a,1,typ); + //permute back + if d==size(dims, "*") then + dims=dims(1:$-1) + p(1) = [] + else + dims(d)=1 + end + a=permute(matrix(a,dims(p)),p) + end +endfunction diff --git a/modules/overloading/macros/%hm_q_hm.bin b/modules/overloading/macros/%hm_q_hm.bin Binary files differnew file mode 100755 index 000000000..f3b2c0ad0 --- /dev/null +++ b/modules/overloading/macros/%hm_q_hm.bin diff --git a/modules/overloading/macros/%hm_q_hm.sci b/modules/overloading/macros/%hm_q_hm.sci new file mode 100755 index 000000000..c40fc2c9c --- /dev/null +++ b/modules/overloading/macros/%hm_q_hm.sci @@ -0,0 +1,17 @@ +// 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 + +function M2=%hm_q_hm(M1,M2) + + if and(M1("dims")==M2("dims")) then + M2("entries")=M1("entries").\M2("entries") + else + error(msprintf(_("%s: Inconsistent element-wise operation.\n"),"%hm_q_hm")); + end +endfunction diff --git a/modules/overloading/macros/%hm_r_s.bin b/modules/overloading/macros/%hm_r_s.bin Binary files differnew file mode 100755 index 000000000..06487dbd3 --- /dev/null +++ b/modules/overloading/macros/%hm_r_s.bin diff --git a/modules/overloading/macros/%hm_r_s.sci b/modules/overloading/macros/%hm_r_s.sci new file mode 100755 index 000000000..1928eda08 --- /dev/null +++ b/modules/overloading/macros/%hm_r_s.sci @@ -0,0 +1,17 @@ +// 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 + +function M1=%hm_r_s(M1,M2) + + if size(M2,"*")<>1 then + M1=M1/hypermat(size(M2),M2) + else + M1.entries=M1.entries/M2 + end +endfunction diff --git a/modules/overloading/macros/%hm_rand.bin b/modules/overloading/macros/%hm_rand.bin Binary files differnew file mode 100755 index 000000000..f8938a3ed --- /dev/null +++ b/modules/overloading/macros/%hm_rand.bin diff --git a/modules/overloading/macros/%hm_rand.sci b/modules/overloading/macros/%hm_rand.sci new file mode 100755 index 000000000..872860756 --- /dev/null +++ b/modules/overloading/macros/%hm_rand.sci @@ -0,0 +1,52 @@ +// 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 + +function M=%hm_rand(varargin) + + //creates a random hypermatrix with shape given by vector of dimensions or an + //hypermatrix + nv=size(varargin) + if nv==1 then + M=varargin(1) + if type(M)==1 then + dims=M + else + dims=M("dims") + end + M=hypermat(dims,rand(prod(double(dims)),1)) + else + + if type(varargin($))==10 then + opt=varargin($),nv=nv-1; + dims=ones(1,nv) + for k=1:nv,dims(k)=int(varargin(k)),end + //remove highest singleton dimensions + ks=find(dims==1); + ns=size(ks,"*"); + while ns>0&nv>2&ks(ns)==nv then ns=ns-1,nv=nv-1,end + if nv==2 then + M=rand(varargin(1:nv),opt) + else + M=hypermat(dims(1:nv),rand(prod(dims(1:nv)),1,opt)) + end + else + dims=ones(1,nv) + for k=1:nv,dims(k)=int(varargin(k)),end + //remove highest singleton dimensions + ks=find(dims==1); + ns=size(ks,"*"); + while ns>0&nv>2&ks(ns)==nv then ns=ns-1,nv=nv-1,end + if nv==2 then + M=rand(varargin(1:nv)) + else + M=hypermat(dims(1:nv),rand(prod(dims(1:nv)),1)) + end + end + end +endfunction diff --git a/modules/overloading/macros/%hm_real.bin b/modules/overloading/macros/%hm_real.bin Binary files differnew file mode 100755 index 000000000..3cc18fa82 --- /dev/null +++ b/modules/overloading/macros/%hm_real.bin diff --git a/modules/overloading/macros/%hm_real.sci b/modules/overloading/macros/%hm_real.sci new file mode 100755 index 000000000..9eba3164c --- /dev/null +++ b/modules/overloading/macros/%hm_real.sci @@ -0,0 +1,13 @@ +// 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 + +function M=%hm_real(M) + + M("entries")=real(M("entries")) +endfunction diff --git a/modules/overloading/macros/%hm_round.bin b/modules/overloading/macros/%hm_round.bin Binary files differnew file mode 100755 index 000000000..2189c00e1 --- /dev/null +++ b/modules/overloading/macros/%hm_round.bin diff --git a/modules/overloading/macros/%hm_round.sci b/modules/overloading/macros/%hm_round.sci new file mode 100755 index 000000000..9e32eea7c --- /dev/null +++ b/modules/overloading/macros/%hm_round.sci @@ -0,0 +1,13 @@ +// 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 + +function M=%hm_round(M) + + M("entries")=round(M("entries")) +endfunction diff --git a/modules/overloading/macros/%hm_s.bin b/modules/overloading/macros/%hm_s.bin Binary files differnew file mode 100755 index 000000000..7683d2ee3 --- /dev/null +++ b/modules/overloading/macros/%hm_s.bin diff --git a/modules/overloading/macros/%hm_s.sci b/modules/overloading/macros/%hm_s.sci new file mode 100755 index 000000000..344bdba87 --- /dev/null +++ b/modules/overloading/macros/%hm_s.sci @@ -0,0 +1,14 @@ +// 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 + +function M1=%hm_s(M1) + + // hypermatrix sign change + M1("entries")=-M1("entries") +endfunction diff --git a/modules/overloading/macros/%hm_s_hm.bin b/modules/overloading/macros/%hm_s_hm.bin Binary files differnew file mode 100755 index 000000000..a25459350 --- /dev/null +++ b/modules/overloading/macros/%hm_s_hm.bin diff --git a/modules/overloading/macros/%hm_s_hm.sci b/modules/overloading/macros/%hm_s_hm.sci new file mode 100755 index 000000000..2b75e60aa --- /dev/null +++ b/modules/overloading/macros/%hm_s_hm.sci @@ -0,0 +1,17 @@ +// 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 + +function M1=%hm_s_hm(M1,M2) + // hypermatrix subtraction + //author Serge Steer + if or(M1("dims")<>M2("dims")) then + error(9) + end + M1("entries")=M1("entries")-M2("entries") +endfunction diff --git a/modules/overloading/macros/%hm_s_r.bin b/modules/overloading/macros/%hm_s_r.bin Binary files differnew file mode 100755 index 000000000..afb7fcaec --- /dev/null +++ b/modules/overloading/macros/%hm_s_r.bin diff --git a/modules/overloading/macros/%hm_s_r.sci b/modules/overloading/macros/%hm_s_r.sci new file mode 100755 index 000000000..ce821de38 --- /dev/null +++ b/modules/overloading/macros/%hm_s_r.sci @@ -0,0 +1,31 @@ +// 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 +function f=%hm_s_r(m,f) + //f= m-f + //author Serge Steer INRIA + //! + [num,den]=f(["num","den"]) + szf=size(den) + szm=size(m) + + if and(szf>=0)&and(szm>=0) then + num=num(:);den=den(:);m=m(:) + if prod(szf)==1&prod(szm)>1 then + den=den(ones(m)) + end + [num,den]=simp(-num+m.*den,den) + num=matrix(num,szf) + den=matrix(den,szf) + f=rlist(num,den,f.dt) + else + error(9) + end + +endfunction + diff --git a/modules/overloading/macros/%hm_s_s.bin b/modules/overloading/macros/%hm_s_s.bin Binary files differnew file mode 100755 index 000000000..b97ab4bbb --- /dev/null +++ b/modules/overloading/macros/%hm_s_s.bin diff --git a/modules/overloading/macros/%hm_s_s.sci b/modules/overloading/macros/%hm_s_s.sci new file mode 100755 index 000000000..4bd98400e --- /dev/null +++ b/modules/overloading/macros/%hm_s_s.sci @@ -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 + +function M1=%hm_s_s(M1,M2) + + // hypermatrix - scalar + + if and(size(M2)==[1 1]) then + M1.entries=M1.entries-M2 + else + dims1=matrix(M1.dims,-1,1) + dims2=size(M2)'; + dims2(3:size(dims1,"*"))=1; + if and(dims1==dims2) then //should not occur + M1.entries=M1.entries-matrix(M2,-1,1) + else + error(9) + end + end +endfunction diff --git a/modules/overloading/macros/%hm_sign.bin b/modules/overloading/macros/%hm_sign.bin Binary files differnew file mode 100755 index 000000000..aa45da44a --- /dev/null +++ b/modules/overloading/macros/%hm_sign.bin diff --git a/modules/overloading/macros/%hm_sign.sci b/modules/overloading/macros/%hm_sign.sci new file mode 100755 index 000000000..d7473a174 --- /dev/null +++ b/modules/overloading/macros/%hm_sign.sci @@ -0,0 +1,13 @@ +// 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 + +function M=%hm_sign(M) + + M("entries")=sign(M("entries")) +endfunction diff --git a/modules/overloading/macros/%hm_sin.bin b/modules/overloading/macros/%hm_sin.bin Binary files differnew file mode 100755 index 000000000..f916c325a --- /dev/null +++ b/modules/overloading/macros/%hm_sin.bin diff --git a/modules/overloading/macros/%hm_sin.sci b/modules/overloading/macros/%hm_sin.sci new file mode 100755 index 000000000..08303c149 --- /dev/null +++ b/modules/overloading/macros/%hm_sin.sci @@ -0,0 +1,13 @@ +// 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 + +function M=%hm_sin(M) + + M("entries")=sin(M("entries")) +endfunction diff --git a/modules/overloading/macros/%hm_size.bin b/modules/overloading/macros/%hm_size.bin Binary files differnew file mode 100755 index 000000000..aa3a3d908 --- /dev/null +++ b/modules/overloading/macros/%hm_size.bin diff --git a/modules/overloading/macros/%hm_size.sci b/modules/overloading/macros/%hm_size.sci new file mode 100755 index 000000000..47ee4ffd0 --- /dev/null +++ b/modules/overloading/macros/%hm_size.sci @@ -0,0 +1,54 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA +// Copyright (C) INRIA - 2011 - Serge STEER +// Copyright (C) DIGITEO - 2011 - 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 + +function varargout = %hm_size(M, job) + + // returns dimensions of an hyper matrix + [lhs, rhs] = argn(0); + dims = matrix(double(M.dims), 1, -1); + if rhs == 2 then + if type(job) == 10 then + select job + case "*" then + varargout(1) = prod(dims); + case "r" then + varargout(1) = dims(1); + case "c" then + varargout(1) = dims(2); + else + error(msprintf(_("%s: Wrong value for input argument #%d: ''%s'', ''%s'' or ''%s'' expected.\n"), "size", 2, "r", "c", "*")) + end + return + elseif type(job) == 1 then + if (size(job,"*") > 1) | (job <= 0) then + error(msprintf(_("%s: Wrong value for input argument #%d: Scalar positive integer expected.\n"), "size", 2)); + end + if job <= size(dims, "*") then + varargout(1) = dims(job); + else + varargout(1) = 1; + end + else + error(msprintf(_("%s: Wrong value for input argument #%d: Scalar positive integer or character string expected.\n"),"size", 2)); + end + return + end + if lhs == 1 then + varargout(1) = matrix(dims, 1, -1); + else + if lhs > size(dims, "*") then + dims($+1:lhs) = 1; + end + for k = 1:lhs + varargout(k) = dims(k); + end + end +endfunction diff --git a/modules/overloading/macros/%hm_sqrt.bin b/modules/overloading/macros/%hm_sqrt.bin Binary files differnew file mode 100755 index 000000000..49597f117 --- /dev/null +++ b/modules/overloading/macros/%hm_sqrt.bin diff --git a/modules/overloading/macros/%hm_sqrt.sci b/modules/overloading/macros/%hm_sqrt.sci new file mode 100755 index 000000000..a03c9ce0b --- /dev/null +++ b/modules/overloading/macros/%hm_sqrt.sci @@ -0,0 +1,13 @@ +// 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 + +function M=%hm_sqrt(M) + + M("entries")=sqrt(M("entries")) +endfunction diff --git a/modules/overloading/macros/%hm_stdev.bin b/modules/overloading/macros/%hm_stdev.bin Binary files differnew file mode 100755 index 000000000..c05e741a7 --- /dev/null +++ b/modules/overloading/macros/%hm_stdev.bin diff --git a/modules/overloading/macros/%hm_stdev.sci b/modules/overloading/macros/%hm_stdev.sci new file mode 100755 index 000000000..83545fd15 --- /dev/null +++ b/modules/overloading/macros/%hm_stdev.sci @@ -0,0 +1,66 @@ +// 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 + +function x = %hm_stdev(m, d, ms) + + if argn(2) < 3 then + ms = %f + end + if argn(2) == 3 & type(ms)~=1 & typeof(ms) ~= "hypermat" then + error(msprintf(_("%s: Wrong type for input argument #%d: A real matrix expected.\n"),"stdev",3)); + end + if argn(2) == 1 | d == "*" then + if argn(2) == 3 then + x = stdev(m.entries, "*", ms); + else + x = stdev(m.entries, "*"); + end + return + elseif d == "r" then + d = 1; + elseif d == "c" then + d = 2; + end + dims = double(m.dims); + if d > size(m,d) then + x = zeros(m); + return + end + N = size(dims, "*"); + p1 = prod(dims(1:d-1));// step to build one vector on which stdev is applied + p2 = p1*dims(d);//step for beginning of next vectors + ind = (0:p1:p2-1)';// selection for building one vector + deb = (1:p1); + I = ind*ones(deb)+ones(ind)*deb; + + ind = (0:p2:prod(dims)-1); + I = ones(ind).*.I+ind.*.ones(I); + + if argn(2) == 3 then + if isscalar(ms) then + x = stdev(matrix(m.entries(I),dims(d),-1), 1, ms); + else + x = stdev(matrix(m.entries(I),dims(d),-1), 1, ms.entries'); + end + else + x = stdev(matrix(m.entries(I),dims(d),-1), 1); + end + dims(d) = 1; + if d == N then + dims = dims(1:$) + else + dims(d) = 1 + end + if size(dims, "*") == 2 then + x = matrix(x, dims(1), dims(2)) + else + x = hypermat(dims, x) + end + +endfunction diff --git a/modules/overloading/macros/%hm_string.bin b/modules/overloading/macros/%hm_string.bin Binary files differnew file mode 100755 index 000000000..41089be70 --- /dev/null +++ b/modules/overloading/macros/%hm_string.bin diff --git a/modules/overloading/macros/%hm_string.sci b/modules/overloading/macros/%hm_string.sci new file mode 100755 index 000000000..ad3e4bd3d --- /dev/null +++ b/modules/overloading/macros/%hm_string.sci @@ -0,0 +1,11 @@ +// 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 +function a=%hm_string(a) + a.entries=string(a.entries) +endfunction diff --git a/modules/overloading/macros/%hm_sum.bin b/modules/overloading/macros/%hm_sum.bin Binary files differnew file mode 100755 index 000000000..644e0fd5a --- /dev/null +++ b/modules/overloading/macros/%hm_sum.bin diff --git a/modules/overloading/macros/%hm_sum.sci b/modules/overloading/macros/%hm_sum.sci new file mode 100755 index 000000000..95ccad5b2 --- /dev/null +++ b/modules/overloading/macros/%hm_sum.sci @@ -0,0 +1,103 @@ +// 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 + +function a = %hm_sum(varargin) + a = varargin(1) + dims = size(a); + tm = type(a.entries) + + nargs = size(varargin); + select nargs + case 1 + d = 0; + if tm == 8 then + typ = "native"; + else + typ = "double"; + end + case 2 + if or(varargin(2) == ["native", "double"]) then + d = 0; + typ = varargin(2); + else + d = varargin(2); + if tm == 8 then + typ = "native"; + else + typ = "double"; + end + end + case 3 + d = varargin(2); + typ = varargin(3); + else + error(msprintf(_("%s: Wrong number of input argument(s): %d to %d expected.\n"),"sum", 1, 3)); + end + + // Check second argument : d + select type(d) + case 1 + if size(d,'*') <> 1 then + error(msprintf(_("%s: Wrong size for input argument #%d: A scalar expected.\n"),"sum", 2)) + end + if int(d) <> d | d < 0 then + error(msprintf(_("%s: Wrong value for input argument #%d: Integer >= %d expected.\n"),"sum", 2, 1)) + end + case 10 + if size(d,'*') <> 1 then + error(msprintf(_("%s: Wrong size for input argument #%d: A string expected.\n"),"sum",2)) + end + if and(d<>["r","c","*","m"]) then + error(msprintf(_("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"),.. + "sum",2,"""*"",""r"",""c"",""m""")) + end + pos=[1,2,0,find(dims>1,1)]; + d=pos(find(d==["r","c","*","m"])) + else + error(msprintf(_("%s: Wrong type for input argument #%d: A string or scalar expected.\n"),"sum",2)) + end + + // Check third argument + if type(typ)<>10 then + error(msprintf(_("%s: Wrong type for input argument #%d: A string expected.\n"),"sum",3)) + end + + if size(typ,"*")<>1 then + error(msprintf(_("%s: Wrong size for input argument #%d: A string expected.\n"),"sum",3)) + end + + if and(typ <> ["native" "double"]) then + error(msprintf(_("%s: Wrong value for input argument #%d: ""%s"" or ""%s"" expected.\n"),"sum", 3, "native", "double")); + end + + if d == 0 then // '*' + a=sum(a.entries, "*", typ), dims; + elseif d > size(dims,"*") then + //requested summation direction exceeds array dims, return the array, converted + //to double if necessary. + if typ == "double" & or(tm == [4 8]) then + a.entries=double(a.entries), + end + a=a + else + //permute the array dimension to put the selected dimension first + p=1:size(dims,"*"); + p([1,d])=p([d,1]); + a=matrix(permute(a,p),dims(d),-1) + a=sum(a,1,typ); + //permute back + if d==size(dims, "*") then + dims=dims(1:$-1) + p(1) = [] + else + dims(d)=1 + end + a=permute(matrix(a,dims(p)),p) + end +endfunction diff --git a/modules/overloading/macros/%hm_x_hm.bin b/modules/overloading/macros/%hm_x_hm.bin Binary files differnew file mode 100755 index 000000000..9ba5eb8af --- /dev/null +++ b/modules/overloading/macros/%hm_x_hm.bin diff --git a/modules/overloading/macros/%hm_x_hm.sci b/modules/overloading/macros/%hm_x_hm.sci new file mode 100755 index 000000000..7855378cd --- /dev/null +++ b/modules/overloading/macros/%hm_x_hm.sci @@ -0,0 +1,17 @@ +// 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 + +function M2=%hm_x_hm(M1,M2) + + if and(M1("dims")==M2("dims")) then + M2("entries")=M1("entries").*M2("entries") + else + error(msprintf(_("%s: Inconsistent element-wise operation.\n"),"%hm_x_hm")); + end +endfunction diff --git a/modules/overloading/macros/%hm_x_p.bin b/modules/overloading/macros/%hm_x_p.bin Binary files differnew file mode 100755 index 000000000..35e6edbde --- /dev/null +++ b/modules/overloading/macros/%hm_x_p.bin diff --git a/modules/overloading/macros/%hm_x_p.sci b/modules/overloading/macros/%hm_x_p.sci new file mode 100755 index 000000000..afec5d033 --- /dev/null +++ b/modules/overloading/macros/%hm_x_p.sci @@ -0,0 +1,17 @@ +// 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 + +function M1=%hm_x_p(M1,M2) + //author Serge Steer + if size(M2,"*")<>1 then + error(msprintf(_("%s: Inconsistent element-wise operation.\n"),"%hm_x_p")); + else + M1.entries=M1.entries.*M2 + end +endfunction diff --git a/modules/overloading/macros/%hm_x_s.bin b/modules/overloading/macros/%hm_x_s.bin Binary files differnew file mode 100755 index 000000000..b7e6ee09c --- /dev/null +++ b/modules/overloading/macros/%hm_x_s.bin diff --git a/modules/overloading/macros/%hm_x_s.sci b/modules/overloading/macros/%hm_x_s.sci new file mode 100755 index 000000000..4bd9c6477 --- /dev/null +++ b/modules/overloading/macros/%hm_x_s.sci @@ -0,0 +1,17 @@ +// 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 + +function M1=%hm_x_s(M1,M2) + //author Serge Steer + if size(M2,"*")<>1 then + error(msprintf(_("%s: Inconsistent element-wise operation.\n"),"%hm_x_s")); + else + M1.entries=M1.entries.*M2 + end +endfunction diff --git a/modules/overloading/macros/%hm_zeros.bin b/modules/overloading/macros/%hm_zeros.bin Binary files differnew file mode 100755 index 000000000..005a27143 --- /dev/null +++ b/modules/overloading/macros/%hm_zeros.bin diff --git a/modules/overloading/macros/%hm_zeros.sci b/modules/overloading/macros/%hm_zeros.sci new file mode 100755 index 000000000..21d288454 --- /dev/null +++ b/modules/overloading/macros/%hm_zeros.sci @@ -0,0 +1,37 @@ +// 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 + +function M=%hm_zeros(varargin) + + //creates a zero hypermatrix with shape given by vector of dimensions or an + //hypermatrix + nv=size(varargin) + if nv==1 then + M=varargin(1) + if type(M)==1 then + dims=M + else + dims=M("dims") + end + M=hypermat(dims,zeros(prod(double(dims)),1)) + else + dims=ones(1,nv) + for k=1:nv,dims(k)=int(varargin(k)),end + //remove highest singleton dimensions + ks=find(dims==1); + ns=size(ks,"*"); + while ns>0&nv>2&ks(ns)==nv then ns=ns-1,nv=nv-1,end + if nv==2 then + M=zeros(varargin(1:nv)) + else + M=hypermat(dims(1:nv),zeros(prod(dims(1:nv)),1)) + end + + end +endfunction diff --git a/modules/overloading/macros/%i_a_i.bin b/modules/overloading/macros/%i_a_i.bin Binary files differnew file mode 100755 index 000000000..4ca8d22c6 --- /dev/null +++ b/modules/overloading/macros/%i_a_i.bin diff --git a/modules/overloading/macros/%i_a_i.sci b/modules/overloading/macros/%i_a_i.sci new file mode 100755 index 000000000..78a64f42d --- /dev/null +++ b/modules/overloading/macros/%i_a_i.sci @@ -0,0 +1,19 @@ +// 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 + +function i1=%i_a_i(i1,i2) + t1=inttype(i1); t2=inttype(i2); + //logical promotions + if t1<10 & t2<10 then t=max(t1,t2); end + if t1>10 & t2>10 then t=max(t1,t2); end + //more arbitrary promotions + if t1<10 & t2>10 then t=max(t1+10,t2); end + if t1>10 & t2<10 then t=max(t1,t2+10); end + i1=iconvert(i1,t)+iconvert(i2,t) +endfunction diff --git a/modules/overloading/macros/%i_and.bin b/modules/overloading/macros/%i_and.bin Binary files differnew file mode 100755 index 000000000..39996b57c --- /dev/null +++ b/modules/overloading/macros/%i_and.bin diff --git a/modules/overloading/macros/%i_and.sci b/modules/overloading/macros/%i_and.sci new file mode 100755 index 000000000..efcf3004b --- /dev/null +++ b/modules/overloading/macros/%i_and.sci @@ -0,0 +1,21 @@ +// 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 + +function x=%i_and(a,flag) + // or(a) returns the logical OR + // for scalar matrices, an entry is TRUE if it is not zero. + //! + + if argn(2)==1 then flag="*",end + if flag=="*" then + x=find(a==0,1)==[] + else + x=sum(bool2s(a<>0),flag)==size(a,flag) + end +endfunction diff --git a/modules/overloading/macros/%i_ascii.bin b/modules/overloading/macros/%i_ascii.bin Binary files differnew file mode 100755 index 000000000..57fd8d0b1 --- /dev/null +++ b/modules/overloading/macros/%i_ascii.bin diff --git a/modules/overloading/macros/%i_ascii.sci b/modules/overloading/macros/%i_ascii.sci new file mode 100755 index 000000000..e79e852ba --- /dev/null +++ b/modules/overloading/macros/%i_ascii.sci @@ -0,0 +1,16 @@ +// 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 + +function x=%i_ascii(x) + if type(x)==10 + x=int32(ascii(x)) + else + x=ascii(double(x)) + end +endfunction diff --git a/modules/overloading/macros/%i_b_s.bin b/modules/overloading/macros/%i_b_s.bin Binary files differnew file mode 100755 index 000000000..7df80cd41 --- /dev/null +++ b/modules/overloading/macros/%i_b_s.bin diff --git a/modules/overloading/macros/%i_b_s.sci b/modules/overloading/macros/%i_b_s.sci new file mode 100755 index 000000000..7b10dea7e --- /dev/null +++ b/modules/overloading/macros/%i_b_s.sci @@ -0,0 +1,25 @@ +// 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 + +function r=%i_b_s(varargin) + //a:b where a is int and b double + //a:b:c where a is int, b double and c every type + if round(varargin(1))<>varargin(1) then + error(msprintf(_("%s: Wrong type for input argument #%d: integer values expected.\n"),"%i_b_s",1)); + end + if size(varargin)==2 then //a:b + it=inttype(varargin(1)) + r=varargin(1):iconvert(varargin(2),it) + else + it=inttype(varargin(1)) + r=varargin(1):iconvert(varargin(2),it):iconvert(varargin(3),it) + end +endfunction + + diff --git a/modules/overloading/macros/%i_bezout.bin b/modules/overloading/macros/%i_bezout.bin Binary files differnew file mode 100755 index 000000000..daa6ece5c --- /dev/null +++ b/modules/overloading/macros/%i_bezout.bin diff --git a/modules/overloading/macros/%i_bezout.sci b/modules/overloading/macros/%i_bezout.sci new file mode 100755 index 000000000..5563452f8 --- /dev/null +++ b/modules/overloading/macros/%i_bezout.sci @@ -0,0 +1,32 @@ +// 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 + +function [g,u] = %i_bezout(a,b) + // g = bezout(a,b) is the greatest common divisor of a and b. + // a and b must contain non-negative integer scalars. + // [g,U] = bezout(a,b) also returns a (2x2) unimodular matrix U such that: + // [a,b]*U = [g,0]. + // These are useful for solving Diophantine equations and computing + // Hermite transformations. + + it=max(inttype(a),inttype(b)) + a=iconvert(a,it);b=iconvert(b,it) + u = [iconvert([1 0],it) a]; + v = [iconvert([0 1],it) b]; + zero=iconvert(0,it) + while v(3)<>zero + q = u(3)/v(3); + t = u - v*q; + u = v; + v = t; + end + g = u(3); + u=[u(1) -v(1);u(2) -v(2)] + +endfunction diff --git a/modules/overloading/macros/%i_d_i.bin b/modules/overloading/macros/%i_d_i.bin Binary files differnew file mode 100755 index 000000000..e40510ecd --- /dev/null +++ b/modules/overloading/macros/%i_d_i.bin diff --git a/modules/overloading/macros/%i_d_i.sci b/modules/overloading/macros/%i_d_i.sci new file mode 100755 index 000000000..b5002e065 --- /dev/null +++ b/modules/overloading/macros/%i_d_i.sci @@ -0,0 +1,19 @@ +// 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 + +function i1=%i_d_i(i1,i2) + t1=inttype(i1); t2=inttype(i2); + //logical promotions + if t1<10 & t2<10 then t=max(t1,t2); end + if t1>10 & t2>10 then t=max(t1,t2); end + //more arbitrary promotions + if t1<10 & t2>10 then t=max(t1+10,t2); end + if t1>10 & t2<10 then t=max(t1,t2+10); end + i1=iconvert(i1,t) ./ iconvert(i2,t) +endfunction diff --git a/modules/overloading/macros/%i_dsearch.bin b/modules/overloading/macros/%i_dsearch.bin Binary files differnew file mode 100755 index 000000000..a108e599e --- /dev/null +++ b/modules/overloading/macros/%i_dsearch.bin diff --git a/modules/overloading/macros/%i_dsearch.sci b/modules/overloading/macros/%i_dsearch.sci new file mode 100755 index 000000000..f971ef03a --- /dev/null +++ b/modules/overloading/macros/%i_dsearch.sci @@ -0,0 +1,18 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2013 - Scilab Enterprises - Charlotte HECQUET +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should 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 [ind, occ, info] = %i_dsearch(H, r, flag) + if argn(2)<3 then + flag = "c"; + end + H = iconvert(H, 0); + r = iconvert(r, 0); + [ind, occ, info] = dsearch(H, r, flag); +endfunction diff --git a/modules/overloading/macros/%i_e.bin b/modules/overloading/macros/%i_e.bin Binary files differnew file mode 100755 index 000000000..582b5b16d --- /dev/null +++ b/modules/overloading/macros/%i_e.bin diff --git a/modules/overloading/macros/%i_e.sci b/modules/overloading/macros/%i_e.sci new file mode 100755 index 000000000..310e1504a --- /dev/null +++ b/modules/overloading/macros/%i_e.sci @@ -0,0 +1,33 @@ +// 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 + +function f=%i_e(varargin) + //A(i,j,k,..) + + rhs=size(varargin) + M=varargin(rhs) + + nind=rhs-1 + dims=[] + for k=3:nind + ind=varargin(k) + if type(ind)==2|type(ind)==129 then ind=horner(ind,1),end + if type(ind)==4 then ind=find(ind),end + if or(ind<>1) then error(21),end + n=size(ind,"*") + dims=[dims,n] + end + f=M(varargin(1:min(2,rhs-1))) + k=find(dims>1) + if k<>[] then + dims(k($)+1:$)=[] + N=prod(dims) + f=mlist(["hm","dims","entries"],int32([size(f) dims]),int32(ones(N,1)).*.f(:)) + end +endfunction diff --git a/modules/overloading/macros/%i_g_i.bin b/modules/overloading/macros/%i_g_i.bin Binary files differnew file mode 100755 index 000000000..0385a46a7 --- /dev/null +++ b/modules/overloading/macros/%i_g_i.bin diff --git a/modules/overloading/macros/%i_g_i.sci b/modules/overloading/macros/%i_g_i.sci new file mode 100755 index 000000000..ba4e87864 --- /dev/null +++ b/modules/overloading/macros/%i_g_i.sci @@ -0,0 +1,19 @@ +// 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 + +function i1=%i_g_i(i1,i2) + t1=inttype(i1); t2=inttype(i2); + //logical promotions + if t1<10 & t2<10 then t=max(t1,t2); end + if t1>10 & t2>10 then t=max(t1,t2); end + //more arbitrary promotions + if t1<10 & t2>10 then t=max(t1+10,t2); end + if t1>10 & t2<10 then t=max(t1,t2+10); end + i1=iconvert(i1,t) | iconvert(i2,t) +endfunction diff --git a/modules/overloading/macros/%i_gcd.bin b/modules/overloading/macros/%i_gcd.bin Binary files differnew file mode 100755 index 000000000..1fc3097b3 --- /dev/null +++ b/modules/overloading/macros/%i_gcd.bin diff --git a/modules/overloading/macros/%i_gcd.sci b/modules/overloading/macros/%i_gcd.sci new file mode 100755 index 000000000..97b682f8e --- /dev/null +++ b/modules/overloading/macros/%i_gcd.sci @@ -0,0 +1,40 @@ +// 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 + +function [x,uu]=%i_gcd(p) + //Given a polynomial vector p, [pgcd,u]=gcd(p) computes the gcd + //of components and a unimodular matrix (with polynomial inverse) u, + //with minimal degree such that [p1 p2]*u=[0 ... 0 pgcd] + //! + + [lhs,rhs]=argn(0) + [m,n]=size(p);it=inttype(p) + mn=m*n + p=matrix(p,1,mn) + x=p(1); + uu=iconvert(1,it) + for l=2:mn, + [x,u]=bezout(x,p(l)), + if lhs==2 then + uu=[uu(:,1:l-2) uu(:,l-1)*u(1,[2 1])];uu(l,l-1:l)=u(2,[2 1]); + end + end, + if lhs==1 then return,end + for l=mn:-1:2 + pivot=uu(l,l-1); + for k=l:mn + q=uu(l,k)/pivot + r=uu(l,k)-q*pivot + if q<>iconvert(0,it) then + uu(1:l-1,k)=uu(1:l-1,k)-q*uu(1:l-1,l-1) + uu(l,k)=r; + end + end + end +endfunction diff --git a/modules/overloading/macros/%i_h_i.bin b/modules/overloading/macros/%i_h_i.bin Binary files differnew file mode 100755 index 000000000..a418d37b5 --- /dev/null +++ b/modules/overloading/macros/%i_h_i.bin diff --git a/modules/overloading/macros/%i_h_i.sci b/modules/overloading/macros/%i_h_i.sci new file mode 100755 index 000000000..087e7cca7 --- /dev/null +++ b/modules/overloading/macros/%i_h_i.sci @@ -0,0 +1,19 @@ +// 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 + +function i1=%i_h_i(i1,i2) + t1=inttype(i1); t2=inttype(i2); + //logical promotions + if t1<10 & t2<10 then t=max(t1,t2); end + if t1>10 & t2>10 then t=max(t1,t2); end + //more arbitrary promotions + if t1<10 & t2>10 then t=max(t1+10,t2); end + if t1>10 & t2<10 then t=max(t1,t2+10); end + i1=iconvert(i1,t) & iconvert(i2,t) +endfunction diff --git a/modules/overloading/macros/%i_i_ce.bin b/modules/overloading/macros/%i_i_ce.bin Binary files differnew file mode 100755 index 000000000..11b287810 --- /dev/null +++ b/modules/overloading/macros/%i_i_ce.bin diff --git a/modules/overloading/macros/%i_i_ce.sci b/modules/overloading/macros/%i_i_ce.sci new file mode 100755 index 000000000..d86ecf8fb --- /dev/null +++ b/modules/overloading/macros/%i_i_ce.sci @@ -0,0 +1,14 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - Vincent Couvert +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should 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=%i_i_ce(varargin) + + // Insertion of an integer matrix in a cell + M=generic_i_ce(varargin(:)) +endfunction diff --git a/modules/overloading/macros/%i_i_h.bin b/modules/overloading/macros/%i_i_h.bin Binary files differnew file mode 100755 index 000000000..71090326d --- /dev/null +++ b/modules/overloading/macros/%i_i_h.bin diff --git a/modules/overloading/macros/%i_i_h.sci b/modules/overloading/macros/%i_i_h.sci new file mode 100755 index 000000000..c63fbc2eb --- /dev/null +++ b/modules/overloading/macros/%i_i_h.sci @@ -0,0 +1,16 @@ +// 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 + +function h=%i_i_h(i,v,h) + h=generic_i_h(i,v,h) +endfunction + + + + diff --git a/modules/overloading/macros/%i_i_hm.bin b/modules/overloading/macros/%i_i_hm.bin Binary files differnew file mode 100755 index 000000000..ccfcd89e0 --- /dev/null +++ b/modules/overloading/macros/%i_i_hm.bin diff --git a/modules/overloading/macros/%i_i_hm.sci b/modules/overloading/macros/%i_i_hm.sci new file mode 100755 index 000000000..48df2ffc8 --- /dev/null +++ b/modules/overloading/macros/%i_i_hm.sci @@ -0,0 +1,15 @@ +// 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 + +function M=%i_i_hm(varargin) + + //insertion of an integer matrix in an hypermatrix + N=varargin($-1) + M=generic_i_hm(iconvert(0,inttype(N(1))),varargin(:)) +endfunction diff --git a/modules/overloading/macros/%i_i_i.bin b/modules/overloading/macros/%i_i_i.bin Binary files differnew file mode 100755 index 000000000..86b3a2782 --- /dev/null +++ b/modules/overloading/macros/%i_i_i.bin diff --git a/modules/overloading/macros/%i_i_i.sci b/modules/overloading/macros/%i_i_i.sci new file mode 100755 index 000000000..a466a7023 --- /dev/null +++ b/modules/overloading/macros/%i_i_i.sci @@ -0,0 +1,27 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 1998-2011 - INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function M=%i_i_i(varargin) + //- insertion of an integer matrix in an matrix of integers + // for more than 2 indices + // -insertion an integer matrix in an integer matrix which has a + // different integer type + rhs=argn(2) + M=varargin(rhs) + it=inttype(M) + M=mlist(["hm","dims","entries"],int32(size(M)),M(:)) + varargin(rhs)=M; + + if it<>inttype(varargin(rhs-1)) then + //different integer types (should be hard coded) + varargin(rhs-1)=iconvert(varargin(rhs-1),it) + end + + M=generic_i_hm(iconvert(0,it),varargin(:)) +endfunction diff --git a/modules/overloading/macros/%i_i_s.bin b/modules/overloading/macros/%i_i_s.bin Binary files differnew file mode 100755 index 000000000..fa7dfd88b --- /dev/null +++ b/modules/overloading/macros/%i_i_s.bin diff --git a/modules/overloading/macros/%i_i_s.sci b/modules/overloading/macros/%i_i_s.sci new file mode 100755 index 000000000..7b30945d9 --- /dev/null +++ b/modules/overloading/macros/%i_i_s.sci @@ -0,0 +1,46 @@ +// 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 + +function M=%i_i_s(varargin) + //insertion of an integer matrix in an matrix of double + + + rhs=argn(2) + index=varargin(1) + + if rhs==3&(type(index)==10|type(index)==15) then //struct or cell creation + N=varargin(rhs-1)//inserted matrix + M=createstruct(index,N) + if type(index(1))<>10 & index(2)=="entries" then + // change struct to cell + f=getfield(1,M);f(1)="ce" + setfield(1,f,M) + end + elseif rhs>4 then//more than 2 indices: insertion of an integer in a matrix of numbers + M=varargin($) + if M<>[] then + varargin($-1)=double(varargin($-1)), + def=0; + else + def=iconvert(0,inttype(varargin($-1))) + end + M=mlist(["hm","dims","entries"],int32(size(M)),M(:)) + varargin($)=M; + M=generic_i_hm(def,varargin(:)) + else //type conversion + M=varargin($) + if M==[] then + N=varargin($-1) + M=iconvert(0,inttype(N)) + M(varargin(1:$-2))=varargin($-1) + else + M(varargin(1:$-2))=double(varargin($-1)) + end + end +endfunction diff --git a/modules/overloading/macros/%i_i_st.bin b/modules/overloading/macros/%i_i_st.bin Binary files differnew file mode 100755 index 000000000..365dcbacb --- /dev/null +++ b/modules/overloading/macros/%i_i_st.bin diff --git a/modules/overloading/macros/%i_i_st.sci b/modules/overloading/macros/%i_i_st.sci new file mode 100755 index 000000000..780e06496 --- /dev/null +++ b/modules/overloading/macros/%i_i_st.sci @@ -0,0 +1,12 @@ +// 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 + +function out=%i_i_st(i,in,out) + out=generic_i_st(i,in,out) +endfunction diff --git a/modules/overloading/macros/%i_lcm.bin b/modules/overloading/macros/%i_lcm.bin Binary files differnew file mode 100755 index 000000000..b3ad47e07 --- /dev/null +++ b/modules/overloading/macros/%i_lcm.bin diff --git a/modules/overloading/macros/%i_lcm.sci b/modules/overloading/macros/%i_lcm.sci new file mode 100755 index 000000000..a16653148 --- /dev/null +++ b/modules/overloading/macros/%i_lcm.sci @@ -0,0 +1,24 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function [q,fact]=%i_lcm(p) + //p=lcm(p) computes the lcm of polynomial vector p + //[pp,fact]=lcm(p) computes besides the vector fact of factors + //such that p.*fact=pp*ones(p) + //! + + k=find(p==0) + if k<>[] then q=p(k(1)),fact=0*ones(p),fact(k)=1,return,end + + q=p(1); + for k=2:size(p,"*") + q=q/%i_gcd([q,p(k)])*p(k); + end + fact=q./p +endfunction diff --git a/modules/overloading/macros/%i_length.bin b/modules/overloading/macros/%i_length.bin Binary files differnew file mode 100755 index 000000000..3c5e0fba0 --- /dev/null +++ b/modules/overloading/macros/%i_length.bin diff --git a/modules/overloading/macros/%i_length.sci b/modules/overloading/macros/%i_length.sci new file mode 100755 index 000000000..82318e2ae --- /dev/null +++ b/modules/overloading/macros/%i_length.sci @@ -0,0 +1,12 @@ +// 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 + +function l=%i_length(ia) + l=prod(size(ia)) +endfunction diff --git a/modules/overloading/macros/%i_m_i.bin b/modules/overloading/macros/%i_m_i.bin Binary files differnew file mode 100755 index 000000000..d8baeff49 --- /dev/null +++ b/modules/overloading/macros/%i_m_i.bin diff --git a/modules/overloading/macros/%i_m_i.sci b/modules/overloading/macros/%i_m_i.sci new file mode 100755 index 000000000..b2a9c2a2f --- /dev/null +++ b/modules/overloading/macros/%i_m_i.sci @@ -0,0 +1,19 @@ +// 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 + +function i1=%i_m_i(i1,i2) + t1=inttype(i1); t2=inttype(i2); + //logical promotions + if t1<10 & t2<10 then t=max(t1,t2); end + if t1>10 & t2>10 then t=max(t1,t2); end + //more arbitrary promotions + if t1<10 & t2>10 then t=max(t1+10,t2); end + if t1>10 & t2<10 then t=max(t1,t2+10); end + i1=iconvert(i1,t) * iconvert(i2,t) +endfunction diff --git a/modules/overloading/macros/%i_or.bin b/modules/overloading/macros/%i_or.bin Binary files differnew file mode 100755 index 000000000..7df478614 --- /dev/null +++ b/modules/overloading/macros/%i_or.bin diff --git a/modules/overloading/macros/%i_or.sci b/modules/overloading/macros/%i_or.sci new file mode 100755 index 000000000..074e84adf --- /dev/null +++ b/modules/overloading/macros/%i_or.sci @@ -0,0 +1,21 @@ +// 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 + +function x=%i_or(a,flag) + // or(a) returns the logical OR + // for scalar matrices, an entry is TRUE if it is not zero. + //! + + if argn(2)==1 then flag="*",end + if flag=="*" then + x=find(a<>0,1)<>[] + else + x=sum(bool2s(a<>0),flag)>=1 + end +endfunction diff --git a/modules/overloading/macros/%i_r_i.bin b/modules/overloading/macros/%i_r_i.bin Binary files differnew file mode 100755 index 000000000..be33e005b --- /dev/null +++ b/modules/overloading/macros/%i_r_i.bin diff --git a/modules/overloading/macros/%i_r_i.sci b/modules/overloading/macros/%i_r_i.sci new file mode 100755 index 000000000..ae3d5bcc7 --- /dev/null +++ b/modules/overloading/macros/%i_r_i.sci @@ -0,0 +1,19 @@ +// 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 + +function i1=%i_r_i(i1,i2) + t1=inttype(i1); t2=inttype(i2); + //logical promotions + if t1<10 & t2<10 then t=max(t1,t2); end + if t1>10 & t2>10 then t=max(t1,t2); end + //more arbitrary promotions + if t1<10 & t2>10 then t=max(t1+10,t2); end + if t1>10 & t2<10 then t=max(t1,t2+10); end + i1=iconvert(i1,t) / iconvert(i2,t) +endfunction diff --git a/modules/overloading/macros/%i_round.bin b/modules/overloading/macros/%i_round.bin Binary files differnew file mode 100755 index 000000000..a9885cf54 --- /dev/null +++ b/modules/overloading/macros/%i_round.bin diff --git a/modules/overloading/macros/%i_round.sci b/modules/overloading/macros/%i_round.sci new file mode 100755 index 000000000..6ddfe4e42 --- /dev/null +++ b/modules/overloading/macros/%i_round.sci @@ -0,0 +1,11 @@ +// 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 + +function x=%i_round(x) +endfunction diff --git a/modules/overloading/macros/%i_s_i.bin b/modules/overloading/macros/%i_s_i.bin Binary files differnew file mode 100755 index 000000000..30c705cf0 --- /dev/null +++ b/modules/overloading/macros/%i_s_i.bin diff --git a/modules/overloading/macros/%i_s_i.sci b/modules/overloading/macros/%i_s_i.sci new file mode 100755 index 000000000..56ca716cd --- /dev/null +++ b/modules/overloading/macros/%i_s_i.sci @@ -0,0 +1,19 @@ +// 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 + +function i1=%i_s_i(i1,i2) + t1=inttype(i1); t2=inttype(i2); + //logical promotions + if t1<10 & t2<10 then t=max(t1,t2); end + if t1>10 & t2>10 then t=max(t1,t2); end + //more arbitrary promotions + if t1<10 & t2>10 then t=max(t1+10,t2); end + if t1>10 & t2<10 then t=max(t1,t2+10); end + i1=iconvert(i1,t)-iconvert(i2,t) +endfunction diff --git a/modules/overloading/macros/%i_x_i.bin b/modules/overloading/macros/%i_x_i.bin Binary files differnew file mode 100755 index 000000000..420dfbf2c --- /dev/null +++ b/modules/overloading/macros/%i_x_i.bin diff --git a/modules/overloading/macros/%i_x_i.sci b/modules/overloading/macros/%i_x_i.sci new file mode 100755 index 000000000..4e2d97a64 --- /dev/null +++ b/modules/overloading/macros/%i_x_i.sci @@ -0,0 +1,19 @@ +// 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 + +function i1=%i_x_i(i1,i2) + t1=inttype(i1); t2=inttype(i2); + //logical promotions + if t1<10 & t2<10 then t=max(t1,t2); end + if t1>10 & t2>10 then t=max(t1,t2); end + //more arbitrary promotions + if t1<10 & t2>10 then t=max(t1+10,t2); end + if t1>10 & t2<10 then t=max(t1,t2+10); end + i1=iconvert(i1,t) .* iconvert(i2,t) +endfunction diff --git a/modules/overloading/macros/%ip_a_s.bin b/modules/overloading/macros/%ip_a_s.bin Binary files differnew file mode 100755 index 000000000..a90d97104 --- /dev/null +++ b/modules/overloading/macros/%ip_a_s.bin diff --git a/modules/overloading/macros/%ip_a_s.sci b/modules/overloading/macros/%ip_a_s.sci new file mode 100755 index 000000000..a8b0afb25 --- /dev/null +++ b/modules/overloading/macros/%ip_a_s.sci @@ -0,0 +1,14 @@ +// 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 + +function r=%ip_a_s(ip,s) + // ip+s + if size(s,"*")<>1 then error(10),end + r=(ip(1)+s):(ip(2)+s):(ip(3)+s) +endfunction diff --git a/modules/overloading/macros/%ip_i_st.bin b/modules/overloading/macros/%ip_i_st.bin Binary files differnew file mode 100755 index 000000000..e4472fd2a --- /dev/null +++ b/modules/overloading/macros/%ip_i_st.bin diff --git a/modules/overloading/macros/%ip_i_st.sci b/modules/overloading/macros/%ip_i_st.sci new file mode 100755 index 000000000..38161382b --- /dev/null +++ b/modules/overloading/macros/%ip_i_st.sci @@ -0,0 +1,12 @@ +// 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 + +function out=%ip_i_st(i,in,out) + out=generic_i_st(i,in,out) +endfunction diff --git a/modules/overloading/macros/%ip_m_s.bin b/modules/overloading/macros/%ip_m_s.bin Binary files differnew file mode 100755 index 000000000..82d96b052 --- /dev/null +++ b/modules/overloading/macros/%ip_m_s.bin diff --git a/modules/overloading/macros/%ip_m_s.sci b/modules/overloading/macros/%ip_m_s.sci new file mode 100755 index 000000000..de86ff2d5 --- /dev/null +++ b/modules/overloading/macros/%ip_m_s.sci @@ -0,0 +1,14 @@ +// 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 + +function r=%ip_m_s(ip,s) + // ip*s + if size(s,"*")<>1 then error(10),end + r=(ip(1)*s):(ip(2)*s):(ip(3)*s) +endfunction diff --git a/modules/overloading/macros/%ip_n_ip.bin b/modules/overloading/macros/%ip_n_ip.bin Binary files differnew file mode 100755 index 000000000..b41969a3e --- /dev/null +++ b/modules/overloading/macros/%ip_n_ip.bin diff --git a/modules/overloading/macros/%ip_n_ip.sci b/modules/overloading/macros/%ip_n_ip.sci new file mode 100755 index 000000000..25bcb1a0c --- /dev/null +++ b/modules/overloading/macros/%ip_n_ip.sci @@ -0,0 +1,12 @@ + +// 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 +function r=%ip_n_ip(l1,l2) + r=l1(1)<>l2(1)|l1(2)<>l2(2)|l1(3)<>l2(3) +endfunction diff --git a/modules/overloading/macros/%ip_o_ip.bin b/modules/overloading/macros/%ip_o_ip.bin Binary files differnew file mode 100755 index 000000000..ca7c85b3a --- /dev/null +++ b/modules/overloading/macros/%ip_o_ip.bin diff --git a/modules/overloading/macros/%ip_o_ip.sci b/modules/overloading/macros/%ip_o_ip.sci new file mode 100755 index 000000000..0abd47064 --- /dev/null +++ b/modules/overloading/macros/%ip_o_ip.sci @@ -0,0 +1,12 @@ +// 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 + +function r=%ip_o_ip(l1,l2) + r=l1(1)==l2(1)&l1(2)==l2(2)&l1(3)==l2(3) +endfunction diff --git a/modules/overloading/macros/%ip_p.bin b/modules/overloading/macros/%ip_p.bin Binary files differnew file mode 100755 index 000000000..5d6ea8e9e --- /dev/null +++ b/modules/overloading/macros/%ip_p.bin diff --git a/modules/overloading/macros/%ip_p.sci b/modules/overloading/macros/%ip_p.sci new file mode 100755 index 000000000..9a2b8ae5a --- /dev/null +++ b/modules/overloading/macros/%ip_p.sci @@ -0,0 +1,12 @@ +// 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 + +function %ip_p(x) + disp(sci2exp(x(1),0)+":"+sci2exp(x(2),0)+":"+sci2exp(x(3),0)) +endfunction diff --git a/modules/overloading/macros/%ip_s_s.bin b/modules/overloading/macros/%ip_s_s.bin Binary files differnew file mode 100755 index 000000000..6407e3c13 --- /dev/null +++ b/modules/overloading/macros/%ip_s_s.bin diff --git a/modules/overloading/macros/%ip_s_s.sci b/modules/overloading/macros/%ip_s_s.sci new file mode 100755 index 000000000..b78e4846f --- /dev/null +++ b/modules/overloading/macros/%ip_s_s.sci @@ -0,0 +1,14 @@ +// 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 + +function r=%ip_s_s(ip,s) + // ip-s + if size(s,"*")<>1 then error(10),end + r=(ip(1)-s):(ip(2)-s):(ip(3)-s) +endfunction diff --git a/modules/overloading/macros/%ip_string.bin b/modules/overloading/macros/%ip_string.bin Binary files differnew file mode 100755 index 000000000..2aa8dec9f --- /dev/null +++ b/modules/overloading/macros/%ip_string.bin diff --git a/modules/overloading/macros/%ip_string.sci b/modules/overloading/macros/%ip_string.sci new file mode 100755 index 000000000..78d16163d --- /dev/null +++ b/modules/overloading/macros/%ip_string.sci @@ -0,0 +1,22 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA +// Copyright (C) DIGITEO - 2012 - 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 + +function r = %ip_string(index) + r = []; v = []; + if execstr("v = [index(1) index(2) index(3)];", "errcatch") == 0 then + r = sci2exp(v(1)) + ":" + sci2exp(v(2)) + ":" + sci2exp(v(3)); + else + if execstr("v = [index(1) index(2)];", "errcatch") == 0 then + r = sci2exp(v(1)) + ":" + sci2exp(v(2)); + else + error(999, msprintf(gettext("%s: Wrong size for input argument #%d.\n"), "string", 1)); + end + end +endfunction diff --git a/modules/overloading/macros/%l_i_h.bin b/modules/overloading/macros/%l_i_h.bin Binary files differnew file mode 100755 index 000000000..8dbd2c9fa --- /dev/null +++ b/modules/overloading/macros/%l_i_h.bin diff --git a/modules/overloading/macros/%l_i_h.sci b/modules/overloading/macros/%l_i_h.sci new file mode 100755 index 000000000..59281bd1d --- /dev/null +++ b/modules/overloading/macros/%l_i_h.sci @@ -0,0 +1,16 @@ +// 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 + +function h=%l_i_h(i,v,h) + h=generic_i_h(i,v,h) +endfunction + + + + diff --git a/modules/overloading/macros/%l_i_s.bin b/modules/overloading/macros/%l_i_s.bin Binary files differnew file mode 100755 index 000000000..0155ca697 --- /dev/null +++ b/modules/overloading/macros/%l_i_s.bin diff --git a/modules/overloading/macros/%l_i_s.sci b/modules/overloading/macros/%l_i_s.sci new file mode 100755 index 000000000..948994e4e --- /dev/null +++ b/modules/overloading/macros/%l_i_s.sci @@ -0,0 +1,13 @@ +// 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 + +function M=%l_i_s(varargin) + M=generic_i_s(varargin(:)) +endfunction + diff --git a/modules/overloading/macros/%l_i_st.bin b/modules/overloading/macros/%l_i_st.bin Binary files differnew file mode 100755 index 000000000..57b4a774c --- /dev/null +++ b/modules/overloading/macros/%l_i_st.bin diff --git a/modules/overloading/macros/%l_i_st.sci b/modules/overloading/macros/%l_i_st.sci new file mode 100755 index 000000000..b8ecf8040 --- /dev/null +++ b/modules/overloading/macros/%l_i_st.sci @@ -0,0 +1,12 @@ +// 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 + +function out=%l_i_st(i,in,out) + out=generic_i_st(i,in,out) +endfunction diff --git a/modules/overloading/macros/%l_isequal.bin b/modules/overloading/macros/%l_isequal.bin Binary files differnew file mode 100755 index 000000000..35f6cedf6 --- /dev/null +++ b/modules/overloading/macros/%l_isequal.bin diff --git a/modules/overloading/macros/%l_isequal.sci b/modules/overloading/macros/%l_isequal.sci new file mode 100755 index 000000000..0b6b73d09 --- /dev/null +++ b/modules/overloading/macros/%l_isequal.sci @@ -0,0 +1,30 @@ +// 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 + +function r=%l_isequal(x1,varargin) + narg=size(varargin) + if narg==0 then error(msprintf(_("%s: Wrong number of input arguments: At least %d expected.\n"),"%l_isequal",2)) ,end + + r=%t + m=lstsize(x1) + + for k=1:narg + n=lstsize(varargin(k)) + r=r&(n==m) + if ~r then return,end + end + + for k=1:narg + for l=1:m + r=r&isequal(getfield(l,x1),getfield(l,varargin(k))) + if ~r then return,end + end + end +endfunction + diff --git a/modules/overloading/macros/%l_n_c.bin b/modules/overloading/macros/%l_n_c.bin Binary files differnew file mode 100755 index 000000000..97f61f73e --- /dev/null +++ b/modules/overloading/macros/%l_n_c.bin diff --git a/modules/overloading/macros/%l_n_c.sci b/modules/overloading/macros/%l_n_c.sci new file mode 100755 index 000000000..766ea95df --- /dev/null +++ b/modules/overloading/macros/%l_n_c.sci @@ -0,0 +1,15 @@ +// 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 + +function [r]=%l_n_c(l1,l2) + //%l_n_c(l1,l2) : l1==l2 + //! + + r=%t +endfunction diff --git a/modules/overloading/macros/%l_n_l.bin b/modules/overloading/macros/%l_n_l.bin Binary files differnew file mode 100755 index 000000000..b56819674 --- /dev/null +++ b/modules/overloading/macros/%l_n_l.bin diff --git a/modules/overloading/macros/%l_n_l.sci b/modules/overloading/macros/%l_n_l.sci new file mode 100755 index 000000000..843b66d56 --- /dev/null +++ b/modules/overloading/macros/%l_n_l.sci @@ -0,0 +1,30 @@ +// 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 + +function r=%l_n_l(l1,l2) + //%l_n_l(l1,l2) : l1<>l2 + //! + n1=lstsize(l1) + r=n1<>lstsize(l2) + + if ~r&n1>0 then + r=%f(ones(1,n1)) + sel=%f(ones(1,n1)) + k1=definedfields(l1) + k2=definedfields(l2) + for i=intersect(k1,k2), + if and(getfield(i,l1)==getfield(i,l2)) then r(i)= %t,end + end + s1=1:n1;s1(k1)=[]; + s2=1:n1;s2(k2)=[]; + k1=intersect(s1,s2) + if k1<>[] then r(intersect(s1,s2))=%t,end + r=~r + end +endfunction diff --git a/modules/overloading/macros/%l_n_m.bin b/modules/overloading/macros/%l_n_m.bin Binary files differnew file mode 100755 index 000000000..7fc92654c --- /dev/null +++ b/modules/overloading/macros/%l_n_m.bin diff --git a/modules/overloading/macros/%l_n_m.sci b/modules/overloading/macros/%l_n_m.sci new file mode 100755 index 000000000..f3bb32098 --- /dev/null +++ b/modules/overloading/macros/%l_n_m.sci @@ -0,0 +1,15 @@ +// 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 + +function [r]=%l_n_m(l1,l2) + //%l_n_m(l1,l2) <=>l1==l2 l1 list l2 function + //! + + r=%t +endfunction diff --git a/modules/overloading/macros/%l_n_p.bin b/modules/overloading/macros/%l_n_p.bin Binary files differnew file mode 100755 index 000000000..812936ac9 --- /dev/null +++ b/modules/overloading/macros/%l_n_p.bin diff --git a/modules/overloading/macros/%l_n_p.sci b/modules/overloading/macros/%l_n_p.sci new file mode 100755 index 000000000..b4eebd9c9 --- /dev/null +++ b/modules/overloading/macros/%l_n_p.sci @@ -0,0 +1,14 @@ +// 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 + +function [r]=%l_n_p(l1,l2) + //! + + r=%t +endfunction diff --git a/modules/overloading/macros/%l_n_s.bin b/modules/overloading/macros/%l_n_s.bin Binary files differnew file mode 100755 index 000000000..6f1865865 --- /dev/null +++ b/modules/overloading/macros/%l_n_s.bin diff --git a/modules/overloading/macros/%l_n_s.sci b/modules/overloading/macros/%l_n_s.sci new file mode 100755 index 000000000..eeddfdc96 --- /dev/null +++ b/modules/overloading/macros/%l_n_s.sci @@ -0,0 +1,12 @@ +// 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 +function [r]=%l_n_s(l1,l2) + + r=%t +endfunction diff --git a/modules/overloading/macros/%l_n_st.bin b/modules/overloading/macros/%l_n_st.bin Binary files differnew file mode 100755 index 000000000..7c3c96eef --- /dev/null +++ b/modules/overloading/macros/%l_n_st.bin diff --git a/modules/overloading/macros/%l_n_st.sci b/modules/overloading/macros/%l_n_st.sci new file mode 100755 index 000000000..608ef2bca --- /dev/null +++ b/modules/overloading/macros/%l_n_st.sci @@ -0,0 +1,14 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA, Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function r=%l_n_st(a,b) + // implements r=a~=b + // for a a list and b a struct + r=%t +endfunction diff --git a/modules/overloading/macros/%l_o_c.bin b/modules/overloading/macros/%l_o_c.bin Binary files differnew file mode 100755 index 000000000..b347807ec --- /dev/null +++ b/modules/overloading/macros/%l_o_c.bin diff --git a/modules/overloading/macros/%l_o_c.sci b/modules/overloading/macros/%l_o_c.sci new file mode 100755 index 000000000..44274bf21 --- /dev/null +++ b/modules/overloading/macros/%l_o_c.sci @@ -0,0 +1,15 @@ +// 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 + +function r=%l_o_c(l1,l2) + //%l_o_c(l1,l2) is l1==l2 , l1 list l2 string + //! + + r=%f +endfunction diff --git a/modules/overloading/macros/%l_o_l.bin b/modules/overloading/macros/%l_o_l.bin Binary files differnew file mode 100755 index 000000000..aacfaa8ee --- /dev/null +++ b/modules/overloading/macros/%l_o_l.bin diff --git a/modules/overloading/macros/%l_o_l.sci b/modules/overloading/macros/%l_o_l.sci new file mode 100755 index 000000000..d892c2b80 --- /dev/null +++ b/modules/overloading/macros/%l_o_l.sci @@ -0,0 +1,37 @@ +// 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 + +function [r]=%l_o_l(l1,l2) + //l1==l2 + //! + + n1=length(l1) + + + r=n1==length(l2) + if r&n1>0 then + r=%f(ones(1,n1)) + sel=%f(ones(1,n1)) + k1=definedfields(l1) + k2=definedfields(l2) + for i=intersect(k1,k2), + a=getfield(i, l1); + b=getfield(i, l2); + if exists("a") == 0 | exists("b") == 0 then //case list(1,,2) + r(i) = %f; + else + if and(getfield(i,l1)==getfield(i,l2)) then r(i)= %t,end + end + end + s1=1:n1;s1(k1)=[]; + s2=1:n1;s2(k2)=[]; + k1=intersect(s1,s2) + if k1<>[] then r(intersect(s1,s2))=%t,end + end +endfunction diff --git a/modules/overloading/macros/%l_o_m.bin b/modules/overloading/macros/%l_o_m.bin Binary files differnew file mode 100755 index 000000000..f42274b6e --- /dev/null +++ b/modules/overloading/macros/%l_o_m.bin diff --git a/modules/overloading/macros/%l_o_m.sci b/modules/overloading/macros/%l_o_m.sci new file mode 100755 index 000000000..b30eb26cd --- /dev/null +++ b/modules/overloading/macros/%l_o_m.sci @@ -0,0 +1,14 @@ +// 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 + +function [r]=%l_o_m(l1,l2) + //%l_o_m(l1,l2) <-> logical operation l1==l2, l1 list and l2 macro(function) + //! + r=%f +endfunction diff --git a/modules/overloading/macros/%l_o_p.bin b/modules/overloading/macros/%l_o_p.bin Binary files differnew file mode 100755 index 000000000..55f7a44a3 --- /dev/null +++ b/modules/overloading/macros/%l_o_p.bin diff --git a/modules/overloading/macros/%l_o_p.sci b/modules/overloading/macros/%l_o_p.sci new file mode 100755 index 000000000..c34ad2d40 --- /dev/null +++ b/modules/overloading/macros/%l_o_p.sci @@ -0,0 +1,15 @@ +// 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 + +function [r]=%l_o_p(l1,l2) + //%l_o_p(l1,l2) <-> l1==l2 , l1 list and l2 polynomial matrix + //! + + r=%f +endfunction diff --git a/modules/overloading/macros/%l_o_s.bin b/modules/overloading/macros/%l_o_s.bin Binary files differnew file mode 100755 index 000000000..4accc8246 --- /dev/null +++ b/modules/overloading/macros/%l_o_s.bin diff --git a/modules/overloading/macros/%l_o_s.sci b/modules/overloading/macros/%l_o_s.sci new file mode 100755 index 000000000..b8a288946 --- /dev/null +++ b/modules/overloading/macros/%l_o_s.sci @@ -0,0 +1,15 @@ +// 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 + +function r=%l_o_s(l1,l2) + //%l_o_s(l1,l2) <=> l1==l2 l1 list l2 matrix + //! + + r=%f +endfunction diff --git a/modules/overloading/macros/%l_o_st.bin b/modules/overloading/macros/%l_o_st.bin Binary files differnew file mode 100755 index 000000000..6f10fd157 --- /dev/null +++ b/modules/overloading/macros/%l_o_st.bin diff --git a/modules/overloading/macros/%l_o_st.sci b/modules/overloading/macros/%l_o_st.sci new file mode 100755 index 000000000..d59527841 --- /dev/null +++ b/modules/overloading/macros/%l_o_st.sci @@ -0,0 +1,14 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA, Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function r=%l_o_st(a,b) + // implements r=a==b + // for a a list and b a struct + r=%f +endfunction diff --git a/modules/overloading/macros/%lss_a_lss.bin b/modules/overloading/macros/%lss_a_lss.bin Binary files differnew file mode 100755 index 000000000..4bb8e777c --- /dev/null +++ b/modules/overloading/macros/%lss_a_lss.bin diff --git a/modules/overloading/macros/%lss_a_lss.sci b/modules/overloading/macros/%lss_a_lss.sci new file mode 100755 index 000000000..a40ce1956 --- /dev/null +++ b/modules/overloading/macros/%lss_a_lss.sci @@ -0,0 +1,21 @@ +// 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 + +function [s]=%lss_a_lss(s1,s2) + // y= s1*u+s2*u + // s=s1+s2 in state-space + //! + + [s1 s2]=sysconv(s1,s2) + [a1,b1,c1,d1,x1,dom1]=s1(2:7) + [a2,b2,c2,d2,x2]=s2(2:6) + [n1,n1]=size(a1);[n2,n2]=size(a2); + a1=[a1,0*ones(n1,n2);0*ones(n2,n1),a2]; + s=tlist(["lss","A","B","C","D","X0","dt"],a1,[b1;b2],[c1,c2],d1+d2,[x1;x2],dom1) +endfunction diff --git a/modules/overloading/macros/%lss_a_p.bin b/modules/overloading/macros/%lss_a_p.bin Binary files differnew file mode 100755 index 000000000..148c74ee2 --- /dev/null +++ b/modules/overloading/macros/%lss_a_p.bin diff --git a/modules/overloading/macros/%lss_a_p.sci b/modules/overloading/macros/%lss_a_p.sci new file mode 100755 index 000000000..c22038ee2 --- /dev/null +++ b/modules/overloading/macros/%lss_a_p.sci @@ -0,0 +1,16 @@ +// 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 + +function s1=%lss_a_p(s1,d2) + //s=%lss_a_p(s1,d2) iff + // s=s1+d2 + //! + + s1(5)=s1(5)+d2 +endfunction diff --git a/modules/overloading/macros/%lss_a_r.bin b/modules/overloading/macros/%lss_a_r.bin Binary files differnew file mode 100755 index 000000000..f5406f3e3 --- /dev/null +++ b/modules/overloading/macros/%lss_a_r.bin diff --git a/modules/overloading/macros/%lss_a_r.sci b/modules/overloading/macros/%lss_a_r.sci new file mode 100755 index 000000000..6e9d6c031 --- /dev/null +++ b/modules/overloading/macros/%lss_a_r.sci @@ -0,0 +1,15 @@ +// 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 + +function [s]=%lss_a_r(s1,s2) + //s=%lss_a_r(s1,s2) <=> s= s1+s2 + //! + + [s1,s2]=sysconv(s1,s2);s=s1+s2; +endfunction diff --git a/modules/overloading/macros/%lss_a_s.bin b/modules/overloading/macros/%lss_a_s.bin Binary files differnew file mode 100755 index 000000000..81fa865ce --- /dev/null +++ b/modules/overloading/macros/%lss_a_s.bin diff --git a/modules/overloading/macros/%lss_a_s.sci b/modules/overloading/macros/%lss_a_s.sci new file mode 100755 index 000000000..0cf1b257e --- /dev/null +++ b/modules/overloading/macros/%lss_a_s.sci @@ -0,0 +1,15 @@ +// 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 + +function s1=%lss_a_s(s1,d2) + //s=%lss_a_s(s1,d2) iff s=s1+d2 + //! + + s1(5)=s1(5)+d2 +endfunction diff --git a/modules/overloading/macros/%lss_c_lss.bin b/modules/overloading/macros/%lss_c_lss.bin Binary files differnew file mode 100755 index 000000000..e523fc5f8 --- /dev/null +++ b/modules/overloading/macros/%lss_c_lss.bin diff --git a/modules/overloading/macros/%lss_c_lss.sci b/modules/overloading/macros/%lss_c_lss.sci new file mode 100755 index 000000000..c066ab897 --- /dev/null +++ b/modules/overloading/macros/%lss_c_lss.sci @@ -0,0 +1,22 @@ +// 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 + +function [s]=%lss_c_lss(s1,s2) + // u=[u1;u2] y=y1+y2 + //operation s=[s1,s2] in state-space + + [s1,s2]=sysconv(s1,s2); + [a1,b1,c1,d1,x1,dom1]=s1(2:7); + [a2,b2,c2,d2,x2]=s2(2:6); + [n1,n1]=size(a1);[n2,n2]=size(a2); + [p1,m1]=size(d1);[p2,m2]=size(d2); + a1=[a1 0*ones(n1,n2);0*ones(n2,n1) a2]; + b1=[b1 0*ones(n1,m2);0*ones(n2,m1) b2]; + s=tlist(["lss","A","B","C","D","X0","dt"],a1,b1,[c1 c2],[d1 d2],[x1;x2],dom1); +endfunction diff --git a/modules/overloading/macros/%lss_c_p.bin b/modules/overloading/macros/%lss_c_p.bin Binary files differnew file mode 100755 index 000000000..52c135cd7 --- /dev/null +++ b/modules/overloading/macros/%lss_c_p.bin diff --git a/modules/overloading/macros/%lss_c_p.sci b/modules/overloading/macros/%lss_c_p.sci new file mode 100755 index 000000000..4aac061f0 --- /dev/null +++ b/modules/overloading/macros/%lss_c_p.sci @@ -0,0 +1,18 @@ +// 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 + +function [s]=%lss_c_p(s1,d2) + //s=%lss_c_p(s1,d2) + // u=[u1;u2] y=y1+d2*u1 + // s=[s1,d2] + + [a1,b1,c1,d1,x1,dom1]=s1(2:7) + [n1,m1]=size(b1);[p2,m2]=size(d2); + s=tlist(["lss","A","B","C","D","X0","dt"],a1,[b1 0*ones(n1,m2)],c1,[d1 d2],x1,dom1) +endfunction diff --git a/modules/overloading/macros/%lss_c_r.bin b/modules/overloading/macros/%lss_c_r.bin Binary files differnew file mode 100755 index 000000000..6cc8da1c8 --- /dev/null +++ b/modules/overloading/macros/%lss_c_r.bin diff --git a/modules/overloading/macros/%lss_c_r.sci b/modules/overloading/macros/%lss_c_r.sci new file mode 100755 index 000000000..de4da731e --- /dev/null +++ b/modules/overloading/macros/%lss_c_r.sci @@ -0,0 +1,14 @@ +// 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 + +function [s]=%lss_c_r(s1,s2) + //s=%lss_c_r(s1,s2) iff s=[s1,s2] + + [s1,s2]=sysconv(s1,s2);s=[s1,s2]; +endfunction diff --git a/modules/overloading/macros/%lss_c_s.bin b/modules/overloading/macros/%lss_c_s.bin Binary files differnew file mode 100755 index 000000000..d83701e64 --- /dev/null +++ b/modules/overloading/macros/%lss_c_s.bin diff --git a/modules/overloading/macros/%lss_c_s.sci b/modules/overloading/macros/%lss_c_s.sci new file mode 100755 index 000000000..66b5a1c31 --- /dev/null +++ b/modules/overloading/macros/%lss_c_s.sci @@ -0,0 +1,17 @@ +// 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 + +function [s]=%lss_c_s(s1,d2) + //s=%lss_c_s(s1,d2) <=> s=[s1,d2] + //! + + [a1,b1,c1,d1,x1,dom1]=s1(2:7) + [n1,m1]=size(b1);[p2,m2]=size(d2); + s=tlist(["lss","A","B","C","D","X0","dt"],a1,[b1 0*ones(n1,m2)],c1,[d1 d2],x1,dom1) +endfunction diff --git a/modules/overloading/macros/%lss_e.bin b/modules/overloading/macros/%lss_e.bin Binary files differnew file mode 100755 index 000000000..b4bb728d5 --- /dev/null +++ b/modules/overloading/macros/%lss_e.bin diff --git a/modules/overloading/macros/%lss_e.sci b/modules/overloading/macros/%lss_e.sci new file mode 100755 index 000000000..8f8253b9c --- /dev/null +++ b/modules/overloading/macros/%lss_e.sci @@ -0,0 +1,29 @@ +// 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 + +function [f1,f2,f3,f4,f5,f6,f7]=%lss_e(i,j,f) + // f= f(i,j) + + if type(i)==10 then + [lhs,rhs]=argn(0) + if rhs<>2 then error(21),end + nams=["A","B","C","D","X0","dt"] + for k=1:prod(size(i)) + kf=find(convstr(i(k),"u")==nams) + if kf==[] then error(21),end + execstr("f"+string(k)+"=j(kf+1)") + end + return + end + if type(i)==4 then i=find(i),end + if type(j)==4 then j=find(j),end + [a,b,c,d,x0,dom]=f(2:7) + f1=tlist(["lss","A","B","C","D","X0","dt"],a,b(:,j),c(i,:),d(i,j),x0,dom) + if f1("D")==[] then f1=[],end +endfunction diff --git a/modules/overloading/macros/%lss_eye.bin b/modules/overloading/macros/%lss_eye.bin Binary files differnew file mode 100755 index 000000000..214f8004c --- /dev/null +++ b/modules/overloading/macros/%lss_eye.bin diff --git a/modules/overloading/macros/%lss_eye.sci b/modules/overloading/macros/%lss_eye.sci new file mode 100755 index 000000000..dfa1515aa --- /dev/null +++ b/modules/overloading/macros/%lss_eye.sci @@ -0,0 +1,13 @@ +// 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 + +function x=%lss_eye(a) + + x=eye(a(5)); +endfunction diff --git a/modules/overloading/macros/%lss_f_lss.bin b/modules/overloading/macros/%lss_f_lss.bin Binary files differnew file mode 100755 index 000000000..d6838c0f4 --- /dev/null +++ b/modules/overloading/macros/%lss_f_lss.bin diff --git a/modules/overloading/macros/%lss_f_lss.sci b/modules/overloading/macros/%lss_f_lss.sci new file mode 100755 index 000000000..37840b710 --- /dev/null +++ b/modules/overloading/macros/%lss_f_lss.sci @@ -0,0 +1,21 @@ +// 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 + +function [s]=%lss_f_lss(s1,s2) + // s=[s1;s2] in state-space + + [s1,s2]=sysconv(s1,s2) + [a1,b1,c1,d1,x1,dom1]=s1(2:7) + [a2,b2,c2,d2,x2]=s2(2:6) + [n1,n1]=size(a1);[n2,n2]=size(a2) + [p1,m1]=size(d1);[p2,m2]=size(d2) + a1=[a1 0*ones(n1,n2);0*ones(n2,n1) a2] + c1=[c1 0*ones(p1,n2);0*ones(p2,n1) c2] + s=tlist(["lss","A","B","C","D","X0","dt"],a1,[b1;b2],c1,[d1;d2],[x1;x2],dom1) +endfunction diff --git a/modules/overloading/macros/%lss_f_p.bin b/modules/overloading/macros/%lss_f_p.bin Binary files differnew file mode 100755 index 000000000..4fef3aa2c --- /dev/null +++ b/modules/overloading/macros/%lss_f_p.bin diff --git a/modules/overloading/macros/%lss_f_p.sci b/modules/overloading/macros/%lss_f_p.sci new file mode 100755 index 000000000..1c97b056d --- /dev/null +++ b/modules/overloading/macros/%lss_f_p.sci @@ -0,0 +1,17 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function [s]=%lss_f_p(s1,d2) + //[s]=%lss_f_p(s1,d2) <=> s=[s1;d2] + //! + // + [a1,b1,c1,d1,x1,dom1]=s1(2:7) + [n1,m1]=size(c1);[p2,m2]=size(d2); + s=tlist(["lss","A","B","C","D","X0","dt"],a1,b1,[c1;0*ones(p2,m1)],[d1;d2],x1,dom1) +endfunction diff --git a/modules/overloading/macros/%lss_f_r.bin b/modules/overloading/macros/%lss_f_r.bin Binary files differnew file mode 100755 index 000000000..b70688dcf --- /dev/null +++ b/modules/overloading/macros/%lss_f_r.bin diff --git a/modules/overloading/macros/%lss_f_r.sci b/modules/overloading/macros/%lss_f_r.sci new file mode 100755 index 000000000..1c36b098f --- /dev/null +++ b/modules/overloading/macros/%lss_f_r.sci @@ -0,0 +1,13 @@ +// 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 + +function [s]=%lss_f_r(s1,s2) + + [s1,s2]=sysconv(s1,s2);s=[s1;s2]; +endfunction diff --git a/modules/overloading/macros/%lss_f_s.bin b/modules/overloading/macros/%lss_f_s.bin Binary files differnew file mode 100755 index 000000000..7ea5268e4 --- /dev/null +++ b/modules/overloading/macros/%lss_f_s.bin diff --git a/modules/overloading/macros/%lss_f_s.sci b/modules/overloading/macros/%lss_f_s.sci new file mode 100755 index 000000000..d38fb4c34 --- /dev/null +++ b/modules/overloading/macros/%lss_f_s.sci @@ -0,0 +1,16 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function [s]=%lss_f_s(s1,d2) + //operation s=[s1;d2] + //! + [a1,b1,c1,d1,x1,dom1]=s1(2:7) + [n1,m1]=size(c1);[p2,m2]=size(d2); + s=tlist(["lss","A","B","C","D","X0","dt"],a1,b1,[c1;0*ones(p2,m1)],[d1;d2],x1,dom1) +endfunction diff --git a/modules/overloading/macros/%lss_i_ce.bin b/modules/overloading/macros/%lss_i_ce.bin Binary files differnew file mode 100755 index 000000000..725f2aee6 --- /dev/null +++ b/modules/overloading/macros/%lss_i_ce.bin diff --git a/modules/overloading/macros/%lss_i_ce.sci b/modules/overloading/macros/%lss_i_ce.sci new file mode 100755 index 000000000..752f5b1e5 --- /dev/null +++ b/modules/overloading/macros/%lss_i_ce.sci @@ -0,0 +1,13 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - Vincent Couvert +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should 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=%lss_i_ce(varargin) + // Insertion of a lss in a cell + M=generic_i_ce(varargin(:)) +endfunction diff --git a/modules/overloading/macros/%lss_i_lss.bin b/modules/overloading/macros/%lss_i_lss.bin Binary files differnew file mode 100755 index 000000000..d79948719 --- /dev/null +++ b/modules/overloading/macros/%lss_i_lss.bin diff --git a/modules/overloading/macros/%lss_i_lss.sci b/modules/overloading/macros/%lss_i_lss.sci new file mode 100755 index 000000000..ae9eca09e --- /dev/null +++ b/modules/overloading/macros/%lss_i_lss.sci @@ -0,0 +1,38 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function s=%lss_i_lss(i,j,s1,s2) + //%lss_i_lss(i,j,s1,s2) <=> s2(i,j)=s1 + //! + if type(i)==10|type(j)==10 then + error(21) + end + [s1 s2]=sysconv(s1,s2) + [m1,p1]=size(s1(5));[m2,p2]=size(s2(5)); + + if size(i)==[-1,-1] then i=1:m2,end + if size(j)==[-1,-1] then j=1:p2,end + if max(i)>m2 then + s2=[s2;0*ones(max(i)-m2,p2)] + [m2,p2]=size(s2(5)); + end + if max(j)>p2 then + s2=[s2,0*ones(m2,max(j)-p2)] + [m2,p2]=size(s2(5)); + end + jj=0*ones(1,p2);jj(j)=ones(1,prod(size(j))); + ii=0*ones(1,m2);ii(i)=ones(1,prod(size(i))); + s=diag(ones(ii)-ii)*s2*diag(jj)+s2*diag(ones(jj)-jj) + ii1=0*ones(m2,m1);ii1(m2-m1+1:m2,:)=eye(m1,m1) + ii1=ii1([find(ii==0),i],:) + jj1=0*ones(p1,p2);jj1(:,p2-p1+1:p2)=eye(p1,p1) + jj1=jj1(:,[find(jj==0),j]) + s=s+ii1*s1*jj1 + s=minss(s) +endfunction diff --git a/modules/overloading/macros/%lss_i_p.bin b/modules/overloading/macros/%lss_i_p.bin Binary files differnew file mode 100755 index 000000000..df2051b19 --- /dev/null +++ b/modules/overloading/macros/%lss_i_p.bin diff --git a/modules/overloading/macros/%lss_i_p.sci b/modules/overloading/macros/%lss_i_p.sci new file mode 100755 index 000000000..16de503a5 --- /dev/null +++ b/modules/overloading/macros/%lss_i_p.sci @@ -0,0 +1,41 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function s=%lss_i_p(i,j,s1,s2) + //%lss_i_p(i,j,s1,s2) <=> s2(i,j)=s1 + //! + [lhs,rhs]=argn(0) + if rhs==3 then + s2=s1;s1=j; + [a1,b1,c1,d1,x1,dom1]=s1(2:7) + d2=s2; + [n1,n1]=size(a1); + if size(d2,2)>1 then + b2=zeros(1,size(d2,2)) + b2(i)=b1 + c2=c1 + elseif size(d2,1)>1 then + c2=zeros(size(d2,1),1) + c2(i)=c1 + b2=b1 + else + error(msprintf(_("%s: Invalid syntax for a MIMO system.\n"),"%lss_i_p")); + end + d2(i)=d1; + s=lsslist(a1,b2,c2,d2,x1,dom1) + else + [a1,b1,c1,d1,x1,dom1]=s1(2:7) + d2=s2; + [n1,n1]=size(a1); + b2(1:n1,j)=b1 + c2(i,1:n1)=c1 + d2(i,j)=d1; + s=lsslist(a1,b2,c2,d2,x1,dom1) + end +endfunction diff --git a/modules/overloading/macros/%lss_i_r.bin b/modules/overloading/macros/%lss_i_r.bin Binary files differnew file mode 100755 index 000000000..dcb78cfa4 --- /dev/null +++ b/modules/overloading/macros/%lss_i_r.bin diff --git a/modules/overloading/macros/%lss_i_r.sci b/modules/overloading/macros/%lss_i_r.sci new file mode 100755 index 000000000..6ad4e1672 --- /dev/null +++ b/modules/overloading/macros/%lss_i_r.sci @@ -0,0 +1,14 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function [s2]=%lss_i_r(i,j,s1,s2) + //s2=%lss_i_r(i,j,s1,s2) <=> s2(i,j)=s1 + [s1 s2]=sysconv(s1,s2) + s2(i,j)=s1 +endfunction diff --git a/modules/overloading/macros/%lss_i_s.bin b/modules/overloading/macros/%lss_i_s.bin Binary files differnew file mode 100755 index 000000000..89d87239a --- /dev/null +++ b/modules/overloading/macros/%lss_i_s.bin diff --git a/modules/overloading/macros/%lss_i_s.sci b/modules/overloading/macros/%lss_i_s.sci new file mode 100755 index 000000000..b006ab94d --- /dev/null +++ b/modules/overloading/macros/%lss_i_s.sci @@ -0,0 +1,51 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function s=%lss_i_s(i,j,s1,s2) + //%lss_i_s(i,j,s1,s2) <=> s2(i,j)=s1 + + [lhs,rhs]=argn(0) + + if rhs==3 then + s2=s1;s1=j; + if (type(i)==10|type(i)==15) then //cell or struct case + s=createstruct(i,s1) + if type(i(1))<>10 & i(2)=="entries" then + // change struct to cell + f=getfield(1,s);f(1)="ce" + setfield(1,f,s) + end + return + end + [a1,b1,c1,d1,x1,dom1]=s1(2:7) + d2=s2; + [n1,n1]=size(a1); + if size(d2,2)>1 then + b2=zeros(1,size(d2,2)) + b2(i)=b1 + c2=c1 + elseif size(d2,1)>1 then + c2=zeros(size(d2,1),1) + c2(i)=c1 + b2=b1 + else + error(msprintf(_("%s: Invalid syntax for a MIMO system.\n"),"%lss_i_s")); + end + d2(i)=d1; + s=lsslist(a1,b2,c2,d2,x1,dom1) + else + [a1,b1,c1,d1,x1,dom1]=s1(2:7) + d2=s2; + [n1,n1]=size(a1); + b2(1:n1,j)=b1 + c2(i,1:n1)=c1 + d2(i,j)=d1; + s=lsslist(a1,b2,c2,d2,x1,dom1) + end +endfunction diff --git a/modules/overloading/macros/%lss_i_st.bin b/modules/overloading/macros/%lss_i_st.bin Binary files differnew file mode 100755 index 000000000..aa0792821 --- /dev/null +++ b/modules/overloading/macros/%lss_i_st.bin diff --git a/modules/overloading/macros/%lss_i_st.sci b/modules/overloading/macros/%lss_i_st.sci new file mode 100755 index 000000000..09dba3054 --- /dev/null +++ b/modules/overloading/macros/%lss_i_st.sci @@ -0,0 +1,12 @@ +// 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 + +function out=%lss_i_st(i,in,out) + out=generic_i_st(i,in,out) +endfunction diff --git a/modules/overloading/macros/%lss_inv.bin b/modules/overloading/macros/%lss_inv.bin Binary files differnew file mode 100755 index 000000000..02d066e58 --- /dev/null +++ b/modules/overloading/macros/%lss_inv.bin diff --git a/modules/overloading/macros/%lss_inv.sci b/modules/overloading/macros/%lss_inv.sci new file mode 100755 index 000000000..99901f6f6 --- /dev/null +++ b/modules/overloading/macros/%lss_inv.sci @@ -0,0 +1,62 @@ +// 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 + +function x=%lss_inv(a) + + d=a(5); + [m,n]=size(d); + polyn=(type(d)==2);constant=(type(d)==1); + if constant&(m==n) then + minsv=min(svd(d));rcd=rcond(d);s=poly(0,"s"); + end + if constant&(m<>n) then + minsv=min(svd(d));s=poly(0,"s"); + end + + if polyn then rcd=0;minsv=0;s=poly(0,varn(d));end + if m==n then + if rcd > 1.d-6 then + x=invsyslin(a) + else + h=systmat(a); + se=rand("seed"); + valfa=rand(1,10,"normal")/100; + rand("seed",se); + www=[]; + for k=1:10 + www=[www,rcond(horner(h,valfa(k)))];end + [w,k1]=max(www);alfa=valfa(k1); + x=invrs(a,alfa); + end + elseif m<n then + warning("non square system! --> right inverse") + if minsv > 1.d-6 then + x=invsyslin(a) + else + [stmp,ws]=rowregul(a,0,0); + if min(svd(stmp(5))) > 1.d-6 then + x=invsyslin(stmp)*ws + else + error(19) + end + end + elseif m>n then + warning("non square system! --> left inverse") + if minsv > 1.d-6 then + x=invsyslin(a) + else + [stmp,ws]=rowregul(a,0,0); + if min(svd(stmp(5))) > 1.d-6 then + x=invsyslin(stmp)*ws + else + error(19) + end + end + end +endfunction diff --git a/modules/overloading/macros/%lss_l_lss.bin b/modules/overloading/macros/%lss_l_lss.bin Binary files differnew file mode 100755 index 000000000..8abaee11d --- /dev/null +++ b/modules/overloading/macros/%lss_l_lss.bin diff --git a/modules/overloading/macros/%lss_l_lss.sci b/modules/overloading/macros/%lss_l_lss.sci new file mode 100755 index 000000000..783babe59 --- /dev/null +++ b/modules/overloading/macros/%lss_l_lss.sci @@ -0,0 +1,14 @@ +// 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 + +function [s]=%lss_l_lss(s1,s2) + + [s1,s2]=sysconv(s1,s2) + s=inv(s1)*s2 +endfunction diff --git a/modules/overloading/macros/%lss_l_p.bin b/modules/overloading/macros/%lss_l_p.bin Binary files differnew file mode 100755 index 000000000..2bdb763de --- /dev/null +++ b/modules/overloading/macros/%lss_l_p.bin diff --git a/modules/overloading/macros/%lss_l_p.sci b/modules/overloading/macros/%lss_l_p.sci new file mode 100755 index 000000000..70b0d5f97 --- /dev/null +++ b/modules/overloading/macros/%lss_l_p.sci @@ -0,0 +1,16 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function [sr]=%lss_l_p(s,p) + //sr=%lss_l_p(s,p) <=> sr=s\p + // p polynomial matrix + // s syslin list + //! + sr=s\tlist(["lss","A","B","C","D","X0","dt"],[],[],[],p,[],[]) +endfunction diff --git a/modules/overloading/macros/%lss_l_r.bin b/modules/overloading/macros/%lss_l_r.bin Binary files differnew file mode 100755 index 000000000..987cc4aa0 --- /dev/null +++ b/modules/overloading/macros/%lss_l_r.bin diff --git a/modules/overloading/macros/%lss_l_r.sci b/modules/overloading/macros/%lss_l_r.sci new file mode 100755 index 000000000..105dab611 --- /dev/null +++ b/modules/overloading/macros/%lss_l_r.sci @@ -0,0 +1,13 @@ +// 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 + +function [s]=%lss_l_r(s1,s2) + [s1,s2]=sysconv(s1,s2) + s=s1\s2 +endfunction diff --git a/modules/overloading/macros/%lss_l_s.bin b/modules/overloading/macros/%lss_l_s.bin Binary files differnew file mode 100755 index 000000000..a646a4a97 --- /dev/null +++ b/modules/overloading/macros/%lss_l_s.bin diff --git a/modules/overloading/macros/%lss_l_s.sci b/modules/overloading/macros/%lss_l_s.sci new file mode 100755 index 000000000..b338364d4 --- /dev/null +++ b/modules/overloading/macros/%lss_l_s.sci @@ -0,0 +1,14 @@ +// 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 + +function s=%lss_l_s(s1,s2) + //! + + s=inv(s1)*s2 +endfunction diff --git a/modules/overloading/macros/%lss_m_lss.bin b/modules/overloading/macros/%lss_m_lss.bin Binary files differnew file mode 100755 index 000000000..0a9cb2b5b --- /dev/null +++ b/modules/overloading/macros/%lss_m_lss.bin diff --git a/modules/overloading/macros/%lss_m_lss.sci b/modules/overloading/macros/%lss_m_lss.sci new file mode 100755 index 000000000..ad2994e43 --- /dev/null +++ b/modules/overloading/macros/%lss_m_lss.sci @@ -0,0 +1,63 @@ +// 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 + +function [SS]=%lss_m_lss(S1,S2) + //S=%lss_m_lss(S1,S2) computes S1*S2 in state-space form. + // --> S2 --> S1 --> + //! + + [S1,S2]=sysconv(S1,S2) + [A1,B1,C1,D1,x1,dom1]=S1(2:7), + [A2,B2,C2,D2,x2]=S2(2:6), + // + if max(degree(D1))==0 & max(degree(D2))==0 then + D1=coeff(D1);D2=coeff(D2); + B1C2=B1*C2 + SS=tlist(["lss","A","B","C","D","X0","dt"],[A1,B1C2;0*B1C2' ,A2],[B1*D2;B2],... + [C1,D1*C2],D1*D2,[x1;x2],dom1), + return + end + //improper systems + + J=[A1,B1*C2; + 0*ones(B1*C2)',A2]; + Ls=[C1 D1*C2]' + Ms=[B1*D2;B2] + + if Ms==[]|Ls==[] then + SS=tlist(["lss","A","B","C","D","X0","dt"],[],[],[],D1*D2,[x1;x2],dom1) + return; + end + // + if type(D1*D2)~=1 + s=poly(0,varn(D1*D2)); + end + deg=max(degree(Ms)); + B=coeff(Ms,deg); + Ps=0*B + for i=1:deg + Ps=s*Ps+B + B=J*B+coeff(Ms,deg-i) + end + // + deg=max(degree(Ls)); J=J' + C=coeff(Ls,deg); + pps=0*C + for i=1:deg + pps=s*pps+C + C=J*C+coeff(Ls,deg-i) + end + // + C=C'; + D=pps'*B+Ls'*Ps+D1*D2; + Dg=max(degree(D)); + if Dg==0 then D=coeff(D);end + + SS=tlist(["lss","A","B","C","D","X0","dt"],J',B,C,D,[x1;x2],dom1); +endfunction diff --git a/modules/overloading/macros/%lss_m_p.bin b/modules/overloading/macros/%lss_m_p.bin Binary files differnew file mode 100755 index 000000000..b720ef2c1 --- /dev/null +++ b/modules/overloading/macros/%lss_m_p.bin diff --git a/modules/overloading/macros/%lss_m_p.sci b/modules/overloading/macros/%lss_m_p.sci new file mode 100755 index 000000000..8e97d38d9 --- /dev/null +++ b/modules/overloading/macros/%lss_m_p.sci @@ -0,0 +1,18 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function [s]=%lss_m_p(s1,d2) + // [s]=%lss_m_p(s1,d2) + // s=s1*d2 + // + // s1 : state-space + // d2 : polynomial matrix + //! + s=s1*tlist(["lss","A","B","C","D","X0","dt"],[],[],[],d2,[],[]) +endfunction diff --git a/modules/overloading/macros/%lss_m_r.bin b/modules/overloading/macros/%lss_m_r.bin Binary files differnew file mode 100755 index 000000000..1a23d055a --- /dev/null +++ b/modules/overloading/macros/%lss_m_r.bin diff --git a/modules/overloading/macros/%lss_m_r.sci b/modules/overloading/macros/%lss_m_r.sci new file mode 100755 index 000000000..b073cb635 --- /dev/null +++ b/modules/overloading/macros/%lss_m_r.sci @@ -0,0 +1,15 @@ +// 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 + +function [s]=%lss_m_r(s1,s2) + //s=%lss_m_r(s1,s2) <=> s= s2*s1 + //! + + [s1,s2]=sysconv(s1,s2);s=s1*s2 +endfunction diff --git a/modules/overloading/macros/%lss_m_s.bin b/modules/overloading/macros/%lss_m_s.bin Binary files differnew file mode 100755 index 000000000..a300afa1b --- /dev/null +++ b/modules/overloading/macros/%lss_m_s.bin diff --git a/modules/overloading/macros/%lss_m_s.sci b/modules/overloading/macros/%lss_m_s.sci new file mode 100755 index 000000000..b34f69e29 --- /dev/null +++ b/modules/overloading/macros/%lss_m_s.sci @@ -0,0 +1,37 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - Serge Steer , F.D +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function s=%lss_m_s(s1,D2) + // s=s1*gain + // SISO case FD + [A1,B1,C1,D1,x1,dom1]=s1(2:7); + [n2,m2]=size(D2); + if prod(size(s1))==1 then + if n2==1 then + D=D1*D2; [A1,B1*D2]; + s=tlist(["lss","A","B","C","D","X0","dt"],A1,B1*D2,C1,D,x1,dom1); + return; + end + if m2==1 then + s=tlist(["lss","A","B","C","D","X0","dt"],A1,B1,D2*C1,D2*D1,x1,dom1); + return; + end + [Q,M]=fullrf(D2);[n2,mq]=size(Q); + if mq==1 then + s=Q*tlist(["lss","A","B","C","D","X0","dt"],A1,B1*M,C1,D1*M,x1,dom1); + return; + end + w=s1; + for k=2:mq, w=sysdiag(w,s1);end + s=w*M;s=Q*s; + return; + end + D=D1*D2; + s=tlist(["lss","A","B","C","D","X0","dt"],A1,B1*D2,C1,D,x1,dom1); +endfunction diff --git a/modules/overloading/macros/%lss_n_lss.bin b/modules/overloading/macros/%lss_n_lss.bin Binary files differnew file mode 100755 index 000000000..25a41ad1f --- /dev/null +++ b/modules/overloading/macros/%lss_n_lss.bin diff --git a/modules/overloading/macros/%lss_n_lss.sci b/modules/overloading/macros/%lss_n_lss.sci new file mode 100755 index 000000000..16360cd5f --- /dev/null +++ b/modules/overloading/macros/%lss_n_lss.sci @@ -0,0 +1,13 @@ +// 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 + +function [r]=%lss_n_lss(s1,s2) + //%lss_n_lss(s1,s2) : inequality test s1<>s2 + for k=2:7,r=or(s1(k)<>s2(k));if r then return,end,end +endfunction diff --git a/modules/overloading/macros/%lss_n_p.bin b/modules/overloading/macros/%lss_n_p.bin Binary files differnew file mode 100755 index 000000000..96222bdc8 --- /dev/null +++ b/modules/overloading/macros/%lss_n_p.bin diff --git a/modules/overloading/macros/%lss_n_p.sci b/modules/overloading/macros/%lss_n_p.sci new file mode 100755 index 000000000..15f179e71 --- /dev/null +++ b/modules/overloading/macros/%lss_n_p.sci @@ -0,0 +1,13 @@ +// 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 + +function [r]=%lss_n_p(s1,s2) + //%lss_n_p(s1,s2) test s1<>s2 + r=%t +endfunction diff --git a/modules/overloading/macros/%lss_n_r.bin b/modules/overloading/macros/%lss_n_r.bin Binary files differnew file mode 100755 index 000000000..959597b53 --- /dev/null +++ b/modules/overloading/macros/%lss_n_r.bin diff --git a/modules/overloading/macros/%lss_n_r.sci b/modules/overloading/macros/%lss_n_r.sci new file mode 100755 index 000000000..25b296a62 --- /dev/null +++ b/modules/overloading/macros/%lss_n_r.sci @@ -0,0 +1,13 @@ +// 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 + +function [r]=%lss_n_r(s1,s2) + //%lss_n_r(s1,s2) test s1<>s2 + r=%t +endfunction diff --git a/modules/overloading/macros/%lss_n_s.bin b/modules/overloading/macros/%lss_n_s.bin Binary files differnew file mode 100755 index 000000000..749d8676e --- /dev/null +++ b/modules/overloading/macros/%lss_n_s.bin diff --git a/modules/overloading/macros/%lss_n_s.sci b/modules/overloading/macros/%lss_n_s.sci new file mode 100755 index 000000000..44720ccee --- /dev/null +++ b/modules/overloading/macros/%lss_n_s.sci @@ -0,0 +1,13 @@ +// 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 + +function [r]=%lss_n_s(s1,s2) + //%lss_n_s(s1,s2) test s1<>s2 + r=s1(2)<>[]|s1(5)<>s2 +endfunction diff --git a/modules/overloading/macros/%lss_norm.bin b/modules/overloading/macros/%lss_norm.bin Binary files differnew file mode 100755 index 000000000..0ec702fe7 --- /dev/null +++ b/modules/overloading/macros/%lss_norm.bin diff --git a/modules/overloading/macros/%lss_norm.sci b/modules/overloading/macros/%lss_norm.sci new file mode 100755 index 000000000..efd9f1eda --- /dev/null +++ b/modules/overloading/macros/%lss_norm.sci @@ -0,0 +1,19 @@ +// 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 + +function y=%lss_norm(A,flag) + if argn(2)==1 then flag=2,end + if flag==2 then + y=h2norm(A) + elseif flag==%inf|flag=="inf" then + y=h_norm(A) + else + error(msprintf(_("%s: Wrong value for input argument #%d: %d or %s expected.\n"),"%lss_norm",2,2,"inf")); + end +endfunction diff --git a/modules/overloading/macros/%lss_o_lss.bin b/modules/overloading/macros/%lss_o_lss.bin Binary files differnew file mode 100755 index 000000000..02fd6b2d8 --- /dev/null +++ b/modules/overloading/macros/%lss_o_lss.bin diff --git a/modules/overloading/macros/%lss_o_lss.sci b/modules/overloading/macros/%lss_o_lss.sci new file mode 100755 index 000000000..533c80f6c --- /dev/null +++ b/modules/overloading/macros/%lss_o_lss.sci @@ -0,0 +1,14 @@ +// 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 + +function [r]=%lss_o_lss(s1,s2) + //%lss_o_lss(s1,s2) test s1==s2 + + for k=2:7,r=and(s1(k)==s2(k));if ~r then return,end,end +endfunction diff --git a/modules/overloading/macros/%lss_o_p.bin b/modules/overloading/macros/%lss_o_p.bin Binary files differnew file mode 100755 index 000000000..a4601ebb1 --- /dev/null +++ b/modules/overloading/macros/%lss_o_p.bin diff --git a/modules/overloading/macros/%lss_o_p.sci b/modules/overloading/macros/%lss_o_p.sci new file mode 100755 index 000000000..80b1f731c --- /dev/null +++ b/modules/overloading/macros/%lss_o_p.sci @@ -0,0 +1,13 @@ +// 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 + +function [r]=%lss_o_p(s1,s2) + //%lss_o_p(s1,s2) test s1==s2 + r=%f +endfunction diff --git a/modules/overloading/macros/%lss_o_r.bin b/modules/overloading/macros/%lss_o_r.bin Binary files differnew file mode 100755 index 000000000..b8e091abb --- /dev/null +++ b/modules/overloading/macros/%lss_o_r.bin diff --git a/modules/overloading/macros/%lss_o_r.sci b/modules/overloading/macros/%lss_o_r.sci new file mode 100755 index 000000000..15b96a1eb --- /dev/null +++ b/modules/overloading/macros/%lss_o_r.sci @@ -0,0 +1,13 @@ +// 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 + +function [r]=%lss_o_r(s1,s2) + //%lss_o_r(s1,s2) <=> s1==s2 + r=%f +endfunction diff --git a/modules/overloading/macros/%lss_o_s.bin b/modules/overloading/macros/%lss_o_s.bin Binary files differnew file mode 100755 index 000000000..ca310d2f0 --- /dev/null +++ b/modules/overloading/macros/%lss_o_s.bin diff --git a/modules/overloading/macros/%lss_o_s.sci b/modules/overloading/macros/%lss_o_s.sci new file mode 100755 index 000000000..be9f65f4c --- /dev/null +++ b/modules/overloading/macros/%lss_o_s.sci @@ -0,0 +1,13 @@ +// 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 + +function [r]=%lss_o_s(s1,s2) + //%lss_o_s(s1,s2) <=> s1==s2 + r=s1(2)==[]&s1(5)==s2 +endfunction diff --git a/modules/overloading/macros/%lss_ones.bin b/modules/overloading/macros/%lss_ones.bin Binary files differnew file mode 100755 index 000000000..a87ad4389 --- /dev/null +++ b/modules/overloading/macros/%lss_ones.bin diff --git a/modules/overloading/macros/%lss_ones.sci b/modules/overloading/macros/%lss_ones.sci new file mode 100755 index 000000000..ef63e19aa --- /dev/null +++ b/modules/overloading/macros/%lss_ones.sci @@ -0,0 +1,13 @@ +// 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 + +function x=%lss_ones(a) + + x=ones(a(5)) +endfunction diff --git a/modules/overloading/macros/%lss_r_lss.bin b/modules/overloading/macros/%lss_r_lss.bin Binary files differnew file mode 100755 index 000000000..57c13d4be --- /dev/null +++ b/modules/overloading/macros/%lss_r_lss.bin diff --git a/modules/overloading/macros/%lss_r_lss.sci b/modules/overloading/macros/%lss_r_lss.sci new file mode 100755 index 000000000..c67b58805 --- /dev/null +++ b/modules/overloading/macros/%lss_r_lss.sci @@ -0,0 +1,14 @@ +// 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 + +function [s]=%lss_r_lss(s1,s2) + // + [s1,s2]=sysconv(s1,s2) + s=s1*inv(s2) +endfunction diff --git a/modules/overloading/macros/%lss_r_p.bin b/modules/overloading/macros/%lss_r_p.bin Binary files differnew file mode 100755 index 000000000..3c15859e0 --- /dev/null +++ b/modules/overloading/macros/%lss_r_p.bin diff --git a/modules/overloading/macros/%lss_r_p.sci b/modules/overloading/macros/%lss_r_p.sci new file mode 100755 index 000000000..9cc7d1208 --- /dev/null +++ b/modules/overloading/macros/%lss_r_p.sci @@ -0,0 +1,17 @@ +// 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 + +function [sr]=%lss_r_p(s,p) + // sr=%lss_r_p(s,p) <=> sr=s/p + // s : syslin list + // p : polynomial matrix + //! + + sr=s/tlist(["lss","A","B","C","D","X0","dt"],[],[],[],p,[],[]) +endfunction diff --git a/modules/overloading/macros/%lss_r_r.bin b/modules/overloading/macros/%lss_r_r.bin Binary files differnew file mode 100755 index 000000000..319b6f93d --- /dev/null +++ b/modules/overloading/macros/%lss_r_r.bin diff --git a/modules/overloading/macros/%lss_r_r.sci b/modules/overloading/macros/%lss_r_r.sci new file mode 100755 index 000000000..ff6ad2fe1 --- /dev/null +++ b/modules/overloading/macros/%lss_r_r.sci @@ -0,0 +1,14 @@ +// 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 + +function s=%lss_r_r(s1,s2) + // + [s1,s2]=sysconv(s1,s2) + s=s1/s2 +endfunction diff --git a/modules/overloading/macros/%lss_r_s.bin b/modules/overloading/macros/%lss_r_s.bin Binary files differnew file mode 100755 index 000000000..1d2b5851d --- /dev/null +++ b/modules/overloading/macros/%lss_r_s.bin diff --git a/modules/overloading/macros/%lss_r_s.sci b/modules/overloading/macros/%lss_r_s.sci new file mode 100755 index 000000000..879d044af --- /dev/null +++ b/modules/overloading/macros/%lss_r_s.sci @@ -0,0 +1,16 @@ +// 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 + +function s1=%lss_r_s(s1,d2) + //s=%lss_r_s(s1,d2) <=> s=s1/d2 + //! + + s1(3)=s1(3)/d2; + s1(5)=s1(5)/d2 +endfunction diff --git a/modules/overloading/macros/%lss_rand.bin b/modules/overloading/macros/%lss_rand.bin Binary files differnew file mode 100755 index 000000000..d8dc5bc2b --- /dev/null +++ b/modules/overloading/macros/%lss_rand.bin diff --git a/modules/overloading/macros/%lss_rand.sci b/modules/overloading/macros/%lss_rand.sci new file mode 100755 index 000000000..6bf9b3ad8 --- /dev/null +++ b/modules/overloading/macros/%lss_rand.sci @@ -0,0 +1,13 @@ +// 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 + +function x=%lss_rand(a) + + x=rand(a(5)); +endfunction diff --git a/modules/overloading/macros/%lss_s.bin b/modules/overloading/macros/%lss_s.bin Binary files differnew file mode 100755 index 000000000..23f1939f3 --- /dev/null +++ b/modules/overloading/macros/%lss_s.bin diff --git a/modules/overloading/macros/%lss_s.sci b/modules/overloading/macros/%lss_s.sci new file mode 100755 index 000000000..88635035c --- /dev/null +++ b/modules/overloading/macros/%lss_s.sci @@ -0,0 +1,15 @@ +// 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 + +function s1=%lss_s(s1) + // s=-s1 + //! + s1(4)=-s1(4) + s1(5)=-s1(5) +endfunction diff --git a/modules/overloading/macros/%lss_s_lss.bin b/modules/overloading/macros/%lss_s_lss.bin Binary files differnew file mode 100755 index 000000000..72896e7c6 --- /dev/null +++ b/modules/overloading/macros/%lss_s_lss.bin diff --git a/modules/overloading/macros/%lss_s_lss.sci b/modules/overloading/macros/%lss_s_lss.sci new file mode 100755 index 000000000..5ceb037b6 --- /dev/null +++ b/modules/overloading/macros/%lss_s_lss.sci @@ -0,0 +1,21 @@ +// 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 + +function [s]=%lss_s_lss(s1,s2) + //s=%lss_s_lss(s1,s2) <=> s=s1-s2 + // s1, s2: syslin lists + //! + + [s1 s2]=sysconv(s1,s2) + [a1,b1,c1,d1,x1,dom1]=s1(2:7) + [a2,b2,c2,d2,x2]=s2(2:6) + [n1,n1]=size(a1);[n2,n2]=size(a2); + a1=[a1,0*ones(n1,n2);0*ones(n2,n1),a2]; + s=tlist(["lss","A","B","C","D","X0","dt"],a1,[b1;-b2],[c1 c2],d1-d2,[x1;x2],dom1) +endfunction diff --git a/modules/overloading/macros/%lss_s_p.bin b/modules/overloading/macros/%lss_s_p.bin Binary files differnew file mode 100755 index 000000000..681519651 --- /dev/null +++ b/modules/overloading/macros/%lss_s_p.bin diff --git a/modules/overloading/macros/%lss_s_p.sci b/modules/overloading/macros/%lss_s_p.sci new file mode 100755 index 000000000..f22645e61 --- /dev/null +++ b/modules/overloading/macros/%lss_s_p.sci @@ -0,0 +1,16 @@ +// 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 + +function s1=%lss_s_p(s1,d2) + //s=%lss_s_p(s1,d2) <=> s=s1-p + // s1 : syslin list + // p : polynomial matrix + // Copyright INRIA + s1(5)=s1(5)-d2 +endfunction diff --git a/modules/overloading/macros/%lss_s_r.bin b/modules/overloading/macros/%lss_s_r.bin Binary files differnew file mode 100755 index 000000000..012e3bfce --- /dev/null +++ b/modules/overloading/macros/%lss_s_r.bin diff --git a/modules/overloading/macros/%lss_s_r.sci b/modules/overloading/macros/%lss_s_r.sci new file mode 100755 index 000000000..147b8b6e1 --- /dev/null +++ b/modules/overloading/macros/%lss_s_r.sci @@ -0,0 +1,18 @@ +// 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 + +function [s]=%lss_s_r(s1,s2) + //s=%lss_s_r(s1,s2) <=> s=s1-s2 + // s1 : state-space + // s2 : transfer matrix + //! + + [s1,s2]=sysconv(s1,s2) + s=s1-s2 +endfunction diff --git a/modules/overloading/macros/%lss_s_s.bin b/modules/overloading/macros/%lss_s_s.bin Binary files differnew file mode 100755 index 000000000..5104cdf4f --- /dev/null +++ b/modules/overloading/macros/%lss_s_s.bin diff --git a/modules/overloading/macros/%lss_s_s.sci b/modules/overloading/macros/%lss_s_s.sci new file mode 100755 index 000000000..f6a3ea812 --- /dev/null +++ b/modules/overloading/macros/%lss_s_s.sci @@ -0,0 +1,14 @@ +// 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 + +function s1=%lss_s_s(s1,d2) + //s=s1-d2 + + s1(5)=s1(5)-d2 +endfunction diff --git a/modules/overloading/macros/%lss_size.bin b/modules/overloading/macros/%lss_size.bin Binary files differnew file mode 100755 index 000000000..a081407fc --- /dev/null +++ b/modules/overloading/macros/%lss_size.bin diff --git a/modules/overloading/macros/%lss_size.sci b/modules/overloading/macros/%lss_size.sci new file mode 100755 index 000000000..21567bacf --- /dev/null +++ b/modules/overloading/macros/%lss_size.sci @@ -0,0 +1,41 @@ +// 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 + +function [m,n,nx]=%lss_size(x,flag) + // only to be called by size function for dynamical systems + //! + + [lhs,rhs]=argn(0) + + [a,b,c,d]=x(2:5);[m,w]=size([c,d]),[w,n]=size([b;d]); + if rhs==2 then + if type(flag)==10 then + if part(flag,1)=="r" then + flag=1; + elseif part(flag,1)=="c" then + flag=2; + end + end + end + if lhs==1 + if rhs==1 then + m=[m,n] + elseif flag==1 + m=m + elseif flag==2 + m=n + elseif flag=="*" then + m=m*n + end + elseif lhs==2 then + return + elseif lhs==3 then + [nx,nx]=size(a); + end; +endfunction diff --git a/modules/overloading/macros/%lss_t.bin b/modules/overloading/macros/%lss_t.bin Binary files differnew file mode 100755 index 000000000..7137c8cb9 --- /dev/null +++ b/modules/overloading/macros/%lss_t.bin diff --git a/modules/overloading/macros/%lss_t.sci b/modules/overloading/macros/%lss_t.sci new file mode 100755 index 000000000..9573fa53f --- /dev/null +++ b/modules/overloading/macros/%lss_t.sci @@ -0,0 +1,16 @@ +// 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 + +function s=%lss_t(s) + //s=%lss_t(s) <=> s=s' in state-space + //! + + [a,b,c,d,x,dom]=s(2:7) + s=tlist(["lss","A","B","C","D","X0","dt"],a',c',b',d',x,dom) +endfunction diff --git a/modules/overloading/macros/%lss_v_lss.bin b/modules/overloading/macros/%lss_v_lss.bin Binary files differnew file mode 100755 index 000000000..fbf324fca --- /dev/null +++ b/modules/overloading/macros/%lss_v_lss.bin diff --git a/modules/overloading/macros/%lss_v_lss.sci b/modules/overloading/macros/%lss_v_lss.sci new file mode 100755 index 000000000..29e1d387f --- /dev/null +++ b/modules/overloading/macros/%lss_v_lss.sci @@ -0,0 +1,22 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function [s]=%lss_v_lss(s1,s2) + //s=%lss_v_lss(s1,s2) <=> s = s1 "feedback" with s2 + // <=> s=s1/.s2 (in state-space) + //! + [s1,s2]=sysconv(s1,s2) + [a1,b1,c1,d1,x1,dom1]=s1(2:7) + [a2,b2,c2,d2,x2]=s2(2:6); + e12=1/(eye()+d2*d1) + e21=eye()-d1*e12*d2;b21=b2*e21;e12=b1*e12 + a=[a1-e12*d2*c1 , -e12*c2 ; b21*c1 , a2-b21*d1*c2] + s=tlist(["lss","A","B","C","D","X0","dt"],a,[e12;b21*d1],e21*[c1 -d1*c2],... + e21*d1,[x1;x2],dom1) +endfunction diff --git a/modules/overloading/macros/%lss_v_p.bin b/modules/overloading/macros/%lss_v_p.bin Binary files differnew file mode 100755 index 000000000..d392c4e05 --- /dev/null +++ b/modules/overloading/macros/%lss_v_p.bin diff --git a/modules/overloading/macros/%lss_v_p.sci b/modules/overloading/macros/%lss_v_p.sci new file mode 100755 index 000000000..14d54a84a --- /dev/null +++ b/modules/overloading/macros/%lss_v_p.sci @@ -0,0 +1,17 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function [sr]=%lss_v_p(s,p) + // feedback sr=(eye+s*p)\s + //s=%lss_v_p(s,p) <=> sr=s/.p + // p : polynomial matrix + // s : state-space syslin list + //! + sr=s/.tlist(["lss","A","B","C","D","X0","dt"],[],[],[],p,[],[]) +endfunction diff --git a/modules/overloading/macros/%lss_v_r.bin b/modules/overloading/macros/%lss_v_r.bin Binary files differnew file mode 100755 index 000000000..540be1a0f --- /dev/null +++ b/modules/overloading/macros/%lss_v_r.bin diff --git a/modules/overloading/macros/%lss_v_r.sci b/modules/overloading/macros/%lss_v_r.sci new file mode 100755 index 000000000..8de517b57 --- /dev/null +++ b/modules/overloading/macros/%lss_v_r.sci @@ -0,0 +1,14 @@ +// 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 + +function s=%lss_v_r(s1,s2) + //s=%lss_v_r(s1,s2) <=> s=s1/.s2 :feedback operation + //! + [s1,s2]=sysconv(s1,s2);s=s1/.s2; +endfunction diff --git a/modules/overloading/macros/%lss_v_s.bin b/modules/overloading/macros/%lss_v_s.bin Binary files differnew file mode 100755 index 000000000..71a681948 --- /dev/null +++ b/modules/overloading/macros/%lss_v_s.bin diff --git a/modules/overloading/macros/%lss_v_s.sci b/modules/overloading/macros/%lss_v_s.sci new file mode 100755 index 000000000..0e31a6816 --- /dev/null +++ b/modules/overloading/macros/%lss_v_s.sci @@ -0,0 +1,18 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function [s]=%lss_v_s(s1,d2) + //s=%lss_v_s(s1,d2) <=> s=s1/.d2 + //! + [a1,b1,c1,d1,x1,dom1]=s1(2:7) + e12=1/(eye()+d2*d1) + e21=eye()-d1*e12*d2;e12=b1*e12 + a=a1-e12*d2*c1 + s=tlist(["lss","A","B","C","D","X0","dt"],a1-e12*d2*c1,e12,e21*c1,e21*d1,x1,dom1) +endfunction diff --git a/modules/overloading/macros/%lt_i_s.bin b/modules/overloading/macros/%lt_i_s.bin Binary files differnew file mode 100755 index 000000000..ba6f3159d --- /dev/null +++ b/modules/overloading/macros/%lt_i_s.bin diff --git a/modules/overloading/macros/%lt_i_s.sci b/modules/overloading/macros/%lt_i_s.sci new file mode 100755 index 000000000..f1173e3a7 --- /dev/null +++ b/modules/overloading/macros/%lt_i_s.sci @@ -0,0 +1,13 @@ +// 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 + +function M=%lt_i_s(varargin) + M=generic_i_s(varargin(:)) +endfunction + diff --git a/modules/overloading/macros/%m_n_l.bin b/modules/overloading/macros/%m_n_l.bin Binary files differnew file mode 100755 index 000000000..e15587a06 --- /dev/null +++ b/modules/overloading/macros/%m_n_l.bin diff --git a/modules/overloading/macros/%m_n_l.sci b/modules/overloading/macros/%m_n_l.sci new file mode 100755 index 000000000..664463cb6 --- /dev/null +++ b/modules/overloading/macros/%m_n_l.sci @@ -0,0 +1,14 @@ +// 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 + +function [r]=%m_n_l(l1,l2) + // r= %m_n_l(l1,l2) <=> l1==l2 l2:list l1:function + + r=%t +endfunction diff --git a/modules/overloading/macros/%m_o_l.bin b/modules/overloading/macros/%m_o_l.bin Binary files differnew file mode 100755 index 000000000..73e930d9c --- /dev/null +++ b/modules/overloading/macros/%m_o_l.bin diff --git a/modules/overloading/macros/%m_o_l.sci b/modules/overloading/macros/%m_o_l.sci new file mode 100755 index 000000000..c0bde8e5e --- /dev/null +++ b/modules/overloading/macros/%m_o_l.sci @@ -0,0 +1,15 @@ +// 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 + +function [r]=%m_o_l(l1,l2) + //r=%m_o_l(l1,l2) <=> l1==l2 l2: list l1: function + //! + + r=%f +endfunction diff --git a/modules/overloading/macros/%mc_i_h.bin b/modules/overloading/macros/%mc_i_h.bin Binary files differnew file mode 100755 index 000000000..c9b3c4140 --- /dev/null +++ b/modules/overloading/macros/%mc_i_h.bin diff --git a/modules/overloading/macros/%mc_i_h.sci b/modules/overloading/macros/%mc_i_h.sci new file mode 100755 index 000000000..0f587e5a0 --- /dev/null +++ b/modules/overloading/macros/%mc_i_h.sci @@ -0,0 +1,16 @@ +// 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 + +function h=%mc_i_h(i,v,h) + h=generic_i_h(i,v,h) +endfunction + + + + diff --git a/modules/overloading/macros/%mc_i_s.bin b/modules/overloading/macros/%mc_i_s.bin Binary files differnew file mode 100755 index 000000000..e0232910e --- /dev/null +++ b/modules/overloading/macros/%mc_i_s.bin diff --git a/modules/overloading/macros/%mc_i_s.sci b/modules/overloading/macros/%mc_i_s.sci new file mode 100755 index 000000000..4d45579d1 --- /dev/null +++ b/modules/overloading/macros/%mc_i_s.sci @@ -0,0 +1,12 @@ +// 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 + +function M=%mc_i_s(varargin) + M=generic_i_s(varargin(:)) +endfunction diff --git a/modules/overloading/macros/%mc_i_st.bin b/modules/overloading/macros/%mc_i_st.bin Binary files differnew file mode 100755 index 000000000..f90735e37 --- /dev/null +++ b/modules/overloading/macros/%mc_i_st.bin diff --git a/modules/overloading/macros/%mc_i_st.sci b/modules/overloading/macros/%mc_i_st.sci new file mode 100755 index 000000000..0941b356f --- /dev/null +++ b/modules/overloading/macros/%mc_i_st.sci @@ -0,0 +1,12 @@ +// 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 + +function out=%mc_i_st(i,in,out) + out=generic_i_st(i,in,out) +endfunction diff --git a/modules/overloading/macros/%mc_n_st.bin b/modules/overloading/macros/%mc_n_st.bin Binary files differnew file mode 100755 index 000000000..7d2a55383 --- /dev/null +++ b/modules/overloading/macros/%mc_n_st.bin diff --git a/modules/overloading/macros/%mc_n_st.sci b/modules/overloading/macros/%mc_n_st.sci new file mode 100755 index 000000000..86b4269bc --- /dev/null +++ b/modules/overloading/macros/%mc_n_st.sci @@ -0,0 +1,14 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA, Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function r=%mc_n_st(a,b) + // implements r=a~=b + // for a a function and b a struct + r=%t +endfunction diff --git a/modules/overloading/macros/%mc_o_st.bin b/modules/overloading/macros/%mc_o_st.bin Binary files differnew file mode 100755 index 000000000..ee21dc0c2 --- /dev/null +++ b/modules/overloading/macros/%mc_o_st.bin diff --git a/modules/overloading/macros/%mc_o_st.sci b/modules/overloading/macros/%mc_o_st.sci new file mode 100755 index 000000000..0193ee546 --- /dev/null +++ b/modules/overloading/macros/%mc_o_st.sci @@ -0,0 +1,14 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA, Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function r=%mc_o_st(a,b) + // implements r=a==b + // for a a function and b a struct + r=%f +endfunction diff --git a/modules/overloading/macros/%msp_i_s.bin b/modules/overloading/macros/%msp_i_s.bin Binary files differnew file mode 100755 index 000000000..6712a5c1b --- /dev/null +++ b/modules/overloading/macros/%msp_i_s.bin diff --git a/modules/overloading/macros/%msp_i_s.sci b/modules/overloading/macros/%msp_i_s.sci new file mode 100755 index 000000000..6e8d48efc --- /dev/null +++ b/modules/overloading/macros/%msp_i_s.sci @@ -0,0 +1,44 @@ +// 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 + +function M=%msp_i_s(varargin) + // %msp_i_s(i,j,b,a) insert matlab sparse matrix b into full matrix a + // M(i,j)=b + //! + + [lhs,rhs]=argn(0) + + M=varargin(rhs) + N=varargin(rhs-1)//inserted matrix + index=varargin(1) // + + if rhs==3&(type(index)==10|type(index)==15) then + M=createstruct(index,N) + if type(index(1))<>10 & index(2)=="entries" then + // change struct to cell + f=getfield(1,M);f(1)="ce" + setfield(1,f,M) + end + elseif rhs>4 then //more than 2 indices: + + //insertion of a sparse matrix in a matrix of numbers + error(msprintf(_("%s: Insertion of a sparse matrix in a matrix of numbers is not defined.\n"),"%msp_i_s")); + else + i=varargin(1); + j=varargin(2); + M=varargin(4); + b=varargin(3); + if rhs==4 then + M(i,j)=full(b) + else + M=b;//b=j + M(i)=full(j) + end + end +endfunction diff --git a/modules/overloading/macros/%msp_i_st.bin b/modules/overloading/macros/%msp_i_st.bin Binary files differnew file mode 100755 index 000000000..73ebe5f5e --- /dev/null +++ b/modules/overloading/macros/%msp_i_st.bin diff --git a/modules/overloading/macros/%msp_i_st.sci b/modules/overloading/macros/%msp_i_st.sci new file mode 100755 index 000000000..6b6f14b67 --- /dev/null +++ b/modules/overloading/macros/%msp_i_st.sci @@ -0,0 +1,12 @@ +// 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 + +function out=%msp_i_st(i,in,out) + out=generic_i_st(i,in,out) +endfunction diff --git a/modules/overloading/macros/%msp_n_msp.bin b/modules/overloading/macros/%msp_n_msp.bin Binary files differnew file mode 100755 index 000000000..ccfff5485 --- /dev/null +++ b/modules/overloading/macros/%msp_n_msp.bin diff --git a/modules/overloading/macros/%msp_n_msp.sci b/modules/overloading/macros/%msp_n_msp.sci new file mode 100755 index 000000000..ab388a716 --- /dev/null +++ b/modules/overloading/macros/%msp_n_msp.sci @@ -0,0 +1,14 @@ +// 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 + +function r=%msp_n_msp(l1,l2) + [ij,v,mn]=spget(l1);l1=sparse(ij,v,mn) + [ij,v,mn]=spget(l2);l2=sparse(ij,v,mn) + r=l1<>l2 +endfunction diff --git a/modules/overloading/macros/%msp_o_msp.bin b/modules/overloading/macros/%msp_o_msp.bin Binary files differnew file mode 100755 index 000000000..6111b4854 --- /dev/null +++ b/modules/overloading/macros/%msp_o_msp.bin diff --git a/modules/overloading/macros/%msp_o_msp.sci b/modules/overloading/macros/%msp_o_msp.sci new file mode 100755 index 000000000..7fcc8caec --- /dev/null +++ b/modules/overloading/macros/%msp_o_msp.sci @@ -0,0 +1,14 @@ +// 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 + +function r=%msp_o_msp(l1,l2) + [ij,v,mn]=spget(l1);l1=sparse(ij,v,mn) + [ij,v,mn]=spget(l2);l2=sparse(ij,v,mn) + r=l1==l2 +endfunction diff --git a/modules/overloading/macros/%msp_p.bin b/modules/overloading/macros/%msp_p.bin Binary files differnew file mode 100755 index 000000000..4fc031e2e --- /dev/null +++ b/modules/overloading/macros/%msp_p.bin diff --git a/modules/overloading/macros/%msp_p.sci b/modules/overloading/macros/%msp_p.sci new file mode 100755 index 000000000..193fc504e --- /dev/null +++ b/modules/overloading/macros/%msp_p.sci @@ -0,0 +1,24 @@ +// 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 + +function %msp_p(x) + [ij,v,mn]=spget(x); + IJ=string(ij);MN=string(mn); + if v==[] then disp(v);return;end + V=string(v); + n=size(V,1) + lp="(" + rp=") " + comma=", " + + t=["("+MN(1,1)+comma+MN(1,2)+") m sparse matrix" + " " + lp(ones(n,1))+IJ(:,1)+comma(ones(n,1))+IJ(:,2)+rp(ones(n,1))+V(:)] + write(%io(2),t,"(a)") +endfunction diff --git a/modules/overloading/macros/%msp_spones.bin b/modules/overloading/macros/%msp_spones.bin Binary files differnew file mode 100755 index 000000000..95258fe1b --- /dev/null +++ b/modules/overloading/macros/%msp_spones.bin diff --git a/modules/overloading/macros/%msp_spones.sci b/modules/overloading/macros/%msp_spones.sci new file mode 100755 index 000000000..76b9ec875 --- /dev/null +++ b/modules/overloading/macros/%msp_spones.sci @@ -0,0 +1,17 @@ +// 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 + +function [r] = %msp_spones(s) + // Replace nonzero elements with ones in matlab sparse matrix + // r=spones(s) generates a matrix with the sane sparsity structure as s, + // but with ones in the nonzero positions; + // + [ij,v,mn]=spget(s); + r=sparse(ij,ones(v),mn); +endfunction diff --git a/modules/overloading/macros/%p_a_lss.bin b/modules/overloading/macros/%p_a_lss.bin Binary files differnew file mode 100755 index 000000000..c6f063392 --- /dev/null +++ b/modules/overloading/macros/%p_a_lss.bin diff --git a/modules/overloading/macros/%p_a_lss.sci b/modules/overloading/macros/%p_a_lss.sci new file mode 100755 index 000000000..f0b88d966 --- /dev/null +++ b/modules/overloading/macros/%p_a_lss.sci @@ -0,0 +1,14 @@ +// 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 + +function s2=%p_a_lss(d1,s2) + //s=%p_a_lss(d1,s2) <=> s=d1+s2 polynomail mat. + syslin list + //! + s2(5)=d1+s2(5) +endfunction diff --git a/modules/overloading/macros/%p_a_r.bin b/modules/overloading/macros/%p_a_r.bin Binary files differnew file mode 100755 index 000000000..1aa7d93a1 --- /dev/null +++ b/modules/overloading/macros/%p_a_r.bin diff --git a/modules/overloading/macros/%p_a_r.sci b/modules/overloading/macros/%p_a_r.sci new file mode 100755 index 000000000..1472aa99c --- /dev/null +++ b/modules/overloading/macros/%p_a_r.sci @@ -0,0 +1,45 @@ +// 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 + +function f=%p_a_r(m,f) + //f= m+f + // author Serge Steer, INRIA + //! + [num,den]=f(["num","den"]) + szf=size(den) + szm=size(m) + + if and(szf>=0)&and(szm>=0) then + if prod(szf)==1&prod(szm)>1 then + den=den(ones(m)) + szf=szm + end + + if size(szf,"*")>2 then + num=num(:);den=den(:);m=m(:) + end + [num,den]=simp(num+m.*den,den) + num=matrix(num,szf) + den=matrix(den,szf) + else + //at leat one matrix is eye*x + if size(szf,"*")>2|size(szm,"*")>2 then + error(8) + end + if or(szf<0)&or(szm<0) then + [num,den]=simp(num+m.*den,den) + elseif or(szf<0) then + [num,den]=simp(num+m.*den,den*ones(m)) + elseif or(szm<0) then + [num,den]=simp(num+(m+0)*eye(den).*den,den) + end + end + f=rlist(num,den,f.dt) +endfunction + diff --git a/modules/overloading/macros/%p_c_lss.bin b/modules/overloading/macros/%p_c_lss.bin Binary files differnew file mode 100755 index 000000000..38da2f31d --- /dev/null +++ b/modules/overloading/macros/%p_c_lss.bin diff --git a/modules/overloading/macros/%p_c_lss.sci b/modules/overloading/macros/%p_c_lss.sci new file mode 100755 index 000000000..2653e40be --- /dev/null +++ b/modules/overloading/macros/%p_c_lss.sci @@ -0,0 +1,16 @@ +// 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 + +function [s]=%p_c_lss(d1,s2) + //s=%p_c_lss(d1,s2) <=> s=[d1,s2] d1: polynomial mat. s2:syslin list + //! + [a2,b2,c2,d2,x2,dom2]=s2(2:7) + [n2,m2]=size(b2);[p1,m1]=size(d1) + s=tlist(["lss","A","B","C","D","X0","dt"],a2,[0*ones(n2,m1),b2],c2,[d1,d2],x2,dom2) +endfunction diff --git a/modules/overloading/macros/%p_c_r.bin b/modules/overloading/macros/%p_c_r.bin Binary files differnew file mode 100755 index 000000000..91de1f26b --- /dev/null +++ b/modules/overloading/macros/%p_c_r.bin diff --git a/modules/overloading/macros/%p_c_r.sci b/modules/overloading/macros/%p_c_r.sci new file mode 100755 index 000000000..1eec20c94 --- /dev/null +++ b/modules/overloading/macros/%p_c_r.sci @@ -0,0 +1,15 @@ +// 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 + +function f=%p_c_r(m,f) + // f= %p_c_r(m,f) <=> r= [m,f] m:polynomial mat. r: rational mat. + //! + // Copyright INRIA + f=rlist([m,f("num")],[ones(m),f("den")],f("dt")) +endfunction diff --git a/modules/overloading/macros/%p_cumprod.bin b/modules/overloading/macros/%p_cumprod.bin Binary files differnew file mode 100755 index 000000000..dffaf3a0b --- /dev/null +++ b/modules/overloading/macros/%p_cumprod.bin diff --git a/modules/overloading/macros/%p_cumprod.sci b/modules/overloading/macros/%p_cumprod.sci new file mode 100755 index 000000000..5bb2c6f6d --- /dev/null +++ b/modules/overloading/macros/%p_cumprod.sci @@ -0,0 +1,71 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2010 - INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function a = %p_cumprod(varargin) + // If we call cumprod with 3 arguments, the third is optional for polynomial matrices. + a = varargin(1) + dims = size(a); + + nargs = size(varargin); + select nargs + case 1 + d = "*"; + case 2 + if or(varargin(2) == ["native", "double"]) then + d = "*"; + else + d = varargin(2); + end + case 3 + d = varargin(2); + else + error(msprintf(_("%s: Wrong number of input argument(s): %d to %d expected.\n"),"cumprod", 1, 3)); + end + + // Check second argument : d + select type(d) + case 1 + if size(d,'*') <> 1 then + error(msprintf(_("%s: Wrong size for input argument #%d: A scalar expected.\n"),"cumprod", 2)) + end + if int(d) <> d | d < 0 then + error(msprintf(_("%s: Wrong value for input argument #%d: Integer >= %d expected.\n"),"cumprod", 2, 1)) + end + case 10 + if size(d,'*') <> 1 then + error(msprintf(_("%s: Wrong size for input argument #%d: A string expected.\n"),"cumprod",2)) + end + if and(d<>["r","c","*","m"]) then + error(msprintf(_("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"),.. + "cumprod",2,"""*"",""r"",""c"",""m""")) + end + + pos = [1,2,0,find(dims>1,1)]; + d=pos(find(d==["r","c","*","m"])) + else + error(msprintf(_("%s: Wrong type for input argument #%d: A string or scalar expected.\n"),"cumprod",2)) + end + + select d + case 0 then + for k=2:prod(dims) + a(k)=a(k-1)*a(k) + end + case 1 then + for k=1:dims(2) + a(:,k)=cumprod(a(:,k)) + end + case 2 then + for k=1:dims(1) + a(k,:)=cumprod(a(k,:)) + end + else + a=a + end +endfunction diff --git a/modules/overloading/macros/%p_cumsum.bin b/modules/overloading/macros/%p_cumsum.bin Binary files differnew file mode 100755 index 000000000..de0af20d7 --- /dev/null +++ b/modules/overloading/macros/%p_cumsum.bin diff --git a/modules/overloading/macros/%p_cumsum.sci b/modules/overloading/macros/%p_cumsum.sci new file mode 100755 index 000000000..da69703f4 --- /dev/null +++ b/modules/overloading/macros/%p_cumsum.sci @@ -0,0 +1,71 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2010 - INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function a = %p_cumsum(varargin) + a = varargin(1) + dims = size(a); + + nargs = size(varargin); + select nargs + case 1 + d = "*"; + case 2 + if or(varargin(2) == ["native", "double"]) then + d = "*"; + else + d = varargin(2); + end + case 3 + d = varargin(2); + else + error(msprintf(_("%s: Wrong number of input argument(s): %d to %d expected.\n"),"cumsum", 1, 3)); + end + + // Check second argument : d + select type(d) + case 1 + if size(d,'*') <> 1 then + error(msprintf(_("%s: Wrong size for input argument #%d: A scalar expected.\n"),"cumsum", 2)) + end + if int(d) <> d | d < 0 then + error(msprintf(_("%s: Wrong value for input argument #%d: Integer >= %d expected.\n"),"cumsum", 2, 1)) + end + case 10 + if size(d,'*') <> 1 then + error(msprintf(_("%s: Wrong size for input argument #%d: A string expected.\n"),"cumsum",2)) + end + if and(d<>["r","c","*","m"]) then + error(msprintf(_("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"),.. + "cumsum",2,"""*"",""r"",""c"",""m""")) + end + + pos = [1,2,0,find(dims>1,1)]; + d=pos(find(d==["r","c","*","m"])) + + else + error(msprintf(_("%s: Wrong type for input argument #%d: A string or scalar expected.\n"),"cumsum",2)) + end + + select d + case 0 then + for k=2:prod(dims) + a(k)=a(k-1)+a(k) + end + case 1 then + for k=1:dims(2) + a(:,k)=cumsum(a(:,k)) + end + case 2 then + for k=1:dims(1) + a(k,:)=cumsum(a(k,:)) + end + else + a=a + end +endfunction diff --git a/modules/overloading/macros/%p_d_p.bin b/modules/overloading/macros/%p_d_p.bin Binary files differnew file mode 100755 index 000000000..2dd183804 --- /dev/null +++ b/modules/overloading/macros/%p_d_p.bin diff --git a/modules/overloading/macros/%p_d_p.sci b/modules/overloading/macros/%p_d_p.sci new file mode 100755 index 000000000..90b3b0534 --- /dev/null +++ b/modules/overloading/macros/%p_d_p.sci @@ -0,0 +1,21 @@ +// 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 + +function f=%p_d_p(p1,p2) + //f= %p_d_p(p1,p2) <=> f=p1./p2 + //! + // Copyright INRIA + if size(p1,"*")==1 then + p1=p1*ones(p2) + elseif size(p2,"*")==1 then + p2=p2*ones(p1) + end + [p1,p2]=simp(p1,p2); + f=rlist(p1,p2,[]) +endfunction diff --git a/modules/overloading/macros/%p_d_r.bin b/modules/overloading/macros/%p_d_r.bin Binary files differnew file mode 100755 index 000000000..fcd6a3796 --- /dev/null +++ b/modules/overloading/macros/%p_d_r.bin diff --git a/modules/overloading/macros/%p_d_r.sci b/modules/overloading/macros/%p_d_r.sci new file mode 100755 index 000000000..ee85e3430 --- /dev/null +++ b/modules/overloading/macros/%p_d_r.sci @@ -0,0 +1,15 @@ +// 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 + +function f=%p_d_r(n1,f2) + // n1./f2 + //! + + f=rlist(n1.*f2("den"),ones(n1).*f2("num"),f2("dt")) +endfunction diff --git a/modules/overloading/macros/%p_d_s.bin b/modules/overloading/macros/%p_d_s.bin Binary files differnew file mode 100755 index 000000000..091a019b0 --- /dev/null +++ b/modules/overloading/macros/%p_d_s.bin diff --git a/modules/overloading/macros/%p_d_s.sci b/modules/overloading/macros/%p_d_s.sci new file mode 100755 index 000000000..b53ae3e0d --- /dev/null +++ b/modules/overloading/macros/%p_d_s.sci @@ -0,0 +1,19 @@ +// 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 + +function [z]=%p_d_s(x,y) + //z = x ./ y , x vector of polynomials y scalar + // and other matrix polynomial + [m,n]=size(x) + if m*n==1 then + z=x*ones(y)./y + else + z=x./y*ones(x) + end +endfunction diff --git a/modules/overloading/macros/%p_det.bin b/modules/overloading/macros/%p_det.bin Binary files differnew file mode 100755 index 000000000..b53ac55da --- /dev/null +++ b/modules/overloading/macros/%p_det.bin diff --git a/modules/overloading/macros/%p_det.sci b/modules/overloading/macros/%p_det.sci new file mode 100755 index 000000000..8106e8ddd --- /dev/null +++ b/modules/overloading/macros/%p_det.sci @@ -0,0 +1,12 @@ +// 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 + +function x=%p_det(a) + x=determ(a) +endfunction diff --git a/modules/overloading/macros/%p_e.bin b/modules/overloading/macros/%p_e.bin Binary files differnew file mode 100755 index 000000000..78e2e23ef --- /dev/null +++ b/modules/overloading/macros/%p_e.bin diff --git a/modules/overloading/macros/%p_e.sci b/modules/overloading/macros/%p_e.sci new file mode 100755 index 000000000..3d8675c13 --- /dev/null +++ b/modules/overloading/macros/%p_e.sci @@ -0,0 +1,34 @@ +// 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 + +function f=%p_e(varargin) + //A(i,j,k,..) + + rhs=size(varargin) + M=varargin(rhs) + + nind=rhs-1 + dims=[] + //check if all indexes of order greater than 2 contains only ones + for k=3:nind + ind=varargin(k) + if type(ind)==2|type(ind)==129 then ind=horner(ind,1),end + if type(ind)==4 then ind=find(ind),end + if or(ind<>1) then error(21),end + n=size(ind,"*") + dims=[dims,n] + end + f=M(varargin(1:min(2,rhs-1))) + k=find(dims>1) + if k<>[] then + dims(k($)+1:$)=[] + N=prod(dims) + f=mlist(["hm","dims","entries"],int32([size(f) dims]),ones(N,1).*.f(:)) + end +endfunction diff --git a/modules/overloading/macros/%p_f_lss.bin b/modules/overloading/macros/%p_f_lss.bin Binary files differnew file mode 100755 index 000000000..bdeaa5b88 --- /dev/null +++ b/modules/overloading/macros/%p_f_lss.bin diff --git a/modules/overloading/macros/%p_f_lss.sci b/modules/overloading/macros/%p_f_lss.sci new file mode 100755 index 000000000..aebf1b940 --- /dev/null +++ b/modules/overloading/macros/%p_f_lss.sci @@ -0,0 +1,17 @@ +// 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 + +function [s]=%p_f_lss(d1,s2) + //[s]=%p_f_lss(d1,s2) <=> s=[d1,s2] + //! + + [a2,b2,c2,d2,x2,dom2]=s2(2:7) + [n2,m2]=size(c2);[p1,m1]=size(d1) + s=tlist(["lss","A","B","C","D","X0","dt"],a2,b2,[0*ones(p1,m2);c2],[d1;d2],x2,dom2) +endfunction diff --git a/modules/overloading/macros/%p_f_r.bin b/modules/overloading/macros/%p_f_r.bin Binary files differnew file mode 100755 index 000000000..c40e95832 --- /dev/null +++ b/modules/overloading/macros/%p_f_r.bin diff --git a/modules/overloading/macros/%p_f_r.sci b/modules/overloading/macros/%p_f_r.sci new file mode 100755 index 000000000..a3205443e --- /dev/null +++ b/modules/overloading/macros/%p_f_r.sci @@ -0,0 +1,14 @@ +// 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 + +function f=%p_f_r(m,f) + // [m;f] [polynomial;rational] + //! + f=rlist([m;f("num")],[ones(m);f("den")],f("dt")) +endfunction diff --git a/modules/overloading/macros/%p_i_ce.bin b/modules/overloading/macros/%p_i_ce.bin Binary files differnew file mode 100755 index 000000000..c38241f3c --- /dev/null +++ b/modules/overloading/macros/%p_i_ce.bin diff --git a/modules/overloading/macros/%p_i_ce.sci b/modules/overloading/macros/%p_i_ce.sci new file mode 100755 index 000000000..7adf2bee1 --- /dev/null +++ b/modules/overloading/macros/%p_i_ce.sci @@ -0,0 +1,13 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - Vincent Couvert +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should 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=%p_i_ce(varargin) + // Insertion of a polynomial matrix in a cell + M=generic_i_ce(varargin(:)) +endfunction diff --git a/modules/overloading/macros/%p_i_h.bin b/modules/overloading/macros/%p_i_h.bin Binary files differnew file mode 100755 index 000000000..649d43e1e --- /dev/null +++ b/modules/overloading/macros/%p_i_h.bin diff --git a/modules/overloading/macros/%p_i_h.sci b/modules/overloading/macros/%p_i_h.sci new file mode 100755 index 000000000..4b6d5321d --- /dev/null +++ b/modules/overloading/macros/%p_i_h.sci @@ -0,0 +1,16 @@ +// 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 + +function h=%p_i_h(i,v,h) + h=generic_i_h(i,v,h) +endfunction + + + + diff --git a/modules/overloading/macros/%p_i_hm.bin b/modules/overloading/macros/%p_i_hm.bin Binary files differnew file mode 100755 index 000000000..217a20cc9 --- /dev/null +++ b/modules/overloading/macros/%p_i_hm.bin diff --git a/modules/overloading/macros/%p_i_hm.sci b/modules/overloading/macros/%p_i_hm.sci new file mode 100755 index 000000000..946ca7cad --- /dev/null +++ b/modules/overloading/macros/%p_i_hm.sci @@ -0,0 +1,14 @@ +// 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 + +function M=%p_i_hm(varargin) + + //insertion of an polynomial matrix in an hypermatrix + M=generic_i_hm(0,varargin(:)) +endfunction diff --git a/modules/overloading/macros/%p_i_lss.bin b/modules/overloading/macros/%p_i_lss.bin Binary files differnew file mode 100755 index 000000000..51457023e --- /dev/null +++ b/modules/overloading/macros/%p_i_lss.bin diff --git a/modules/overloading/macros/%p_i_lss.sci b/modules/overloading/macros/%p_i_lss.sci new file mode 100755 index 000000000..a0e66bdb6 --- /dev/null +++ b/modules/overloading/macros/%p_i_lss.sci @@ -0,0 +1,30 @@ +// 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 + +function s2=%p_i_lss(i,j,s1,s2) + //s2=%p_i_lss(i,j,s1,s2) <=> s2(i,j)=s1 + //! + + if type(i)==10 then // sl('D') + [lhs,rhs]=argn(0) + if rhs<>3 then error(21),end + if i<>"D" then + error(msprintf(_("%s: Wrong type for input argument #%d.\n"),"%p_i_lss",1)); + end + s2=s1;kf=5 + if size(s2(kf))<>size(j) then + warning(msprintf(_("%s: Wrong type for input argument #%d.\n"),"%p_i_lss",1)); + end + s2(kf)=j + return + end + + s1=tlist(["lss","A","B","C","D","X0","dt"],[],[],[],s1,[],[]) + s2(i,j)=s1 +endfunction diff --git a/modules/overloading/macros/%p_i_p.bin b/modules/overloading/macros/%p_i_p.bin Binary files differnew file mode 100755 index 000000000..ed441a217 --- /dev/null +++ b/modules/overloading/macros/%p_i_p.bin diff --git a/modules/overloading/macros/%p_i_p.sci b/modules/overloading/macros/%p_i_p.sci new file mode 100755 index 000000000..7fc1ea46d --- /dev/null +++ b/modules/overloading/macros/%p_i_p.sci @@ -0,0 +1,17 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function M=%p_i_p(varargin) + //insertion of an polynomial matrix in an matrix of polynomials for more than 2 indices + + M=varargin($) + M=mlist(["hm","dims","entries"],int32(size(M)),M(:)) + varargin($)=M; + M=generic_i_hm(0,varargin(:)) +endfunction diff --git a/modules/overloading/macros/%p_i_r.bin b/modules/overloading/macros/%p_i_r.bin Binary files differnew file mode 100755 index 000000000..38db6f228 --- /dev/null +++ b/modules/overloading/macros/%p_i_r.bin diff --git a/modules/overloading/macros/%p_i_r.sci b/modules/overloading/macros/%p_i_r.sci new file mode 100755 index 000000000..1f9af2cba --- /dev/null +++ b/modules/overloading/macros/%p_i_r.sci @@ -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 + +function s1=%p_i_r(varargin) + //Author Serge Steer, INRIA + //! + s2=varargin($) + s1=varargin($-1) + //s2(i,...)=s1, s1 matrix of polynomials + + num=s2.num; + sz2=size(num) + ind=list(); for i=sz2,ind($+1)=1:i,end + num(varargin(1:$-2))=s1 + den=ones(num); + den(ind(:))=s2.den; + den(varargin(1:$-2))=ones(s1); + + s1=rlist(num,den,s2.dt) +endfunction diff --git a/modules/overloading/macros/%p_i_s.bin b/modules/overloading/macros/%p_i_s.bin Binary files differnew file mode 100755 index 000000000..dc92aec65 --- /dev/null +++ b/modules/overloading/macros/%p_i_s.bin diff --git a/modules/overloading/macros/%p_i_s.sci b/modules/overloading/macros/%p_i_s.sci new file mode 100755 index 000000000..8b5ac0b4c --- /dev/null +++ b/modules/overloading/macros/%p_i_s.sci @@ -0,0 +1,31 @@ +// 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 + +function M=%p_i_s(varargin) + [lhs,rhs]=argn(0) + M=varargin(rhs) + N=varargin(rhs-1)//inserted matrix + index=varargin(1) // + + if rhs==3&(type(index)==10|type(index)==15) then + M=createstruct(index,N) + if type(index(1))<>10 & index(2)=="entries" then + // change struct to cell + f=getfield(1,M);f(1)="ce" + setfield(1,f,M) + end + elseif rhs>4 then //more than 2 indices: insertion of a polynomial in an matrix of numbers + M=varargin($) + M=mlist(["hm","dims","entries"],int32(size(M)),M(:)) + varargin($)=M; + M=generic_i_hm(0,varargin(:)) + else + //should not occurs (hard coded case) + end +endfunction diff --git a/modules/overloading/macros/%p_i_st.bin b/modules/overloading/macros/%p_i_st.bin Binary files differnew file mode 100755 index 000000000..111452beb --- /dev/null +++ b/modules/overloading/macros/%p_i_st.bin diff --git a/modules/overloading/macros/%p_i_st.sci b/modules/overloading/macros/%p_i_st.sci new file mode 100755 index 000000000..f3c97ae27 --- /dev/null +++ b/modules/overloading/macros/%p_i_st.sci @@ -0,0 +1,12 @@ +// 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 + +function out=%p_i_st(i,in,out) + out=generic_i_st(i,in,out) +endfunction diff --git a/modules/overloading/macros/%p_inv.bin b/modules/overloading/macros/%p_inv.bin Binary files differnew file mode 100755 index 000000000..0feb1e679 --- /dev/null +++ b/modules/overloading/macros/%p_inv.bin diff --git a/modules/overloading/macros/%p_inv.sci b/modules/overloading/macros/%p_inv.sci new file mode 100755 index 000000000..d6e0dddb5 --- /dev/null +++ b/modules/overloading/macros/%p_inv.sci @@ -0,0 +1,13 @@ +// 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 + +function x=%p_inv(a) + + x=invr(a) +endfunction diff --git a/modules/overloading/macros/%p_j_s.bin b/modules/overloading/macros/%p_j_s.bin Binary files differnew file mode 100755 index 000000000..3a7afdb60 --- /dev/null +++ b/modules/overloading/macros/%p_j_s.bin diff --git a/modules/overloading/macros/%p_j_s.sci b/modules/overloading/macros/%p_j_s.sci new file mode 100755 index 000000000..d9e11729c --- /dev/null +++ b/modules/overloading/macros/%p_j_s.sci @@ -0,0 +1,54 @@ +// 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 + +function f=%p_j_s(p,s) + // %p_j_s(p,s) computes p.^s for p polynomial matrix in special cases + //! + + if s==[] then f=[],return,end + if or(imag(s)<>0)|or(int(s)<>s) then error(msprintf(_("%s: Wrong type for input argument #%d: An integer matrix expected.\n"),"%p_j_s",2)),end + [m,n]=size(p) + [ms,ns]=size(s) + if ms==1&ns==1 then + if s<0 then + if or(abs(coeff(p(:)))*ones(max(degree(p))+1,1)==0) then + error(27) + end + f=rlist(ones(p),p.^(-s),[]) + else // this case is in fact hard coded + f=p.^s + end + elseif m==1&n==1 then // Element wise exponentiation p.^s with p "scalar" + kp=find(s>=0) + kn=find(s<0) + num=ones(s) + den=ones(s) + num(kp)=p.^s(kp) + p=1/p + num(kn)=p(2).^(-s(kn)) + den(kn)=p(3).^(-s(kn)) + f=rlist(num,den,[]) + elseif ms==m&ns==n then // Element wise exponentiation + p=p(:);s=s(:); + kp=find(s>=0) + kn=find(s<0) + num=p + den=ones(s) + num(kp)=num(kp).^s(kp) + if or(abs(coeff(p(kn)))*ones(max(degree(p(kn)))+1,1)==0) then + error(27) + end + num(kn)=ones(p(kn)) + den(kn)=p(kn).^(-s(kn)) + f = rlist(matrix(num,n,m),matrix(den,n,m),[]) + else + error(30) + end + +endfunction diff --git a/modules/overloading/macros/%p_k_p.bin b/modules/overloading/macros/%p_k_p.bin Binary files differnew file mode 100755 index 000000000..ef2eacf5c --- /dev/null +++ b/modules/overloading/macros/%p_k_p.bin diff --git a/modules/overloading/macros/%p_k_p.sci b/modules/overloading/macros/%p_k_p.sci new file mode 100755 index 000000000..a73febc00 --- /dev/null +++ b/modules/overloading/macros/%p_k_p.sci @@ -0,0 +1,25 @@ +// 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 + +function r=%p_k_p(a,b) + // a.*.b + + [ma,na]=size(a) + [mb,nb]=size(b) + r=zeros(ma*mb,na*nb) + k=0 + for j=1:na + l=0 + for i=1:ma + r(l+(1:mb),k+(1:nb))=a(i,j)*b + l=l+mb + end + k=k+nb + end +endfunction diff --git a/modules/overloading/macros/%p_k_r.bin b/modules/overloading/macros/%p_k_r.bin Binary files differnew file mode 100755 index 000000000..2310450af --- /dev/null +++ b/modules/overloading/macros/%p_k_r.bin diff --git a/modules/overloading/macros/%p_k_r.sci b/modules/overloading/macros/%p_k_r.sci new file mode 100755 index 000000000..820308aa8 --- /dev/null +++ b/modules/overloading/macros/%p_k_r.sci @@ -0,0 +1,25 @@ +// 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 + +function r=%p_k_r(a,b) + // a.*.b + + [ma,na]=size(a) + [mb,nb]=size(b) + r=zeros(ma*mb,na*nb) + k=0 + for j=1:na + l=0 + for i=1:ma + r(l+(1:mb),k+(1:nb))=a(i,j)*b + l=l+mb + end + k=k+nb + end +endfunction diff --git a/modules/overloading/macros/%p_k_s.bin b/modules/overloading/macros/%p_k_s.bin Binary files differnew file mode 100755 index 000000000..b4309fc11 --- /dev/null +++ b/modules/overloading/macros/%p_k_s.bin diff --git a/modules/overloading/macros/%p_k_s.sci b/modules/overloading/macros/%p_k_s.sci new file mode 100755 index 000000000..532fa8135 --- /dev/null +++ b/modules/overloading/macros/%p_k_s.sci @@ -0,0 +1,25 @@ +// 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 + +function r=%p_k_s(a,b) + // a.*.b + + [ma,na]=size(a) + [mb,nb]=size(b) + r=zeros(ma*mb,na*nb) + k=0 + for j=1:na + l=0 + for i=1:ma + r(l+(1:mb),k+(1:nb))=a(i,j)*b + l=l+mb + end + k=k+nb + end +endfunction diff --git a/modules/overloading/macros/%p_l_lss.bin b/modules/overloading/macros/%p_l_lss.bin Binary files differnew file mode 100755 index 000000000..532458d40 --- /dev/null +++ b/modules/overloading/macros/%p_l_lss.bin diff --git a/modules/overloading/macros/%p_l_lss.sci b/modules/overloading/macros/%p_l_lss.sci new file mode 100755 index 000000000..195754e7a --- /dev/null +++ b/modules/overloading/macros/%p_l_lss.sci @@ -0,0 +1,16 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function [sr]=%p_l_lss(p,s) + //sr=%p_l_lss(p,s) <=> sr=p\s + // p polynomial mat. + // s state-space syslin list + //! + sr=tlist(["lss","A","B","C","D","X0","dt"],[],[],[],p,[],[])\s +endfunction diff --git a/modules/overloading/macros/%p_l_p.bin b/modules/overloading/macros/%p_l_p.bin Binary files differnew file mode 100755 index 000000000..ff02b7ae2 --- /dev/null +++ b/modules/overloading/macros/%p_l_p.bin diff --git a/modules/overloading/macros/%p_l_p.sci b/modules/overloading/macros/%p_l_p.sci new file mode 100755 index 000000000..08946a515 --- /dev/null +++ b/modules/overloading/macros/%p_l_p.sci @@ -0,0 +1,18 @@ +// 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 + +function f=%p_l_p(p2,p1) + // f=%p_l_p(p2,p1) <=> f=p2\p1 for polynomial matrices + //! + [l,c]=size(p2) + if l*c <>1 then f=invr(p2)*p1,return,end + [l,c]=size(p1) + [p1,p2]=simp(p1,p2*ones(l,c)) + f = rlist(p1,p2,[]) +endfunction diff --git a/modules/overloading/macros/%p_l_r.bin b/modules/overloading/macros/%p_l_r.bin Binary files differnew file mode 100755 index 000000000..cdf91090a --- /dev/null +++ b/modules/overloading/macros/%p_l_r.bin diff --git a/modules/overloading/macros/%p_l_r.sci b/modules/overloading/macros/%p_l_r.sci new file mode 100755 index 000000000..9e49ddb0c --- /dev/null +++ b/modules/overloading/macros/%p_l_r.sci @@ -0,0 +1,20 @@ +// 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 + +function f1=%p_l_r(p1,f1) + // f1=p1\f1 + //! + + if size(p1,"*")<>1 then + f1=invr(p1)*f1 + else + [n1,d1]=simp(f1("num"),p1*f1("den")), + f1=rlist(n1,d1,f1("dt")) + end +endfunction diff --git a/modules/overloading/macros/%p_l_s.bin b/modules/overloading/macros/%p_l_s.bin Binary files differnew file mode 100755 index 000000000..594fb8777 --- /dev/null +++ b/modules/overloading/macros/%p_l_s.bin diff --git a/modules/overloading/macros/%p_l_s.sci b/modules/overloading/macros/%p_l_s.sci new file mode 100755 index 000000000..b5b998b38 --- /dev/null +++ b/modules/overloading/macros/%p_l_s.sci @@ -0,0 +1,25 @@ +// 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 + +function f=%p_l_s(p,m) + // f=%p_l_s(p,m) <=>f= p\m. + //! + [mp,np]=size(p) + if mp*np<>1 then + f=invr(p)*m, + else + [l,c]=size(m) + if m<>[] then m=m+poly(0,varn(p),"c"),end + if mp==-1&l*c==1|l==-1 then + f = rlist(m,p*eye(),[]) + else + f = rlist(m,p*ones(l,c),[]) + end + end +endfunction diff --git a/modules/overloading/macros/%p_m_hm.bin b/modules/overloading/macros/%p_m_hm.bin Binary files differnew file mode 100755 index 000000000..089d5c1d0 --- /dev/null +++ b/modules/overloading/macros/%p_m_hm.bin diff --git a/modules/overloading/macros/%p_m_hm.sci b/modules/overloading/macros/%p_m_hm.sci new file mode 100755 index 000000000..2d49ac24a --- /dev/null +++ b/modules/overloading/macros/%p_m_hm.sci @@ -0,0 +1,17 @@ +// 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 + +function M2=%p_m_hm(M1,M2) + //author Serge Steer INRIA + if size(M1,"*")<>1 then + M2=hypermat(size(M1),M1)*M2 + else + M2.entries=M1*M2.entries + end +endfunction diff --git a/modules/overloading/macros/%p_m_lss.bin b/modules/overloading/macros/%p_m_lss.bin Binary files differnew file mode 100755 index 000000000..43fbd6b0c --- /dev/null +++ b/modules/overloading/macros/%p_m_lss.bin diff --git a/modules/overloading/macros/%p_m_lss.sci b/modules/overloading/macros/%p_m_lss.sci new file mode 100755 index 000000000..c0951e1b4 --- /dev/null +++ b/modules/overloading/macros/%p_m_lss.sci @@ -0,0 +1,18 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function [s]=%p_m_lss(d2,s1) + // [s]=%lssmp(d2,s1) + // d2*s1 + // + // s1 : state-space + // d2 : polynomial matrix + //! + s=tlist(["lss","A","B","C","D","X0","dt"],[],[],[],d2,[],[])*s1 +endfunction diff --git a/modules/overloading/macros/%p_m_r.bin b/modules/overloading/macros/%p_m_r.bin Binary files differnew file mode 100755 index 000000000..caf897d3b --- /dev/null +++ b/modules/overloading/macros/%p_m_r.bin diff --git a/modules/overloading/macros/%p_m_r.sci b/modules/overloading/macros/%p_m_r.sci new file mode 100755 index 000000000..a87ec0212 --- /dev/null +++ b/modules/overloading/macros/%p_m_r.sci @@ -0,0 +1,67 @@ +// 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 + +function f2=%p_m_r(n1,f2) + // r=%p_m_r(p,f) <=> r= p*f with p=polynomial matrix + // and f= rational + //author Serge Steer INRIA + + //! + + [n2,d2]=f2(["num","den"]); + sz1=size(n1);sz2=size(n2); + if prod(sz1)==0|prod(sz2)==0 then f2=[],return,end + + + indef=%f + if or(sz1==-1) then + n1=n1+0;sz1=[1 1]; + if prod(sz2)==1 then indef=%t,else error(14),end + end + if or(sz2==-1) then + n2=n2+0;d2=d2+0;sz2=[1 1]; + if prod(sz1)==1 then indef=%t,else error(14),end + end + + // + if prod(sz1)==1 then + num=n1*n2, + den=d2 + elseif prod(sz2)==1 then + num=n1*n2, + den=d2(ones(n1)) + else, + if size(sz1,"*")>2|size(sz2,"*")>2 then error(10),end + if sz1(2)<>sz2(1) then error(10),end, + l1=sz1(1);m1=sz1(2);m2=sz2(2); + for j=1:m2, + [y,fact]=lcm(d2(:,j)), + n2(:,j)=n2(:,j).*fact, + den(1:l1,j)=ones(l1,1)*y, + for i=1:l1, + num(i,j)=n1(i,:)*n2(:,j), + end + end + end + + if ndims(num)<=2 then + [num,den]=simp(num,den), + else + sz=size(num) + [num,den]=simp(num.entries,den.entries), + num=matrix(num,sz) + den=matrix(den,sz) + end + + if indef then + num=num*eye() + den=den*eye() + end + f2=rlist(num,den,f2.dt) +endfunction diff --git a/modules/overloading/macros/%p_matrix.bin b/modules/overloading/macros/%p_matrix.bin Binary files differnew file mode 100755 index 000000000..f26fd3860 --- /dev/null +++ b/modules/overloading/macros/%p_matrix.bin diff --git a/modules/overloading/macros/%p_matrix.sci b/modules/overloading/macros/%p_matrix.sci new file mode 100755 index 000000000..474638044 --- /dev/null +++ b/modules/overloading/macros/%p_matrix.sci @@ -0,0 +1,12 @@ +// 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 + +function y=%p_matrix(a,varargin) + y=%hm_matrix(a,varargin(:)) +endfunction diff --git a/modules/overloading/macros/%p_n_l.bin b/modules/overloading/macros/%p_n_l.bin Binary files differnew file mode 100755 index 000000000..b2133ce92 --- /dev/null +++ b/modules/overloading/macros/%p_n_l.bin diff --git a/modules/overloading/macros/%p_n_l.sci b/modules/overloading/macros/%p_n_l.sci new file mode 100755 index 000000000..f6ed79545 --- /dev/null +++ b/modules/overloading/macros/%p_n_l.sci @@ -0,0 +1,14 @@ +// 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 + +function [r]=%p_n_l(l1,l2) + //r= %p_n_l(l1,l2) <=> r=(l1==l2) list==polynomial + //! + r=%t +endfunction diff --git a/modules/overloading/macros/%p_n_lss.bin b/modules/overloading/macros/%p_n_lss.bin Binary files differnew file mode 100755 index 000000000..19fedfda3 --- /dev/null +++ b/modules/overloading/macros/%p_n_lss.bin diff --git a/modules/overloading/macros/%p_n_lss.sci b/modules/overloading/macros/%p_n_lss.sci new file mode 100755 index 000000000..cd6e19561 --- /dev/null +++ b/modules/overloading/macros/%p_n_lss.sci @@ -0,0 +1,14 @@ +// 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 + +function [r]=%p_n_lss(s1,s2) + //r=%p_n_lss(s1,s2) <=> r=(s1<>s2) polynomial<> state-space list + //! + r=%t +endfunction diff --git a/modules/overloading/macros/%p_n_r.bin b/modules/overloading/macros/%p_n_r.bin Binary files differnew file mode 100755 index 000000000..3bfe4156a --- /dev/null +++ b/modules/overloading/macros/%p_n_r.bin diff --git a/modules/overloading/macros/%p_n_r.sci b/modules/overloading/macros/%p_n_r.sci new file mode 100755 index 000000000..c12af6ab1 --- /dev/null +++ b/modules/overloading/macros/%p_n_r.sci @@ -0,0 +1,17 @@ +// 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 + +function [r]=%p_n_r(l1,l2) + //r%p_n_r(l1,l2) <=>r= (l1<>l2 ) l1 polynomial l2 rational + //! + + r=degree(l2("den"))==0 + if r then r=l2("num")./coeff(l2("den"))==l1,end + r=~r +endfunction diff --git a/modules/overloading/macros/%p_o_l.bin b/modules/overloading/macros/%p_o_l.bin Binary files differnew file mode 100755 index 000000000..f521b18f2 --- /dev/null +++ b/modules/overloading/macros/%p_o_l.bin diff --git a/modules/overloading/macros/%p_o_l.sci b/modules/overloading/macros/%p_o_l.sci new file mode 100755 index 000000000..5740632c0 --- /dev/null +++ b/modules/overloading/macros/%p_o_l.sci @@ -0,0 +1,15 @@ +// 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 + +function [r]=%p_o_l(l1,l2) + //r=%p_o_l(l1,l2) <=> r=(l1==l2) list==polynomail + //! + + r=%f +endfunction diff --git a/modules/overloading/macros/%p_o_lss.bin b/modules/overloading/macros/%p_o_lss.bin Binary files differnew file mode 100755 index 000000000..3634a8262 --- /dev/null +++ b/modules/overloading/macros/%p_o_lss.bin diff --git a/modules/overloading/macros/%p_o_lss.sci b/modules/overloading/macros/%p_o_lss.sci new file mode 100755 index 000000000..732134417 --- /dev/null +++ b/modules/overloading/macros/%p_o_lss.sci @@ -0,0 +1,15 @@ +// 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 + +function [r]=%p_o_lss(s1,s2) + //r=%p_o_lss(s1,s2) <=> r=(s1==s2) polynomail==state-space syslin list + //! + + r=%f +endfunction diff --git a/modules/overloading/macros/%p_o_r.bin b/modules/overloading/macros/%p_o_r.bin Binary files differnew file mode 100755 index 000000000..71eede2e4 --- /dev/null +++ b/modules/overloading/macros/%p_o_r.bin diff --git a/modules/overloading/macros/%p_o_r.sci b/modules/overloading/macros/%p_o_r.sci new file mode 100755 index 000000000..46368faa3 --- /dev/null +++ b/modules/overloading/macros/%p_o_r.sci @@ -0,0 +1,16 @@ +// 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 + +function [r]=%p_o_r(l1,l2) + //r=%p_o_r(l1,l2) <=> r=(l1==l2) l1 polynomial l2 rational + //! + + r=degree(l2("den"))==0 + if r then r=l2("num")./coeff(l2("den"))==l1,end +endfunction diff --git a/modules/overloading/macros/%p_o_sp.bin b/modules/overloading/macros/%p_o_sp.bin Binary files differnew file mode 100755 index 000000000..cfd1a5b32 --- /dev/null +++ b/modules/overloading/macros/%p_o_sp.bin diff --git a/modules/overloading/macros/%p_o_sp.sci b/modules/overloading/macros/%p_o_sp.sci new file mode 100755 index 000000000..4af7f7c5d --- /dev/null +++ b/modules/overloading/macros/%p_o_sp.sci @@ -0,0 +1,14 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA, Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function r=%p_o_st(a,b) + // implements r=a==b + // for a a matrix of polynomials and b a struct + r=%f +endfunction diff --git a/modules/overloading/macros/%p_p_s.bin b/modules/overloading/macros/%p_p_s.bin Binary files differnew file mode 100755 index 000000000..92102e48a --- /dev/null +++ b/modules/overloading/macros/%p_p_s.bin diff --git a/modules/overloading/macros/%p_p_s.sci b/modules/overloading/macros/%p_p_s.sci new file mode 100755 index 000000000..891264938 --- /dev/null +++ b/modules/overloading/macros/%p_p_s.sci @@ -0,0 +1,58 @@ +// 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 + +function f=%p_p_s(p,s) + // %p_p_s(p,s) computes p^s for p polynomial matrix in special cases + //! + + if s==[] then f=[],return,end + if or(imag(s)<>0)|or(int(s)<>s) then error(msprintf(_("%s: Wrong type for input argument #%d: An integer matrix expected.\n"),"%p_p_s",2)),end + [m,n]=size(p) + [ms,ns]=size(s) + if ms==1&ns==1 then + if m==1|n==1 then //Element wise exponentiation p.^s with p vector + if s<0 then + if or(abs(coeff(p(:)))*ones(max(degree(p))+1,1)==0) then + error(27) + end + f = rlist(ones(p),p.^(-s),[]) + else // this case is in fact hard coded + f=p.^s + end + elseif m==n then //square matrix exponentiation p^s + if s<0 then + f=invr(p), + s=-s; + f1=f;for k=2:s,f=f*f1;end + else + f=p + for k=2:s,f=f*p;end + end + else + error(20,1) + end + elseif ms==1|ns==1 then // Element wise exponentiation f.^s with f "scalar" + if m<>1|n<>1 then error(43),end + + kp=find(s>=0) + kn=find(s<0) + num=ones(s) + den=ones(s) + num(kp)=p.^s(kp) + if abs(coeff(p))*ones(degree(p)+1,1)==0 then + error(27) + end + den(kn)=p.^(-s(kn)) + f = rlist(num,den,[]) + else + error(43) + end + + +endfunction diff --git a/modules/overloading/macros/%p_prod.bin b/modules/overloading/macros/%p_prod.bin Binary files differnew file mode 100755 index 000000000..701d01c3a --- /dev/null +++ b/modules/overloading/macros/%p_prod.bin diff --git a/modules/overloading/macros/%p_prod.sci b/modules/overloading/macros/%p_prod.sci new file mode 100755 index 000000000..bab445812 --- /dev/null +++ b/modules/overloading/macros/%p_prod.sci @@ -0,0 +1,70 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2010 - INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function r = %p_prod(varargin) + // If we call prod with 3 arguments, the third is optional for polynomial matrices + a = varargin(1) + dims = size(a); + + nargs = size(varargin); + select nargs + case 1 + d = "*"; + case 2 + if or(varargin(2) == ["native", "double"]) then + d = "*"; + else + d = varargin(2); + end + case 3 + d = varargin(2); + else + error(msprintf(_("%s: Wrong number of input argument(s): %d to %d expected.\n"),"prod", 1, 3)); + end + + // Check second argument : d + select type(d) + case 1 + if size(d,'*') <> 1 then + error(msprintf(_("%s: Wrong size for input argument #%d: A scalar expected.\n"),"prod", 2)) + end + if int(d) <> d | d < 0 then + error(msprintf(_("%s: Wrong value for input argument #%d: Integer >= %d expected.\n"),"prod", 2, 1)) + end + case 10 + if size(d,'*') <> 1 then + error(msprintf(_("%s: Wrong size for input argument #%d: A string expected.\n"),"prod",2)) + end + if and(d<>["r","c","*","m"]) then + error(msprintf(_("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"),.. + "prod",2,"""*"",""r"",""c"",""m""")) + end + + pos = [1,2,0,find(dims>1,1)]; + d=pos(find(d==["r","c","*","m"])) + else + error(msprintf(_("%s: Wrong type for input argument #%d: A string or scalar expected.\n"),"prod",2)) + end + + select d + case 0 then + r=prod(a) + case 1 then + for k=1:dims(2) + r(1,k) = prod(a(:,k)) + end + case 2 then + for k=1:dims(1) + r(k,1)=prod(a(k,:)) + end + else + r=a + end + +endfunction diff --git a/modules/overloading/macros/%p_q_p.bin b/modules/overloading/macros/%p_q_p.bin Binary files differnew file mode 100755 index 000000000..72e5124f2 --- /dev/null +++ b/modules/overloading/macros/%p_q_p.bin diff --git a/modules/overloading/macros/%p_q_p.sci b/modules/overloading/macros/%p_q_p.sci new file mode 100755 index 000000000..7790efedd --- /dev/null +++ b/modules/overloading/macros/%p_q_p.sci @@ -0,0 +1,21 @@ +// 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 + +function f=%p_q_p(p1,p2) + //f= p1.\p2 + //! + + if size(p1,"*")==1 then + p1=p1*ones(p2) + elseif size(p2,"*")==1 then + p2=p2*ones(p1) + end + [p1,p2]=simp(p1,p2) + f = rlist(p2,p1,[]) +endfunction diff --git a/modules/overloading/macros/%p_q_r.bin b/modules/overloading/macros/%p_q_r.bin Binary files differnew file mode 100755 index 000000000..cd37f97e8 --- /dev/null +++ b/modules/overloading/macros/%p_q_r.bin diff --git a/modules/overloading/macros/%p_q_r.sci b/modules/overloading/macros/%p_q_r.sci new file mode 100755 index 000000000..02f8d1542 --- /dev/null +++ b/modules/overloading/macros/%p_q_r.sci @@ -0,0 +1,15 @@ +// 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 + +function r=%p_q_r(p,r) + // r= p.\ r polynomial./rational + //! + + r=rlist(ones(p).*r("num"),p.*r("den"),r("dt")) +endfunction diff --git a/modules/overloading/macros/%p_q_s.bin b/modules/overloading/macros/%p_q_s.bin Binary files differnew file mode 100755 index 000000000..2e6e6b41c --- /dev/null +++ b/modules/overloading/macros/%p_q_s.bin diff --git a/modules/overloading/macros/%p_q_s.sci b/modules/overloading/macros/%p_q_s.sci new file mode 100755 index 000000000..13a362edb --- /dev/null +++ b/modules/overloading/macros/%p_q_s.sci @@ -0,0 +1,20 @@ +// 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 + +function f=%p_q_s(p1,p2) + // f=%p_q_s(p,m) <=> f=p.\m + //! + + if size(p1,"*")==1 then + p1=p1*ones(p2) + elseif size(p2,"*")==1 then + p2=p2*ones(p1) + end + f = rlist(p2,p1,[]) +endfunction diff --git a/modules/overloading/macros/%p_r_lss.bin b/modules/overloading/macros/%p_r_lss.bin Binary files differnew file mode 100755 index 000000000..bd0fc5285 --- /dev/null +++ b/modules/overloading/macros/%p_r_lss.bin diff --git a/modules/overloading/macros/%p_r_lss.sci b/modules/overloading/macros/%p_r_lss.sci new file mode 100755 index 000000000..ccb3f56b2 --- /dev/null +++ b/modules/overloading/macros/%p_r_lss.sci @@ -0,0 +1,16 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function [sr]=%p_r_lss(p,s) + // sr=%lssrp(p,s) ou sr=p/s + // s : state-space syslin list + // p : polynomial matrix + //! + sr=tlist(["lss","A","B","C","D","X0","dt"],[],[],[],p,[],[])/s +endfunction diff --git a/modules/overloading/macros/%p_r_p.bin b/modules/overloading/macros/%p_r_p.bin Binary files differnew file mode 100755 index 000000000..d0975c94b --- /dev/null +++ b/modules/overloading/macros/%p_r_p.bin diff --git a/modules/overloading/macros/%p_r_p.sci b/modules/overloading/macros/%p_r_p.sci new file mode 100755 index 000000000..22a04d125 --- /dev/null +++ b/modules/overloading/macros/%p_r_p.sci @@ -0,0 +1,21 @@ +// 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 + +function f=%p_r_p(p1,p2) + // f=%p_r_p(p1,p2) <=> f= p1*(p2^(-1)) + //p1 polynomial matrix + //p2 polynomial matrix + //! + + [l,c]=size(p2) + if l*c <>1 then f=p1*invr(p2),return,end + [l,c]=size(p1) + [p1 p2]=simp(p1,p2*ones(l,c)) + f=rlist(p1,p2,[]) +endfunction diff --git a/modules/overloading/macros/%p_r_r.bin b/modules/overloading/macros/%p_r_r.bin Binary files differnew file mode 100755 index 000000000..3aa19bd1c --- /dev/null +++ b/modules/overloading/macros/%p_r_r.bin diff --git a/modules/overloading/macros/%p_r_r.sci b/modules/overloading/macros/%p_r_r.sci new file mode 100755 index 000000000..996a67db6 --- /dev/null +++ b/modules/overloading/macros/%p_r_r.sci @@ -0,0 +1,18 @@ +// 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 + +function f=%p_r_r(m,f) + // f=%p_r_r(p1,p2) <=> f= p1*(p2^(-1)) + // p1 polynomial matrix + // p2: rational matrix + //! + + if prod(size(f("num")))<>1 then f=m*invr(f),return,end + f=rlist(m*f("den"),ones(m)*f("num"),f("dt")) +endfunction diff --git a/modules/overloading/macros/%p_r_s.bin b/modules/overloading/macros/%p_r_s.bin Binary files differnew file mode 100755 index 000000000..4324d878e --- /dev/null +++ b/modules/overloading/macros/%p_r_s.bin diff --git a/modules/overloading/macros/%p_r_s.sci b/modules/overloading/macros/%p_r_s.sci new file mode 100755 index 000000000..6303fb996 --- /dev/null +++ b/modules/overloading/macros/%p_r_s.sci @@ -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 + +function f=%p_r_s(p,m) + // f=%p_r_s(p,m) <=> f=p/m + // with p matrix of polynomials, m constant matrix + //! + + [l,c]=size(m) + [mp,np]=size(p); + if l==c then + f=p*inv(m) + else + s=poly(0,varn(p)) + f=coeff(p,0)/m + for k=1:max(degree(p)) + f=f+(coeff(p,k)/m)*(s^k) + end + end +endfunction diff --git a/modules/overloading/macros/%p_s_lss.bin b/modules/overloading/macros/%p_s_lss.bin Binary files differnew file mode 100755 index 000000000..84d809ad3 --- /dev/null +++ b/modules/overloading/macros/%p_s_lss.bin diff --git a/modules/overloading/macros/%p_s_lss.sci b/modules/overloading/macros/%p_s_lss.sci new file mode 100755 index 000000000..8c80d2b9d --- /dev/null +++ b/modules/overloading/macros/%p_s_lss.sci @@ -0,0 +1,17 @@ +// 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 + +function s2=%p_s_lss(d1,s2) + //s=%p_s_lss(s1,d2) <=> s=p-s1 + // s1 : syslin list + // p : polynomial matrix + //! + + s2(5)=d1-s2(5) +endfunction diff --git a/modules/overloading/macros/%p_s_r.bin b/modules/overloading/macros/%p_s_r.bin Binary files differnew file mode 100755 index 000000000..16f5b8a2c --- /dev/null +++ b/modules/overloading/macros/%p_s_r.bin diff --git a/modules/overloading/macros/%p_s_r.sci b/modules/overloading/macros/%p_s_r.sci new file mode 100755 index 000000000..d13eaeff9 --- /dev/null +++ b/modules/overloading/macros/%p_s_r.sci @@ -0,0 +1,44 @@ +// 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 + +function f=%p_s_r(m,f) + //f= m-f + //author Serge Steer INRIA + //! + [num,den]=f(["num","den"]) + szf=size(den) + szm=size(m) + + if and(szf>=0)&and(szm>=0) then + if prod(szf)==1&prod(szm)>1 then + den=den(ones(m)) + szf=szm + end + + if size(szf,"*")>2 then + num=num(:);den=den(:);m=m(:) + end + [num,den]=simp(-num+m.*den,den) + num=matrix(num,szf) + den=matrix(den,szf) + else + //at leat one matrix is eye*x + if size(szf,"*")>2|size(szm,"*")>2 then + error(9) + end + if or(szf<0)&or(szm<0) then + [num,den]=simp(-num+m.*den,den) + elseif or(szf<0) then + [num,den]=simp(-num+m.*den,den*ones(m)) + elseif or(szm<0) then + [num,den]=simp(-num+(m+0)*eye(den).*den,den) + end + end + f=rlist(num,den,f.dt) +endfunction diff --git a/modules/overloading/macros/%p_simp.bin b/modules/overloading/macros/%p_simp.bin Binary files differnew file mode 100755 index 000000000..c02b87029 --- /dev/null +++ b/modules/overloading/macros/%p_simp.bin diff --git a/modules/overloading/macros/%p_simp.sci b/modules/overloading/macros/%p_simp.sci new file mode 100755 index 000000000..b8d1acef1 --- /dev/null +++ b/modules/overloading/macros/%p_simp.sci @@ -0,0 +1,12 @@ +// 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 + +function [num,den]=%p_simp(num,den) + // implement complex case +endfunction diff --git a/modules/overloading/macros/%p_string.bin b/modules/overloading/macros/%p_string.bin Binary files differnew file mode 100755 index 000000000..21eb59bdb --- /dev/null +++ b/modules/overloading/macros/%p_string.bin diff --git a/modules/overloading/macros/%p_string.sci b/modules/overloading/macros/%p_string.sci new file mode 100755 index 000000000..0e482f91f --- /dev/null +++ b/modules/overloading/macros/%p_string.sci @@ -0,0 +1,69 @@ +// 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 + +function txt=%p_string(p) + [m,n]=size(p) + s=stripblanks(varn(p)) + txt=emptystr(2*m,n) + + for l=1:m + for k=1:n + c=coeff(p(l,k)) + knz=find(c<>0) + if knz==[] then + txt(2*l-1:2*l,k)=[" ";"0"]; + else + c=c(knz) + //special case for i=1 + if isreal(c(1),0) then + w=real(c(1)) + if w<0 then + C(1)=" - "+string(abs(c(1))), + else + C(1)=string(c(1)), + end + else + w=string(c(1)); + if knz(1)<> 1 then w="("+w+")",end + C(1)=w; + end + + for i=2:size(c,"*"), + if isreal(c(i),0) then + w=real(c(i)) + if w<0 then + C(i)=" - "+string(abs(c(i))), + else + C(i)=" + "+string(c(i)), + end + else + C(i)=" + ("+string(c(i))+")"; + end + end + + if knz(1)>1 then + C=C+s + else + C(2:$)=C(2:$)+s + end + + i=min(find(knz>2)) + blank=" " + e=blank(ones(1,i-1)) + if size(knz,"*")>=i then e=[e string(knz(i:$)-1)],end + + lc=cumsum(length(C)) + C=strcat(C) + E=""; + for i=1:size(c,"*"),E=E+part(" ",1:(lc(i)-length(E)))+e(i);end + txt(2*l-1:2*l,k)=[E;C]; + end + end + end +endfunction diff --git a/modules/overloading/macros/%p_sum.bin b/modules/overloading/macros/%p_sum.bin Binary files differnew file mode 100755 index 000000000..913c05ecb --- /dev/null +++ b/modules/overloading/macros/%p_sum.bin diff --git a/modules/overloading/macros/%p_sum.sci b/modules/overloading/macros/%p_sum.sci new file mode 100755 index 000000000..a08d2461d --- /dev/null +++ b/modules/overloading/macros/%p_sum.sci @@ -0,0 +1,68 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2010 - INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function a = %p_sum(varargin) + //sum of a polynomial matrix. Sum of Polynomial hypermatrices are + //handled by %hm_sum + // If we call sum with 3 arguments, the third is optional for polynomial matrices + a = varargin(1) + dims = size(a); + + nargs = size(varargin); + select nargs + case 1 + d = "*"; + case 2 + if or(varargin(2) == ["native", "double"]) then + d = "*"; + else + d = varargin(2); + end + case 3 + d = varargin(2); + else + error(msprintf(_("%s: Wrong number of input argument(s): %d to %d expected.\n"),"sum", 1, 3)); + end + + // Check second argument : d + select type(d) + case 1 + if size(d,'*') <> 1 then + error(msprintf(_("%s: Wrong size for input argument #%d: A scalar expected.\n"),"sum", 2)) + end + if int(d) <> d | d < 0 then + error(msprintf(_("%s: Wrong value for input argument #%d: Integer >= %d expected.\n"),"sum", 2, 1)) + end + case 10 + if size(d,'*') <> 1 then + error(msprintf(_("%s: Wrong size for input argument #%d: A string expected.\n"),"sum",2)) + end + if and(d<>["r","c","*","m"]) then + error(msprintf(_("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"),.. + "sum",2,"""*"",""r"",""c"",""m""")) + end + + pos = [1,2,0,find(dims>1,1)]; + d=pos(find(d==["r","c","*","m"])) + else + error(msprintf(_("%s: Wrong type for input argument #%d: A string or scalar expected.\n"),"sum",2)) + end + + select d + case 0 then + a=sum(a) + case 1 then + a=ones(1,dims(1))*a; + case 2 then + a=a*ones(dims(2),1); + else + a=a + end + +endfunction diff --git a/modules/overloading/macros/%p_v_lss.bin b/modules/overloading/macros/%p_v_lss.bin Binary files differnew file mode 100755 index 000000000..3022a9172 --- /dev/null +++ b/modules/overloading/macros/%p_v_lss.bin diff --git a/modules/overloading/macros/%p_v_lss.sci b/modules/overloading/macros/%p_v_lss.sci new file mode 100755 index 000000000..a342ddd88 --- /dev/null +++ b/modules/overloading/macros/%p_v_lss.sci @@ -0,0 +1,18 @@ +// 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 + +function [sr]=%p_v_lss(p,s) + // feedback sr=(eye+p*s)\p + //s=%p_v_lss(p,s) <=> sr=p/.s + // p : polynomial matrix + // s : state-space syslin list + //! + + sr=tlist(["lss","A","B","C","D","X0","dt"],[],[],[],p,[],[])/.s +endfunction diff --git a/modules/overloading/macros/%p_v_p.bin b/modules/overloading/macros/%p_v_p.bin Binary files differnew file mode 100755 index 000000000..76b7068a0 --- /dev/null +++ b/modules/overloading/macros/%p_v_p.bin diff --git a/modules/overloading/macros/%p_v_p.sci b/modules/overloading/macros/%p_v_p.sci new file mode 100755 index 000000000..76e7b7e7f --- /dev/null +++ b/modules/overloading/macros/%p_v_p.sci @@ -0,0 +1,18 @@ +// 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 + +function h=%p_v_p(h1,h2) + // h=%p_v_p(h1,h2) <=> h=(I+h1*h2)\h1 with h1 h2 polynomial matrices + //! + + [m1,n1]=size(h1) + [m2,n2]=size(h2) + if abs(n1-m2)+abs(m1-n2)<>0 then error(msprintf(_("%s: Wrong size for input arguments.\n"),"%p_v_p")),end + h=(eye(m1,m1)+h1*h2)\h1 +endfunction diff --git a/modules/overloading/macros/%p_v_r.bin b/modules/overloading/macros/%p_v_r.bin Binary files differnew file mode 100755 index 000000000..e9f77a4c1 --- /dev/null +++ b/modules/overloading/macros/%p_v_r.bin diff --git a/modules/overloading/macros/%p_v_r.sci b/modules/overloading/macros/%p_v_r.sci new file mode 100755 index 000000000..e0e6d31a4 --- /dev/null +++ b/modules/overloading/macros/%p_v_r.sci @@ -0,0 +1,20 @@ +// 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 + +function h=%p_v_r(h1,h2) + // h=%p_v_r(h1,h2) <=> (I+h1*h2)\h1. + // h1 polynomial matrix + // h2 rational matrix + //! + + [m1,n1]=size(h1) + [m2,n2]=size(h2("num")) + if abs(n1-m2)+abs(m1-n2)<>0 then error(msprintf(_("%s: Wrong size for input argument(s).\n"),"%p_v_r")),end + h=(eye(m1,m1)+h1*h2)\h1 +endfunction diff --git a/modules/overloading/macros/%p_v_s.bin b/modules/overloading/macros/%p_v_s.bin Binary files differnew file mode 100755 index 000000000..17c4c1f09 --- /dev/null +++ b/modules/overloading/macros/%p_v_s.bin diff --git a/modules/overloading/macros/%p_v_s.sci b/modules/overloading/macros/%p_v_s.sci new file mode 100755 index 000000000..722e9a513 --- /dev/null +++ b/modules/overloading/macros/%p_v_s.sci @@ -0,0 +1,14 @@ +// 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 + +function h=%p_v_s(p,s) + //! + + h=p/(1+p*s) +endfunction diff --git a/modules/overloading/macros/%p_x_hm.bin b/modules/overloading/macros/%p_x_hm.bin Binary files differnew file mode 100755 index 000000000..84f0eb840 --- /dev/null +++ b/modules/overloading/macros/%p_x_hm.bin diff --git a/modules/overloading/macros/%p_x_hm.sci b/modules/overloading/macros/%p_x_hm.sci new file mode 100755 index 000000000..b2842473a --- /dev/null +++ b/modules/overloading/macros/%p_x_hm.sci @@ -0,0 +1,12 @@ +// 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 +function h=%p_x_hm(p,h) + //author Serge Steer INRIA + h.entries=p.*h.entries +endfunction diff --git a/modules/overloading/macros/%p_x_r.bin b/modules/overloading/macros/%p_x_r.bin Binary files differnew file mode 100755 index 000000000..3a61cf49f --- /dev/null +++ b/modules/overloading/macros/%p_x_r.bin diff --git a/modules/overloading/macros/%p_x_r.sci b/modules/overloading/macros/%p_x_r.sci new file mode 100755 index 000000000..51fa1072c --- /dev/null +++ b/modules/overloading/macros/%p_x_r.sci @@ -0,0 +1,24 @@ +// 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 + +function r=%p_x_r(p,r) + // r=%p_x_r(p,r) <=> r=p.*r polynomial.* rational + //author Serge Steer, INRIA + //! + + r.num=p.*r.num + sz=size(r.num) + if size(sz,"*")<=2 then + r=simp(r) + else + [num,den]=simp(r.num.entries,r.den.entries) + r.num=matrix(num,sz) + r.den=matrix(den,sz) + end +endfunction diff --git a/modules/overloading/macros/%p_y_p.bin b/modules/overloading/macros/%p_y_p.bin Binary files differnew file mode 100755 index 000000000..8f775b407 --- /dev/null +++ b/modules/overloading/macros/%p_y_p.bin diff --git a/modules/overloading/macros/%p_y_p.sci b/modules/overloading/macros/%p_y_p.sci new file mode 100755 index 000000000..ccded4381 --- /dev/null +++ b/modules/overloading/macros/%p_y_p.sci @@ -0,0 +1,25 @@ +// 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 + +function r=%p_y_p(a,b) + // a./.b + + [ma,na]=size(a) + [mb,nb]=size(b) + r=zeros(ma*mb,na*nb) + k=0 + for j=1:na + l=0 + for i=1:ma + r(l+(1:mb),k+(1:nb))=a(i,j)./b + l=l+mb + end + k=k+nb + end +endfunction diff --git a/modules/overloading/macros/%p_y_r.bin b/modules/overloading/macros/%p_y_r.bin Binary files differnew file mode 100755 index 000000000..ef76546fa --- /dev/null +++ b/modules/overloading/macros/%p_y_r.bin diff --git a/modules/overloading/macros/%p_y_r.sci b/modules/overloading/macros/%p_y_r.sci new file mode 100755 index 000000000..cf85b7453 --- /dev/null +++ b/modules/overloading/macros/%p_y_r.sci @@ -0,0 +1,25 @@ +// 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 + +function r=%p_y_r(a,b) + // a./.b + + [ma,na]=size(a) + [mb,nb]=size(b) + r=zeros(ma*mb,na*nb) + k=0 + for j=1:na + l=0 + for i=1:ma + r(l+(1:mb),k+(1:nb))=a(i,j)./b + l=l+mb + end + k=k+nb + end +endfunction diff --git a/modules/overloading/macros/%p_y_s.bin b/modules/overloading/macros/%p_y_s.bin Binary files differnew file mode 100755 index 000000000..5105e7b2e --- /dev/null +++ b/modules/overloading/macros/%p_y_s.bin diff --git a/modules/overloading/macros/%p_y_s.sci b/modules/overloading/macros/%p_y_s.sci new file mode 100755 index 000000000..4b332901c --- /dev/null +++ b/modules/overloading/macros/%p_y_s.sci @@ -0,0 +1,25 @@ +// 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 + +function r=%p_y_s(a,b) + // a./.b + + [ma,na]=size(a) + [mb,nb]=size(b) + r=zeros(ma*mb,na*nb) + k=0 + for j=1:na + l=0 + for i=1:ma + r(l+(1:mb),k+(1:nb))=a(i,j)./b + l=l+mb + end + k=k+nb + end +endfunction diff --git a/modules/overloading/macros/%p_z_p.bin b/modules/overloading/macros/%p_z_p.bin Binary files differnew file mode 100755 index 000000000..49fd66661 --- /dev/null +++ b/modules/overloading/macros/%p_z_p.bin diff --git a/modules/overloading/macros/%p_z_p.sci b/modules/overloading/macros/%p_z_p.sci new file mode 100755 index 000000000..860d913c8 --- /dev/null +++ b/modules/overloading/macros/%p_z_p.sci @@ -0,0 +1,25 @@ +// 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 + +function r=%p_z_p(a,b) + // a.\.b + + [ma,na]=size(a) + [mb,nb]=size(b) + r=zeros(ma*mb,na*nb) + k=0 + for j=1:na + l=0 + for i=1:ma + r(l+(1:mb),k+(1:nb))=a(i,j).\b + l=l+mb + end + k=k+nb + end +endfunction diff --git a/modules/overloading/macros/%p_z_r.bin b/modules/overloading/macros/%p_z_r.bin Binary files differnew file mode 100755 index 000000000..a6f1fdf1e --- /dev/null +++ b/modules/overloading/macros/%p_z_r.bin diff --git a/modules/overloading/macros/%p_z_r.sci b/modules/overloading/macros/%p_z_r.sci new file mode 100755 index 000000000..5172c3c6c --- /dev/null +++ b/modules/overloading/macros/%p_z_r.sci @@ -0,0 +1,25 @@ +// 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 + +function r=%p_z_r(a,b) + // a.\.b + + [ma,na]=size(a) + [mb,nb]=size(b) + r=zeros(ma*mb,na*nb) + k=0 + for j=1:na + l=0 + for i=1:ma + r(l+(1:mb),k+(1:nb))=a(i,j).\b + l=l+mb + end + k=k+nb + end +endfunction diff --git a/modules/overloading/macros/%p_z_s.bin b/modules/overloading/macros/%p_z_s.bin Binary files differnew file mode 100755 index 000000000..778baa27a --- /dev/null +++ b/modules/overloading/macros/%p_z_s.bin diff --git a/modules/overloading/macros/%p_z_s.sci b/modules/overloading/macros/%p_z_s.sci new file mode 100755 index 000000000..e772069a4 --- /dev/null +++ b/modules/overloading/macros/%p_z_s.sci @@ -0,0 +1,25 @@ +// 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 + +function r=%p_z_s(a,b) + // a.\.b + + [ma,na]=size(a) + [mb,nb]=size(b) + r=zeros(ma*mb,na*nb) + k=0 + for j=1:na + l=0 + for i=1:ma + r(l+(1:mb),k+(1:nb))=a(i,j).\b + l=l+mb + end + k=k+nb + end +endfunction diff --git a/modules/overloading/macros/%plist_p.bin b/modules/overloading/macros/%plist_p.bin Binary files differnew file mode 100755 index 000000000..864da3af4 --- /dev/null +++ b/modules/overloading/macros/%plist_p.bin diff --git a/modules/overloading/macros/%plist_p.sci b/modules/overloading/macros/%plist_p.sci new file mode 100755 index 000000000..c8b3433d6 --- /dev/null +++ b/modules/overloading/macros/%plist_p.sci @@ -0,0 +1,21 @@ +// 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 + +// +// %plist_p -- +// Prints the string containing the parameters list +// +function %plist_p ( this ) + + str = string(this) + nbrows = size(str, "r") + for i = 1:nbrows + mprintf("%s\n", str(i)) + end + +endfunction diff --git a/modules/overloading/macros/%r_0.bin b/modules/overloading/macros/%r_0.bin Binary files differnew file mode 100755 index 000000000..6eb591a18 --- /dev/null +++ b/modules/overloading/macros/%r_0.bin diff --git a/modules/overloading/macros/%r_0.sci b/modules/overloading/macros/%r_0.sci new file mode 100755 index 000000000..4dedf799a --- /dev/null +++ b/modules/overloading/macros/%r_0.sci @@ -0,0 +1,15 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2010 - Samuel GOUGEON +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function rep = %r_0(R) + s = poly(0, varn(R(2)(1))) + rep = ones(R).' ./ s ; + rep(2) = R(2).' + rep(3) = R(3).'; +endfunction diff --git a/modules/overloading/macros/%r_a_hm.bin b/modules/overloading/macros/%r_a_hm.bin Binary files differnew file mode 100755 index 000000000..7ccf2ce89 --- /dev/null +++ b/modules/overloading/macros/%r_a_hm.bin diff --git a/modules/overloading/macros/%r_a_hm.sci b/modules/overloading/macros/%r_a_hm.sci new file mode 100755 index 000000000..fcabf117e --- /dev/null +++ b/modules/overloading/macros/%r_a_hm.sci @@ -0,0 +1,31 @@ +// 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 + +function f=%r_a_hm(f,m) + //f = f+m, + //f: transfer matrix, m : hypermatrix + //author Serge Steer INRIA + //! + [num,den]=f(["num","den"]) + szf=size(den) + szm=size(m) + + if and(szf>=0)&and(szm>=0) then + num=num(:);den=den(:);m=m(:) + if prod(szf)==1&prod(szm)>1 then + den=den(ones(m)) + end + [num,den]=simp(num+m.*den,den) + num=matrix(num,szf) + den=matrix(den,szf) + f=rlist(num,den,f.dt) + else + error(8) + end +endfunction diff --git a/modules/overloading/macros/%r_a_lss.bin b/modules/overloading/macros/%r_a_lss.bin Binary files differnew file mode 100755 index 000000000..15c9190b4 --- /dev/null +++ b/modules/overloading/macros/%r_a_lss.bin diff --git a/modules/overloading/macros/%r_a_lss.sci b/modules/overloading/macros/%r_a_lss.sci new file mode 100755 index 000000000..ab32ac348 --- /dev/null +++ b/modules/overloading/macros/%r_a_lss.sci @@ -0,0 +1,14 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function s=%r_a_lss(s1,s2) + //s=%r_a_lss(s1,s2) <=> s=s1+s2 rational + state-space + //! + [s1,s2]=sysconv(s1,s2);s=s1+s2; +endfunction diff --git a/modules/overloading/macros/%r_a_p.bin b/modules/overloading/macros/%r_a_p.bin Binary files differnew file mode 100755 index 000000000..0a5eeb21c --- /dev/null +++ b/modules/overloading/macros/%r_a_p.bin diff --git a/modules/overloading/macros/%r_a_p.sci b/modules/overloading/macros/%r_a_p.sci new file mode 100755 index 000000000..cfc0a33fe --- /dev/null +++ b/modules/overloading/macros/%r_a_p.sci @@ -0,0 +1,46 @@ +// 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 + +function f=%r_a_p(f,m) + //f = f+m, + //f: transfer matrix, m : polynomial matrix + //author Serge Steer INRIA + //! + [num,den]=f(["num","den"]) + szf=size(den) + szm=size(m) + + if and(szf>=0)&and(szm>=0) then + if prod(szf)==1&prod(szm)>1 then + den=den(ones(m)) + szf=szm + end + + if size(szf,"*")>2 then + num=num(:);den=den(:);m=m(:) + end + [num,den]=simp(num+m.*den,den) + num=matrix(num,szf) + den=matrix(den,szf) + else + //at leat one matrix is eye*x + if size(szf,"*")>2|size(szm,"*")>2 then + error(8) + end + if or(szf<0)&or(szm<0) then + [num,den]=simp(num+m.*den,den) + elseif or(szf<0) then + [num,den]=simp(num+m.*den,den*ones(m)) + elseif or(szm<0) then + [num,den]=simp(num+(m+0)*eye(den).*den,den) + end + end + f=rlist(num,den,f.dt) + +endfunction diff --git a/modules/overloading/macros/%r_a_r.bin b/modules/overloading/macros/%r_a_r.bin Binary files differnew file mode 100755 index 000000000..06c51ba9e --- /dev/null +++ b/modules/overloading/macros/%r_a_r.bin diff --git a/modules/overloading/macros/%r_a_r.sci b/modules/overloading/macros/%r_a_r.sci new file mode 100755 index 000000000..7fb68d029 --- /dev/null +++ b/modules/overloading/macros/%r_a_r.sci @@ -0,0 +1,71 @@ +// 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 + +function f=%r_a_r(s1,s2) + //f=s1+s2 s1,s2 : rational matrices + //author Serge Steer, INRIA + //! + if ndims(s1)<2&ndims(s2)<2 then [s1,s2]=sysconv(s1,s2),end + [num1,den1]=s1(["num","den"]), + [num2,den2]=s2(["num","den"]), + sz1=size(num1) + sz2=size(num2) + + if and(sz1>=0)&and(sz2>=0) then + num1=num1(:);den1=den1(:); + num2=num2(:);den2=den2(:); + + if prod(sz1)==1&prod(sz2)>1 then + den1=den1(ones(den2)) + num1=num1(ones(num2)) + sz1=sz2 + elseif prod(sz2)==1&prod(sz1)>1 then + den2=den2(ones(den1)) + num2=num2(ones(num1)) + sz2=sz1 + end + if and(sz1<>sz2) then error(8),end + for l=1:prod(sz1) + [den,fact]=lcm([den1(l);den2(l)]) + num1(l)=[num1(l),num2(l)]*fact + den1(l)=den + end, + [num1,den1]=simp(num1,den1), + f=rlist(matrix(num1,sz1),matrix(den1,sz1),s1.dt) + else + if size(sz1,"*")>2|size(sz2,"*")>2 then error(8),end + + if or(sz1<0)&or(sz2<0) then + // both are eye*x + [den1,fact]=lcm([den1;den2]) + [num1,den1]=simp([num1,num2]*fact,den1) + f=rlist(num1*eye(),den1*eye(),s1("dt")), + elseif or(sz1<0) then + den1=den1+0;num1=num1+0 + for l=1:min(sz2) + [den,fact]=lcm([den1;den2(l,l)]) + num2(l,l)=[num1,num2(l,l)]*fact + den2(l,l)=den + end + [num2,den2]=simp(num2,den2), + f=rlist(num2,den2,s1.dt) + elseif or(sz2<0) then + den2=den2+0;num2=num2+0 + for l=1:min(sz1) + [den,fact]=lcm([den1(l,l);den2]) + num1(l,l)=[num1(l,l),num2]*fact + den1(l,l)=den + end + [num1,den1]=simp(num1,den1), + f=rlist(num1,den1,s1.dt) + end + end + + +endfunction diff --git a/modules/overloading/macros/%r_a_s.bin b/modules/overloading/macros/%r_a_s.bin Binary files differnew file mode 100755 index 000000000..f46ddacba --- /dev/null +++ b/modules/overloading/macros/%r_a_s.bin diff --git a/modules/overloading/macros/%r_a_s.sci b/modules/overloading/macros/%r_a_s.sci new file mode 100755 index 000000000..2029e4d80 --- /dev/null +++ b/modules/overloading/macros/%r_a_s.sci @@ -0,0 +1,45 @@ +// 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 + +function f=%r_a_s(f,m) + //f = f+m, + //f: transfer matrix, m : scalar or scalar matrix + //author Serge Steer INRIA + //! + [num,den]=f(["num","den"]) + szf=size(den) + szm=size(m) + + if and(szf>=0)&and(szm>=0) then + if prod(szf)==1&prod(szm)>1 then + den=den(ones(m)) + szf=szm + end + + if size(szf,"*")>2 then + num=num(:);den=den(:);m=m(:) + end + [num,den]=simp(num+m.*den,den) + num=matrix(num,szf) + den=matrix(den,szf) + else + //at leat one matrix is eye*x + if size(szf,"*")>2|size(szm,"*")>2 then + error(8) + end + if or(szf<0)&or(szm<0) then + [num,den]=simp(num+m.*den,den) + elseif or(szf<0) then + [num,den]=simp(num+m.*den,den*ones(m)) + elseif or(szm<0) then + [num,den]=simp(num+(m+0)*eye(den).*den,den) + end + end + f=rlist(num,den,f.dt) +endfunction diff --git a/modules/overloading/macros/%r_c_lss.bin b/modules/overloading/macros/%r_c_lss.bin Binary files differnew file mode 100755 index 000000000..9635f89eb --- /dev/null +++ b/modules/overloading/macros/%r_c_lss.bin diff --git a/modules/overloading/macros/%r_c_lss.sci b/modules/overloading/macros/%r_c_lss.sci new file mode 100755 index 000000000..f376d8ff3 --- /dev/null +++ b/modules/overloading/macros/%r_c_lss.sci @@ -0,0 +1,14 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function s=%r_c_lss(s1,s2) + //s=%r_c_lss(s1,s2) <=> s=[s1,s2] [rational, state-space] + //! + [s1,s2]=sysconv(s1,s2);s=[s1,s2] +endfunction diff --git a/modules/overloading/macros/%r_c_p.bin b/modules/overloading/macros/%r_c_p.bin Binary files differnew file mode 100755 index 000000000..df8c4f9fe --- /dev/null +++ b/modules/overloading/macros/%r_c_p.bin diff --git a/modules/overloading/macros/%r_c_p.sci b/modules/overloading/macros/%r_c_p.sci new file mode 100755 index 000000000..b31b3f2cf --- /dev/null +++ b/modules/overloading/macros/%r_c_p.sci @@ -0,0 +1,14 @@ +// 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 + +function f=%r_c_p(f,p) + // f=%r_c_p(f,p) <=> f=[f,p] [rational, polynomial] + + f=rlist([f("num"),p],[f("den"),ones(p)],f("dt")) +endfunction diff --git a/modules/overloading/macros/%r_c_r.bin b/modules/overloading/macros/%r_c_r.bin Binary files differnew file mode 100755 index 000000000..45eab27c1 --- /dev/null +++ b/modules/overloading/macros/%r_c_r.bin diff --git a/modules/overloading/macros/%r_c_r.sci b/modules/overloading/macros/%r_c_r.sci new file mode 100755 index 000000000..cde0277ca --- /dev/null +++ b/modules/overloading/macros/%r_c_r.sci @@ -0,0 +1,15 @@ +// 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 + +function [f]=%r_c_r(s1,s2) + //f=[s1,s2] + //! + [s1,s2]=sysconv(s1,s2) + f=rlist([s1("num"),s2("num")],[s1("den"),s2("den")],s1("dt")) +endfunction diff --git a/modules/overloading/macros/%r_c_s.bin b/modules/overloading/macros/%r_c_s.bin Binary files differnew file mode 100755 index 000000000..7262f3196 --- /dev/null +++ b/modules/overloading/macros/%r_c_s.bin diff --git a/modules/overloading/macros/%r_c_s.sci b/modules/overloading/macros/%r_c_s.sci new file mode 100755 index 000000000..e7913bc1a --- /dev/null +++ b/modules/overloading/macros/%r_c_s.sci @@ -0,0 +1,14 @@ +// 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 + +function f=%r_c_s(f,m) + // f=%r_c_s(r,m) <=> f=[r, m] [rational, constant] + //! + f=rlist([f("num"),m],[f("den"),ones(m)],f("dt")) +endfunction diff --git a/modules/overloading/macros/%r_clean.bin b/modules/overloading/macros/%r_clean.bin Binary files differnew file mode 100755 index 000000000..7c73e4845 --- /dev/null +++ b/modules/overloading/macros/%r_clean.bin diff --git a/modules/overloading/macros/%r_clean.sci b/modules/overloading/macros/%r_clean.sci new file mode 100755 index 000000000..cbc22ed6e --- /dev/null +++ b/modules/overloading/macros/%r_clean.sci @@ -0,0 +1,29 @@ +// 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 + +function a=%r_clean(a,epsa,epsr) + //Syntax: a=%r_ clean(a,epsa,epsr) + // Given a, matrix of rationals , this function + // eliminates all the coefficients of a with absolute value < epsa + // and realtive value < epsr (relative means realive wrt norm 1 of + // the coefficients) + // Default values : epsa=1.d-10; epsr=1.d-10; + //! + + + [lhs,rhs]=argn(0) + if rhs == 1 then + epsa=1.d-10; + epsr=1.d-10; + elseif rhs==2 then + epsr=1.d-10; + end + tdom=a("dt") + a=simp(clean(a("num"),epsa,epsr)./clean(a("den"),epsa,epsr));a("dt")=tdom +endfunction diff --git a/modules/overloading/macros/%r_cumprod.bin b/modules/overloading/macros/%r_cumprod.bin Binary files differnew file mode 100755 index 000000000..a0c29735e --- /dev/null +++ b/modules/overloading/macros/%r_cumprod.bin diff --git a/modules/overloading/macros/%r_cumprod.sci b/modules/overloading/macros/%r_cumprod.sci new file mode 100755 index 000000000..5e08d779e --- /dev/null +++ b/modules/overloading/macros/%r_cumprod.sci @@ -0,0 +1,70 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2010 - INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function a=%r_cumprod(varargin) + //prod of a rational matrix + // If we call cumprod with 3 arguments, the third is optional for rational matrices. + a = varargin(1) + dims = size(a); + + nargs = size(varargin); + select nargs + case 1 + d = "*"; + case 2 + if or(varargin(2) == ["native", "double"]) then + d = "*"; + else + d = varargin(2); + end + case 3 + d = varargin(2); + else + error(msprintf(_("%s: Wrong number of input argument(s): %d to %d expected.\n"),"cumprod", 1, 3)); + end + + // Check second argument : d + select type(d) + case 1 + if size(d,'*') <> 1 then + error(msprintf(_("%s: Wrong size for input argument #%d: A scalar expected.\n"),"cumprod", 2)) + end + if int(d) <> d | d < 0 then + error(msprintf(_("%s: Wrong value for input argument #%d: Integer >= %d expected.\n"),"cumprod", 2, 1)) + end + case 10 + if size(d,'*') <> 1 then + error(msprintf(_("%s: Wrong size for input argument #%d: A string expected.\n"),"cumprod",2)) + end + if and(d<>["r","c","*","m"]) then + error(msprintf(_("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"),.. + "cumprod",2,"""*"",""r"",""c"",""m""")) + end + + pos = [1,2,0,find(dims>1,1)]; + d=pos(find(d==["r","c","*","m"])) + else + error(msprintf(_("%s: Wrong type for input argument #%d: A string or scalar expected.\n"),"cumprod",2)) + end + + if d==0 then //'*' + a=rlist(cumprod(a.num),cumprod(a.den),a.dt) + if simp_mode() then + a=simp(a) + end + elseif or(d==[1 2]) then + a=rlist(cumprod(a.num,d),cumprod(a.den,d),a.dt) + if simp_mode() then + a=simp(a) + end + else + a=a + end + +endfunction diff --git a/modules/overloading/macros/%r_cumsum.bin b/modules/overloading/macros/%r_cumsum.bin Binary files differnew file mode 100755 index 000000000..c8696a674 --- /dev/null +++ b/modules/overloading/macros/%r_cumsum.bin diff --git a/modules/overloading/macros/%r_cumsum.sci b/modules/overloading/macros/%r_cumsum.sci new file mode 100755 index 000000000..b254571d6 --- /dev/null +++ b/modules/overloading/macros/%r_cumsum.sci @@ -0,0 +1,80 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2013 - 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 a = %r_cumsum(varargin) + // cumulative sum for rational matrices + // If we call cumsum with 3 arguments, the third is optional for rational matrices. + a = varargin(1) + dims = size(a); + + nargs = size(varargin); + select nargs + case 1 + d = "*"; + case 2 + if or(varargin(2) == ["native", "double"]) then + d = "*"; + else + d = varargin(2); + end + case 3 + d = varargin(2); + else + error(msprintf(_("%s: Wrong number of input argument(s): %d to %d expected.\n"),"cumsum", 1, 3)); + end + + // Check second argument : d + select type(d) + case 1 + if size(d,'*') <> 1 then + error(msprintf(_("%s: Wrong size for input argument #%d: A scalar expected.\n"),"cumsum", 2)) + end + if int(d) <> d | d < 0 then + error(msprintf(_("%s: Wrong value for input argument #%d: Integer >= %d expected.\n"),"cumsum", 2, 1)) + end + case 10 + if size(d,'*') <> 1 then + error(msprintf(_("%s: Wrong size for input argument #%d: A string expected.\n"),"cumsum",2)) + end + if and(d<>["r","c","*","m"]) then + error(msprintf(_("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"),.. + "cumsum",2,"""*"",""r"",""c"",""m""")) + end + + pos = [1,2,0,find(dims>1,1)]; + d=pos(find(d==["r","c","*","m"])) + + else + error(msprintf(_("%s: Wrong type for input argument #%d: A string or scalar expected.\n"),"cumsum",2)) + end + + select d + case 0 then // case "*" + a = tril(ones(size(a,"*"), size(a, "*"))) * matrix(a, -1, 1); + if simp_mode() then + a = simp(a); + end + a = matrix(a, dims(1), dims(2)); + case 1 then // case 1 or 'r' + a = [tril(ones(dims(1), dims(1))) zeros(dims(2), dims(2)); zeros(dims(1), dims(1)) tril(ones(dims(2), dims(2)))] * matrix(a, -1, 1); + if simp_mode() then + a = simp(a); + end + a = matrix(a, dims(1), dims(2)); + case 2 then // case 2 or 'c" + a = [eye(dims(1), dims(1)) zeros(dims(2), dims(2)); eye(dims(1), dims(1)) eye(dims(2), dims(2))] * matrix(a, -1, 1); + if simp_mode() then + a = simp(a); + end + a = matrix(a, dims(1), dims(2)); + else + a=a + end + +endfunction diff --git a/modules/overloading/macros/%r_d_p.bin b/modules/overloading/macros/%r_d_p.bin Binary files differnew file mode 100755 index 000000000..398f773ba --- /dev/null +++ b/modules/overloading/macros/%r_d_p.bin diff --git a/modules/overloading/macros/%r_d_p.sci b/modules/overloading/macros/%r_d_p.sci new file mode 100755 index 000000000..d509876dd --- /dev/null +++ b/modules/overloading/macros/%r_d_p.sci @@ -0,0 +1,15 @@ +// 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 + +function r=%r_d_p(r,m) + // r=r./p + //! + + r=rlist(r("num").*ones(m),r("den").*m,r("dt")) +endfunction diff --git a/modules/overloading/macros/%r_d_r.bin b/modules/overloading/macros/%r_d_r.bin Binary files differnew file mode 100755 index 000000000..e977bb8cc --- /dev/null +++ b/modules/overloading/macros/%r_d_r.bin diff --git a/modules/overloading/macros/%r_d_r.sci b/modules/overloading/macros/%r_d_r.sci new file mode 100755 index 000000000..b8eba7b11 --- /dev/null +++ b/modules/overloading/macros/%r_d_r.sci @@ -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 + +function f=%r_d_r(s1,s2) + // f=s1./s2 + //! + if ndims(s1)<=2& ndims(s2)<=2 then + [s1,s2]=sysconv(s1,s2) + [num,den]=simp(s1.num.*s2.den,s1.den.*s2.num) + f=rlist(num,den,s1.dt) + else + if size(s1,"*")==1 then + sz=size(s2) + else + sz=size(s1) + end + [num,den]=simp(s1.num(:).*s2.den(:),s1.den(:).*s2.num(:)) + f=rlist(matrix(num,sz),matrix(den,sz),s1.dt) + end +endfunction diff --git a/modules/overloading/macros/%r_d_s.bin b/modules/overloading/macros/%r_d_s.bin Binary files differnew file mode 100755 index 000000000..8fced539c --- /dev/null +++ b/modules/overloading/macros/%r_d_s.bin diff --git a/modules/overloading/macros/%r_d_s.sci b/modules/overloading/macros/%r_d_s.sci new file mode 100755 index 000000000..2feec7ff6 --- /dev/null +++ b/modules/overloading/macros/%r_d_s.sci @@ -0,0 +1,16 @@ +// 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 + +function r=%r_d_s(r,m) + // r=r./m + //! + + if size(m,"*")==0 then r=[],return,end + r=rlist(r.num./m,r.den.*ones(m),r.dt) +endfunction diff --git a/modules/overloading/macros/%r_det.bin b/modules/overloading/macros/%r_det.bin Binary files differnew file mode 100755 index 000000000..91123b1aa --- /dev/null +++ b/modules/overloading/macros/%r_det.bin diff --git a/modules/overloading/macros/%r_det.sci b/modules/overloading/macros/%r_det.sci new file mode 100755 index 000000000..01ba91f3d --- /dev/null +++ b/modules/overloading/macros/%r_det.sci @@ -0,0 +1,14 @@ +// 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 + +function x=%r_det(a) + + [n,d]=lcmdiag(a); + x=determ(n)/determ(d); +endfunction diff --git a/modules/overloading/macros/%r_diag.bin b/modules/overloading/macros/%r_diag.bin Binary files differnew file mode 100755 index 000000000..047faf7c8 --- /dev/null +++ b/modules/overloading/macros/%r_diag.bin diff --git a/modules/overloading/macros/%r_diag.sci b/modules/overloading/macros/%r_diag.sci new file mode 100755 index 000000000..134c9cb3f --- /dev/null +++ b/modules/overloading/macros/%r_diag.sci @@ -0,0 +1,28 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 1995-2010 - INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function d=%r_diag(a,k) + // %r_diag - implement diag function for rational matrix ,.. + if argn(2)<2 then + k=0, + else + if type(k)<>1 then error(53,2);end + if size(k,"*")<>1 then error(89,2);end + if ~isreal(k) then error(52,2);end + end + [m,n]=size(a.num) + if m<>1&n<>1 then + d=rlist(diag(a.num,k),diag(a.den,k),a.dt) + else + mn=max(m,n) + den=ones(mn,mn) + den=den-diag(diag(den,k))+diag(a.den,k) + d=rlist(diag(a.num,k),den,a.dt) + end +endfunction diff --git a/modules/overloading/macros/%r_e.bin b/modules/overloading/macros/%r_e.bin Binary files differnew file mode 100755 index 000000000..33b7f5e8f --- /dev/null +++ b/modules/overloading/macros/%r_e.bin diff --git a/modules/overloading/macros/%r_e.sci b/modules/overloading/macros/%r_e.sci new file mode 100755 index 000000000..838517f52 --- /dev/null +++ b/modules/overloading/macros/%r_e.sci @@ -0,0 +1,19 @@ +// 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 + +function r=%r_e(varargin) + // %r_e(i,j,f) extraction f(i,j) in a rational matrix + //author Serge Steer, INRIA + //! + f=varargin($) + num=f.num + den=f.den + r=rlist(num(varargin(1:$-1)),den(varargin(1:$-1)),f.dt) + if r.num==[] then r=[],end +endfunction diff --git a/modules/overloading/macros/%r_eye.bin b/modules/overloading/macros/%r_eye.bin Binary files differnew file mode 100755 index 000000000..2502ad145 --- /dev/null +++ b/modules/overloading/macros/%r_eye.bin diff --git a/modules/overloading/macros/%r_eye.sci b/modules/overloading/macros/%r_eye.sci new file mode 100755 index 000000000..54b4602f5 --- /dev/null +++ b/modules/overloading/macros/%r_eye.sci @@ -0,0 +1,13 @@ +// 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 + +function x=%r_eye(a) + + x=eye(a("num")); +endfunction diff --git a/modules/overloading/macros/%r_f_lss.bin b/modules/overloading/macros/%r_f_lss.bin Binary files differnew file mode 100755 index 000000000..36e3feee7 --- /dev/null +++ b/modules/overloading/macros/%r_f_lss.bin diff --git a/modules/overloading/macros/%r_f_lss.sci b/modules/overloading/macros/%r_f_lss.sci new file mode 100755 index 000000000..0f8c66bee --- /dev/null +++ b/modules/overloading/macros/%r_f_lss.sci @@ -0,0 +1,14 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function [s]=%r_f_lss(s1,s2) + //[s]=%r_f_lss(s1,s2) <=> s= [s1;s2] [rational;state-space] + //! + [s1,s2]=sysconv(s1,s2);s=[s1;s2] +endfunction diff --git a/modules/overloading/macros/%r_f_p.bin b/modules/overloading/macros/%r_f_p.bin Binary files differnew file mode 100755 index 000000000..6efde9a04 --- /dev/null +++ b/modules/overloading/macros/%r_f_p.bin diff --git a/modules/overloading/macros/%r_f_p.sci b/modules/overloading/macros/%r_f_p.sci new file mode 100755 index 000000000..821d5d390 --- /dev/null +++ b/modules/overloading/macros/%r_f_p.sci @@ -0,0 +1,15 @@ +// 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 + +function f=%r_f_p(f,m) + // [f;m] + //! + + f=rlist([f("num");m],[f("den");ones(m)],f("dt")) +endfunction diff --git a/modules/overloading/macros/%r_f_r.bin b/modules/overloading/macros/%r_f_r.bin Binary files differnew file mode 100755 index 000000000..f2aa6a69e --- /dev/null +++ b/modules/overloading/macros/%r_f_r.bin diff --git a/modules/overloading/macros/%r_f_r.sci b/modules/overloading/macros/%r_f_r.sci new file mode 100755 index 000000000..a47d08370 --- /dev/null +++ b/modules/overloading/macros/%r_f_r.sci @@ -0,0 +1,16 @@ +// 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 + +function [f]=%r_f_r(s1,s2) + //f=[s1;s2] + //! + + [s1,s2]=sysconv(s1,s2) + f=rlist([s1("num");s2("num")],[s1("den");s2("den")],s1("dt")) +endfunction diff --git a/modules/overloading/macros/%r_f_s.bin b/modules/overloading/macros/%r_f_s.bin Binary files differnew file mode 100755 index 000000000..b1b9e693e --- /dev/null +++ b/modules/overloading/macros/%r_f_s.bin diff --git a/modules/overloading/macros/%r_f_s.sci b/modules/overloading/macros/%r_f_s.sci new file mode 100755 index 000000000..096834065 --- /dev/null +++ b/modules/overloading/macros/%r_f_s.sci @@ -0,0 +1,15 @@ +// 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 + +function f=%r_f_s(f,m) + // [f;m] [rational;constant] + //! + + f=rlist([f("num");m],[f("den");ones(m)],f("dt")) +endfunction diff --git a/modules/overloading/macros/%r_i_ce.bin b/modules/overloading/macros/%r_i_ce.bin Binary files differnew file mode 100755 index 000000000..d0f19d33d --- /dev/null +++ b/modules/overloading/macros/%r_i_ce.bin diff --git a/modules/overloading/macros/%r_i_ce.sci b/modules/overloading/macros/%r_i_ce.sci new file mode 100755 index 000000000..1da34a74d --- /dev/null +++ b/modules/overloading/macros/%r_i_ce.sci @@ -0,0 +1,13 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - Vincent Couvert +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should 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=%r_i_ce(varargin) + // Insertion of a rationnal matrix in a cell + M=generic_i_ce(varargin(:)) +endfunction diff --git a/modules/overloading/macros/%r_i_hm.bin b/modules/overloading/macros/%r_i_hm.bin Binary files differnew file mode 100755 index 000000000..ddb25177a --- /dev/null +++ b/modules/overloading/macros/%r_i_hm.bin diff --git a/modules/overloading/macros/%r_i_hm.sci b/modules/overloading/macros/%r_i_hm.sci new file mode 100755 index 000000000..f9223d18e --- /dev/null +++ b/modules/overloading/macros/%r_i_hm.sci @@ -0,0 +1,21 @@ +// 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 +function N=%r_i_hm(varargin) + //author Serge Steer INRIA + M=varargin($); + N=varargin($-1);//inserted matrix + // M(i,...)=N, M hypermatrix; N rational matrix + Num=M; + Den=ones(M); + Num(varargin(1:$-2))=N.num + Den(varargin(1:$-2))=N.den + + N.num=Num; + N.den=Den; +endfunction diff --git a/modules/overloading/macros/%r_i_lss.bin b/modules/overloading/macros/%r_i_lss.bin Binary files differnew file mode 100755 index 000000000..89f643892 --- /dev/null +++ b/modules/overloading/macros/%r_i_lss.bin diff --git a/modules/overloading/macros/%r_i_lss.sci b/modules/overloading/macros/%r_i_lss.sci new file mode 100755 index 000000000..4c91a493b --- /dev/null +++ b/modules/overloading/macros/%r_i_lss.sci @@ -0,0 +1,18 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function s2=%r_i_lss(i,j,s1,s2) + //%r_i_lss(i,j,s1,s2) <=> s2(i,j)=s1 + //! + if type(i)==10|type(j)==10 then + error(21) + end + [s1 s2]=sysconv(s1,s2) + s2(i,j)=s1 +endfunction diff --git a/modules/overloading/macros/%r_i_p.bin b/modules/overloading/macros/%r_i_p.bin Binary files differnew file mode 100755 index 000000000..3cddc572e --- /dev/null +++ b/modules/overloading/macros/%r_i_p.bin diff --git a/modules/overloading/macros/%r_i_p.sci b/modules/overloading/macros/%r_i_p.sci new file mode 100755 index 000000000..772e155f1 --- /dev/null +++ b/modules/overloading/macros/%r_i_p.sci @@ -0,0 +1,22 @@ +// 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 + +function f2=%r_i_p(varargin) + // /author Serge Steer INRIA + // + f2=varargin($-1) + n= varargin($) + // f2=%r_i_p(i,j,f2,p) insertion + d=ones(n); + n(varargin(1:$-2))=f2.num; + d=ones(n); + d(varargin(1:$-2))=f2.den; + + f2=rlist(n,d,f2("dt")) +endfunction diff --git a/modules/overloading/macros/%r_i_r.bin b/modules/overloading/macros/%r_i_r.bin Binary files differnew file mode 100755 index 000000000..0c40f644f --- /dev/null +++ b/modules/overloading/macros/%r_i_r.bin diff --git a/modules/overloading/macros/%r_i_r.sci b/modules/overloading/macros/%r_i_r.sci new file mode 100755 index 000000000..63dcb2cee --- /dev/null +++ b/modules/overloading/macros/%r_i_r.sci @@ -0,0 +1,28 @@ +// 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 + +function s1=%r_i_r(varargin) + //author Serge Steer INRIA + s1=varargin($-1) + s2=varargin($) + // %r_i_r(i,j,s1,s2) insertion s2(i,j)=s1 + + [s1,s2]=sysconv(s1,s2) + n=s2.num; + n(varargin(1:$-2))=s1.num, + if ndims(s2.den)<=2 then + d=ones(n); + [n1,n2]=size(s2.den) + d(1:n1,1:n2)=s2.den; + d(varargin(1:$-2))=s1.den + else + d=generic_i_hm(1,varargin(1:$-2),s1.den,s2.den) + end + s1=rlist(n,d,s1.dt) +endfunction diff --git a/modules/overloading/macros/%r_i_s.bin b/modules/overloading/macros/%r_i_s.bin Binary files differnew file mode 100755 index 000000000..9c442af7e --- /dev/null +++ b/modules/overloading/macros/%r_i_s.bin diff --git a/modules/overloading/macros/%r_i_s.sci b/modules/overloading/macros/%r_i_s.sci new file mode 100755 index 000000000..5e87fc7ec --- /dev/null +++ b/modules/overloading/macros/%r_i_s.sci @@ -0,0 +1,36 @@ +// 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 + +function f2=%r_i_s(varargin) + //author Serge Steer INRIA + f2=varargin($-1) + n= varargin($) + // %r_i_s(i,j,f2,n) + + if size(varargin)==3 then + i= varargin(1) + if (type(i)==10|type(i)==15) then //cell or struct case + f2=createstruct(i,f2) + if type(i(1))<>10 & i(2)=="entries" then + // change struct to cell + f=getfield(1,f2);f(1)="ce" + setfield(1,f,f2) + end + return + end + d=ones(n); + n(i)=f2.num,d(i)=f2.den + else + d=ones(n); + n(varargin(1:$-2))=f2.num; + d=ones(n); + d(varargin(1:$-2))=f2.den; + end + f2=rlist(n,d,f2.dt) +endfunction diff --git a/modules/overloading/macros/%r_i_st.bin b/modules/overloading/macros/%r_i_st.bin Binary files differnew file mode 100755 index 000000000..bbba3ab91 --- /dev/null +++ b/modules/overloading/macros/%r_i_st.bin diff --git a/modules/overloading/macros/%r_i_st.sci b/modules/overloading/macros/%r_i_st.sci new file mode 100755 index 000000000..e4911cdca --- /dev/null +++ b/modules/overloading/macros/%r_i_st.sci @@ -0,0 +1,12 @@ +// 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 + +function M=%r_i_st(varargin) + M=generic_i_st(varargin(:)) +endfunction diff --git a/modules/overloading/macros/%r_inv.bin b/modules/overloading/macros/%r_inv.bin Binary files differnew file mode 100755 index 000000000..16e9b470a --- /dev/null +++ b/modules/overloading/macros/%r_inv.bin diff --git a/modules/overloading/macros/%r_inv.sci b/modules/overloading/macros/%r_inv.sci new file mode 100755 index 000000000..7c9c36aa4 --- /dev/null +++ b/modules/overloading/macros/%r_inv.sci @@ -0,0 +1,13 @@ +// 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 + +function x=%r_inv(a) + + x=invr(a) +endfunction diff --git a/modules/overloading/macros/%r_j_s.bin b/modules/overloading/macros/%r_j_s.bin Binary files differnew file mode 100755 index 000000000..0faba3abd --- /dev/null +++ b/modules/overloading/macros/%r_j_s.bin diff --git a/modules/overloading/macros/%r_j_s.sci b/modules/overloading/macros/%r_j_s.sci new file mode 100755 index 000000000..e3bacd74d --- /dev/null +++ b/modules/overloading/macros/%r_j_s.sci @@ -0,0 +1,58 @@ +// 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 + +function f=%r_j_s(f,s) + // p.^s for p rational matrix + //! + if s==[] then f=[],return,end + if or(imag(s)<>0)|or(int(s)<>s) then error(30),end + [m,n]=size(f) + [ms,ns]=size(s) + if ms==1&ns==1 then + if s<0 then + num=f("num") + if or(abs(coeff(num(:)))*ones(max(degree(num))+1,1)==0) then + error(27) + end + s=-s + f=rlist(f("den").^s,f("num").^s,f("dt")) + else + f=rlist(f("num").^s,f("den").^s,f("dt")) + end + elseif m==1&n==1 then // Element wise exponentiation f.^s with f "scalar" + kp=find(s>=0) + kn=find(s<0) + num=ones(s) + den=ones(s) + num(kp)=f("num").^s(kp) + den(kp)=f("den").^s(kp) + p=1/f + num(kn)=p("num").^(-s(kn)) + den(kn)=p("den").^(-s(kn)) + f=rlist(num,den,[]) + elseif ms==m&ns==n then // Element wise exponentiation + s=s(:); + kp=find(s>=0) + kn=find(s<0) + num=f("num")(:); + den=f("den")(:); + num(kp)=num(kp).^s(kp) + den(kp)=den(kp).^s(kp) + + if or(abs(coeff(num(kn)))*ones(max(degree(num(kn)))+1,1)==0) then + error(27) + end + num(kn)=den(kn).^(-s(kn)) + den(kn)=num(kn).^(-s(kn)) + f=rlist(matrix(num,n,m),matrix(den,n,m),[]) + else + error(30) + end + +endfunction diff --git a/modules/overloading/macros/%r_k_p.bin b/modules/overloading/macros/%r_k_p.bin Binary files differnew file mode 100755 index 000000000..652f07208 --- /dev/null +++ b/modules/overloading/macros/%r_k_p.bin diff --git a/modules/overloading/macros/%r_k_p.sci b/modules/overloading/macros/%r_k_p.sci new file mode 100755 index 000000000..15ba88eb7 --- /dev/null +++ b/modules/overloading/macros/%r_k_p.sci @@ -0,0 +1,25 @@ +// 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 + +function r=%r_k_p(a,b) + // a.*.b + + [ma,na]=size(a) + [mb,nb]=size(b) + r=zeros(ma*mb,na*nb) + k=0 + for j=1:na + l=0 + for i=1:ma + r(l+(1:mb),k+(1:nb))=a(i,j)*b + l=l+mb + end + k=k+nb + end +endfunction diff --git a/modules/overloading/macros/%r_k_r.bin b/modules/overloading/macros/%r_k_r.bin Binary files differnew file mode 100755 index 000000000..8729c8529 --- /dev/null +++ b/modules/overloading/macros/%r_k_r.bin diff --git a/modules/overloading/macros/%r_k_r.sci b/modules/overloading/macros/%r_k_r.sci new file mode 100755 index 000000000..143829ae9 --- /dev/null +++ b/modules/overloading/macros/%r_k_r.sci @@ -0,0 +1,24 @@ +// 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 + +function r=%r_k_r(a,b) + // a.*.b + [ma,na]=size(a) + [mb,nb]=size(b) + r=zeros(ma*mb,na*nb) + k=0 + for j=1:na + l=0 + for i=1:ma + r(l+(1:mb),k+(1:nb))=a(i,j)*b + l=l+mb + end + k=k+nb + end +endfunction diff --git a/modules/overloading/macros/%r_k_s.bin b/modules/overloading/macros/%r_k_s.bin Binary files differnew file mode 100755 index 000000000..c432eac69 --- /dev/null +++ b/modules/overloading/macros/%r_k_s.bin diff --git a/modules/overloading/macros/%r_k_s.sci b/modules/overloading/macros/%r_k_s.sci new file mode 100755 index 000000000..57e378fa9 --- /dev/null +++ b/modules/overloading/macros/%r_k_s.sci @@ -0,0 +1,24 @@ +// 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 +function r=%r_k_s(a,b) + // a.*.b + + [ma,na]=size(a) + [mb,nb]=size(b) + r=zeros(ma*mb,na*nb) + k=0 + for j=1:na + l=0 + for i=1:ma + r(l+(1:mb),k+(1:nb))=a(i,j)*b + l=l+mb + end + k=k+nb + end +endfunction diff --git a/modules/overloading/macros/%r_l_lss.bin b/modules/overloading/macros/%r_l_lss.bin Binary files differnew file mode 100755 index 000000000..2364069a1 --- /dev/null +++ b/modules/overloading/macros/%r_l_lss.bin diff --git a/modules/overloading/macros/%r_l_lss.sci b/modules/overloading/macros/%r_l_lss.sci new file mode 100755 index 000000000..195b3d499 --- /dev/null +++ b/modules/overloading/macros/%r_l_lss.sci @@ -0,0 +1,14 @@ +// 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 + +function s=%r_l_lss(s1,s2) + //! + [s1,s2]=sysconv(s1,s2) + s=s1\s2 +endfunction diff --git a/modules/overloading/macros/%r_l_p.bin b/modules/overloading/macros/%r_l_p.bin Binary files differnew file mode 100755 index 000000000..e9611dc06 --- /dev/null +++ b/modules/overloading/macros/%r_l_p.bin diff --git a/modules/overloading/macros/%r_l_p.sci b/modules/overloading/macros/%r_l_p.sci new file mode 100755 index 000000000..cf9129db9 --- /dev/null +++ b/modules/overloading/macros/%r_l_p.sci @@ -0,0 +1,19 @@ +// 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 + +function f=%r_l_p(f,m) + // f\m + //! + + if size(f("num"),"*")<>1 then + f=invr(f)*m + else + f=rlist(m*f("den"),ones(m)*f("num"),f("dt")) + end +endfunction diff --git a/modules/overloading/macros/%r_l_r.bin b/modules/overloading/macros/%r_l_r.bin Binary files differnew file mode 100755 index 000000000..379384e10 --- /dev/null +++ b/modules/overloading/macros/%r_l_r.bin diff --git a/modules/overloading/macros/%r_l_r.sci b/modules/overloading/macros/%r_l_r.sci new file mode 100755 index 000000000..1f74fe641 --- /dev/null +++ b/modules/overloading/macros/%r_l_r.sci @@ -0,0 +1,29 @@ +// 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 + +function s1=%r_l_r(s1,s2) + // %r_l_r(s1,s2) s1\s2 + //! + [s1,s2]=sysconv(s1,s2) + [n,m]=size(s1("den")) + if n<>m then error(43),end + if m*n==1 then + s1=%r_m_r(rlist(s1("den"),s1("num"),s1("dt")),s2) + else + // reduction de s1 sous la forme D1**(-1)* N1 (D1 diagonale) + p=s1("num") + s1=s1("den") + for l=1:n + [pp,fact]=lcm(s1(l,:)) + p(l,:)=p(l,:).*fact + s2(l,:)=s2(l,:)*pp + end + s1=invr(p)*s2, + end +endfunction diff --git a/modules/overloading/macros/%r_l_s.bin b/modules/overloading/macros/%r_l_s.bin Binary files differnew file mode 100755 index 000000000..ccdd42038 --- /dev/null +++ b/modules/overloading/macros/%r_l_s.bin diff --git a/modules/overloading/macros/%r_l_s.sci b/modules/overloading/macros/%r_l_s.sci new file mode 100755 index 000000000..1993d57d2 --- /dev/null +++ b/modules/overloading/macros/%r_l_s.sci @@ -0,0 +1,19 @@ +// 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 + +function f=%r_l_s(f,m) + // f\m + //! + + if size(f("num"),"*")<>1 then + f=invr(f)*m + else + f=rlist(m*f("den"),ones(m)*f("num"),f("dt")) + end +endfunction diff --git a/modules/overloading/macros/%r_m_hm.bin b/modules/overloading/macros/%r_m_hm.bin Binary files differnew file mode 100755 index 000000000..da6e1832e --- /dev/null +++ b/modules/overloading/macros/%r_m_hm.bin diff --git a/modules/overloading/macros/%r_m_hm.sci b/modules/overloading/macros/%r_m_hm.sci new file mode 100755 index 000000000..7c30793c6 --- /dev/null +++ b/modules/overloading/macros/%r_m_hm.sci @@ -0,0 +1,34 @@ +// 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 + +function f1=%r_m_hm(f1,n2) + // %r_m_s(f1,n2) + //f1 = f1*n2 + //author Serge Steer INRIA + //! + + [n1,d1]=f1(["num","den"]), + sz1=size(n1); + if prod(sz1)==0 then return,end + sz2=size(n2); + n2=n2(:) + + if or(sz1==-1) then + n1=n1+0;d1=d1+0; + end + if prod(sz1)==1 then + num=n1*n2, + den=d1(ones(n2)) + else, + error(10) + end, + + f1=rlist(matrix(num,sz2),matrix(den,sz2),f1.dt) +endfunction + diff --git a/modules/overloading/macros/%r_m_lss.bin b/modules/overloading/macros/%r_m_lss.bin Binary files differnew file mode 100755 index 000000000..f0e92134c --- /dev/null +++ b/modules/overloading/macros/%r_m_lss.bin diff --git a/modules/overloading/macros/%r_m_lss.sci b/modules/overloading/macros/%r_m_lss.sci new file mode 100755 index 000000000..7a4688bb7 --- /dev/null +++ b/modules/overloading/macros/%r_m_lss.sci @@ -0,0 +1,15 @@ +// 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 + +function s=%r_m_lss(s1,s2) + //s=s1*s2 + //! + + [s1,s2]=sysconv(s1,s2);s=s1*s2 +endfunction diff --git a/modules/overloading/macros/%r_m_p.bin b/modules/overloading/macros/%r_m_p.bin Binary files differnew file mode 100755 index 000000000..1e58cdcfa --- /dev/null +++ b/modules/overloading/macros/%r_m_p.bin diff --git a/modules/overloading/macros/%r_m_p.sci b/modules/overloading/macros/%r_m_p.sci new file mode 100755 index 000000000..27dbf674d --- /dev/null +++ b/modules/overloading/macros/%r_m_p.sci @@ -0,0 +1,54 @@ +// 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 + +function [f1]=%r_m_p(f1,n2) + // r=%r_m_p(f1,n2) <=> r=f1*n2 + // f1=rational n2=polynomial + //! + + [n1,d1]=f1(["num","den"]), + [l1,m1]=size(n1);[l2,m2]=size(n2), + // + indef=%f + if l1==-1 then + n1=n1+0;d1=d1+0;l1=1;m1=1; + if l2*m2==1 then indef=%t,else error(14),end + end + if l2==-1 then + n2=n2+0;l2=1;m2=1; + if l1*m1==1 then indef=%t,else error(14),end + end + if min([l1*m1,l2*m2])==1 then, + num=n1*n2, + den=d1*ones(l2,m2), + else, + if m1<>l2 then error(10),end, + for i=1:l1, + n=n1(i,:); + [y,fact]=lcm(d1(i,:)), + den(i,1:m2)=ones(1,m2)*y, + for j=1:m2, + num(i,j)=n*(n2(:,j).*matrix(fact,l2,1)), + end, + end, + end, + if ndims(num)<=2 then + [num,den]=simp(num,den), + else + sz=size(num) + [num,den]=simp(num.entries,den.entries), + num=matrix(num,sz) + den=matrix(den,sz) + end + if indef then + num=num*eye() + den=den*eye() + end + f1=rlist(num,den,f1("dt")) +endfunction diff --git a/modules/overloading/macros/%r_m_r.bin b/modules/overloading/macros/%r_m_r.bin Binary files differnew file mode 100755 index 000000000..50f34f867 --- /dev/null +++ b/modules/overloading/macros/%r_m_r.bin diff --git a/modules/overloading/macros/%r_m_r.sci b/modules/overloading/macros/%r_m_r.sci new file mode 100755 index 000000000..5803840f0 --- /dev/null +++ b/modules/overloading/macros/%r_m_r.sci @@ -0,0 +1,61 @@ +// 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 + +function s1=%r_m_r(s1,s2) + //s1=s1*s2 + //! + + [s1,s2]=sysconv(s1,s2), + [n1,d1]=s1(["num","den"]); + [n2,d2]=s2(["num","den"]); + sz1=size(n1) + sz2=size(n2) + + indef=%f + if or(sz1==-1) then + n1=n1+0;d1=d1+0;sz1=[1 1] + if prod(sz2)==1 then indef=%t,else error(14),end + end + if or(sz2==-1) then + n2=n2+0;d2=d2+0;sz2=[1 1] + if prod(sz1)==1 then indef=%t,else error(14),end + end + if prod(sz1)==1 then + [num,den]=simp(n1.*n2(:),d1.*d2(:)), + num=matrix(num,sz2) + den=matrix(den,sz2) + elseif prod(sz2)==1 then + [num,den]=simp(n1(:).*n2,d1(:).*d2), + num=matrix(num,sz1) + den=matrix(den,sz1) + else + if size(sz1,"*")>2|size(sz2,"*")>2 then error(10),end + if sz1(2)<>sz2(1) then error(10),end, + l1=sz1(1);m1=sz1(2);m2=sz2(2); + for i=1:l1, pp(i)=lcm(d1(i,:)),end, + for j=1:m2, + y=lcm(d2(:,j)), + for i=1:l1, + yij=y*pp(i), + x=0; + for k=1:m1, + x=x+n1(i,k)*n2(k,j)*pppdiv(y,d2(k,j))*pppdiv(pp(i),d1(i,k)), + end + num(i,j)=x,den(i,j)=yij, + end + end + [num,den]=simp(num,den), + end + + if indef then + num=num*eye() + den=den*eye() + end + s1=rlist(num,den,s1.dt) +endfunction diff --git a/modules/overloading/macros/%r_m_s.bin b/modules/overloading/macros/%r_m_s.bin Binary files differnew file mode 100755 index 000000000..210a407c5 --- /dev/null +++ b/modules/overloading/macros/%r_m_s.bin diff --git a/modules/overloading/macros/%r_m_s.sci b/modules/overloading/macros/%r_m_s.sci new file mode 100755 index 000000000..20ea29fff --- /dev/null +++ b/modules/overloading/macros/%r_m_s.sci @@ -0,0 +1,57 @@ +// 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 + +function f1=%r_m_s(f1,n2) + // %r_m_s(f1,n2) + //f1 = f1*n2 + //author Serge Steer INRIA + //! + + [n1,d1]=f1(["num","den"]), + sz1=size(n1);sz2=size(n2); + if prod(sz1)==0|prod(sz2)==0 then return,end + + + indef=%f + if or(sz1==-1) then + n1=n1+0;d1=d1+0;sz1=[1 1]; + if prod(sz2)==1 then indef=%t,else error(14),end + end + if or(sz2==-1) then + n2=n2+0;sz2=[1 1]; + if prod(sz1)==1 then indef=%t,else error(14),end + end + // + if prod(sz1)==1 then + num=n1*n2, + den=d1(ones(n2)) + elseif prod(sz2)==1 then + num=n1*n2, + den=d1 + else, + if size(sz1,"*")>2|size(sz2,"*")>2 then error(10),end + if sz1(2)<>sz2(1) then error(10),end, + l1=sz1(1);l2=sz2(1);m2=sz2(2) + for i=1:l1, + n=n1(i,:); + [y,fact]=lcm(d1(i,:)), + den(i,1:m2)=ones(1,m2)*y, + for j=1:m2, + num(i,j)=n*(n2(:,j).*matrix(fact,l2,1)), + end, + end, + [num,den]=simp(num,den), + end, + + if indef then + num=num*eye() + den=den*eye() + end + f1=rlist(num,den,f1.dt) +endfunction diff --git a/modules/overloading/macros/%r_matrix.bin b/modules/overloading/macros/%r_matrix.bin Binary files differnew file mode 100755 index 000000000..406e1e1f2 --- /dev/null +++ b/modules/overloading/macros/%r_matrix.bin diff --git a/modules/overloading/macros/%r_matrix.sci b/modules/overloading/macros/%r_matrix.sci new file mode 100755 index 000000000..c0136425c --- /dev/null +++ b/modules/overloading/macros/%r_matrix.sci @@ -0,0 +1,12 @@ +// 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 +function r=%r_matrix(r,varargin) + r.num=matrix(r.num,varargin(:)) + r.den=matrix(r.den,varargin(:)) +endfunction diff --git a/modules/overloading/macros/%r_n_lss.bin b/modules/overloading/macros/%r_n_lss.bin Binary files differnew file mode 100755 index 000000000..1864e356d --- /dev/null +++ b/modules/overloading/macros/%r_n_lss.bin diff --git a/modules/overloading/macros/%r_n_lss.sci b/modules/overloading/macros/%r_n_lss.sci new file mode 100755 index 000000000..3873681ee --- /dev/null +++ b/modules/overloading/macros/%r_n_lss.sci @@ -0,0 +1,15 @@ +// 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 + +function r=%r_n_lss(s1,s2) + //%r_n_lss(s1,s2) <=> s1<>s2 + //! + + r=%t +endfunction diff --git a/modules/overloading/macros/%r_n_p.bin b/modules/overloading/macros/%r_n_p.bin Binary files differnew file mode 100755 index 000000000..8e56a90b4 --- /dev/null +++ b/modules/overloading/macros/%r_n_p.bin diff --git a/modules/overloading/macros/%r_n_p.sci b/modules/overloading/macros/%r_n_p.sci new file mode 100755 index 000000000..b7bce75f2 --- /dev/null +++ b/modules/overloading/macros/%r_n_p.sci @@ -0,0 +1,16 @@ +// 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 + +function [r]=%r_n_p(l1,l2) + // l1<>l2 + + r=degree(l1("den"))==0 + if r then r=l1("num")./coeff(l1("den"))==l2,end + r=~r +endfunction diff --git a/modules/overloading/macros/%r_n_r.bin b/modules/overloading/macros/%r_n_r.bin Binary files differnew file mode 100755 index 000000000..ab37670c5 --- /dev/null +++ b/modules/overloading/macros/%r_n_r.bin diff --git a/modules/overloading/macros/%r_n_r.sci b/modules/overloading/macros/%r_n_r.sci new file mode 100755 index 000000000..8bfc8a32a --- /dev/null +++ b/modules/overloading/macros/%r_n_r.sci @@ -0,0 +1,18 @@ +// 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 + +function r=%r_n_r(l1,l2) + //%r_n_r(l1,l2) <=> l1<>l2 for rational matrices + //! + + r=l1("dt")<>l2("dt") + if ~r then + r=l1("num")<>l2("num")|(l1("den")<>l2("den")&l1("num")<>0) + end +endfunction diff --git a/modules/overloading/macros/%r_n_s.bin b/modules/overloading/macros/%r_n_s.bin Binary files differnew file mode 100755 index 000000000..baf028a17 --- /dev/null +++ b/modules/overloading/macros/%r_n_s.bin diff --git a/modules/overloading/macros/%r_n_s.sci b/modules/overloading/macros/%r_n_s.sci new file mode 100755 index 000000000..2e10437e3 --- /dev/null +++ b/modules/overloading/macros/%r_n_s.sci @@ -0,0 +1,16 @@ +// 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 + +function [r]=%r_n_s(l1,l2) + // l1<>l2 rational<>constant + + r=degree(l1("num"))==0°ree(l1("den"))==0 + if r then r=coeff(l1("num"))./coeff(l1("den"))==l2,end + r=~r +endfunction diff --git a/modules/overloading/macros/%r_norm.bin b/modules/overloading/macros/%r_norm.bin Binary files differnew file mode 100755 index 000000000..00aeecbe2 --- /dev/null +++ b/modules/overloading/macros/%r_norm.bin diff --git a/modules/overloading/macros/%r_norm.sci b/modules/overloading/macros/%r_norm.sci new file mode 100755 index 000000000..51219e4c3 --- /dev/null +++ b/modules/overloading/macros/%r_norm.sci @@ -0,0 +1,19 @@ +// 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 + +function y=%r_norm(A,flag) + if argn(2)==1 then flag=2,end + if flag==2 then + y=h2norm(A) + elseif flag==%inf|flag=="inf" then + y=h_norm(A) + else + error(msprintf(_("%s: Wrong value for input argument #%d: %d or %s expected.\n"),"%r_norm",2,2,"inf")); + end +endfunction diff --git a/modules/overloading/macros/%r_o_lss.bin b/modules/overloading/macros/%r_o_lss.bin Binary files differnew file mode 100755 index 000000000..78daa7224 --- /dev/null +++ b/modules/overloading/macros/%r_o_lss.bin diff --git a/modules/overloading/macros/%r_o_lss.sci b/modules/overloading/macros/%r_o_lss.sci new file mode 100755 index 000000000..300ed268a --- /dev/null +++ b/modules/overloading/macros/%r_o_lss.sci @@ -0,0 +1,15 @@ +// 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 + +function r=%r_o_lss(s1,s2) + //%r_o_lss(s1,s2) <=> s1==s2 , s1 rational, s2 state-space + //! + + r=%f +endfunction diff --git a/modules/overloading/macros/%r_o_p.bin b/modules/overloading/macros/%r_o_p.bin Binary files differnew file mode 100755 index 000000000..55c59746f --- /dev/null +++ b/modules/overloading/macros/%r_o_p.bin diff --git a/modules/overloading/macros/%r_o_p.sci b/modules/overloading/macros/%r_o_p.sci new file mode 100755 index 000000000..f8bff4d16 --- /dev/null +++ b/modules/overloading/macros/%r_o_p.sci @@ -0,0 +1,16 @@ +// 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 + +function r=%r_o_p(l1,l2) + // l1==l2 with l1 rational and l2 polynomial + //! + + r=degree(l1("den"))==0 + if r then r=l1("num")./coeff(l1("den"))==l2,end +endfunction diff --git a/modules/overloading/macros/%r_o_r.bin b/modules/overloading/macros/%r_o_r.bin Binary files differnew file mode 100755 index 000000000..667ea910f --- /dev/null +++ b/modules/overloading/macros/%r_o_r.bin diff --git a/modules/overloading/macros/%r_o_r.sci b/modules/overloading/macros/%r_o_r.sci new file mode 100755 index 000000000..17295667e --- /dev/null +++ b/modules/overloading/macros/%r_o_r.sci @@ -0,0 +1,21 @@ +// 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 + +function r=%r_o_r(l1,l2) + // l1==l2 with l1 and l2 rationals + //! + //r=l1('dt')==l2('dt')&l1('num')==l2('num')&(l1('den')==l2('den')|l1('num')==0) + r = and((l1.num == l2.num))&and((l1.den==l2.den))&(l1.dt==l2.dt); + +// if varn([l1("num"),l1("den")])~=varn([l2("num"),l2("den")]) then +// r=%f; +// else +// r=(l1("dt")==l2("dt"))&(numer(l1-l2)==0) +// end +endfunction diff --git a/modules/overloading/macros/%r_o_s.bin b/modules/overloading/macros/%r_o_s.bin Binary files differnew file mode 100755 index 000000000..1292d9676 --- /dev/null +++ b/modules/overloading/macros/%r_o_s.bin diff --git a/modules/overloading/macros/%r_o_s.sci b/modules/overloading/macros/%r_o_s.sci new file mode 100755 index 000000000..9c101a6f7 --- /dev/null +++ b/modules/overloading/macros/%r_o_s.sci @@ -0,0 +1,16 @@ +// 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 + +function r=%r_o_s(l1,l2) + // l1==l2 with l1 rational and l2 constant + //! + + r=degree(l1("num"))==0°ree(l1("den"))==0 + if r then r=coeff(l1("num"))./coeff(l1("den"))==l2,end +endfunction diff --git a/modules/overloading/macros/%r_ones.bin b/modules/overloading/macros/%r_ones.bin Binary files differnew file mode 100755 index 000000000..5249de17a --- /dev/null +++ b/modules/overloading/macros/%r_ones.bin diff --git a/modules/overloading/macros/%r_ones.sci b/modules/overloading/macros/%r_ones.sci new file mode 100755 index 000000000..91b01dd6a --- /dev/null +++ b/modules/overloading/macros/%r_ones.sci @@ -0,0 +1,13 @@ +// 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 + +function x=%r_ones(a) + + x=ones(a("num")) +endfunction diff --git a/modules/overloading/macros/%r_p.bin b/modules/overloading/macros/%r_p.bin Binary files differnew file mode 100755 index 000000000..d3a895de5 --- /dev/null +++ b/modules/overloading/macros/%r_p.bin diff --git a/modules/overloading/macros/%r_p.sci b/modules/overloading/macros/%r_p.sci new file mode 100755 index 000000000..ac11d142d --- /dev/null +++ b/modules/overloading/macros/%r_p.sci @@ -0,0 +1,202 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA +// Copyright (C) DIGITEO - 2012 - 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 + +function %r_p(h) + + if exists("with_texmacs")==1 & typeof(with_texmacs)=="function" then + texout(h); + else + //used to display rational fraction with complex coefficients + //The real case is hard coded + if size(size(h),"*")>2 then + //hypermatrix case + %hmr_p(h) + return + end + + [m, n]=size(h); + if (m == 0) | (n == 0) then + return + end + del="!" + blank=" " + if m*n==1 then del=" ",end + height=zeros(m,1) // to store "height" of each row do be displayed + width=zeros(1,n) // to store "width" of each column do be displayed + T=list() // to store display of each entry of the rational + for k=1:n + for l=1:m + tlk=r2str(h(l,k)) + height(l)=max(size(tlk,1),height(l)) + width(k)=max(max(length(tlk)),width(k)) + T($+1)=tlk + end + end + ll=lines() + k0=0 + + //manage column display + while %t + // find how many columns can be displayed simultaneously + last=find(cumsum(width+2)<ll(1)-3);last=last($); + if last==[] then last=1,end + // form display of these columns + txt=[] + for l=1:m + txtr=emptystr(height(l),1) + for k=1:last + txtr=txtr+part(blank(ones(height(l),1)),1:2) + tlk=T(l+(k0+k-1)*m) + txtr=txtr+[part(tlk,1:width(k));emptystr(height(l)-size(tlk,1),1)] + end + txt=[txt;txtr] + end + // add matrix delimiter and columns title and display + nt=size(txt,1) + txt=part(txt,1:max(length(txt))) + if k0==0&last==n then + write(%io(2),del(ones(nt,1))+txt+blank(ones(nt,1))+del(ones(nt,1))) + else + if last==1 then + leg="column "+string(k0+1) + else + leg="column "+string(k0+1)+" to "+string(k0+last) + end + write(%io(2),[" "; + leg; + " "; + del(ones(nt,1))+txt+blank(ones(nt,1))+del(ones(nt,1))]) + end + width(1:last)=[] + k0=last + if width==[] then break,end + end + + end + +endfunction + +function txt=p2str(p) + //form display of a single polynomial with complex coefficients + lparen="(" + rparen=")" + blank=" " + if type(p)==1 then p=poly(p,"s","c"),end + d=degree(p) + v=stripblanks(varn(p)) + + c=strsubst(string(coeff(p)),"%i","i") + // find coefficients with displays as "0" (deleted later) + kz=find(c=="0") + // find coefficients with displays as "1" + k1=find(c=="1");if k1(1)==1 then k1(1)=[],end + if k1<>[] then c(k1)=emptystr(1,size(k1,"*")),end + // find coefficients with real AND imaginary part (to be parenthezied) + kc=find(imag(coeff(p))<>0&real(coeff(p))<>0) + w=ones(1,size(kc,"*")) + if kc<>[] then c(kc)=lparen(w)+c(kc)+rparen(w),end + // add formal variable name + c=c+[emptystr(),v(ones(1:d))] + + // form exponents + expo1=[" "," ",string(2:d)] + + //delete coeffiecients and exponents corresponding to "0"s + c(kz)=[] + expo1(kz)=[] + if c==[] then + c="0" + expo1=emptystr() + end + + // change coefficients sign display and adjust length of exponents + le=0 + expo=emptystr(c) + for kc=1:size(c,"*") + if kc>1 then + if part(c(kc),1)<>"-" then + c(kc)=" + "+c(kc), + else + c(kc)=" - "+part(c(kc),2:length(c(kc))) + end + end + expo(kc)=part(blank,ones(1,length(c(kc))-le)) + le=length(expo1(kc)) + end + expo=expo+expo1(1:size(c,"*")) + + //Handle long lines + ll=lines() + nn=size(expo,"*") + txt=[] + count=0 + while %t + L=cumsum(length(expo)) + last=find(L<ll(1)-3);last=last($) + txt=[txt; + part(blank,ones(1,count))+strcat(expo(1:last)); + strcat(c(1:last))] + expo(1:last)=[] + c(1:last)=[] + if c==[] then break,end + count=count+1 + end + +endfunction +function txt=r2str(h) + //form display of a single rational with complex coefficients + dash="-" + blank=" " + + t1=p2str(h("num")) //display of numerator + t2=p2str(h("den")) //display of denominator + + //add fraction bar and center + l1=max(length(t1)) + l2=max(length(t2)) + if l1>l2 then + ll1=int((l1-l2)/2) + ll2=l1-l2-ll1 + b=blank(ones(size(t2,"*"),1)) + txt=[t1; + part(dash,ones(1,l1)); + part(b,ones(1,ll1))+t2+part(b,ones(1,ll2))] + elseif l1<l2 then + ll1=int((l2-l1)/2) + ll2=l2-l1-ll1 + b=blank(ones(size(t1,"*"),1)) + txt=[part(b,ones(1,ll1))+t1+part(b,ones(1,ll2)); + part(dash,ones(1,l2)); + t2] + else + txt=[t1;part(dash,ones(1,l1));t2] + end +endfunction + +function %hmr_p(h) + // hypermatrix display + dims=size(h) + num=h.num + den=h.den + nd=size(dims,"*") + I=(1:dims(3)); + for k=4:nd + I=[ones(1,dims(k)).*.I; + (1:dims(k)).*.ones(1,size(I,2))]; + end + k=1;sz=dims(1)*dims(2) + for II=I + tit="(:,:,"+strcat(string(II'),",")+")" + write(%io(2),tit) + hb=rlist(matrix(num.entries(k:k-1+sz),dims(1),dims(2)),matrix(den.entries(k:k-1+sz),dims(1),dims(2)),h.dt) + disp(hb) + k=k+sz + end +endfunction diff --git a/modules/overloading/macros/%r_p_s.bin b/modules/overloading/macros/%r_p_s.bin Binary files differnew file mode 100755 index 000000000..0f237ee8a --- /dev/null +++ b/modules/overloading/macros/%r_p_s.bin diff --git a/modules/overloading/macros/%r_p_s.sci b/modules/overloading/macros/%r_p_s.sci new file mode 100755 index 000000000..52b986f95 --- /dev/null +++ b/modules/overloading/macros/%r_p_s.sci @@ -0,0 +1,60 @@ +// 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 + +function f=%r_p_s(f,s) + // %r_p_s(p,n) computes f^s for f a rational matrix s scalar or vector + //! + + if s==[] then f=[],return,end + if or(imag(s)<>0)|or(int(s)<>s) then error(30),end + + [m,n]=size(f("num")) + [ms,ns]=size(s) + if ms==1&ns==1 then + if m==1|n==1 then //Element wise exponentiation f.^s with f vector + if m>1|n>1&warning("query")=="on" then + //obsolescence warning + mprintf(_(" Warning: Syntax ""vector ^ scalar"" is obsolete it will be removed in scilab-6.\n Use ""vector .^ scalar"" instead.\n")); + end + if s<0 then + num=f("num") + if or(abs(coeff(num(:)))*ones(max(degree(num))+1,1)==0) then + error(27) + end + s=-s + f=rlist(f("den").^s,num.^s,f("dt")) + else + f=rlist(f("num").^s,f("den").^s,f("dt")) + end + elseif m==n then //square matrix exponentiation f^s + if s==0 then f=eye(m,n),return,end + if s<0 then f=invr(f),s=-s,end + f1=f;for k=2:s,f=f*f1;end + else + error(20,1) + end + elseif ms==1|ns==1 then // Element wise exponentiation f.^s with f "scalar" + if m<>1|n<>1 then error(43),end + kp=find(s>=0) + kn=find(s<0) + num=ones(s) + den=ones(s) + num(kp)=f("num").^s(kp) + den(kp)=f("den").^s(kp) + if abs(coeff(f("num")))*ones(degree(f("num"))+1,1)==0 then + error(27) + end + num(kn)=f("den").^(-s(kn)) + den(kn)=f("num").^(-s(kn)) + f=rlist(num,den,[]) + else + error(30) + end + +endfunction diff --git a/modules/overloading/macros/%r_prod.bin b/modules/overloading/macros/%r_prod.bin Binary files differnew file mode 100755 index 000000000..4c39960c3 --- /dev/null +++ b/modules/overloading/macros/%r_prod.bin diff --git a/modules/overloading/macros/%r_prod.sci b/modules/overloading/macros/%r_prod.sci new file mode 100755 index 000000000..95204fd1e --- /dev/null +++ b/modules/overloading/macros/%r_prod.sci @@ -0,0 +1,65 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2010 - INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function a = %r_prod(varargin) + //prod of a rational matrix + // If we call prod with 3 argumetns, the thrid argumetn is optional for rational matrices. + a = varargin(1) + dims = size(a); + + nargs = size(varargin); + select nargs + case 1 + d = "*"; + case 2 + if or(varargin(2) == ["native", "double"]) then + d = "*"; + else + d = varargin(2); + end + case 3 + d = varargin(2); + else + error(msprintf(_("%s: Wrong number of input argument(s): %d to %d expected.\n"),"prod", 1, 3)); + end + + // Check second argument : d + select type(d) + case 1 + if size(d,'*') <> 1 then + error(msprintf(_("%s: Wrong size for input argument #%d: A scalar expected.\n"),"prod", 2)) + end + if int(d) <> d | d < 0 then + error(msprintf(_("%s: Wrong value for input argument #%d: Integer >= %d expected.\n"),"prod", 2, 1)) + end + case 10 + if size(d,'*') <> 1 then + error(msprintf(_("%s: Wrong size for input argument #%d: A string expected.\n"),"prod",2)) + end + if and(d<>["r","c","*","m"]) then + error(msprintf(_("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"),.. + "prod",2,"""*"",""r"",""c"",""m""")) + end + + pos = [1,2,0,find(dims>1,1)]; + d=pos(find(d==["r","c","*","m"])) + else + error(msprintf(_("%s: Wrong type for input argument #%d: A string or scalar expected.\n"),"prod",2)) + end + + if d==0 then //'*' + a=rlist(prod(a.num),prod(a.den),a.dt) + if simp_mode() then a=simp(a),end + elseif or(d==[1 2]) then + a=rlist(prod(a.num,d),prod(a.den,d),a.dt) + if simp_mode() then a=simp(a),end + else + a=a + end +endfunction diff --git a/modules/overloading/macros/%r_q_p.bin b/modules/overloading/macros/%r_q_p.bin Binary files differnew file mode 100755 index 000000000..2d0d2b7e5 --- /dev/null +++ b/modules/overloading/macros/%r_q_p.bin diff --git a/modules/overloading/macros/%r_q_p.sci b/modules/overloading/macros/%r_q_p.sci new file mode 100755 index 000000000..e940a2279 --- /dev/null +++ b/modules/overloading/macros/%r_q_p.sci @@ -0,0 +1,15 @@ +// 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 + +function f1=%r_q_p(f1,f2) + // r.\p + //! + + f1=rlist(f1("den").*f2,f1("num").*ones(f2),f1("dt")) +endfunction diff --git a/modules/overloading/macros/%r_q_r.bin b/modules/overloading/macros/%r_q_r.bin Binary files differnew file mode 100755 index 000000000..2dd2360db --- /dev/null +++ b/modules/overloading/macros/%r_q_r.bin diff --git a/modules/overloading/macros/%r_q_r.sci b/modules/overloading/macros/%r_q_r.sci new file mode 100755 index 000000000..cf964e1fc --- /dev/null +++ b/modules/overloading/macros/%r_q_r.sci @@ -0,0 +1,28 @@ +// 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 + +function s1=%r_q_r(s1,s2) + // %r_q_r(s1,s2) <=> s1= s1.\s2 for rationals + //author Serge Steer, INRIA + //! + if ndims(s1)<=2& ndims(s2)<=2 then + [s1,s2]=sysconv(s1,s2) + [num,den]=simp(s1.den.*s2.num,s1.num.*s2.den) + s1=rlist(num,den,s1.dt) + else + if size(s1,"*")==1 then + sz=size(s2) + else + sz=size(s1) + end + [num,den]=simp(s1.den(:).*s2.num(:),s1.num(:).*s2.den(:)) + s1=rlist(matrix(num,sz),matrix(den,sz),s1.dt) + end + +endfunction diff --git a/modules/overloading/macros/%r_q_s.bin b/modules/overloading/macros/%r_q_s.bin Binary files differnew file mode 100755 index 000000000..3cb11d1a8 --- /dev/null +++ b/modules/overloading/macros/%r_q_s.bin diff --git a/modules/overloading/macros/%r_q_s.sci b/modules/overloading/macros/%r_q_s.sci new file mode 100755 index 000000000..ca3e910bd --- /dev/null +++ b/modules/overloading/macros/%r_q_s.sci @@ -0,0 +1,16 @@ +// 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 + +function f=%r_q_s(f1,n2) + // r.\m + //! + + if size(n2,"*")==0 then f=[],return,end + f=rlist(f1("den").*n2,f1("num").*ones(n2),f1("dt")) +endfunction diff --git a/modules/overloading/macros/%r_r_lss.bin b/modules/overloading/macros/%r_r_lss.bin Binary files differnew file mode 100755 index 000000000..5191fa52c --- /dev/null +++ b/modules/overloading/macros/%r_r_lss.bin diff --git a/modules/overloading/macros/%r_r_lss.sci b/modules/overloading/macros/%r_r_lss.sci new file mode 100755 index 000000000..3e0cd0a3e --- /dev/null +++ b/modules/overloading/macros/%r_r_lss.sci @@ -0,0 +1,15 @@ +// 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 + +function s=%r_r_lss(s1,s2) + //! + + [s1,s2]=sysconv(s1,s2) + s=s1/s2 +endfunction diff --git a/modules/overloading/macros/%r_r_p.bin b/modules/overloading/macros/%r_r_p.bin Binary files differnew file mode 100755 index 000000000..a8145c604 --- /dev/null +++ b/modules/overloading/macros/%r_r_p.bin diff --git a/modules/overloading/macros/%r_r_p.sci b/modules/overloading/macros/%r_r_p.sci new file mode 100755 index 000000000..7c9ea16ac --- /dev/null +++ b/modules/overloading/macros/%r_r_p.sci @@ -0,0 +1,17 @@ +// 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 + +function f=%r_r_p(f1,p2) + // + //! + + if prod(size(p2)) <>1 then f=f1*invr(p2),return,end + [n1,p2]=simp(f1("num"),p2*f1("den")) + f=rlist(n1,p2,f1("dt")) +endfunction diff --git a/modules/overloading/macros/%r_r_r.bin b/modules/overloading/macros/%r_r_r.bin Binary files differnew file mode 100755 index 000000000..e639616fa --- /dev/null +++ b/modules/overloading/macros/%r_r_r.bin diff --git a/modules/overloading/macros/%r_r_r.sci b/modules/overloading/macros/%r_r_r.sci new file mode 100755 index 000000000..3a4b0947e --- /dev/null +++ b/modules/overloading/macros/%r_r_r.sci @@ -0,0 +1,29 @@ +// 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 + +function s1=%r_r_r(s1,s2) + // %r_r_r(s1,s2) <=> s1/s2 for rationals + //! + + [s1,s2]=sysconv(s1,s2), + [n,m]=size(s2("num")) + if n<>m then error(43),end + if n*m==1 then + s1=%r_m_r(s1,rlist(s2("den"),s2("num"),s2("dt")) ), + else + p=s2("num") + s2=s2("den") + for k=1:n + pp=lcm(s2(:,k)) + for l=1:n;p(l,k)=p(l,k)*pdiv(pp,s2(l,k)),end + s1(:,k)=s1(:,k)*pp + end + s1=s1*invr(p) + end +endfunction diff --git a/modules/overloading/macros/%r_r_s.bin b/modules/overloading/macros/%r_r_s.bin Binary files differnew file mode 100755 index 000000000..19857e572 --- /dev/null +++ b/modules/overloading/macros/%r_r_s.bin diff --git a/modules/overloading/macros/%r_r_s.sci b/modules/overloading/macros/%r_r_s.sci new file mode 100755 index 000000000..cb6e798b7 --- /dev/null +++ b/modules/overloading/macros/%r_r_s.sci @@ -0,0 +1,39 @@ +// 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 + +function a=%r_r_s(a,b) + // a/b a rational matrix, b scalar matrix + //author Serge Steer + //! + if size(b,"*")==0 then a=[],return,end + [mb,nb]=size(b); + if mb*nb==1 then + a.num=a.num/b, + if or(size(a)==-1)|mb==-1 then + a.den=a.den*eye(), + end + return, + end + [ma,na]=size(a.num) + ma=abs(ma);na=abs(na) //handling eye() + mb=abs(mb);nb=abs(nb) //handling eye() + if na==1 then + a=rlist(a.num/b,ones(nb,mb)*a.den,a.dt) + else + [num,den]=a(["num","den"]); + dd=[];nn=[] + for i=1:ma, + [y,fact]=lcm(den(i,:)), + nn=[nn;(num(i,:).*fact)/b]; + dd=[dd;y] + end + [num,den]=simp(nn,dd*ones(1,mb)) + a=rlist(num,den,a.dt) + end +endfunction diff --git a/modules/overloading/macros/%r_rand.bin b/modules/overloading/macros/%r_rand.bin Binary files differnew file mode 100755 index 000000000..5f964f9b5 --- /dev/null +++ b/modules/overloading/macros/%r_rand.bin diff --git a/modules/overloading/macros/%r_rand.sci b/modules/overloading/macros/%r_rand.sci new file mode 100755 index 000000000..91f5950a9 --- /dev/null +++ b/modules/overloading/macros/%r_rand.sci @@ -0,0 +1,13 @@ +// 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 + +function x=%r_rand(a) + + x=rand(a("num")); +endfunction diff --git a/modules/overloading/macros/%r_s.bin b/modules/overloading/macros/%r_s.bin Binary files differnew file mode 100755 index 000000000..57b31d639 --- /dev/null +++ b/modules/overloading/macros/%r_s.bin diff --git a/modules/overloading/macros/%r_s.sci b/modules/overloading/macros/%r_s.sci new file mode 100755 index 000000000..1ef9ef29f --- /dev/null +++ b/modules/overloading/macros/%r_s.sci @@ -0,0 +1,15 @@ +// 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 + +function f=%r_s(f) + // %r_s(f) -f, f rational + //! + + f(2)=-f(2) +endfunction diff --git a/modules/overloading/macros/%r_s_hm.bin b/modules/overloading/macros/%r_s_hm.bin Binary files differnew file mode 100755 index 000000000..d7a43860f --- /dev/null +++ b/modules/overloading/macros/%r_s_hm.bin diff --git a/modules/overloading/macros/%r_s_hm.sci b/modules/overloading/macros/%r_s_hm.sci new file mode 100755 index 000000000..d623e9318 --- /dev/null +++ b/modules/overloading/macros/%r_s_hm.sci @@ -0,0 +1,31 @@ +// 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 + +function f=%r_s_hm(f,m) + //f = f-m, + //f: transfer matrix, m : hypermatrix + //author Serge Steer INRIA + //! + [num,den]=f(["num","den"]) + szf=size(den) + szm=size(m) + + if and(szf>=0)&and(szm>=0) then + num=num(:);den=den(:);m=m(:) + if prod(szf)==1&prod(szm)>1 then + den=den(ones(m)) + end + [num,den]=simp(num-m.*den,den) + num=matrix(num,szf) + den=matrix(den,szf) + f=rlist(num,den,f.dt) + else + error(9) + end +endfunction diff --git a/modules/overloading/macros/%r_s_lss.bin b/modules/overloading/macros/%r_s_lss.bin Binary files differnew file mode 100755 index 000000000..bd4afd369 --- /dev/null +++ b/modules/overloading/macros/%r_s_lss.bin diff --git a/modules/overloading/macros/%r_s_lss.sci b/modules/overloading/macros/%r_s_lss.sci new file mode 100755 index 000000000..0d8b646ee --- /dev/null +++ b/modules/overloading/macros/%r_s_lss.sci @@ -0,0 +1,18 @@ +// 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 + +function [s]=%r_s_lss(s1,s2) + //s=%r_s_lss(s1,s2) ou s=s1-s2 + // s1 : transfer + // s2 : state-space + //! + + [s1,s2]=sysconv(s1,s2) + s=s1-s2 +endfunction diff --git a/modules/overloading/macros/%r_s_p.bin b/modules/overloading/macros/%r_s_p.bin Binary files differnew file mode 100755 index 000000000..d029e676a --- /dev/null +++ b/modules/overloading/macros/%r_s_p.bin diff --git a/modules/overloading/macros/%r_s_p.sci b/modules/overloading/macros/%r_s_p.sci new file mode 100755 index 000000000..231750a20 --- /dev/null +++ b/modules/overloading/macros/%r_s_p.sci @@ -0,0 +1,45 @@ +// 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 + +function f=%r_s_p(f,m) + //f = f-m, + //f: transfer matrix, m : scalar or scalar matrix + //author Serge Steer INRIA + //! + [num,den]=f(["num","den"]) + szf=size(den) + szm=size(m) + + if and(szf>=0)&and(szm>=0) then + if prod(szf)==1&prod(szm)>1 then + den=den(ones(m)) + szf=szm + end + + if size(szf,"*")>2 then + num=num(:);den=den(:);m=m(:) + end + [num,den]=simp(num-m.*den,den) + num=matrix(num,szf) + den=matrix(den,szf) + else + //at leat one matrix is eye*x + if size(szf,"*")>2|size(szm,"*")>2 then + error(9) + end + if or(szf<0)&or(szm<0) then + [num,den]=simp(num-m.*den,den) + elseif or(szf<0) then + [num,den]=simp(num-m.*den,den*ones(m)) + elseif or(szm<0) then + [num,den]=simp(num-(m+0)*eye(den).*den,den) + end + end + f=rlist(num,den,f.dt) +endfunction diff --git a/modules/overloading/macros/%r_s_r.bin b/modules/overloading/macros/%r_s_r.bin Binary files differnew file mode 100755 index 000000000..94126fde2 --- /dev/null +++ b/modules/overloading/macros/%r_s_r.bin diff --git a/modules/overloading/macros/%r_s_r.sci b/modules/overloading/macros/%r_s_r.sci new file mode 100755 index 000000000..3472ae6d2 --- /dev/null +++ b/modules/overloading/macros/%r_s_r.sci @@ -0,0 +1,68 @@ +// 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 + +function f=%r_s_r(s1,s2) + //f=s1-s2 s1,s2 : rational matrices + //! + if ndims(s1)<2&ndims(s2)<2 then [s1,s2]=sysconv(s1,s2),end + [num1,den1]=s1(["num","den"]), + [num2,den2]=s2(["num","den"]), + sz1=size(num1) + sz2=size(num2) + if and(sz1>=0)&and(sz2>=0) then + num1=num1(:);den1=den1(:); + num2=num2(:);den2=den2(:); + + if prod(sz1)==1&prod(sz2)>1 then + den1=den1(ones(den2)) + num1=num1(ones(num2)) + sz1=sz2 + elseif prod(sz2)==1&prod(sz1)>1 then + den2=den2(ones(den1)) + num2=num2(ones(num1)) + sz2=sz1 + end + if and(sz1<>sz2) then error(8),end + for l=1:prod(sz1) + [den,fact]=lcm([den1(l);den2(l)]) + num1(l)=[num1(l),-num2(l)]*fact + den1(l)=den + end, + [num1,den1]=simp(num1,den1), + f=rlist(matrix(num1,sz1),matrix(den1,sz1),s1.dt) + else + + if size(sz1,"*")>2|size(sz2,"*")>2 then error(8),end + + if or(sz1<0)&or(sz2<0) then + // both are eye*x + [den1,fact]=lcm([den1;den2]) + [num1,den1]=simp([num1,-num2]*fact,den1) + f=rlist(num1*eye(),den1*eye(),s1("dt")), + elseif or(sz1<0) then + den1=den1+0;num1=num1+0 + for l=1:min(sz2) + [den,fact]=lcm([den1;den2(l,l)]) + num2(l,l)=[num1,-num2(l,l)]*fact + den2(l,l)=den + end + [num2,den2]=simp(num2,den2), + f=rlist(num2,den2,s1.dt) + elseif or(sz2<0) then + den2=den2+0;num2=num2+0 + for l=1:min(sz1) + [den,fact]=lcm([den1(l,l);den2]) + num1(l,l)=[num1(l,l),-num2]*fact + den1(l,l)=den + end + [num1,den1]=simp(num1,den1), + f=rlist(num1,den1,s1.dt) + end + end +endfunction diff --git a/modules/overloading/macros/%r_s_s.bin b/modules/overloading/macros/%r_s_s.bin Binary files differnew file mode 100755 index 000000000..96b50440e --- /dev/null +++ b/modules/overloading/macros/%r_s_s.bin diff --git a/modules/overloading/macros/%r_s_s.sci b/modules/overloading/macros/%r_s_s.sci new file mode 100755 index 000000000..36adf6898 --- /dev/null +++ b/modules/overloading/macros/%r_s_s.sci @@ -0,0 +1,45 @@ +// 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 + +function f=%r_s_s(f,m) + //f = f-m, + //f: transfer matrix, m : scalar or scalar matrix + //author Serge Steer INRIA + //! + [num,den]=f(["num","den"]) + szf=size(den) + szm=size(m) + + if and(szf>=0)&and(szm>=0) then + if prod(szf)==1&prod(szm)>1 then + den=den(ones(m)) + szf=szm + end + + if size(szf,"*")>2 then + num=num(:);den=den(:);m=m(:) + end + [num,den]=simp(num-m.*den,den) + num=matrix(num,szf) + den=matrix(den,szf) + else + //at leat one matrix is eye*x + if size(szf,"*")>2|size(szm,"*")>2 then + error(9) + end + if or(szf<0)&or(szm<0) then + [num,den]=simp(num-m.*den,den) + elseif or(szf<0) then + [num,den]=simp(num-m.*den,den*ones(m)) + elseif or(szm<0) then + [num,den]=simp(num-(m+0)*eye(den).*den,den) + end + end + f=rlist(num,den,f.dt) +endfunction diff --git a/modules/overloading/macros/%r_simp.bin b/modules/overloading/macros/%r_simp.bin Binary files differnew file mode 100755 index 000000000..3e2cacda7 --- /dev/null +++ b/modules/overloading/macros/%r_simp.bin diff --git a/modules/overloading/macros/%r_simp.sci b/modules/overloading/macros/%r_simp.sci new file mode 100755 index 000000000..ac6e7e6c9 --- /dev/null +++ b/modules/overloading/macros/%r_simp.sci @@ -0,0 +1,13 @@ +// 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 + +function h=%r_simp(h) + // implement complex case + +endfunction diff --git a/modules/overloading/macros/%r_size.bin b/modules/overloading/macros/%r_size.bin Binary files differnew file mode 100755 index 000000000..52807d0e8 --- /dev/null +++ b/modules/overloading/macros/%r_size.bin diff --git a/modules/overloading/macros/%r_size.sci b/modules/overloading/macros/%r_size.sci new file mode 100755 index 000000000..33e1feb9c --- /dev/null +++ b/modules/overloading/macros/%r_size.sci @@ -0,0 +1,30 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA +// Copyright (C) DIGITEO - 2012 - 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 + +function [m, n, nx] = %r_size(x, flag) + // only to be called by size function for dynamical systems + //! + m = 0; + n = 0; + [lhs,rhs] = argn(0) + x1 = x(1); + if lhs == 1 then + if rhs == 1 then + execstr("m = size(x(''num''));","errcatch"); + else + execstr("m = size(x(''num''), flag);","errcatch"); + end + elseif lhs == 2 then + if rhs <> 1 then + error(41) + end + execstr("[m, n] = size(x(''num''));","errcatch"); + end +endfunction diff --git a/modules/overloading/macros/%r_string.bin b/modules/overloading/macros/%r_string.bin Binary files differnew file mode 100755 index 000000000..290c9650b --- /dev/null +++ b/modules/overloading/macros/%r_string.bin diff --git a/modules/overloading/macros/%r_string.sci b/modules/overloading/macros/%r_string.sci new file mode 100755 index 000000000..8ed8abef1 --- /dev/null +++ b/modules/overloading/macros/%r_string.sci @@ -0,0 +1,30 @@ +// 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 + +function txt=%r_string(r) + N=string(r.num) + D=string(r.den) + ln=max(matrix(length(N),2,-1),"r") + ld=max(matrix(length(D),2,-1),"r") + l=max(ln,ld) + [m,n]=size(r.num); + S=emptystr(m,n) + for i=1:m*n + s=2*i-1:2*i + N(s)=part(" ",1:(l(i)-ln(i))/2)+N(s) + D(s)=part(" ",1:(l(i)-ld(i))/2)+D(s) + S(i) =part("-",ones(1,l(i))) + end + txt=emptystr(5*m,n); + txt(1:5:$,:)=N(1:2:$,:) + txt(2:5:$,:)=N(2:2:$,:) + txt(3:5:$,:)=S(1:$,:) + txt(4:5:$,:)=D(1:2:$,:) + txt(5:5:$,:)=D(2:2:$,:) +endfunction diff --git a/modules/overloading/macros/%r_sum.bin b/modules/overloading/macros/%r_sum.bin Binary files differnew file mode 100755 index 000000000..bf16b7053 --- /dev/null +++ b/modules/overloading/macros/%r_sum.bin diff --git a/modules/overloading/macros/%r_sum.sci b/modules/overloading/macros/%r_sum.sci new file mode 100755 index 000000000..c8d682144 --- /dev/null +++ b/modules/overloading/macros/%r_sum.sci @@ -0,0 +1,67 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2010 - INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function a=%r_sum(varargin) + //sum of a rational matrix. Sum of rational hypermatrices are + //handled by %hm_sum + // If we call sum with 3 arguments, the third is optional with rational matrices. + a = varargin(1) + dims = size(a); + + nargs = size(varargin); + select nargs + case 1 + d = "*"; + case 2 + if or(varargin(2) == ["native", "double"]) then + d = "*"; + else + d = varargin(2); + end + case 3 + d = varargin(2); + else + error(msprintf(_("%s: Wrong number of input argument(s): %d to %d expected.\n"),"sum", 1, 3)); + end + + // Check second argument : d + select type(d) + case 1 + if size(d,'*') <> 1 then + error(msprintf(_("%s: Wrong size for input argument #%d: A scalar expected.\n"),"sum", 2)) + end + if int(d) <> d | d < 0 then + error(msprintf(_("%s: Wrong value for input argument #%d: Integer >= %d expected.\n"),"sum", 2, 1)) + end + case 10 + if size(d,'*') <> 1 then + error(msprintf(_("%s: Wrong size for input argument #%d: A string expected.\n"),"sum",2)) + end + if and(d<>["r","c","*","m"]) then + error(msprintf(_("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"),.. + "sum",2,"""*"",""r"",""c"",""m""")) + end + + pos = [1,2,0,find(dims>1,1)]; + d=pos(find(d==["r","c","*","m"])) + else + error(msprintf(_("%s: Wrong type for input argument #%d: A string or scalar expected.\n"),"sum",2)) + end + + select d + case 0 then//'*' + a=ones(1,size(a,"*"))*matrix(a,-1,1) + case 1 then + a=ones(1,dims(1))*a; + case 2 then + a=a*ones(dims(2),1); + else + a=a + end +endfunction diff --git a/modules/overloading/macros/%r_t.bin b/modules/overloading/macros/%r_t.bin Binary files differnew file mode 100755 index 000000000..1492dca34 --- /dev/null +++ b/modules/overloading/macros/%r_t.bin diff --git a/modules/overloading/macros/%r_t.sci b/modules/overloading/macros/%r_t.sci new file mode 100755 index 000000000..05db88f7a --- /dev/null +++ b/modules/overloading/macros/%r_t.sci @@ -0,0 +1,15 @@ +// 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 + +function f=%r_t(f1) + // f=f1' + //! + + f=rlist(f1("num")',f1("den")',f1("dt")) +endfunction diff --git a/modules/overloading/macros/%r_tril.bin b/modules/overloading/macros/%r_tril.bin Binary files differnew file mode 100755 index 000000000..f4b013dcb --- /dev/null +++ b/modules/overloading/macros/%r_tril.bin diff --git a/modules/overloading/macros/%r_tril.sci b/modules/overloading/macros/%r_tril.sci new file mode 100755 index 000000000..bf3281140 --- /dev/null +++ b/modules/overloading/macros/%r_tril.sci @@ -0,0 +1,20 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 1995-2010 - INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function d=%r_tril(a,k) + if argn(2)<2 then + k=0, + else + if type(k)<>1 then error(53,2);end + if size(k,"*")<>1 then error(89,2);end + if ~isreal(k) then error(52,2);end + end + + d=rlist(tril(a.num,k),tril(a.den,k)+triu(ones(a.den),k+1),a.dt) +endfunction diff --git a/modules/overloading/macros/%r_triu.bin b/modules/overloading/macros/%r_triu.bin Binary files differnew file mode 100755 index 000000000..33d8560c4 --- /dev/null +++ b/modules/overloading/macros/%r_triu.bin diff --git a/modules/overloading/macros/%r_triu.sci b/modules/overloading/macros/%r_triu.sci new file mode 100755 index 000000000..89d2d8b9e --- /dev/null +++ b/modules/overloading/macros/%r_triu.sci @@ -0,0 +1,21 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 1995-2010 - INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function d=%r_triu(a,k) + // r_triu - implement triu function for rationnal matrix ,.. + if argn(2)<2 then + k=0, + else + if type(k)<>1 then error(53,2);end + if size(k,"*")<>1 then error(89,2);end + if ~isreal(k) then error(52,2);end + end + + d=rlist(triu(a.num,k),triu(a.den,k)+tril(ones(a.den),k-1),a.dt) +endfunction diff --git a/modules/overloading/macros/%r_v_lss.bin b/modules/overloading/macros/%r_v_lss.bin Binary files differnew file mode 100755 index 000000000..48ef74141 --- /dev/null +++ b/modules/overloading/macros/%r_v_lss.bin diff --git a/modules/overloading/macros/%r_v_lss.sci b/modules/overloading/macros/%r_v_lss.sci new file mode 100755 index 000000000..551900902 --- /dev/null +++ b/modules/overloading/macros/%r_v_lss.sci @@ -0,0 +1,14 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function s=%r_v_lss(s1,s2) + //s=%r_v_lss(s1,s2) <=> s= s1/.s2 + //! + [s1,s2]=sysconv(s1,s2);s=s1/.s2; +endfunction diff --git a/modules/overloading/macros/%r_v_p.bin b/modules/overloading/macros/%r_v_p.bin Binary files differnew file mode 100755 index 000000000..edc701c7b --- /dev/null +++ b/modules/overloading/macros/%r_v_p.bin diff --git a/modules/overloading/macros/%r_v_p.sci b/modules/overloading/macros/%r_v_p.sci new file mode 100755 index 000000000..743c7094d --- /dev/null +++ b/modules/overloading/macros/%r_v_p.sci @@ -0,0 +1,19 @@ +// 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 + +function h=%r_v_p(h1,h2) + // %r_v_p(h1,h2) computes (I+h1*h2)\h1. h1: rational + // h2 polynomial + //! + + [m1,n1]=size(h1("num")) + [m2,n2]=size(h2) + if abs(n1-m2)+abs(m1-n2)<>0 then error(msprintf(_("%s: Wrong size for input argument(s).\n"),"%r_v_p")),end + h=(eye(m1,m1)+h1*h2)\h1 +endfunction diff --git a/modules/overloading/macros/%r_v_r.bin b/modules/overloading/macros/%r_v_r.bin Binary files differnew file mode 100755 index 000000000..84c6b0399 --- /dev/null +++ b/modules/overloading/macros/%r_v_r.bin diff --git a/modules/overloading/macros/%r_v_r.sci b/modules/overloading/macros/%r_v_r.sci new file mode 100755 index 000000000..453ea920e --- /dev/null +++ b/modules/overloading/macros/%r_v_r.sci @@ -0,0 +1,23 @@ +// 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 + +function h=%r_v_r(h1,h2) + // %r_v_r(h1,h2)=(I+h1*h2)\h1. h1 and h2 rational matrices + //! + + [h1,h2]=sysconv(h1,h2), + [m1,n1]=size(h1("num")) + [m2,n2]=size(h2("num")) + if abs(n1-m2)+abs(m1-n2)<>0 then error(msprintf(_("%s: Wrong size for input argument(s).\n"),"%r_v_r")),end + if m1*n1==1 then + h=rlist(h1("num")*h2("den"),h1("num")*h2("num")+h1("den")*h2("den"),h1("dt")) + else + h=(eye(m1,m1)+h1*h2)\h1 + end +endfunction diff --git a/modules/overloading/macros/%r_v_s.bin b/modules/overloading/macros/%r_v_s.bin Binary files differnew file mode 100755 index 000000000..6e162a98e --- /dev/null +++ b/modules/overloading/macros/%r_v_s.bin diff --git a/modules/overloading/macros/%r_v_s.sci b/modules/overloading/macros/%r_v_s.sci new file mode 100755 index 000000000..e3a259944 --- /dev/null +++ b/modules/overloading/macros/%r_v_s.sci @@ -0,0 +1,23 @@ +// 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 + +function h=%r_v_s(h1,h2) + // %r_v_s(h1,h2)=(I+h1*h2)\h1. h1: rational + // h2 constant + //! + + [m1,n1]=size(h1("num")) + [m2,n2]=size(h2) + if abs(n1-m2)+abs(m1-n2)<>0 then error(msprintf(_("%s: Wrong size for input argument(s).\n"),"%r_v_s")),end + if m1*n1==1 then + h=h1;h("den")=h1("num")*h2+h1("den"); + else + h=(eye(m1,m1)+h1*h2)\h1 + end +endfunction diff --git a/modules/overloading/macros/%r_varn.bin b/modules/overloading/macros/%r_varn.bin Binary files differnew file mode 100755 index 000000000..941a0f9ee --- /dev/null +++ b/modules/overloading/macros/%r_varn.bin diff --git a/modules/overloading/macros/%r_varn.sci b/modules/overloading/macros/%r_varn.sci new file mode 100755 index 000000000..31fcaa630 --- /dev/null +++ b/modules/overloading/macros/%r_varn.sci @@ -0,0 +1,16 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) Samuel GOUGEON <sgougeon@free.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 + +function rep = %r_varn(p, varname) + if argn(2)==1 then + rep = varn(p("num")); + else + rep = rlist(varn(p.num, varname), varn(p.den, varname), p.dt); + end +endfunction diff --git a/modules/overloading/macros/%r_x_p.bin b/modules/overloading/macros/%r_x_p.bin Binary files differnew file mode 100755 index 000000000..d62a37648 --- /dev/null +++ b/modules/overloading/macros/%r_x_p.bin diff --git a/modules/overloading/macros/%r_x_p.sci b/modules/overloading/macros/%r_x_p.sci new file mode 100755 index 000000000..254d96cc6 --- /dev/null +++ b/modules/overloading/macros/%r_x_p.sci @@ -0,0 +1,24 @@ +// 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 + +function f1=%r_x_p(f1,f2) + // %r_x_p(r,p)=r.*p + //author Serge Steer, INRIA + //! + f1.num=f1.num.*f2 + sz=size(f1.num) + if size(sz,"*")<=2 then + + f1=simp(f1) + else + [num,den]=simp(f1.num.entries,f1.den.entries) + f1.num=matrix(num,sz) + f1.den=matrix(den,sz) + end +endfunction diff --git a/modules/overloading/macros/%r_x_r.bin b/modules/overloading/macros/%r_x_r.bin Binary files differnew file mode 100755 index 000000000..e79184c50 --- /dev/null +++ b/modules/overloading/macros/%r_x_r.bin diff --git a/modules/overloading/macros/%r_x_r.sci b/modules/overloading/macros/%r_x_r.sci new file mode 100755 index 000000000..c7ca23d9f --- /dev/null +++ b/modules/overloading/macros/%r_x_r.sci @@ -0,0 +1,27 @@ +// 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 + +function f=%r_x_r(s1,s2) + // %r_x_r(r1,r2)=r1.*r2 r1,r2 rationals + //! + //author Serge Steer INRIA + if ndims(s1)<=2& ndims(s2)<=2 then + [s1,s2]=sysconv(s1,s2) + [num,den]=simp(s1.num.*s2.num,s1.den.*s2.den) + f=rlist(num,den,s1.dt) + else + if size(s1,"*")==1 then + sz=size(s2) + else + sz=size(s1) + end + [num,den]=simp(s1.num(:).*s2.num(:),s1.den(:).*s2.den(:)) + f=rlist(matrix(num,sz),matrix(den,sz),s1.dt) + end +endfunction diff --git a/modules/overloading/macros/%r_x_s.bin b/modules/overloading/macros/%r_x_s.bin Binary files differnew file mode 100755 index 000000000..247460936 --- /dev/null +++ b/modules/overloading/macros/%r_x_s.bin diff --git a/modules/overloading/macros/%r_x_s.sci b/modules/overloading/macros/%r_x_s.sci new file mode 100755 index 000000000..242c8a52e --- /dev/null +++ b/modules/overloading/macros/%r_x_s.sci @@ -0,0 +1,19 @@ +// 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 +function f1=%r_x_s(f1,n2) + // %r_x_s(r,M)=r.*M rational .* constant + //author Serge Steer INRIA + //! + + if size(n2,"*")==0 + f1=[] + else + f1.num=f1.num.*n2 + end +endfunction diff --git a/modules/overloading/macros/%r_y_p.bin b/modules/overloading/macros/%r_y_p.bin Binary files differnew file mode 100755 index 000000000..8048d4d07 --- /dev/null +++ b/modules/overloading/macros/%r_y_p.bin diff --git a/modules/overloading/macros/%r_y_p.sci b/modules/overloading/macros/%r_y_p.sci new file mode 100755 index 000000000..82d22ed3a --- /dev/null +++ b/modules/overloading/macros/%r_y_p.sci @@ -0,0 +1,23 @@ +// 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 +function r=%r_y_p(a,b) + // a./.b + [ma,na]=size(a) + [mb,nb]=size(b) + r=zeros(ma*mb,na*nb) + k=0 + for j=1:na + l=0 + for i=1:ma + r(l+(1:mb),k+(1:nb))=a(i,j)./b + l=l+mb + end + k=k+nb + end +endfunction diff --git a/modules/overloading/macros/%r_y_r.bin b/modules/overloading/macros/%r_y_r.bin Binary files differnew file mode 100755 index 000000000..1131740df --- /dev/null +++ b/modules/overloading/macros/%r_y_r.bin diff --git a/modules/overloading/macros/%r_y_r.sci b/modules/overloading/macros/%r_y_r.sci new file mode 100755 index 000000000..40d9ada5e --- /dev/null +++ b/modules/overloading/macros/%r_y_r.sci @@ -0,0 +1,24 @@ +// 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 +function r=%r_y_r(a,b) + // a./.b + + [ma,na]=size(a) + [mb,nb]=size(b) + r=zeros(ma*mb,na*nb) + k=0 + for j=1:na + l=0 + for i=1:ma + r(l+(1:mb),k+(1:nb))=a(i,j)./b + l=l+mb + end + k=k+nb + end +endfunction diff --git a/modules/overloading/macros/%r_y_s.bin b/modules/overloading/macros/%r_y_s.bin Binary files differnew file mode 100755 index 000000000..a1af6307a --- /dev/null +++ b/modules/overloading/macros/%r_y_s.bin diff --git a/modules/overloading/macros/%r_y_s.sci b/modules/overloading/macros/%r_y_s.sci new file mode 100755 index 000000000..05f199547 --- /dev/null +++ b/modules/overloading/macros/%r_y_s.sci @@ -0,0 +1,24 @@ +// 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 +function r=%r_y_s(a,b) + // a./.b + + [ma,na]=size(a) + [mb,nb]=size(b) + r=zeros(ma*mb,na*nb) + k=0 + for j=1:na + l=0 + for i=1:ma + r(l+(1:mb),k+(1:nb))=a(i,j)./b + l=l+mb + end + k=k+nb + end +endfunction diff --git a/modules/overloading/macros/%r_z_p.bin b/modules/overloading/macros/%r_z_p.bin Binary files differnew file mode 100755 index 000000000..2f6ddd731 --- /dev/null +++ b/modules/overloading/macros/%r_z_p.bin diff --git a/modules/overloading/macros/%r_z_p.sci b/modules/overloading/macros/%r_z_p.sci new file mode 100755 index 000000000..bfb66e899 --- /dev/null +++ b/modules/overloading/macros/%r_z_p.sci @@ -0,0 +1,24 @@ +// 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 +function r=%r_z_p(a,b) + // a.\.b + + [ma,na]=size(a) + [mb,nb]=size(b) + r=zeros(ma*mb,na*nb) + k=0 + for j=1:na + l=0 + for i=1:ma + r(l+(1:mb),k+(1:nb))=a(i,j).\b + l=l+mb + end + k=k+nb + end +endfunction diff --git a/modules/overloading/macros/%r_z_r.bin b/modules/overloading/macros/%r_z_r.bin Binary files differnew file mode 100755 index 000000000..c61c93200 --- /dev/null +++ b/modules/overloading/macros/%r_z_r.bin diff --git a/modules/overloading/macros/%r_z_r.sci b/modules/overloading/macros/%r_z_r.sci new file mode 100755 index 000000000..03a0011d4 --- /dev/null +++ b/modules/overloading/macros/%r_z_r.sci @@ -0,0 +1,24 @@ +// 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 +function r=%r_z_r(a,b) + // a.\.b + + [ma,na]=size(a) + [mb,nb]=size(b) + r=zeros(ma*mb,na*nb) + k=0 + for j=1:na + l=0 + for i=1:ma + r(l+(1:mb),k+(1:nb))=a(i,j).\b + l=l+mb + end + k=k+nb + end +endfunction diff --git a/modules/overloading/macros/%r_z_s.bin b/modules/overloading/macros/%r_z_s.bin Binary files differnew file mode 100755 index 000000000..355c5be1f --- /dev/null +++ b/modules/overloading/macros/%r_z_s.bin diff --git a/modules/overloading/macros/%r_z_s.sci b/modules/overloading/macros/%r_z_s.sci new file mode 100755 index 000000000..322b0bdd6 --- /dev/null +++ b/modules/overloading/macros/%r_z_s.sci @@ -0,0 +1,24 @@ +// 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 +function r=%r_z_s(a,b) + // a.\.b + + [ma,na]=size(a) + [mb,nb]=size(b) + r=zeros(ma*mb,na*nb) + k=0 + for j=1:na + l=0 + for i=1:ma + r(l+(1:mb),k+(1:nb))=a(i,j).\b + l=l+mb + end + k=k+nb + end +endfunction diff --git a/modules/overloading/macros/%s_1_hm.bin b/modules/overloading/macros/%s_1_hm.bin Binary files differnew file mode 100755 index 000000000..04418d5ad --- /dev/null +++ b/modules/overloading/macros/%s_1_hm.bin diff --git a/modules/overloading/macros/%s_1_hm.sci b/modules/overloading/macros/%s_1_hm.sci new file mode 100755 index 000000000..e1f21fff8 --- /dev/null +++ b/modules/overloading/macros/%s_1_hm.sci @@ -0,0 +1,16 @@ +// 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 +function M=%s_1_hm(s,M) + + //s<M + if size(s,"*")<> 1 then + error(msprintf(_("%s: Wrong type for input argument #%d: A scalar expected.\n"),"%s_1_hm",1)); + end + M("entries")=s<M("entries") +endfunction diff --git a/modules/overloading/macros/%s_2_hm.bin b/modules/overloading/macros/%s_2_hm.bin Binary files differnew file mode 100755 index 000000000..1aeec384a --- /dev/null +++ b/modules/overloading/macros/%s_2_hm.bin diff --git a/modules/overloading/macros/%s_2_hm.sci b/modules/overloading/macros/%s_2_hm.sci new file mode 100755 index 000000000..214ab6927 --- /dev/null +++ b/modules/overloading/macros/%s_2_hm.sci @@ -0,0 +1,16 @@ +// 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 +function M=%s_2_hm(s,M) + + //s>M + if size(s,"*")<> 1 then + error(msprintf(_("%s: Wrong type for input argument #%d: A scalar expected.\n"),"%s_2_hm",1)); + end + M("entries")=s>M("entries") +endfunction diff --git a/modules/overloading/macros/%s_3_hm.bin b/modules/overloading/macros/%s_3_hm.bin Binary files differnew file mode 100755 index 000000000..d119705e9 --- /dev/null +++ b/modules/overloading/macros/%s_3_hm.bin diff --git a/modules/overloading/macros/%s_3_hm.sci b/modules/overloading/macros/%s_3_hm.sci new file mode 100755 index 000000000..b633941b9 --- /dev/null +++ b/modules/overloading/macros/%s_3_hm.sci @@ -0,0 +1,16 @@ +// 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 +function M=%s_3_hm(s,M) + + //s<=M + if size(s,"*")<> 1 then + error(msprintf(_("%s: Wrong type for input argument #%d: A scalar expected.\n"),"%s_3_hm",1)); + end + M("entries")=s<=M("entries") +endfunction diff --git a/modules/overloading/macros/%s_4_hm.bin b/modules/overloading/macros/%s_4_hm.bin Binary files differnew file mode 100755 index 000000000..410665b03 --- /dev/null +++ b/modules/overloading/macros/%s_4_hm.bin diff --git a/modules/overloading/macros/%s_4_hm.sci b/modules/overloading/macros/%s_4_hm.sci new file mode 100755 index 000000000..e962cc43d --- /dev/null +++ b/modules/overloading/macros/%s_4_hm.sci @@ -0,0 +1,16 @@ +// 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 +function M=%s_4_hm(s,M) + + //s>=M + if size(s,"*")<> 1 then + error(msprintf(_("%s: Wrong type for input argument #%d: A scalar expected.\n"),"%s_4_hm",1)); + end + M("entries")=s>=M("entries") +endfunction diff --git a/modules/overloading/macros/%s_5.bin b/modules/overloading/macros/%s_5.bin Binary files differnew file mode 100755 index 000000000..e2986cd44 --- /dev/null +++ b/modules/overloading/macros/%s_5.bin diff --git a/modules/overloading/macros/%s_5.sci b/modules/overloading/macros/%s_5.sci new file mode 100755 index 000000000..10ecb1340 --- /dev/null +++ b/modules/overloading/macros/%s_5.sci @@ -0,0 +1,13 @@ +// 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 +function x=%s_5(a) + //implements ~a for a a matrix of numbers + + x=(a==0) +endfunction diff --git a/modules/overloading/macros/%s_a_hm.bin b/modules/overloading/macros/%s_a_hm.bin Binary files differnew file mode 100755 index 000000000..b5115877f --- /dev/null +++ b/modules/overloading/macros/%s_a_hm.bin diff --git a/modules/overloading/macros/%s_a_hm.sci b/modules/overloading/macros/%s_a_hm.sci new file mode 100755 index 000000000..ebe5789d6 --- /dev/null +++ b/modules/overloading/macros/%s_a_hm.sci @@ -0,0 +1,24 @@ +// 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 +function M2=%s_a_hm(M1,M2) + + // hypermatrix + scalar + if and(size(M1)==[1 1]) then + M2.entries=M1+M2.entries + else + dims1=size(M1)'; + dims2=matrix(M2.dims,-1,1) + dims1(3:size(dims2,"*"))=1 + if and(dims1==dims2) then //should not occur + M2.entries=matrix(M1,-1,1)+M2.entries + else + error(8) + end + end +endfunction diff --git a/modules/overloading/macros/%s_a_ip.bin b/modules/overloading/macros/%s_a_ip.bin Binary files differnew file mode 100755 index 000000000..469b7561a --- /dev/null +++ b/modules/overloading/macros/%s_a_ip.bin diff --git a/modules/overloading/macros/%s_a_ip.sci b/modules/overloading/macros/%s_a_ip.sci new file mode 100755 index 000000000..773b56768 --- /dev/null +++ b/modules/overloading/macros/%s_a_ip.sci @@ -0,0 +1,13 @@ +// 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 +function r=%s_a_ip(s,ip) + // s+ip + if size(s,"*")<>1 then error(10),end + r=(s+ip(1)):(s+ip(2)):(s+ip(3)) +endfunction diff --git a/modules/overloading/macros/%s_a_lss.bin b/modules/overloading/macros/%s_a_lss.bin Binary files differnew file mode 100755 index 000000000..9322d0295 --- /dev/null +++ b/modules/overloading/macros/%s_a_lss.bin diff --git a/modules/overloading/macros/%s_a_lss.sci b/modules/overloading/macros/%s_a_lss.sci new file mode 100755 index 000000000..324467d57 --- /dev/null +++ b/modules/overloading/macros/%s_a_lss.sci @@ -0,0 +1,13 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +function s2=%s_a_lss(d1,s2) + // s=d1+s2 + //! + s2(5)=s2(5)+d1 +endfunction diff --git a/modules/overloading/macros/%s_a_r.bin b/modules/overloading/macros/%s_a_r.bin Binary files differnew file mode 100755 index 000000000..805aef3ae --- /dev/null +++ b/modules/overloading/macros/%s_a_r.bin diff --git a/modules/overloading/macros/%s_a_r.sci b/modules/overloading/macros/%s_a_r.sci new file mode 100755 index 000000000..1f0ef1cf4 --- /dev/null +++ b/modules/overloading/macros/%s_a_r.sci @@ -0,0 +1,44 @@ +// 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 +function f=%s_a_r(m,f) + //f= m+f + // author Serge Steer, INRIA + //! + [num,den]=f(["num","den"]) + szf=size(den) + szm=size(m) + + if and(szf>=0)&and(szm>=0) then + if prod(szf)==1&prod(szm)>1 then + den=den(ones(m)) + szf=szm + end + + if size(szf,"*")>2 then + num=num(:);den=den(:);m=m(:) + end + [num,den]=simp(num+m.*den,den) + num=matrix(num,szf) + den=matrix(den,szf) + else + //at leat one matrix is eye*x + if size(szf,"*")>2|size(szm,"*")>2 then + error(8) + end + if or(szf<0)&or(szm<0) then + [num,den]=simp(num+m.*den,den) + elseif or(szf<0) then + [num,den]=simp(num+m.*den,den*ones(m)) + elseif or(szm<0) then + [num,den]=simp(num+(m+0)*eye(den).*den,den) + end + end + f=rlist(num,den,f.dt) +endfunction + diff --git a/modules/overloading/macros/%s_a_sp.bin b/modules/overloading/macros/%s_a_sp.bin Binary files differnew file mode 100755 index 000000000..5d5016826 --- /dev/null +++ b/modules/overloading/macros/%s_a_sp.bin diff --git a/modules/overloading/macros/%s_a_sp.sci b/modules/overloading/macros/%s_a_sp.sci new file mode 100755 index 000000000..4145a6271 --- /dev/null +++ b/modules/overloading/macros/%s_a_sp.sci @@ -0,0 +1,20 @@ +// 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 +function s=%s_a_sp(a,b) + // %s_a_sp - adds a scalar a and a sparse matrix b + //! + + if size(a)==[-1,-1] then + //eye+b + [m,n]=size(b) + s=(0+a)*speye(m,n)+b + else + s=a+full(b) + end +endfunction diff --git a/modules/overloading/macros/%s_and.bin b/modules/overloading/macros/%s_and.bin Binary files differnew file mode 100755 index 000000000..ac1eac223 --- /dev/null +++ b/modules/overloading/macros/%s_and.bin diff --git a/modules/overloading/macros/%s_and.sci b/modules/overloading/macros/%s_and.sci new file mode 100755 index 000000000..9332ab151 --- /dev/null +++ b/modules/overloading/macros/%s_and.sci @@ -0,0 +1,21 @@ +// 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 +function x=%s_and(a,flag) + // or(a) returns the logical OR + // for scalar matrices, an entry is TRUE if it is not zero. + //! + + if argn(2)==1 then flag="*",end + if flag=="*" then + x=find(a==0,1)==[] + else + if a==[] then x=[],return,end + x=sum(bool2s(a),flag)==size(a,flag) + end +endfunction diff --git a/modules/overloading/macros/%s_b_i.bin b/modules/overloading/macros/%s_b_i.bin Binary files differnew file mode 100755 index 000000000..40c8ebfc3 --- /dev/null +++ b/modules/overloading/macros/%s_b_i.bin diff --git a/modules/overloading/macros/%s_b_i.sci b/modules/overloading/macros/%s_b_i.sci new file mode 100755 index 000000000..338fcffc5 --- /dev/null +++ b/modules/overloading/macros/%s_b_i.sci @@ -0,0 +1,24 @@ +// 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 +function r=%s_b_i(varargin) + //a:b where a is double and b int + //a:b:c where a is double, b int and c every type + if round(varargin(1))<>varargin(1) then + error(msprintf(_("%s: Wrong type for input argument #%d: integer values expected.\n"),"%s_b_i",1)); + end + if size(varargin)==2 then //a:b + it=inttype(varargin(2)) + r=iconvert(varargin(1),it):varargin(2) + else + it=inttype(varargin(2)) + r=iconvert(varargin(1),it):varargin(2):iconvert(varargin(3),it) + end +endfunction + + diff --git a/modules/overloading/macros/%s_b_s.bin b/modules/overloading/macros/%s_b_s.bin Binary files differnew file mode 100755 index 000000000..53363cd0b --- /dev/null +++ b/modules/overloading/macros/%s_b_s.bin diff --git a/modules/overloading/macros/%s_b_s.sci b/modules/overloading/macros/%s_b_s.sci new file mode 100755 index 000000000..9fc4226c9 --- /dev/null +++ b/modules/overloading/macros/%s_b_s.sci @@ -0,0 +1,23 @@ +// 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 +function r=%s_b_s(varargin) + //a:b:c where a and b are double + if round(varargin(1))<>varargin(1)|round(varargin(2))<>varargin(2) then + error(msprintf(_("%s: Wrong type for input arguments #%d and #%d: Integer values expected.\n"),"%s_b_s",1,2)); + end + select type(varargin(3)) + case 8 then + it=inttype(varargin(3)) + r=iconvert(varargin(1),it):iconvert(varargin(2),it):varargin(3) + else + error(msprintf(_("%s: Not yet implemented.\n"),"%s_b_s")); + end +endfunction + + diff --git a/modules/overloading/macros/%s_c_cblock.bin b/modules/overloading/macros/%s_c_cblock.bin Binary files differnew file mode 100755 index 000000000..7c61347b6 --- /dev/null +++ b/modules/overloading/macros/%s_c_cblock.bin diff --git a/modules/overloading/macros/%s_c_cblock.sci b/modules/overloading/macros/%s_c_cblock.sci new file mode 100755 index 000000000..a3f8c4268 --- /dev/null +++ b/modules/overloading/macros/%s_c_cblock.sci @@ -0,0 +1,21 @@ +// 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 + +function b=%s_c_cblock(a,b) + if a==[] then return,end + v2=getfield(2,b) + + if size(a,1)<>size(v2,1) then error(5),end + if type(a)==type(v2) then + setfield(2,[a v2],b) + else + setfield(0,"cblock",b) + setfield(2,a,b); + end +endfunction diff --git a/modules/overloading/macros/%s_c_lss.bin b/modules/overloading/macros/%s_c_lss.bin Binary files differnew file mode 100755 index 000000000..59a010db2 --- /dev/null +++ b/modules/overloading/macros/%s_c_lss.bin diff --git a/modules/overloading/macros/%s_c_lss.sci b/modules/overloading/macros/%s_c_lss.sci new file mode 100755 index 000000000..6c5cd50e5 --- /dev/null +++ b/modules/overloading/macros/%s_c_lss.sci @@ -0,0 +1,20 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function s=%s_c_lss(d1,s2) + // s=[d1,s2] d1 gain, s2 state-space + //! + // origin s. steer inria 1987 + // + // Copyright INRIA + [a2,b2,c2,d2,x2,dom2]=s2(2:7) + [n2,m2]=size(b2);[p1,m1]=size(d1) + s=tlist(["lss","A","B","C","D","X0","dt"],a2,[0*ones(n2,m1),b2],c2,.. + [d1,d2],x2,dom2) +endfunction diff --git a/modules/overloading/macros/%s_c_r.bin b/modules/overloading/macros/%s_c_r.bin Binary files differnew file mode 100755 index 000000000..ef390d586 --- /dev/null +++ b/modules/overloading/macros/%s_c_r.bin diff --git a/modules/overloading/macros/%s_c_r.sci b/modules/overloading/macros/%s_c_r.sci new file mode 100755 index 000000000..3d9798641 --- /dev/null +++ b/modules/overloading/macros/%s_c_r.sci @@ -0,0 +1,15 @@ +// 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 + +function f=%s_c_r(m,f) + // %s_c_r(M,r)=[M,r] + //! + + f=rlist([m,f("num")],[ones(m),f("den")],f("dt")) +endfunction diff --git a/modules/overloading/macros/%s_c_sp.bin b/modules/overloading/macros/%s_c_sp.bin Binary files differnew file mode 100755 index 000000000..9089a865a --- /dev/null +++ b/modules/overloading/macros/%s_c_sp.bin diff --git a/modules/overloading/macros/%s_c_sp.sci b/modules/overloading/macros/%s_c_sp.sci new file mode 100755 index 000000000..732097a16 --- /dev/null +++ b/modules/overloading/macros/%s_c_sp.sci @@ -0,0 +1,13 @@ +// 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 + +function a=%s_c_sp(a,b) + // [a b] a sparse b full + a=[sparse(a),b] +endfunction diff --git a/modules/overloading/macros/%s_d_p.bin b/modules/overloading/macros/%s_d_p.bin Binary files differnew file mode 100755 index 000000000..a72df7437 --- /dev/null +++ b/modules/overloading/macros/%s_d_p.bin diff --git a/modules/overloading/macros/%s_d_p.sci b/modules/overloading/macros/%s_d_p.sci new file mode 100755 index 000000000..07c318d9e --- /dev/null +++ b/modules/overloading/macros/%s_d_p.sci @@ -0,0 +1,20 @@ +// 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 + +function f=%s_d_p(p1,p2) + // %s_d_p(M,p)=M.*p + //! + + if size(p1,"*")==1 then + p1=p1*ones(p2) + elseif size(p2,"*")==1 then + p2=p2*ones(p1) + end + f=rlist(p1*poly(1,varn(p2),"c"),p2,[]) +endfunction diff --git a/modules/overloading/macros/%s_d_r.bin b/modules/overloading/macros/%s_d_r.bin Binary files differnew file mode 100755 index 000000000..b5a5a0cbb --- /dev/null +++ b/modules/overloading/macros/%s_d_r.bin diff --git a/modules/overloading/macros/%s_d_r.sci b/modules/overloading/macros/%s_d_r.sci new file mode 100755 index 000000000..3c65cca8d --- /dev/null +++ b/modules/overloading/macros/%s_d_r.sci @@ -0,0 +1,16 @@ +// 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 + +function f=%s_d_r(n1,f2) + // n1./f2 + //! + + if size(n1,"*")==0 then f=[],return,end + f=rlist(n1.*f2("den"),ones(n1).*f2("num"),f2("dt")) +endfunction diff --git a/modules/overloading/macros/%s_d_sp.bin b/modules/overloading/macros/%s_d_sp.bin Binary files differnew file mode 100755 index 000000000..2dd6b3d28 --- /dev/null +++ b/modules/overloading/macros/%s_d_sp.bin diff --git a/modules/overloading/macros/%s_d_sp.sci b/modules/overloading/macros/%s_d_sp.sci new file mode 100755 index 000000000..b3a512db7 --- /dev/null +++ b/modules/overloading/macros/%s_d_sp.sci @@ -0,0 +1,19 @@ +// 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 + +function r=%s_d_sp(a,b) + //r=a./b + + [ij,v,mn]=spget(b) + if size(v,"*")<>mn(1)*mn(2) then + error(27) + else + r=a./full(b) + end +endfunction diff --git a/modules/overloading/macros/%s_e.bin b/modules/overloading/macros/%s_e.bin Binary files differnew file mode 100755 index 000000000..cb4528ba2 --- /dev/null +++ b/modules/overloading/macros/%s_e.bin diff --git a/modules/overloading/macros/%s_e.sci b/modules/overloading/macros/%s_e.sci new file mode 100755 index 000000000..4b09fffd5 --- /dev/null +++ b/modules/overloading/macros/%s_e.sci @@ -0,0 +1,33 @@ +// 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 + +function f=%s_e(varargin) + //A(i,j,k,..) + + rhs=size(varargin) + M=varargin(rhs) + + nind=rhs-1 + dims=[] + for k=3:nind + ind=varargin(k) + if type(ind)==2|type(ind)==129 then ind=horner(ind,1),end + if type(ind)==4 then ind=find(ind),end + if or(ind<>1) then error(21),end + n=size(ind,"*") + dims=[dims,n] + end + f=M(varargin(1:min(2,rhs-1))) + k=find(dims>1) + if k<>[] then + dims(k($)+1:$)=[] + N=prod(dims) + f=mlist(["hm","dims","entries"],int32([size(f) dims]),ones(N,1).*.f(:)) + end +endfunction diff --git a/modules/overloading/macros/%s_f_cblock.bin b/modules/overloading/macros/%s_f_cblock.bin Binary files differnew file mode 100755 index 000000000..c9cee879e --- /dev/null +++ b/modules/overloading/macros/%s_f_cblock.bin diff --git a/modules/overloading/macros/%s_f_cblock.sci b/modules/overloading/macros/%s_f_cblock.sci new file mode 100755 index 000000000..199870034 --- /dev/null +++ b/modules/overloading/macros/%s_f_cblock.sci @@ -0,0 +1,12 @@ +// 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 + +function b=%s_f_cblock(a,b) + if a<>[] then error(44,1),end +endfunction diff --git a/modules/overloading/macros/%s_f_lss.bin b/modules/overloading/macros/%s_f_lss.bin Binary files differnew file mode 100755 index 000000000..2c521b0d6 --- /dev/null +++ b/modules/overloading/macros/%s_f_lss.bin diff --git a/modules/overloading/macros/%s_f_lss.sci b/modules/overloading/macros/%s_f_lss.sci new file mode 100755 index 000000000..a80f12d00 --- /dev/null +++ b/modules/overloading/macros/%s_f_lss.sci @@ -0,0 +1,17 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function s=%s_f_lss(d1,s2) + //s=%s_f_lss(d1,s2) <=> s=[d1,s2] + //! + [a2,b2,c2,d2,x2,dom2]=s2(2:7) + [n2,m2]=size(c2);[p1,m1]=size(d1) + s=tlist(["lss","A","B","C","D","X0","dt"],a2,b2,[0*ones(p1,m2);c2],.. + [d1;d2],x2,dom2) +endfunction diff --git a/modules/overloading/macros/%s_f_r.bin b/modules/overloading/macros/%s_f_r.bin Binary files differnew file mode 100755 index 000000000..f4a70a394 --- /dev/null +++ b/modules/overloading/macros/%s_f_r.bin diff --git a/modules/overloading/macros/%s_f_r.sci b/modules/overloading/macros/%s_f_r.sci new file mode 100755 index 000000000..23c2f9599 --- /dev/null +++ b/modules/overloading/macros/%s_f_r.sci @@ -0,0 +1,15 @@ +// 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 + +function f=%s_f_r(m,f) + // [m;f] + //! + + f=rlist([m;f("num")],[ones(m);f("den")],f("dt")) +endfunction diff --git a/modules/overloading/macros/%s_f_sp.bin b/modules/overloading/macros/%s_f_sp.bin Binary files differnew file mode 100755 index 000000000..75b99de0d --- /dev/null +++ b/modules/overloading/macros/%s_f_sp.bin diff --git a/modules/overloading/macros/%s_f_sp.sci b/modules/overloading/macros/%s_f_sp.sci new file mode 100755 index 000000000..d25acfdce --- /dev/null +++ b/modules/overloading/macros/%s_f_sp.sci @@ -0,0 +1,14 @@ +// 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 + +function a=%s_f_sp(a,b) + // [a;b] a sparse b full + + a=[sparse(a);b] +endfunction diff --git a/modules/overloading/macros/%s_g_b.bin b/modules/overloading/macros/%s_g_b.bin Binary files differnew file mode 100755 index 000000000..c1120fc5d --- /dev/null +++ b/modules/overloading/macros/%s_g_b.bin diff --git a/modules/overloading/macros/%s_g_b.sci b/modules/overloading/macros/%s_g_b.sci new file mode 100755 index 000000000..b9fc13630 --- /dev/null +++ b/modules/overloading/macros/%s_g_b.sci @@ -0,0 +1,14 @@ +// 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 + +function r=%s_g_b(a,b) + // r=a|b + + r=(a<>0)|b +endfunction diff --git a/modules/overloading/macros/%s_g_s.bin b/modules/overloading/macros/%s_g_s.bin Binary files differnew file mode 100755 index 000000000..8b20f1b76 --- /dev/null +++ b/modules/overloading/macros/%s_g_s.bin diff --git a/modules/overloading/macros/%s_g_s.sci b/modules/overloading/macros/%s_g_s.sci new file mode 100755 index 000000000..40193568f --- /dev/null +++ b/modules/overloading/macros/%s_g_s.sci @@ -0,0 +1,18 @@ +// 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 + +function r=%s_g_s(a,b) + //computes a|b for a and b matrices of scalar + + if a==[]|b==[] then + r=[] + else + r=(a<>0)|(b<>0) + end +endfunction diff --git a/modules/overloading/macros/%s_h_b.bin b/modules/overloading/macros/%s_h_b.bin Binary files differnew file mode 100755 index 000000000..2ae2613f2 --- /dev/null +++ b/modules/overloading/macros/%s_h_b.bin diff --git a/modules/overloading/macros/%s_h_b.sci b/modules/overloading/macros/%s_h_b.sci new file mode 100755 index 000000000..f78644401 --- /dev/null +++ b/modules/overloading/macros/%s_h_b.sci @@ -0,0 +1,13 @@ +// 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 + +function r=%s_h_b(a,b) + // r=a&b + r=(a<>0)&b +endfunction diff --git a/modules/overloading/macros/%s_h_s.bin b/modules/overloading/macros/%s_h_s.bin Binary files differnew file mode 100755 index 000000000..80abcb374 --- /dev/null +++ b/modules/overloading/macros/%s_h_s.bin diff --git a/modules/overloading/macros/%s_h_s.sci b/modules/overloading/macros/%s_h_s.sci new file mode 100755 index 000000000..cf21115f6 --- /dev/null +++ b/modules/overloading/macros/%s_h_s.sci @@ -0,0 +1,17 @@ +// 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 + +function r=%s_h_s(a,b) + //computes a&b for a and b matrices of scalar + if a==[]|b==[] then + r=[] + else + r=(a<>0)&(b<>0) + end +endfunction diff --git a/modules/overloading/macros/%s_i_b.bin b/modules/overloading/macros/%s_i_b.bin Binary files differnew file mode 100755 index 000000000..92afecb76 --- /dev/null +++ b/modules/overloading/macros/%s_i_b.bin diff --git a/modules/overloading/macros/%s_i_b.sci b/modules/overloading/macros/%s_i_b.sci new file mode 100755 index 000000000..71c7f8f90 --- /dev/null +++ b/modules/overloading/macros/%s_i_b.sci @@ -0,0 +1,23 @@ +// 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 + +function M=%s_i_b(varargin) + + rhs=argn(2) + M=varargin($) + if rhs<=4 then //type conversion + M=bool2s(M) + M(varargin(1:$-2))=varargin($-1) + else //hypermatrix syntax + if varargin($-1)<>[] then M=bool2s(M),end + M=mlist(["hm","dims","entries"],int32(size(M)),M(:)) + varargin($)=M; + M=generic_i_hm(0,varargin(:)) + end +endfunction diff --git a/modules/overloading/macros/%s_i_c.bin b/modules/overloading/macros/%s_i_c.bin Binary files differnew file mode 100755 index 000000000..3ac503685 --- /dev/null +++ b/modules/overloading/macros/%s_i_c.bin diff --git a/modules/overloading/macros/%s_i_c.sci b/modules/overloading/macros/%s_i_c.sci new file mode 100755 index 000000000..839c2497d --- /dev/null +++ b/modules/overloading/macros/%s_i_c.sci @@ -0,0 +1,25 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function M=%s_i_c(varargin) + //insertion of a matrix of numbers in a matrix of of string + + + rhs=argn(2) + M=varargin($) + if rhs<=4 then //type conversion + error(43) + else //hypermatrix syntax + if varargin($-1)<>[] then error(43),end + M=mlist(["hm","dims","entries"],int32(size(M)),M(:)) + varargin($)=M; + M=generic_i_hm("",varargin(:)) + end +endfunction + diff --git a/modules/overloading/macros/%s_i_ce.bin b/modules/overloading/macros/%s_i_ce.bin Binary files differnew file mode 100755 index 000000000..c7693c5dd --- /dev/null +++ b/modules/overloading/macros/%s_i_ce.bin diff --git a/modules/overloading/macros/%s_i_ce.sci b/modules/overloading/macros/%s_i_ce.sci new file mode 100755 index 000000000..93002ee68 --- /dev/null +++ b/modules/overloading/macros/%s_i_ce.sci @@ -0,0 +1,16 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - Vincent Couvert +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should 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=%s_i_ce(varargin) + // Insertion of a double matrix in a cell + M=generic_i_ce(varargin(:)) +endfunction + + + diff --git a/modules/overloading/macros/%s_i_h.bin b/modules/overloading/macros/%s_i_h.bin Binary files differnew file mode 100755 index 000000000..0c23b02b0 --- /dev/null +++ b/modules/overloading/macros/%s_i_h.bin diff --git a/modules/overloading/macros/%s_i_h.sci b/modules/overloading/macros/%s_i_h.sci new file mode 100755 index 000000000..35706fe71 --- /dev/null +++ b/modules/overloading/macros/%s_i_h.sci @@ -0,0 +1,14 @@ +// 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 + +function h=%s_i_h(i,v,h) + h=generic_i_h(i,v,h) +endfunction + + diff --git a/modules/overloading/macros/%s_i_hm.bin b/modules/overloading/macros/%s_i_hm.bin Binary files differnew file mode 100755 index 000000000..c7a5e4f9c --- /dev/null +++ b/modules/overloading/macros/%s_i_hm.bin diff --git a/modules/overloading/macros/%s_i_hm.sci b/modules/overloading/macros/%s_i_hm.sci new file mode 100755 index 000000000..0a3646543 --- /dev/null +++ b/modules/overloading/macros/%s_i_hm.sci @@ -0,0 +1,32 @@ +// 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 + +function M=%s_i_hm(varargin) + + //insertion of a matrix of float in an hypermatrix + M=varargin($) + select type(M.entries) + case 1 then //destination is an hypermat of double + M=generic_i_hm(0,varargin(:)) + case 2 then //destination is an hypermat of polynomials + M=generic_i_hm(0,varargin(:)) + case 4 then //destination is an hypermat of boolean + N=varargin($-1) + if N<>[] then N=N<>0,end + M=generic_i_hm(%f,varargin(1:$-2),N,M) + case 8 then //destination is an hypermat of integer + it=inttype(M.entries) + z=iconvert(0,it) + N=varargin($-1) + if N<>[] then N=iconvert(N,it),end + M=generic_i_hm(z,varargin(1:$-2),N,M) + else + M=generic_i_hm(0,varargin(:)) + end +endfunction diff --git a/modules/overloading/macros/%s_i_lss.bin b/modules/overloading/macros/%s_i_lss.bin Binary files differnew file mode 100755 index 000000000..203f5fe8a --- /dev/null +++ b/modules/overloading/macros/%s_i_lss.bin diff --git a/modules/overloading/macros/%s_i_lss.sci b/modules/overloading/macros/%s_i_lss.sci new file mode 100755 index 000000000..1d5c5811f --- /dev/null +++ b/modules/overloading/macros/%s_i_lss.sci @@ -0,0 +1,61 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function s2=%s_i_lss(i,j,s1,s2) + // s2(i,j)=s1 + //! + if type(i)==10 then // sl('A'),sl('B'),sl('C'),sl('D'),sl('X'),sl('dt') + [lhs,rhs]=argn(0) + if rhs<>3 then error(21),end + nams=["A","B","C","D","X","dt"] + kf=find(convstr(i,"u")==nams) + if kf==[] then error(21),end + s2=s1;kf=kf+1 + if size(s2(kf))<>size(j) then + if kf<>7|prod(size(j))>1 then + warning("inserted element "+i+" has inconsistent dimension") + end + end + s2(kf)=j + return + end + if s1==[] then // insertion d'une matrice vide + row=%f + col=%f + [m,n]=size(s2) + if and(size(i)==[-1 -1]) then + row=%t + else + if and(i(:)==(1:m)') then row=%t,end + end + if and(size(j)==[-1 -1]) then + col=%t + else + if and(j(:)==(1:n)') then col=%t,end + end + if ~row&~col then error("inserting [] in submatrix --> forbidden!"),end + if row&col then s2=[],return,end + if row then + j1=[] + for jj=1:n + if ~or(jj==j) then j1=[j1 jj] ,end + end + s2=s2(:,j1) + else + i1=[] + for ii=1:m + if ~or(ii==i) then i1=[i1 ii] ,end + end + s2=s2(i1,:) + end + else + s1=tlist(["lss","A","B","C","D","X0","dt"],[],[],[],s1,[],[]) + s2(i,j)=s1 + end +endfunction diff --git a/modules/overloading/macros/%s_i_p.bin b/modules/overloading/macros/%s_i_p.bin Binary files differnew file mode 100755 index 000000000..f5e989656 --- /dev/null +++ b/modules/overloading/macros/%s_i_p.bin diff --git a/modules/overloading/macros/%s_i_p.sci b/modules/overloading/macros/%s_i_p.sci new file mode 100755 index 000000000..0904c56f7 --- /dev/null +++ b/modules/overloading/macros/%s_i_p.sci @@ -0,0 +1,16 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function M=%s_i_p(varargin) + //insertion of an polynomial matrix in an matrix of numbers for more than 2 indices + M=varargin($) + M=mlist(["hm","dims","entries"],int32(size(M)),M(:)) + varargin($)=M; + M=generic_i_hm(0,varargin(:)) +endfunction diff --git a/modules/overloading/macros/%s_i_r.bin b/modules/overloading/macros/%s_i_r.bin Binary files differnew file mode 100755 index 000000000..0d9d58f99 --- /dev/null +++ b/modules/overloading/macros/%s_i_r.bin diff --git a/modules/overloading/macros/%s_i_r.sci b/modules/overloading/macros/%s_i_r.sci new file mode 100755 index 000000000..4d7510624 --- /dev/null +++ b/modules/overloading/macros/%s_i_r.sci @@ -0,0 +1,29 @@ +// 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 + +function s2=%s_i_r(varargin) + //author Serge Steer INRIA + s1=varargin($-1) + s2=varargin($) + //s2(i,j)=s1 s1 matrix of scalar + if s1==[] then + num=s2.num;den=s2.den; + num(varargin(1:$-2))=[]; + den(varargin(1:$-2))=[]; + s2=rlist(num,den,s2.dt) + else + num=s2.num; + ind=list(); for i=size(num),ind($+1)=1:i;end + num(varargin(1:$-2))=s1 + den=ones(num) + den(ind(:))=s2.den; + den(varargin(1:$-2))=1 + s2=rlist(num,den,s2.dt) + end +endfunction diff --git a/modules/overloading/macros/%s_i_s.bin b/modules/overloading/macros/%s_i_s.bin Binary files differnew file mode 100755 index 000000000..6665972b7 --- /dev/null +++ b/modules/overloading/macros/%s_i_s.bin diff --git a/modules/overloading/macros/%s_i_s.sci b/modules/overloading/macros/%s_i_s.sci new file mode 100755 index 000000000..f6e27248d --- /dev/null +++ b/modules/overloading/macros/%s_i_s.sci @@ -0,0 +1,164 @@ +// 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 + +function M=%s_i_s(varargin) + + //insertion of a matrix in an hypermatrix + [lhs,rhs]=argn(0) + M=varargin(rhs) + N=varargin(rhs-1)//inserted matrix + + index=varargin(1) // + if rhs==3 then + //result will be a cell a struct + if type(index)==10 then //M.x=N or M.entries=N + M=struct() + M(index)=N + if index=="entries" then //M.entries=N + + // change struct to cell + f=getfield(1,M);f(1)="ce" + setfield(1,f,M) + end + return + elseif type(index)==15 then + //M(i).x=N or M(i,j,..).x=N or M.x(i,j,..)or M(i,j..) + //check for a name in the index list + isstr=%f; for ii=index,if type(ii)==10 then isstr=%t,break,end,end + if isstr then + M=createstruct(index,N) + if type(index(1))<>10 & index(2)=="entries" then + // change struct to cell + f=getfield(1,M);f(1)="ce" + setfield(1,f,M) + end + else + M(index(:))=N + end + return + end + end + + //X(i,j,k)=n hypermatrix + dims=matrix(size(M),-1,1) + v=M(:) + + Ndims=rhs-2 + nd=size(dims,"*") + if Ndims>nd then dims(nd+1:Ndims)=0;end + del=N==[];count=[] + dims1=[] + I=0;I1=0 + iimp=0 + for k=Ndims:-1:1 + ik=varargin(k)//the kth subscript + if type(ik)==2 |type(ik)==129 then // size implicit subscript $... + ik=round(horner(ik,dims(k))) // explicit subscript + dims1(k,1)=max(max(ik),dims(k)) + elseif type(ik)==4 then // boolean subscript + ik=find(ik) + dims1(k,1)=max(max(ik),dims(k)) + elseif min(size(ik))<0 then // : + if dims(k)<>0 then + ik=1:dims(k) + else + iimp=iimp+1 + + if iimp<=size(size(N),"*") then + + if iimp==1 then + single=%t + for kk=1:k-1 + if size(varargin(kk),1)==-1|size(varargin(kk),"*")>1 then + single=%f + break + end + end + if single then + ik=1:size(N,"*"), + else + ik=1:size(N,size(size(N),"*")+1-iimp) + end + else + ik=1:size(N,size(size(N),"*")+1-iimp) + end + else + ik=1 + end + end + dims1(k,1)=max(max(ik),dims(k)) + if k==Ndims then + if k<nd then + ik=1:prod(dims(k:$)) + dims1(k:nd,1)=dims(k:nd) + end + end + else //floating point subscript + ik=round(ik) + dims1(k,1)=max(max(ik),dims(k)) + end + + + if size(ik,"*")>1 then + ik=ik(:) + if size(I,"*")>1 then + I=(dims1(k)*I).*.ones(ik)+ones(I).*.(ik-1) + else + I=dims1(k)*I+ik-1 + end + else + I=dims1(k)*I+ik-1 + end + if del then + if or(ik<>(1:dims1(k))') then + count=[count k] + nk=size(ik,"*") + end + end + end //end of the loop on subscripts + + if ~del&or(dims1>dims) then + I1=0 + for k=size(dims1,"*"):-1:1 + ik1=(1:dims(k))' + if ik1<>[] then + if dims1(k)>1 then + if size(I1,"*")>1 then + I1=(dims1(k)*I1).*.ones(ik1)+ones(I1).*.(ik1-1) + else + I1=dims1(k)*I1+ik1-1 + end + else + I1=dims1(k)*I1+ik1-1 + end + end + end + v1=zeros(prod(dims1),1) + v1(I1+1)=v;v=v1 + end + v(I+1)=matrix(N,-1,1) + if del then + if size(count,"*")>1 then + error(msprintf(_("%s: A null assignment can have only one non-colon index.\n"),"%s_i_s")); + end + dims1(count)=dims1(count)-nk + end + + while dims1($)==1 then dims1($)=[],end + select size(dims1,"*") + case 0 + M=v + case 1 + M=v + case 2 + M=matrix(v,dims1(1),dims1(2)) + else + M=mlist(["hm","dims","entries"],int32(matrix(dims1,1,-1)),v) + end +endfunction diff --git a/modules/overloading/macros/%s_i_sp.bin b/modules/overloading/macros/%s_i_sp.bin Binary files differnew file mode 100755 index 000000000..8edeb1ff5 --- /dev/null +++ b/modules/overloading/macros/%s_i_sp.bin diff --git a/modules/overloading/macros/%s_i_sp.sci b/modules/overloading/macros/%s_i_sp.sci new file mode 100755 index 000000000..f38e3e909 --- /dev/null +++ b/modules/overloading/macros/%s_i_sp.sci @@ -0,0 +1,21 @@ +// 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 + +function a=%s_i_sp(i,j,b,a) + + [lhs,rhs]=argn(0) + if rhs==3 then + a=b; + b=j; + [m,n]=size(a) + a=a(:) + a(i)=b(:) + a=matrix(a,m,n) + end +endfunction diff --git a/modules/overloading/macros/%s_i_spb.bin b/modules/overloading/macros/%s_i_spb.bin Binary files differnew file mode 100755 index 000000000..e1a447a3d --- /dev/null +++ b/modules/overloading/macros/%s_i_spb.bin diff --git a/modules/overloading/macros/%s_i_spb.sci b/modules/overloading/macros/%s_i_spb.sci new file mode 100755 index 000000000..be9db324a --- /dev/null +++ b/modules/overloading/macros/%s_i_spb.sci @@ -0,0 +1,24 @@ +// 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 + +function M=%s_i_spb(varargin) + + [lhs,rhs]=argn(0) + M=bool2s(varargin(rhs)) + N=varargin(rhs-1)//inserted matrix + if rhs<=4 then + if rhs==3 then + M(varargin(1))=N + else + M(varargin(1),varargin(2))=N + end + return + end + +endfunction diff --git a/modules/overloading/macros/%s_i_st.bin b/modules/overloading/macros/%s_i_st.bin Binary files differnew file mode 100755 index 000000000..82901c75e --- /dev/null +++ b/modules/overloading/macros/%s_i_st.bin diff --git a/modules/overloading/macros/%s_i_st.sci b/modules/overloading/macros/%s_i_st.sci new file mode 100755 index 000000000..ce9bd7f2a --- /dev/null +++ b/modules/overloading/macros/%s_i_st.sci @@ -0,0 +1,95 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2010 - INRIA - Serge Steer <serge.steer@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 + +function out=%s_i_st(varargin) + + // - Modified by Vincent COUVERT (16/08/2004) so that insertion of an empty matrix + // is understood as an element deletion + // Only one non-colon index can be used + // - Modified by Serge Steer INRIA (04/05/2010) to fix problems in element + // deletion part + + if size(varargin)>=3 & isempty(varargin($-1)) & .. + and(type(varargin(1))<>[10 15]) then + // st(i,:)=[] or st(:,j)=[] or st(i)=[] or st(:,j,:,:)=[] + //remove the substruct + out=varargin($); + dims=double(out.dims); + + // Make the dimensions and the indices fit + Ndims=size(dims,"*") + nindex=size(varargin)-2 + if nindex>Ndims then + //index in excess must be equal to 1 or to : + for k=Ndims+1:nindex + i=varargin(k) + if size(i,"*")>1|(i<>1&i<>eye()) then + error(msprintf(_("%s: A null assignment can have only one non-colon index.\n"),"%s_i_st")); + end + end + nindex=Ndims + elseif nindex<Ndims then + //collapse dimensions in excess + dims=[dims(1:nindex-1) prod(dims(nindex:$))] + Ndims=nindex; + if size(dims,"*")==1 then dims=[dims 1],end + end + + // Check the compatibility of the index (at most one index cannot span + // all the elements ot the associated struct dimension) + cj=[]; + for k=1:nindex + ind=varargin(k) + if or(size(ind)<>[-1 -1]) then + if or(type(ind)==[2,129]) then // size implicit index ($ based) + ind=horner(ind,dims(k)); + end + ind=floor(ind); + //check if index is valid + if ~isreal(ind)|or(ind<=0) then + error(21) + end + //remove indices that exceed the associated struct dimension + ind(ind>dims(k))=[]; + //compute the complement with respect to the associated dimension of st + ind=setdiff(1:dims(k),ind) + if ind<>[]&cj==[] then + cj=ind + loc=k, + else + error(msprintf(_("%s: A null assignment can have only one non-colon index.\n"),"%s_i_st")); + end + end + end + + // Generate the result + if cj==[] then //st(:,:)=[] --> empty struct + Fout=getfield(1,out) + Fout=Fout(3:$) + for f=Fout + out(f)=list() + end + out.dims=int32([0 0]) + else + //replace st(:,j,:,:)=[] by st=st(:,cj,:,:) where cj is the + //complement of j with respect to the associated dimension of st + out.dims=int32(dims) + varargin(loc)=cj + out=out(varargin(1:Ndims)) + end + + elseif lstsize(varargin)==3 & type(varargin(1))==10 then // out.i=in + i=varargin(1); + in=varargin(2); + out=varargin(3); + out=generic_i_st(i,in,out) + else + error(msprintf(_("%s: Not yet implemented.\n"),"%s_i_st")); + end +endfunction diff --git a/modules/overloading/macros/%s_k_hm.bin b/modules/overloading/macros/%s_k_hm.bin Binary files differnew file mode 100755 index 000000000..1c5887d99 --- /dev/null +++ b/modules/overloading/macros/%s_k_hm.bin diff --git a/modules/overloading/macros/%s_k_hm.sci b/modules/overloading/macros/%s_k_hm.sci new file mode 100755 index 000000000..16c02fb62 --- /dev/null +++ b/modules/overloading/macros/%s_k_hm.sci @@ -0,0 +1,12 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2014 - Samuel GOUGEON +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function r = %s_k_hm(a, b) + r = %hmS_k_hmS_generic(a, b) +endfunction diff --git a/modules/overloading/macros/%s_k_p.bin b/modules/overloading/macros/%s_k_p.bin Binary files differnew file mode 100755 index 000000000..066ad7442 --- /dev/null +++ b/modules/overloading/macros/%s_k_p.bin diff --git a/modules/overloading/macros/%s_k_p.sci b/modules/overloading/macros/%s_k_p.sci new file mode 100755 index 000000000..0b70ed68f --- /dev/null +++ b/modules/overloading/macros/%s_k_p.sci @@ -0,0 +1,24 @@ +// 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 + +function r=%s_k_p(a,b) + // a.*.b + [ma,na]=size(a) + [mb,nb]=size(b) + r=zeros(ma*mb,na*nb) + k=0 + for j=1:na + l=0 + for i=1:ma + r(l+(1:mb),k+(1:nb))=a(i,j)*b + l=l+mb + end + k=k+nb + end +endfunction diff --git a/modules/overloading/macros/%s_k_r.bin b/modules/overloading/macros/%s_k_r.bin Binary files differnew file mode 100755 index 000000000..de08e16c4 --- /dev/null +++ b/modules/overloading/macros/%s_k_r.bin diff --git a/modules/overloading/macros/%s_k_r.sci b/modules/overloading/macros/%s_k_r.sci new file mode 100755 index 000000000..c2d99ae2b --- /dev/null +++ b/modules/overloading/macros/%s_k_r.sci @@ -0,0 +1,25 @@ +// 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 + +function r=%s_k_r(a,b) + // a.*.b + + [ma,na]=size(a) + [mb,nb]=size(b) + r=zeros(ma*mb,na*nb) + k=0 + for j=1:na + l=0 + for i=1:ma + r(l+(1:mb),k+(1:nb))=a(i,j)*b + l=l+mb + end + k=k+nb + end +endfunction diff --git a/modules/overloading/macros/%s_k_sp.bin b/modules/overloading/macros/%s_k_sp.bin Binary files differnew file mode 100755 index 000000000..275b5b595 --- /dev/null +++ b/modules/overloading/macros/%s_k_sp.bin diff --git a/modules/overloading/macros/%s_k_sp.sci b/modules/overloading/macros/%s_k_sp.sci new file mode 100755 index 000000000..dd846e499 --- /dev/null +++ b/modules/overloading/macros/%s_k_sp.sci @@ -0,0 +1,15 @@ +// 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 + +function r=%s_k_sp(a,b) + // a.*.b with a full b sparse + + if a==[] then r=[],return,end + r=sparse(a).*.b +endfunction diff --git a/modules/overloading/macros/%s_l_hm.bin b/modules/overloading/macros/%s_l_hm.bin Binary files differnew file mode 100755 index 000000000..0a514ae70 --- /dev/null +++ b/modules/overloading/macros/%s_l_hm.bin diff --git a/modules/overloading/macros/%s_l_hm.sci b/modules/overloading/macros/%s_l_hm.sci new file mode 100755 index 000000000..815109c0a --- /dev/null +++ b/modules/overloading/macros/%s_l_hm.sci @@ -0,0 +1,17 @@ +// 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 + +function M2=%s_l_hm(M1,M2) + + if size(M1,"*")<>1 then + M2=hypermat(size(M1),M1)\M2 + else + M2.entries=M1\M2.entries + end +endfunction diff --git a/modules/overloading/macros/%s_l_lss.bin b/modules/overloading/macros/%s_l_lss.bin Binary files differnew file mode 100755 index 000000000..3dd43335c --- /dev/null +++ b/modules/overloading/macros/%s_l_lss.bin diff --git a/modules/overloading/macros/%s_l_lss.sci b/modules/overloading/macros/%s_l_lss.sci new file mode 100755 index 000000000..3727b044e --- /dev/null +++ b/modules/overloading/macros/%s_l_lss.sci @@ -0,0 +1,15 @@ +// 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 + +function s=%s_l_lss(s1,s2) + // + //! + + s=inv(s1)*s2 +endfunction diff --git a/modules/overloading/macros/%s_l_p.bin b/modules/overloading/macros/%s_l_p.bin Binary files differnew file mode 100755 index 000000000..232352f30 --- /dev/null +++ b/modules/overloading/macros/%s_l_p.bin diff --git a/modules/overloading/macros/%s_l_p.sci b/modules/overloading/macros/%s_l_p.sci new file mode 100755 index 000000000..ec94bcc84 --- /dev/null +++ b/modules/overloading/macros/%s_l_p.sci @@ -0,0 +1,25 @@ +// 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 + +function f=%s_l_p(m,p) + // m\p with p matrix of polynomials m matrix of scalar + //! + + [l,c]=size(m) + [mp,np]=size(p); + if l==c then + f=inv(m)*p + else + s=poly(0,varn(p)) + f=m\coeff(p,0) + for k=1:max(degree(p)) + f=f+(m\coeff(p,k))*(s^k) + end + end +endfunction diff --git a/modules/overloading/macros/%s_l_r.bin b/modules/overloading/macros/%s_l_r.bin Binary files differnew file mode 100755 index 000000000..d7b0465ba --- /dev/null +++ b/modules/overloading/macros/%s_l_r.bin diff --git a/modules/overloading/macros/%s_l_r.sci b/modules/overloading/macros/%s_l_r.sci new file mode 100755 index 000000000..c1b00a0a6 --- /dev/null +++ b/modules/overloading/macros/%s_l_r.sci @@ -0,0 +1,33 @@ +// 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 + +function b=%s_l_r(a,b) + // a\b a scalar matrix, b rational matrix + //! + if size(a,"*")==0 then b=[],return,end + if size(a,1)==-1 then a=a+0,end + + [ma,na]=size(a); + if ma==1&na==1 then + b.num=a\b.num, + elseif size(b.num,1)==1 then + b=rlist(a\b.num,ones(na,ma)*b.den,b.dt) + else + [num,den]=b(["num","den"]); + + dd=[];nn=[] + for j=1:size(num,2) + [y,fact]=lcm(den(:,j)), + nn=[nn,a\(num(:,j).*fact)]; + dd=[dd y] + end + [num,den]=simp(nn,ones(na,1)*dd) + b=rlist(num,den,b.dt) + end +endfunction diff --git a/modules/overloading/macros/%s_l_s.bin b/modules/overloading/macros/%s_l_s.bin Binary files differnew file mode 100755 index 000000000..9708e6cd4 --- /dev/null +++ b/modules/overloading/macros/%s_l_s.bin diff --git a/modules/overloading/macros/%s_l_s.sci b/modules/overloading/macros/%s_l_s.sci new file mode 100755 index 000000000..7e51179e9 --- /dev/null +++ b/modules/overloading/macros/%s_l_s.sci @@ -0,0 +1,14 @@ +// 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 + +function R=%s_l_s(A,B) + // used to give a sense to operation like A\1 where A is a matrix + n=size(A,1) + R=A\(eye(n,n)*B) +endfunction diff --git a/modules/overloading/macros/%s_l_sp.bin b/modules/overloading/macros/%s_l_sp.bin Binary files differnew file mode 100755 index 000000000..5e5e880e6 --- /dev/null +++ b/modules/overloading/macros/%s_l_sp.bin diff --git a/modules/overloading/macros/%s_l_sp.sci b/modules/overloading/macros/%s_l_sp.sci new file mode 100755 index 000000000..b89debb2a --- /dev/null +++ b/modules/overloading/macros/%s_l_sp.sci @@ -0,0 +1,13 @@ +// 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 + +function x=%s_l_sp(a,x) + // a^-1*x a full,x sparse + x=a\full(x) +endfunction diff --git a/modules/overloading/macros/%s_m_hm.bin b/modules/overloading/macros/%s_m_hm.bin Binary files differnew file mode 100755 index 000000000..d119850f8 --- /dev/null +++ b/modules/overloading/macros/%s_m_hm.bin diff --git a/modules/overloading/macros/%s_m_hm.sci b/modules/overloading/macros/%s_m_hm.sci new file mode 100755 index 000000000..4c014cb43 --- /dev/null +++ b/modules/overloading/macros/%s_m_hm.sci @@ -0,0 +1,28 @@ +// 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 + +function M2=%s_m_hm(M1,M2) + + siz1 = size(M1); + siz2 = size(M2); + + if size(M1,"*")<>1 then + if length(siz2)<>3 then + error(msprintf(_("%s: Wrong size for input argument #%d: 3D maximum expected.\n"),"%s_m_hm",2)); + end + if siz1(2)<>siz2(1) then + error(msprintf(_("%s: Wrong size for argument: Incompatible dimensions.\n"),"s_m_hm")); + end + M2 = hypermat([siz2(1) siz2(2)*siz2(3)], M2); + M2 = hypermat([siz1(1) siz2(2) siz2(3)], M1*M2); + else + M2.entries = M1*M2.entries + end + +endfunction diff --git a/modules/overloading/macros/%s_m_ip.bin b/modules/overloading/macros/%s_m_ip.bin Binary files differnew file mode 100755 index 000000000..e617b1378 --- /dev/null +++ b/modules/overloading/macros/%s_m_ip.bin diff --git a/modules/overloading/macros/%s_m_ip.sci b/modules/overloading/macros/%s_m_ip.sci new file mode 100755 index 000000000..b7e3bb4be --- /dev/null +++ b/modules/overloading/macros/%s_m_ip.sci @@ -0,0 +1,14 @@ +// 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 + +function r=%s_m_ip(s,ip) + // s*ip + if size(s,"*")<>1 then error(10),end + r=(s*ip(1)):(s*ip(2)):(s*ip(3)) +endfunction diff --git a/modules/overloading/macros/%s_m_lss.bin b/modules/overloading/macros/%s_m_lss.bin Binary files differnew file mode 100755 index 000000000..d3f79b692 --- /dev/null +++ b/modules/overloading/macros/%s_m_lss.bin diff --git a/modules/overloading/macros/%s_m_lss.sci b/modules/overloading/macros/%s_m_lss.sci new file mode 100755 index 000000000..9a1010a64 --- /dev/null +++ b/modules/overloading/macros/%s_m_lss.sci @@ -0,0 +1,20 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function s=%s_m_lss(d1,s2) + // s=d1*s2 + //! + [a2,b2,c2,d2,x2,dom2]=s2(2:7); + if prod(size(s2))==1 then + s=%lss_m_s(s2,d1);return; //transpose + end + d=d1*d2; + [a2;d1*c2]; + s=tlist(["lss","A","B","C","D","X0","dt"],a2,b2,d1*c2,d,x2,dom2) +endfunction diff --git a/modules/overloading/macros/%s_m_r.bin b/modules/overloading/macros/%s_m_r.bin Binary files differnew file mode 100755 index 000000000..f05a9b379 --- /dev/null +++ b/modules/overloading/macros/%s_m_r.bin diff --git a/modules/overloading/macros/%s_m_r.sci b/modules/overloading/macros/%s_m_r.sci new file mode 100755 index 000000000..6365ee37f --- /dev/null +++ b/modules/overloading/macros/%s_m_r.sci @@ -0,0 +1,57 @@ +// 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 + +function f2=%s_m_r(n1,f2) + // %s_m_r(n1,f2) + //operation f2=n1*f2 + //author Serge Steer INRIA + //! + [n2,d2]=f2(["num","den"]); + sz1=size(n1);sz2=size(n2); + if prod(sz1)==0|prod(sz2)==0 then f2=[],return,end + + + indef=%f + if or(sz1==-1) then + n1=n1+0;sz1=[1 1]; + if prod(sz2)==1 then indef=%t,else error(14),end + end + if or(sz2==-1) then + n2=n2+0;d2=d2+0;sz2=[1 1]; + if prod(sz1)==1 then indef=%t,else error(14),end + end + + // + if prod(sz1)==1 then + num=n1*n2, + den=d2 + elseif prod(sz2)==1 then + num=n1*n2, + den=d2(ones(n1)) + else, + if size(sz1,"*")>2|size(sz2,"*")>2 then error(10),end + if sz1(2)<>sz2(1) then error(10),end, + l1=sz1(1);m1=sz1(2);m2=sz2(2); + for j=1:m2, + [y,fact]=lcm(d2(:,j)), + n2(:,j)=n2(:,j).*fact, + den(1:l1,j)=ones(l1,1)*y, + for i=1:l1, + num(i,j)=n1(i,:)*n2(:,j), + end, + end, + [num,den]=simp(num,den), + end, + + if indef then + num=num*eye() + den=den*eye() + end + f2=rlist(num,den,f2.dt) +endfunction diff --git a/modules/overloading/macros/%s_matrix.bin b/modules/overloading/macros/%s_matrix.bin Binary files differnew file mode 100755 index 000000000..3b27026b1 --- /dev/null +++ b/modules/overloading/macros/%s_matrix.bin diff --git a/modules/overloading/macros/%s_matrix.sci b/modules/overloading/macros/%s_matrix.sci new file mode 100755 index 000000000..e57fb121a --- /dev/null +++ b/modules/overloading/macros/%s_matrix.sci @@ -0,0 +1,12 @@ +// 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 + +function y=%s_matrix(a,varargin) + y=%hm_matrix(a,varargin(:)) +endfunction diff --git a/modules/overloading/macros/%s_n_hm.bin b/modules/overloading/macros/%s_n_hm.bin Binary files differnew file mode 100755 index 000000000..e71351b30 --- /dev/null +++ b/modules/overloading/macros/%s_n_hm.bin diff --git a/modules/overloading/macros/%s_n_hm.sci b/modules/overloading/macros/%s_n_hm.sci new file mode 100755 index 000000000..8c02ec847 --- /dev/null +++ b/modules/overloading/macros/%s_n_hm.sci @@ -0,0 +1,16 @@ +// 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 + +function M=%s_n_hm(s,M) + //s<>M + if size(s,"*")<> 1 then + M=%t;return + end + M("entries")=s<>M("entries") +endfunction diff --git a/modules/overloading/macros/%s_n_l.bin b/modules/overloading/macros/%s_n_l.bin Binary files differnew file mode 100755 index 000000000..06c5757ee --- /dev/null +++ b/modules/overloading/macros/%s_n_l.bin diff --git a/modules/overloading/macros/%s_n_l.sci b/modules/overloading/macros/%s_n_l.sci new file mode 100755 index 000000000..9729a50f0 --- /dev/null +++ b/modules/overloading/macros/%s_n_l.sci @@ -0,0 +1,14 @@ +// 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 + +function [r]=%s_n_l(l1,l2) + //r=(l1==l2) constant == list + //! + r=%t +endfunction diff --git a/modules/overloading/macros/%s_n_lss.bin b/modules/overloading/macros/%s_n_lss.bin Binary files differnew file mode 100755 index 000000000..8692c6f7f --- /dev/null +++ b/modules/overloading/macros/%s_n_lss.bin diff --git a/modules/overloading/macros/%s_n_lss.sci b/modules/overloading/macros/%s_n_lss.sci new file mode 100755 index 000000000..acf1c93b1 --- /dev/null +++ b/modules/overloading/macros/%s_n_lss.sci @@ -0,0 +1,14 @@ +// 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 + +function [r]=%s_n_lss(s1,s2) + //%s_n_lss(s1,s2) <=> s1<>s2 gain<>state-space + //! + r=s2(2)<>[]|s2(5)<>s1 +endfunction diff --git a/modules/overloading/macros/%s_n_r.bin b/modules/overloading/macros/%s_n_r.bin Binary files differnew file mode 100755 index 000000000..b3f1e6901 --- /dev/null +++ b/modules/overloading/macros/%s_n_r.bin diff --git a/modules/overloading/macros/%s_n_r.sci b/modules/overloading/macros/%s_n_r.sci new file mode 100755 index 000000000..1aadcf282 --- /dev/null +++ b/modules/overloading/macros/%s_n_r.sci @@ -0,0 +1,18 @@ +// 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 + +function [r]=%s_n_r(l1,l2) + //%s_n_r(l1,l2) <=> l1<>l2 l1 constant l2 rational + // et l2 une fraction rationnelle + //! + + r=degree(l2("num"))==0°ree(l2("den"))==0 + if r then r=coeff(l2("num"))./coeff(l2("den"))==l1,end + r=~r +endfunction diff --git a/modules/overloading/macros/%s_n_st.bin b/modules/overloading/macros/%s_n_st.bin Binary files differnew file mode 100755 index 000000000..2aa196398 --- /dev/null +++ b/modules/overloading/macros/%s_n_st.bin diff --git a/modules/overloading/macros/%s_n_st.sci b/modules/overloading/macros/%s_n_st.sci new file mode 100755 index 000000000..debd42894 --- /dev/null +++ b/modules/overloading/macros/%s_n_st.sci @@ -0,0 +1,14 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA, Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function r=%s_n_st(a,b) + // implements r=a~=b + // for a a matrix of floating point numbers and b= struct + r=%t +endfunction diff --git a/modules/overloading/macros/%s_o_hm.bin b/modules/overloading/macros/%s_o_hm.bin Binary files differnew file mode 100755 index 000000000..678b5f0fd --- /dev/null +++ b/modules/overloading/macros/%s_o_hm.bin diff --git a/modules/overloading/macros/%s_o_hm.sci b/modules/overloading/macros/%s_o_hm.sci new file mode 100755 index 000000000..8f8b63908 --- /dev/null +++ b/modules/overloading/macros/%s_o_hm.sci @@ -0,0 +1,17 @@ +// 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 + +function M=%s_o_hm(s,M) + + //s==M + if size(s,"*")<> 1 then + M=%f;return + end + M("entries")=s==M("entries") +endfunction diff --git a/modules/overloading/macros/%s_o_l.bin b/modules/overloading/macros/%s_o_l.bin Binary files differnew file mode 100755 index 000000000..25ba8defa --- /dev/null +++ b/modules/overloading/macros/%s_o_l.bin diff --git a/modules/overloading/macros/%s_o_l.sci b/modules/overloading/macros/%s_o_l.sci new file mode 100755 index 000000000..f09a76f74 --- /dev/null +++ b/modules/overloading/macros/%s_o_l.sci @@ -0,0 +1,14 @@ +// 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 + +function [r]=%s_o_l(l1,l2) + //%s_o_l(l1,l2) constant==list + //! + r=%f +endfunction diff --git a/modules/overloading/macros/%s_o_lss.bin b/modules/overloading/macros/%s_o_lss.bin Binary files differnew file mode 100755 index 000000000..44ebebfcc --- /dev/null +++ b/modules/overloading/macros/%s_o_lss.bin diff --git a/modules/overloading/macros/%s_o_lss.sci b/modules/overloading/macros/%s_o_lss.sci new file mode 100755 index 000000000..0928484ee --- /dev/null +++ b/modules/overloading/macros/%s_o_lss.sci @@ -0,0 +1,15 @@ +// 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 + +function [r]=%s_o_lss(s1,s2) + //%s_o_lss(s1,s2) constant==state-space + //! + + r=s2(2)==[]&s2(5)==s1 +endfunction diff --git a/modules/overloading/macros/%s_o_r.bin b/modules/overloading/macros/%s_o_r.bin Binary files differnew file mode 100755 index 000000000..609e1ea8f --- /dev/null +++ b/modules/overloading/macros/%s_o_r.bin diff --git a/modules/overloading/macros/%s_o_r.sci b/modules/overloading/macros/%s_o_r.sci new file mode 100755 index 000000000..8f76e1cb7 --- /dev/null +++ b/modules/overloading/macros/%s_o_r.sci @@ -0,0 +1,15 @@ +// 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 + +function [r]=%s_o_r(l1,l2) + //%s_o_r(l1,l2) constant==rational + //! + r=degree(l2("num"))==0°ree(l2("den"))==0 + if r then r=coeff(l2("num"))./coeff(l2("den"))==l1,end +endfunction diff --git a/modules/overloading/macros/%s_o_st.bin b/modules/overloading/macros/%s_o_st.bin Binary files differnew file mode 100755 index 000000000..8a0aea6f9 --- /dev/null +++ b/modules/overloading/macros/%s_o_st.bin diff --git a/modules/overloading/macros/%s_o_st.sci b/modules/overloading/macros/%s_o_st.sci new file mode 100755 index 000000000..316e7c3ac --- /dev/null +++ b/modules/overloading/macros/%s_o_st.sci @@ -0,0 +1,14 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA, Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function r=%s_o_st(a,b) + // implements r=a==b + // for a a matrix of floating point numbers and b= struct + r=%f +endfunction diff --git a/modules/overloading/macros/%s_or.bin b/modules/overloading/macros/%s_or.bin Binary files differnew file mode 100755 index 000000000..66e4985ac --- /dev/null +++ b/modules/overloading/macros/%s_or.bin diff --git a/modules/overloading/macros/%s_or.sci b/modules/overloading/macros/%s_or.sci new file mode 100755 index 000000000..b5376acf4 --- /dev/null +++ b/modules/overloading/macros/%s_or.sci @@ -0,0 +1,21 @@ +// 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 + +function x=%s_or(a,flag) + // or(a) returns the logical OR + // for scalar matrices, an entry is TRUE if it is not zero. + //! + if argn(2)==1 then flag="*",end + if flag=="*" then + x=find(abs(a)>0,1)<>[] + else + if a==[] then x=[],return,end + x=sum(bool2s(a),flag)>=1 + end +endfunction diff --git a/modules/overloading/macros/%s_pow.bin b/modules/overloading/macros/%s_pow.bin Binary files differnew file mode 100755 index 000000000..9b75e7040 --- /dev/null +++ b/modules/overloading/macros/%s_pow.bin diff --git a/modules/overloading/macros/%s_pow.sci b/modules/overloading/macros/%s_pow.sci new file mode 100755 index 000000000..122d21277 --- /dev/null +++ b/modules/overloading/macros/%s_pow.sci @@ -0,0 +1,72 @@ +// 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 + +function x=%s_pow(a,p) + // g_pow - A^p special cases + //%CALLING SEQUENCE + // X=g_pow(A,p) + //%PARAMETERS + // A : constant or square hermitian or diagonalizable matrix + // X : square matrix + // p : square matrix or scalar + //%DESCRIPTION + //This function is called by the operation ^ to compute A^p in special cases + // - A scalar and p square matrix + // - A square matrix p is not an integer + //! + [m,n]=size(a) + [mp,np]=size(p) + if m*n==1&mp==np then //a^P + flag=or(p<>p') + r=and(imag(p)==0)&imag(a)==0 + if ~flag then + //Hermitian matrix + [u,s]=schur(p); + w=a.^diag(s); + x=u*diag(a.^diag(s))*u'; + if r then + x=real(x) + end + else + [s,u,bs]=bdiag(p+0*%i); + if max(bs)>1 then + error(msprintf(_("%s: Unable to diagonalize.\n"),"%s_pow")); + end + w=diag(s); + x=u*diag(a.^diag(s))*inv(u); + end + if r then x=real(x), end + elseif m==n&mp*np==1 then //A^p p non integer + flag=or(a<>a') + if ~flag then + //Hermitian matrix + r=and(imag(a)==0) + [u,s]=schur(a); + x=u*diag(diag(s).^p)*u'; + if r then + if s>=0&imag(p)==0 then + x=real(x) + end + end + else + //General matrix + r=and(imag(a)==0) + [s,u,bs]=bdiag(a+0*%i); + if max(bs)>1 then + error(msprintf(_("%s: Unable to diagonalize.\n"),"%s_pow")); + end + x=u*diag(diag(s).^p)*inv(u); + end + if int(p)==p & real(p)==p & r then + x=real(x); + end + else + error(43) + end +endfunction diff --git a/modules/overloading/macros/%s_q_hm.bin b/modules/overloading/macros/%s_q_hm.bin Binary files differnew file mode 100755 index 000000000..1f2212e04 --- /dev/null +++ b/modules/overloading/macros/%s_q_hm.bin diff --git a/modules/overloading/macros/%s_q_hm.sci b/modules/overloading/macros/%s_q_hm.sci new file mode 100755 index 000000000..48230302a --- /dev/null +++ b/modules/overloading/macros/%s_q_hm.sci @@ -0,0 +1,17 @@ +// 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 + +function M2=%s_q_hm(M1,M2) + + if size(M1,"*")<>1 then + error(msprintf(_("%s: Wrong size for input argument #%d.\n"),"%s_q_hm",1)); + else + M2("entries")=M1.\M2("entries") + end +endfunction diff --git a/modules/overloading/macros/%s_q_p.bin b/modules/overloading/macros/%s_q_p.bin Binary files differnew file mode 100755 index 000000000..b65fe2397 --- /dev/null +++ b/modules/overloading/macros/%s_q_p.bin diff --git a/modules/overloading/macros/%s_q_p.sci b/modules/overloading/macros/%s_q_p.sci new file mode 100755 index 000000000..1269ad511 --- /dev/null +++ b/modules/overloading/macros/%s_q_p.sci @@ -0,0 +1,20 @@ +// 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 + +function [z]=%s_q_p(x,y) + //z = x .\ y special cases + // and other matrix polynomial + + [m,n]=size(x) + if m*n==1 then + z=x*ones(y).\y + else + z=x.\y*ones(x) + end +endfunction diff --git a/modules/overloading/macros/%s_q_r.bin b/modules/overloading/macros/%s_q_r.bin Binary files differnew file mode 100755 index 000000000..989ae5fd4 --- /dev/null +++ b/modules/overloading/macros/%s_q_r.bin diff --git a/modules/overloading/macros/%s_q_r.sci b/modules/overloading/macros/%s_q_r.sci new file mode 100755 index 000000000..5fabed54c --- /dev/null +++ b/modules/overloading/macros/%s_q_r.sci @@ -0,0 +1,16 @@ +// 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 + +function f=%s_q_r(s,f) + // %s_q_r(s,f) f= s./f + //! + + if size(s,"*")==0 then f=[],return,end + f=rlist(f("num")./s,f("den").*ones(s),f("dt")), +endfunction diff --git a/modules/overloading/macros/%s_q_sp.bin b/modules/overloading/macros/%s_q_sp.bin Binary files differnew file mode 100755 index 000000000..4dec02ff0 --- /dev/null +++ b/modules/overloading/macros/%s_q_sp.bin diff --git a/modules/overloading/macros/%s_q_sp.sci b/modules/overloading/macros/%s_q_sp.sci new file mode 100755 index 000000000..19c493aac --- /dev/null +++ b/modules/overloading/macros/%s_q_sp.sci @@ -0,0 +1,14 @@ +// 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 + +function r=%s_q_sp(a,b) + //r=a.\b + + r=a.\full(b) +endfunction diff --git a/modules/overloading/macros/%s_r_lss.bin b/modules/overloading/macros/%s_r_lss.bin Binary files differnew file mode 100755 index 000000000..e5132019f --- /dev/null +++ b/modules/overloading/macros/%s_r_lss.bin diff --git a/modules/overloading/macros/%s_r_lss.sci b/modules/overloading/macros/%s_r_lss.sci new file mode 100755 index 000000000..81ac5ef61 --- /dev/null +++ b/modules/overloading/macros/%s_r_lss.sci @@ -0,0 +1,16 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function [sr]=%s_r_lss(p,s) + // sr=%s_r_lss(p,s) ou sr=p/s + // s : syslin list + // p : constant matrix + //! + sr=tlist(["lss","A","B","C","D","X0","dt"],[],[],[],p,[],[])/s +endfunction diff --git a/modules/overloading/macros/%s_r_p.bin b/modules/overloading/macros/%s_r_p.bin Binary files differnew file mode 100755 index 000000000..a57b9e292 --- /dev/null +++ b/modules/overloading/macros/%s_r_p.bin diff --git a/modules/overloading/macros/%s_r_p.sci b/modules/overloading/macros/%s_r_p.sci new file mode 100755 index 000000000..2f822e687 --- /dev/null +++ b/modules/overloading/macros/%s_r_p.sci @@ -0,0 +1,27 @@ +// 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 + +function f=%s_r_p(m,p) + //f=M/p M:scalar matrix p=polynomial + //! + + + [mp,np]=size(p) + if mp*np<>1 then + f=m*invr(p), + else + [l,c]=size(m) + if m<>[] then m=m+poly(0,varn(p),"c"),end + if mp==-1&l*c==1|l==-1 then + f=rlist(m,p*eye(),[]) + else + f=simp(rlist(m,p*ones(l,c),[])) + end + end +endfunction diff --git a/modules/overloading/macros/%s_r_r.bin b/modules/overloading/macros/%s_r_r.bin Binary files differnew file mode 100755 index 000000000..8e382be2d --- /dev/null +++ b/modules/overloading/macros/%s_r_r.bin diff --git a/modules/overloading/macros/%s_r_r.sci b/modules/overloading/macros/%s_r_r.sci new file mode 100755 index 000000000..857f2d4b1 --- /dev/null +++ b/modules/overloading/macros/%s_r_r.sci @@ -0,0 +1,16 @@ +// 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 + +function f=%s_r_r(m,f) + // %s_r_r(m,r) <=> m/f constant/rational + //! + + if prod(size(f("num")))<>1 then f=m*invr(f),return,end + f=simp(rlist(m*f("den"),ones(m)*f("num"),f("dt"))) +endfunction diff --git a/modules/overloading/macros/%s_r_s.bin b/modules/overloading/macros/%s_r_s.bin Binary files differnew file mode 100755 index 000000000..ff9cd826e --- /dev/null +++ b/modules/overloading/macros/%s_r_s.bin diff --git a/modules/overloading/macros/%s_r_s.sci b/modules/overloading/macros/%s_r_s.sci new file mode 100755 index 000000000..92583617b --- /dev/null +++ b/modules/overloading/macros/%s_r_s.sci @@ -0,0 +1,14 @@ +// 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 + +function R=%s_r_s(B,A) + // used to give a sense to operation like 1/A where A is a matrix + n=size(A,2) + R=(B*eye(n,n))/A +endfunction diff --git a/modules/overloading/macros/%s_r_sp.bin b/modules/overloading/macros/%s_r_sp.bin Binary files differnew file mode 100755 index 000000000..70a2ce678 --- /dev/null +++ b/modules/overloading/macros/%s_r_sp.bin diff --git a/modules/overloading/macros/%s_r_sp.sci b/modules/overloading/macros/%s_r_sp.sci new file mode 100755 index 000000000..735c9d15b --- /dev/null +++ b/modules/overloading/macros/%s_r_sp.sci @@ -0,0 +1,40 @@ +// 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 + +function x=%s_r_sp(a,b) + // a/b , a full b sparse + + [ma,na]=size(a) + [mb,nb]=size(b) + if ma*na==1 then x=(a*speye(nb,nb))/b,return;end + //if mb*nb==1 then x=a/full(b),return,end //hard coded case + if na<>nb then error(11),end + + if mb<>nb then a=a*b';b=b*b';end + + if isreal(a)&isreal(b) then + [h,rk]=lufact(b') + if rk<min(mb,nb) then warning("deficient rank: rank = "+string(rk)),end + x=[] + for k=1:ma + x=[x;lusolve(h,a(k,:)')'] + end + ludel(h) + else + b=b';a=a' + [h,rk]=lufact([real(b) -imag(b);imag(b) real(b)]) + if rk<2*min(mb,nb) then warning("deficient rank: rank = "+string(rk/2)),end + x=[] + for k=1:ma + x=[x lusolve(h,[real(a(:,k));imag(a(:,k))])] + end + x=(x(1:$/2,:)+%i*x($/2+1:$,:))' + ludel(h) + end +endfunction diff --git a/modules/overloading/macros/%s_s_hm.bin b/modules/overloading/macros/%s_s_hm.bin Binary files differnew file mode 100755 index 000000000..e5ee2064d --- /dev/null +++ b/modules/overloading/macros/%s_s_hm.bin diff --git a/modules/overloading/macros/%s_s_hm.sci b/modules/overloading/macros/%s_s_hm.sci new file mode 100755 index 000000000..d211d02a5 --- /dev/null +++ b/modules/overloading/macros/%s_s_hm.sci @@ -0,0 +1,25 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA/ENPC +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should 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 M2=%s_s_hm(M1,M2) + + // scalar -hypermatrix + if and(size(M1)==[1 1]) then + M2.entries=M1-M2.entries + else + dims1=size(M1)'; + dims2=matrix(M2.dims,-1,1) + dims1(3:size(dims2,"*"))=1 + if and(dims1==dims2) then //should not occur + M2.entries=matrix(M1,-1,1)-M2.entries + else + error(9) + end + end +endfunction diff --git a/modules/overloading/macros/%s_s_ip.bin b/modules/overloading/macros/%s_s_ip.bin Binary files differnew file mode 100755 index 000000000..49b60369d --- /dev/null +++ b/modules/overloading/macros/%s_s_ip.bin diff --git a/modules/overloading/macros/%s_s_ip.sci b/modules/overloading/macros/%s_s_ip.sci new file mode 100755 index 000000000..bd839a25b --- /dev/null +++ b/modules/overloading/macros/%s_s_ip.sci @@ -0,0 +1,14 @@ +// 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 + +function r=%s_s_ip(s,ip) + // s-ip + if size(s,"*")<>1 then error(10),end + r=(s-ip(1)):(s-ip(2)):(s-ip(3)) +endfunction diff --git a/modules/overloading/macros/%s_s_lss.bin b/modules/overloading/macros/%s_s_lss.bin Binary files differnew file mode 100755 index 000000000..1bb8cba0a --- /dev/null +++ b/modules/overloading/macros/%s_s_lss.bin diff --git a/modules/overloading/macros/%s_s_lss.sci b/modules/overloading/macros/%s_s_lss.sci new file mode 100755 index 000000000..d8cd5bf9f --- /dev/null +++ b/modules/overloading/macros/%s_s_lss.sci @@ -0,0 +1,14 @@ +// 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 + +function s=%s_s_lss(d1,s2) + //s=d1-s2 + [a2,b2,c2,d2,x2,dom2]=s2(2:7), + s=tlist(["lss","A","B","C","D","X0","dt"],a2,-b2,c2,d1-d2,x2,dom2), +endfunction diff --git a/modules/overloading/macros/%s_s_r.bin b/modules/overloading/macros/%s_s_r.bin Binary files differnew file mode 100755 index 000000000..94d5e61de --- /dev/null +++ b/modules/overloading/macros/%s_s_r.bin diff --git a/modules/overloading/macros/%s_s_r.sci b/modules/overloading/macros/%s_s_r.sci new file mode 100755 index 000000000..4c910c5e0 --- /dev/null +++ b/modules/overloading/macros/%s_s_r.sci @@ -0,0 +1,44 @@ +// 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 +function f=%s_s_r(m,f) + //f= m-f + //author Serge Steer INRIA + //! + [num,den]=f(["num","den"]) + szf=size(den) + szm=size(m) + + if and(szf>=0)&and(szm>=0) then + if prod(szf)==1&prod(szm)>1 then + den=den(ones(m)) + szf=szm + end + + if size(szf,"*")>2 then + num=num(:);den=den(:);m=m(:) + end + [num,den]=simp(-num+m.*den,den) + num=matrix(num,szf) + den=matrix(den,szf) + else + //at leat one matrix is eye*x + if size(szf,"*")>2|size(szm,"*")>2 then + error(9) + end + if or(szf<0)&or(szm<0) then + [num,den]=simp(-num+m.*den,den) + elseif or(szf<0) then + [num,den]=simp(-num+m.*den,den*ones(m)) + elseif or(szm<0) then + [num,den]=simp(-num+(m+0)*eye(den).*den,den) + end + end + f=rlist(num,den,f.dt) +endfunction + diff --git a/modules/overloading/macros/%s_s_sp.bin b/modules/overloading/macros/%s_s_sp.bin Binary files differnew file mode 100755 index 000000000..942cb8868 --- /dev/null +++ b/modules/overloading/macros/%s_s_sp.bin diff --git a/modules/overloading/macros/%s_s_sp.sci b/modules/overloading/macros/%s_s_sp.sci new file mode 100755 index 000000000..02c5e16fa --- /dev/null +++ b/modules/overloading/macros/%s_s_sp.sci @@ -0,0 +1,21 @@ +// 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 + +function s=%s_s_sp(a,b) + // %s_s_sp - subtract a sparse matrix b to a scalar matrix a + //! + + if size(a)==[-1,-1] then + //eye+b + [m,n]=size(b) + s=(0+a)*speye(m,n)-b + else + s=a-full(b) + end +endfunction diff --git a/modules/overloading/macros/%s_simp.bin b/modules/overloading/macros/%s_simp.bin Binary files differnew file mode 100755 index 000000000..3b4778640 --- /dev/null +++ b/modules/overloading/macros/%s_simp.bin diff --git a/modules/overloading/macros/%s_simp.sci b/modules/overloading/macros/%s_simp.sci new file mode 100755 index 000000000..36bb9a456 --- /dev/null +++ b/modules/overloading/macros/%s_simp.sci @@ -0,0 +1,13 @@ +// 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 + +function [num,den]=%s_simp(num,den) + // implement complex case + +endfunction diff --git a/modules/overloading/macros/%s_v_lss.bin b/modules/overloading/macros/%s_v_lss.bin Binary files differnew file mode 100755 index 000000000..9bfd4c453 --- /dev/null +++ b/modules/overloading/macros/%s_v_lss.bin diff --git a/modules/overloading/macros/%s_v_lss.sci b/modules/overloading/macros/%s_v_lss.sci new file mode 100755 index 000000000..ff00b4e14 --- /dev/null +++ b/modules/overloading/macros/%s_v_lss.sci @@ -0,0 +1,17 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function s=%s_v_lss(d1,s2) + //s=%s_v_lss(d1,s2) <=> s=d1/.s2 + [a2,b2,c2,d2,x2,dom2]=s2(2:7) + e12=1/(eye()+d2*d1) + e21=eye()-d1*e12*d2;b21=b2*e21 + s=tlist(["lss","A","B","C","D","X0","dt"],a2-b21*d1*c2,b21*d1,... + -e21*d1*c2,e21*d1,x2,dom2) +endfunction diff --git a/modules/overloading/macros/%s_v_p.bin b/modules/overloading/macros/%s_v_p.bin Binary files differnew file mode 100755 index 000000000..c63a73499 --- /dev/null +++ b/modules/overloading/macros/%s_v_p.bin diff --git a/modules/overloading/macros/%s_v_p.sci b/modules/overloading/macros/%s_v_p.sci new file mode 100755 index 000000000..8cfd08943 --- /dev/null +++ b/modules/overloading/macros/%s_v_p.sci @@ -0,0 +1,14 @@ +// 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 + +function h=%s_v_p(s,p) + //! + + h=s/(1+s*p) +endfunction diff --git a/modules/overloading/macros/%s_v_r.bin b/modules/overloading/macros/%s_v_r.bin Binary files differnew file mode 100755 index 000000000..a68a6c20d --- /dev/null +++ b/modules/overloading/macros/%s_v_r.bin diff --git a/modules/overloading/macros/%s_v_r.sci b/modules/overloading/macros/%s_v_r.sci new file mode 100755 index 000000000..acd03addb --- /dev/null +++ b/modules/overloading/macros/%s_v_r.sci @@ -0,0 +1,22 @@ +// 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 + +function h=%s_v_r(h1,h2) + // %s_v_r(h1,h2) = (I+h1*h2)\h1. h1 constant h2 rational + //! + + [m1,n1]=size(h1) + [m2,n2]=size(h2("num")) + if abs(n1-m2)+abs(m1-n2)<>0 then error(msprintf(_("%s: Wrong size for input argument(s).\n"),"%s_v_r")),end + if m1*n1==1 then + h=h2;h("num")=h1*h2("den");h("den")=h1*h2("num")+h2("den"); + else + h=(eye(m1,m1)+h1*h2)\h1 + end +endfunction diff --git a/modules/overloading/macros/%s_v_s.bin b/modules/overloading/macros/%s_v_s.bin Binary files differnew file mode 100755 index 000000000..c10a2d40f --- /dev/null +++ b/modules/overloading/macros/%s_v_s.bin diff --git a/modules/overloading/macros/%s_v_s.sci b/modules/overloading/macros/%s_v_s.sci new file mode 100755 index 000000000..27154bca5 --- /dev/null +++ b/modules/overloading/macros/%s_v_s.sci @@ -0,0 +1,17 @@ +// 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 + +function [h]=%s_v_s(h1,h2) + // %s_v_s(h1,h2) <=> h =(I+h1*h2)\h1 <=> h=h1/.h2 + + [m1,n1]=size(h1) + [m2,n2]=size(h2) + if abs(n1-m2)+abs(m1-n2)<>0 then error(msprintf(_("%s: Wrong size for input argument(s).\n"),"%s_v_s")),end + h=(eye(m1,m1)+h1*h2)\h1 +endfunction diff --git a/modules/overloading/macros/%s_x_hm.bin b/modules/overloading/macros/%s_x_hm.bin Binary files differnew file mode 100755 index 000000000..34b46df90 --- /dev/null +++ b/modules/overloading/macros/%s_x_hm.bin diff --git a/modules/overloading/macros/%s_x_hm.sci b/modules/overloading/macros/%s_x_hm.sci new file mode 100755 index 000000000..0b0c3e11f --- /dev/null +++ b/modules/overloading/macros/%s_x_hm.sci @@ -0,0 +1,17 @@ +// 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 + +function M2=%s_x_hm(M1,M2) + + if size(M1,"*")<>1 then + error(msprintf(_("%s: Wrong size for input argument #%d.\n"),"%s_x_hm",1)); + else + M2("entries")=M1.*M2("entries") + end +endfunction diff --git a/modules/overloading/macros/%s_x_r.bin b/modules/overloading/macros/%s_x_r.bin Binary files differnew file mode 100755 index 000000000..0c4ba721f --- /dev/null +++ b/modules/overloading/macros/%s_x_r.bin diff --git a/modules/overloading/macros/%s_x_r.sci b/modules/overloading/macros/%s_x_r.sci new file mode 100755 index 000000000..6957cf2c2 --- /dev/null +++ b/modules/overloading/macros/%s_x_r.sci @@ -0,0 +1,19 @@ +// 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 + +function f2=%s_x_r(n1,f2) + // %s_x_r(M,r) = (M.*r) constant .* rational + //! + + if size(n1,"*")==0 then + f2=[] + else + f2("num")=n1.*f2("num") + end +endfunction diff --git a/modules/overloading/macros/%s_y_p.bin b/modules/overloading/macros/%s_y_p.bin Binary files differnew file mode 100755 index 000000000..d746fc4b9 --- /dev/null +++ b/modules/overloading/macros/%s_y_p.bin diff --git a/modules/overloading/macros/%s_y_p.sci b/modules/overloading/macros/%s_y_p.sci new file mode 100755 index 000000000..70dfef0ce --- /dev/null +++ b/modules/overloading/macros/%s_y_p.sci @@ -0,0 +1,25 @@ +// 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 + +function r=%s_y_p(a,b) + // a./.b + + [ma,na]=size(a) + [mb,nb]=size(b) + r=zeros(ma*mb,na*nb) + k=0 + for j=1:na + l=0 + for i=1:ma + r(l+(1:mb),k+(1:nb))=a(i,j)./b + l=l+mb + end + k=k+nb + end +endfunction diff --git a/modules/overloading/macros/%s_y_r.bin b/modules/overloading/macros/%s_y_r.bin Binary files differnew file mode 100755 index 000000000..5326e26a3 --- /dev/null +++ b/modules/overloading/macros/%s_y_r.bin diff --git a/modules/overloading/macros/%s_y_r.sci b/modules/overloading/macros/%s_y_r.sci new file mode 100755 index 000000000..367d8cc56 --- /dev/null +++ b/modules/overloading/macros/%s_y_r.sci @@ -0,0 +1,25 @@ +// 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 + +function r=%s_y_r(a,b) + // a./.b + + [ma,na]=size(a) + [mb,nb]=size(b) + r=zeros(ma*mb,na*nb) + k=0 + for j=1:na + l=0 + for i=1:ma + r(l+(1:mb),k+(1:nb))=a(i,j)./b + l=l+mb + end + k=k+nb + end +endfunction diff --git a/modules/overloading/macros/%s_y_sp.bin b/modules/overloading/macros/%s_y_sp.bin Binary files differnew file mode 100755 index 000000000..02baa1ac6 --- /dev/null +++ b/modules/overloading/macros/%s_y_sp.bin diff --git a/modules/overloading/macros/%s_y_sp.sci b/modules/overloading/macros/%s_y_sp.sci new file mode 100755 index 000000000..b1bd3cbe5 --- /dev/null +++ b/modules/overloading/macros/%s_y_sp.sci @@ -0,0 +1,15 @@ +// 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 + +function r=%s_y_sp(a,b) + // a./.b with a full b sparse + + if a==[] then r=[],return,end + r=sparse(a)./.b +endfunction diff --git a/modules/overloading/macros/%s_z_p.bin b/modules/overloading/macros/%s_z_p.bin Binary files differnew file mode 100755 index 000000000..656824614 --- /dev/null +++ b/modules/overloading/macros/%s_z_p.bin diff --git a/modules/overloading/macros/%s_z_p.sci b/modules/overloading/macros/%s_z_p.sci new file mode 100755 index 000000000..7bb318e0a --- /dev/null +++ b/modules/overloading/macros/%s_z_p.sci @@ -0,0 +1,25 @@ +// 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 + +function r=%s_z_p(a,b) + // a.\.b + + [ma,na]=size(a) + [mb,nb]=size(b) + r=zeros(ma*mb,na*nb) + k=0 + for j=1:na + l=0 + for i=1:ma + r(l+(1:mb),k+(1:nb))=a(i,j).\b + l=l+mb + end + k=k+nb + end +endfunction diff --git a/modules/overloading/macros/%s_z_r.bin b/modules/overloading/macros/%s_z_r.bin Binary files differnew file mode 100755 index 000000000..730d1d544 --- /dev/null +++ b/modules/overloading/macros/%s_z_r.bin diff --git a/modules/overloading/macros/%s_z_r.sci b/modules/overloading/macros/%s_z_r.sci new file mode 100755 index 000000000..008ce0e83 --- /dev/null +++ b/modules/overloading/macros/%s_z_r.sci @@ -0,0 +1,25 @@ +// 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 + +function r=%s_z_r(a,b) + // a.\.b + + [ma,na]=size(a) + [mb,nb]=size(b) + r=zeros(ma*mb,na*nb) + k=0 + for j=1:na + l=0 + for i=1:ma + r(l+(1:mb),k+(1:nb))=a(i,j).\b + l=l+mb + end + k=k+nb + end +endfunction diff --git a/modules/overloading/macros/%s_z_sp.bin b/modules/overloading/macros/%s_z_sp.bin Binary files differnew file mode 100755 index 000000000..a61071d59 --- /dev/null +++ b/modules/overloading/macros/%s_z_sp.bin diff --git a/modules/overloading/macros/%s_z_sp.sci b/modules/overloading/macros/%s_z_sp.sci new file mode 100755 index 000000000..0e35f4932 --- /dev/null +++ b/modules/overloading/macros/%s_z_sp.sci @@ -0,0 +1,15 @@ +// 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 + +function r=%s_z_sp(a,b) + // a.\.b with a full b sparse + + if a==[] then r=[],return,end + r=sparse(a).\.b +endfunction diff --git a/modules/overloading/macros/%sp_a_s.bin b/modules/overloading/macros/%sp_a_s.bin Binary files differnew file mode 100755 index 000000000..4aa192b16 --- /dev/null +++ b/modules/overloading/macros/%sp_a_s.bin diff --git a/modules/overloading/macros/%sp_a_s.sci b/modules/overloading/macros/%sp_a_s.sci new file mode 100755 index 000000000..1971109d6 --- /dev/null +++ b/modules/overloading/macros/%sp_a_s.sci @@ -0,0 +1,20 @@ +// 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 + +function s=%sp_a_s(a,b) + // %sp_a_s - adds a sparse matrix and a scalar s + //! + + if size(b)==[-1 -1] then + [m,n]=size(a) + s=a+(b+0)*speye(m,n) + else + s=full(a)+b + end +endfunction diff --git a/modules/overloading/macros/%sp_a_sp.bin b/modules/overloading/macros/%sp_a_sp.bin Binary files differnew file mode 100755 index 000000000..c53519fc4 --- /dev/null +++ b/modules/overloading/macros/%sp_a_sp.bin diff --git a/modules/overloading/macros/%sp_a_sp.sci b/modules/overloading/macros/%sp_a_sp.sci new file mode 100755 index 000000000..e74970200 --- /dev/null +++ b/modules/overloading/macros/%sp_a_sp.sci @@ -0,0 +1,29 @@ +// 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 + +function s=%sp_a_sp(a,b) + // %spas - adds 2 sparse matrices (special cases) + //! + + if size(a)==[1 1] then + a=full(a) + if a==0 then + s=b, + else + s=full(b)+a + end + elseif size(b)==[1 1] then + b=full(b) + if b==0 then + s=a + else + s=b+full(a) + end + end +endfunction diff --git a/modules/overloading/macros/%sp_and.bin b/modules/overloading/macros/%sp_and.bin Binary files differnew file mode 100755 index 000000000..6a0683111 --- /dev/null +++ b/modules/overloading/macros/%sp_and.bin diff --git a/modules/overloading/macros/%sp_and.sci b/modules/overloading/macros/%sp_and.sci new file mode 100755 index 000000000..535452ef1 --- /dev/null +++ b/modules/overloading/macros/%sp_and.sci @@ -0,0 +1,21 @@ +// 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 + +function x=%sp_and(a,flag) + // or(a) returns the logical OR + // for scalar matrices, an entry is TRUE if it is not zero. + //! + + if argn(2)==1 then flag="*",end + if flag=="*" then + x=size(find(a<>0,1),"*")==size(a,"*") + else + x=sum(bool2s(a),flag)==size(a,flag) + end +endfunction diff --git a/modules/overloading/macros/%sp_c_s.bin b/modules/overloading/macros/%sp_c_s.bin Binary files differnew file mode 100755 index 000000000..ac4ce1692 --- /dev/null +++ b/modules/overloading/macros/%sp_c_s.bin diff --git a/modules/overloading/macros/%sp_c_s.sci b/modules/overloading/macros/%sp_c_s.sci new file mode 100755 index 000000000..2ac212a06 --- /dev/null +++ b/modules/overloading/macros/%sp_c_s.sci @@ -0,0 +1,14 @@ +// 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 + +function a=%sp_c_s(a,b) + // [a b] a sparse b full + + a=[a sparse(b)] +endfunction diff --git a/modules/overloading/macros/%sp_ceil.bin b/modules/overloading/macros/%sp_ceil.bin Binary files differnew file mode 100755 index 000000000..fb605c295 --- /dev/null +++ b/modules/overloading/macros/%sp_ceil.bin diff --git a/modules/overloading/macros/%sp_ceil.sci b/modules/overloading/macros/%sp_ceil.sci new file mode 100755 index 000000000..a5f26bf64 --- /dev/null +++ b/modules/overloading/macros/%sp_ceil.sci @@ -0,0 +1,14 @@ +// 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 + +function x=%sp_ceil(a) + + [ij,v,mn]=spget(a) + x=sparse(ij,ceil(v),mn) +endfunction diff --git a/modules/overloading/macros/%sp_conj.bin b/modules/overloading/macros/%sp_conj.bin Binary files differnew file mode 100755 index 000000000..bad873353 --- /dev/null +++ b/modules/overloading/macros/%sp_conj.bin diff --git a/modules/overloading/macros/%sp_conj.sci b/modules/overloading/macros/%sp_conj.sci new file mode 100755 index 000000000..19b7d090b --- /dev/null +++ b/modules/overloading/macros/%sp_conj.sci @@ -0,0 +1,14 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2013 - Scilab Enterprises +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function res=%sp_conj(A) + + res = real(A) - %i * imag(A); + +endfunction diff --git a/modules/overloading/macros/%sp_cos.bin b/modules/overloading/macros/%sp_cos.bin Binary files differnew file mode 100755 index 000000000..2a962817a --- /dev/null +++ b/modules/overloading/macros/%sp_cos.bin diff --git a/modules/overloading/macros/%sp_cos.sci b/modules/overloading/macros/%sp_cos.sci new file mode 100755 index 000000000..74f53115d --- /dev/null +++ b/modules/overloading/macros/%sp_cos.sci @@ -0,0 +1,13 @@ +// 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 + +function sp=%sp_cos(a) + + sp=cos(full(a)) +endfunction diff --git a/modules/overloading/macros/%sp_cumprod.bin b/modules/overloading/macros/%sp_cumprod.bin Binary files differnew file mode 100755 index 000000000..c02bc64fb --- /dev/null +++ b/modules/overloading/macros/%sp_cumprod.bin diff --git a/modules/overloading/macros/%sp_cumprod.sci b/modules/overloading/macros/%sp_cumprod.sci new file mode 100755 index 000000000..162968a59 --- /dev/null +++ b/modules/overloading/macros/%sp_cumprod.sci @@ -0,0 +1,112 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2010 - INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function r=%sp_cumprod(varargin) + a = varargin(1) + dims = size(a); + + nargs = size(varargin); + select nargs + case 1 + d = "*"; + case 2 + if or(varargin(2) == ["native", "double"]) then + d = "*"; + else + d = varargin(2); + end + case 3 + d = varargin(2); + else + error(msprintf(_("%s: Wrong number of input argument(s): %d to %d expected.\n"),"cumprod", 1, 3)); + end + + // Check second argument : d + select type(d) + case 1 + if size(d,'*') <> 1 then + error(msprintf(_("%s: Wrong size for input argument #%d: A scalar expected.\n"),"cumprod", 2)) + end + if int(d) <> d | d < 0 then + error(msprintf(_("%s: Wrong value for input argument #%d: Integer >= %d expected.\n"),"cumprod", 2, 1)) + end + case 10 + if size(d,'*') <> 1 then + error(msprintf(_("%s: Wrong size for input argument #%d: A string expected.\n"),"cumprod",2)) + end + if and(d<>["r","c","*","m"]) then + error(msprintf(_("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"),.. + "cumprod",2,"""*"",""r"",""c"",""m""")) + end + + pos = [1,2,0,find(dims>1,1)]; + d=pos(find(d==["r","c","*","m"])) + else + error(msprintf(_("%s: Wrong type for input argument #%d: A string or scalar expected.\n"),"cumprod",2)) + end + + r=sparse(dims,0,dims) + select d + case 0 then + [ij,v]=spget(a) + if or(ij(1,:)<>[1 1]) then return,end + if dims(1)==1 then + l=find(diff(ij(:,2))>1,1) + if l==[] then + r=sparse(ij,cumprod(v),dims) + else + r=sparse(ij(1:l,:),cumprod(v(1:l)),dims) + end + elseif dims(2)==1 then + l=find(diff(ij(:,1))>1,1) + if l==[] then + r=sparse(ij,cumprod(v),dims) + else + r=sparse(ij(1:l,:),cumprod(v(1:l)),dims) + end + else + r=matrix(cumprod(matrix(a,1,-1)),dims) + end + case 1 then + ij=[];v=[]; + for k=1:dims(2) + [ijk,vk]=spget(a(:,k)); + if and(ijk(1,:)==[1 1]) then + l=find(diff(ijk(:,1))>1,1); + if l==[] then + ij=[ij;[ijk(:,1) k*ones(vk)]]; + v=[v;cumprod(vk)]; + else + ij=[ij;[ijk(1:l,1) k*ones(l,1)]]; + v=[v;cumprod(vk(1:l,:))]; + end + end + end + r=sparse(ij,v,dims) + case 2 then + ij=[];v=[] + for k=1:dims(1) + [ijk,vk]=spget(a(k,:)) + if and(ijk(1,:)==[1 1]) then + l=find(diff(ijk(:,2))>1,1) + if l==[] then + ij=[ij;[k*ones(vk) ijk(:,2)]]; + v=[v;cumprod(vk)] + else + ij=[ij;[k*ones(l,1),ijk(1:l,2)]]; + v=[v;cumprod(vk(1:l,:))] + end + end + end + r=sparse(ij,v,dims) + else + r=a + end + +endfunction diff --git a/modules/overloading/macros/%sp_cumsum.bin b/modules/overloading/macros/%sp_cumsum.bin Binary files differnew file mode 100755 index 000000000..a8d931290 --- /dev/null +++ b/modules/overloading/macros/%sp_cumsum.bin diff --git a/modules/overloading/macros/%sp_cumsum.sci b/modules/overloading/macros/%sp_cumsum.sci new file mode 100755 index 000000000..d3ec2b8ca --- /dev/null +++ b/modules/overloading/macros/%sp_cumsum.sci @@ -0,0 +1,76 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2010 - INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function r=%sp_cumsum(varargin) + a = varargin(1) + dims = size(a); + + nargs = size(varargin); + select nargs + case 1 + d = "*"; + case 2 + if or(varargin(2) == ["native", "double"]) then + d = "*"; + else + d = varargin(2); + end + case 3 + d = varargin(2); + else + error(msprintf(_("%s: Wrong number of input argument(s): %d to %d expected.\n"),"cumsum", 1, 3)); + end + + // Check second argument : d + select type(d) + case 1 + if size(d,'*') <> 1 then + error(msprintf(_("%s: Wrong size for input argument #%d: A scalar expected.\n"),"cumsum", 2)) + end + if int(d) <> d | d < 0 then + error(msprintf(_("%s: Wrong value for input argument #%d: Integer >= %d expected.\n"),"cumsum", 2, 1)) + end + case 10 + if size(d,'*') <> 1 then + error(msprintf(_("%s: Wrong size for input argument #%d: A string expected.\n"),"cumsum",2)) + end + if and(d<>["r","c","*","m"]) then + error(msprintf(_("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"),.. + "cumsum",2,"""*"",""r"",""c"",""m""")) + end + + pos = [1,2,0,find(dims>1,1)]; + d=pos(find(d==["r","c","*","m"])) + + else + error(msprintf(_("%s: Wrong type for input argument #%d: A string or scalar expected.\n"),"cumsum",2)) + end + + select d + case 0 then + ij=spget(a) + if size(ij,1)==0 then r=a,return,end + mnj=min(ij(:,2)); + r=sparse([],[],dims); + r(1:dims(1),mnj:dims(2))=sparse(cumsum(full(a(:,mnj:$)))) + case 1 then + r=sparse([],[],dims); + for k=1:dims(2) + r(:,k)=cumsum(a(:,k)) + end + case 2 then + r=sparse([],[],dims); + for k=1:dims(1) + r(k,:)=cumsum(a(k,:)) + end + else + r=a + end + +endfunction diff --git a/modules/overloading/macros/%sp_d_s.bin b/modules/overloading/macros/%sp_d_s.bin Binary files differnew file mode 100755 index 000000000..12fe073bb --- /dev/null +++ b/modules/overloading/macros/%sp_d_s.bin diff --git a/modules/overloading/macros/%sp_d_s.sci b/modules/overloading/macros/%sp_d_s.sci new file mode 100755 index 000000000..64176ea0b --- /dev/null +++ b/modules/overloading/macros/%sp_d_s.sci @@ -0,0 +1,14 @@ +// 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 + +function r=%sp_d_s(a,b) + //r=a./b + + r=full(a)./b +endfunction diff --git a/modules/overloading/macros/%sp_d_sp.bin b/modules/overloading/macros/%sp_d_sp.bin Binary files differnew file mode 100755 index 000000000..9809789d1 --- /dev/null +++ b/modules/overloading/macros/%sp_d_sp.bin diff --git a/modules/overloading/macros/%sp_d_sp.sci b/modules/overloading/macros/%sp_d_sp.sci new file mode 100755 index 000000000..e1cba67c6 --- /dev/null +++ b/modules/overloading/macros/%sp_d_sp.sci @@ -0,0 +1,14 @@ +// 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 + +function r=%sp_d_sp(a,b) + //r=a./b + + r=full(a)./full(b) +endfunction diff --git a/modules/overloading/macros/%sp_det.bin b/modules/overloading/macros/%sp_det.bin Binary files differnew file mode 100755 index 000000000..739b8d551 --- /dev/null +++ b/modules/overloading/macros/%sp_det.bin diff --git a/modules/overloading/macros/%sp_det.sci b/modules/overloading/macros/%sp_det.sci new file mode 100755 index 000000000..78fd7e790 --- /dev/null +++ b/modules/overloading/macros/%sp_det.sci @@ -0,0 +1,27 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2013 - Scilab Enterprises - Charlotte HECQUET +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should 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 [res1, res2]=%sp_det(A) + [lhs, rhs]=argn(0); + hand = umf_lufact(A); //umfpack is used for complex sparse matrix + [L,U,P,Q,r] = umf_luget(hand); + res1=prod(r)*prod(diag(U)); + res2=res1; + if (lhs == 2) then + res1=0; + while abs(res2) >= 10 + if abs(res2) < 1 then + break; + end + res2 = res2 / 10; + res1 = res1 + 1; + end + end + umf_ludel(hand); +endfunction diff --git a/modules/overloading/macros/%sp_diag.bin b/modules/overloading/macros/%sp_diag.bin Binary files differnew file mode 100755 index 000000000..1af48a662 --- /dev/null +++ b/modules/overloading/macros/%sp_diag.bin diff --git a/modules/overloading/macros/%sp_diag.sci b/modules/overloading/macros/%sp_diag.sci new file mode 100755 index 000000000..45e9ea684 --- /dev/null +++ b/modules/overloading/macros/%sp_diag.sci @@ -0,0 +1,43 @@ +// 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 + +function d=%sp_diag(a,k) + // %sp_diag - implement diag function for sparse matrix, rational matrix ,.. + + [lhs,rhs]=argn(0) + if rhs==1 then k=0,end + + [ij,v,sz]=spget(a) + m=sz(1);n=sz(2) + if m>1&n>1 then + l=find(ij(:,1)==(ij(:,2)-k)) + if k<=0 then + mn=min(m+k,n) + i0=-k + else + mn=min(m,n-k) + i0=0 + end + kk=abs(k) + if l==[] then d=sparse([],[],[mn,1]);return;end + d=sparse([ij(l,1)-i0,ones(ij(l,1))],v(l),[mn,1]) + else + if m>1 then ij=ij(:,1);else ij=ij(:,2);end + nn = max(m,n)+abs(k) + if ij==[] then + d=sparse([],[],[nn,nn]) + else + if k>0 then + d=sparse([ij,ij+k],v,[nn,nn]) + else + d=sparse([ij-k,ij],v,[nn,nn]) + end + end + end +endfunction diff --git a/modules/overloading/macros/%sp_e.bin b/modules/overloading/macros/%sp_e.bin Binary files differnew file mode 100755 index 000000000..5e71d2356 --- /dev/null +++ b/modules/overloading/macros/%sp_e.bin diff --git a/modules/overloading/macros/%sp_e.sci b/modules/overloading/macros/%sp_e.sci new file mode 100755 index 000000000..8d008267a --- /dev/null +++ b/modules/overloading/macros/%sp_e.sci @@ -0,0 +1,20 @@ +// 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 + +function r=%sp_e(i,j,a) + // r=a(i,j) for f sparse in some special cases + //! + + [lhs,rhs]=argn(0) + if rhs==2 then + a=j; + a=a(:) + r=a(i) + end +endfunction diff --git a/modules/overloading/macros/%sp_exp.bin b/modules/overloading/macros/%sp_exp.bin Binary files differnew file mode 100755 index 000000000..125008053 --- /dev/null +++ b/modules/overloading/macros/%sp_exp.bin diff --git a/modules/overloading/macros/%sp_exp.sci b/modules/overloading/macros/%sp_exp.sci new file mode 100755 index 000000000..493864b13 --- /dev/null +++ b/modules/overloading/macros/%sp_exp.sci @@ -0,0 +1,13 @@ +// 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 + +function sp=%sp_exp(a) + + sp=exp(full(a)) +endfunction diff --git a/modules/overloading/macros/%sp_f_s.bin b/modules/overloading/macros/%sp_f_s.bin Binary files differnew file mode 100755 index 000000000..59edc9de6 --- /dev/null +++ b/modules/overloading/macros/%sp_f_s.bin diff --git a/modules/overloading/macros/%sp_f_s.sci b/modules/overloading/macros/%sp_f_s.sci new file mode 100755 index 000000000..92540e963 --- /dev/null +++ b/modules/overloading/macros/%sp_f_s.sci @@ -0,0 +1,14 @@ +// 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 + +function a=%sp_f_s(a,b) + // [a;b] a sparse b full + + a=[a;sparse(b)] +endfunction diff --git a/modules/overloading/macros/%sp_floor.bin b/modules/overloading/macros/%sp_floor.bin Binary files differnew file mode 100755 index 000000000..f22da2e30 --- /dev/null +++ b/modules/overloading/macros/%sp_floor.bin diff --git a/modules/overloading/macros/%sp_floor.sci b/modules/overloading/macros/%sp_floor.sci new file mode 100755 index 000000000..9d518d03f --- /dev/null +++ b/modules/overloading/macros/%sp_floor.sci @@ -0,0 +1,16 @@ +// 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 + +function x=%sp_floor(a) + // only to be called by function floor + //! + + [ij,v,mn]=spget(a) + x=sparse(ij,floor(v),mn) +endfunction diff --git a/modules/overloading/macros/%sp_i_ce.bin b/modules/overloading/macros/%sp_i_ce.bin Binary files differnew file mode 100755 index 000000000..0ede05f4c --- /dev/null +++ b/modules/overloading/macros/%sp_i_ce.bin diff --git a/modules/overloading/macros/%sp_i_ce.sci b/modules/overloading/macros/%sp_i_ce.sci new file mode 100755 index 000000000..c54ab507b --- /dev/null +++ b/modules/overloading/macros/%sp_i_ce.sci @@ -0,0 +1,13 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - Vincent Couvert +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should 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=%sp_i_ce(varargin) + // Insertion of a sparse matrix in a cell + M=generic_i_ce(varargin(:)) +endfunction diff --git a/modules/overloading/macros/%sp_i_h.bin b/modules/overloading/macros/%sp_i_h.bin Binary files differnew file mode 100755 index 000000000..303e45f00 --- /dev/null +++ b/modules/overloading/macros/%sp_i_h.bin diff --git a/modules/overloading/macros/%sp_i_h.sci b/modules/overloading/macros/%sp_i_h.sci new file mode 100755 index 000000000..74cf25b11 --- /dev/null +++ b/modules/overloading/macros/%sp_i_h.sci @@ -0,0 +1,16 @@ +// 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 + +function h=%sp_i_h(i,v,h) + h=generic_i_h(i,v,h) +endfunction + + + + diff --git a/modules/overloading/macros/%sp_i_s.bin b/modules/overloading/macros/%sp_i_s.bin Binary files differnew file mode 100755 index 000000000..664b96c3e --- /dev/null +++ b/modules/overloading/macros/%sp_i_s.bin diff --git a/modules/overloading/macros/%sp_i_s.sci b/modules/overloading/macros/%sp_i_s.sci new file mode 100755 index 000000000..67cef4f08 --- /dev/null +++ b/modules/overloading/macros/%sp_i_s.sci @@ -0,0 +1,44 @@ +// 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 + +function M=%sp_i_s(varargin) + // %sp_i_s(i,j,b,a) insert sparse matrix b into full matrix a + // M(i,j)=b + //! + + [lhs,rhs]=argn(0) + + M=varargin(rhs) + N=varargin(rhs-1)//inserted matrix + index=varargin(1) // + + if rhs==3&(type(index)==10|type(index)==15) then + M=createstruct(index,N) + if type(index(1))<>10 & index(2)=="entries" then + // change struct to cell + f=getfield(1,M);f(1)="ce" + setfield(1,f,M) + end + elseif rhs>4 then //more than 2 indices: + + //insertion of a sparse matrix in a matrix of numbers + error(msprintf(_("%s: Insertion of a sparse matrix in a matrix of numbers is not defined.\n"),"sp_i_s")); + else + i=varargin(1); + j=varargin(2); + M=varargin(4); + b=varargin(3); + if rhs==4 then + M(i,j)=full(b) + else + M=b;//b=j + M(i)=full(j) + end + end +endfunction diff --git a/modules/overloading/macros/%sp_i_sp.bin b/modules/overloading/macros/%sp_i_sp.bin Binary files differnew file mode 100755 index 000000000..0e080a86c --- /dev/null +++ b/modules/overloading/macros/%sp_i_sp.bin diff --git a/modules/overloading/macros/%sp_i_sp.sci b/modules/overloading/macros/%sp_i_sp.sci new file mode 100755 index 000000000..0f50f6b79 --- /dev/null +++ b/modules/overloading/macros/%sp_i_sp.sci @@ -0,0 +1,36 @@ +// 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 + +function a=%sp_i_sp(i,j,b,a) + + [lhs,rhs]=argn(0) + if rhs==3 then + a=b; + b=j; + [m,n]=size(a) + a=a(:) + a(i)=b(:) + a=matrix(a,m,n) + elseif rhs == 4 then + // bruno (feb 20 2006) add the following cases not taken + // into account by the interface spops : + if size(b,1) == 1 & size(b,2) == 1 then + // A(i,j) = B with B a 1x1 sparse matrix + a(i,j) = full(b) + elseif i == : & j == : then + // A(:,:) = B with mA x nA = mB x nB but mA ~= mB + // B is reshaped with the sizes of A + [m,n] = size(a) + a = matrix(b,m,n) + else + // print an error + error(msprintf(_("%s: Sparse insertion case is not implemented.\n"),"%sp_i_sp")); + end + end +endfunction diff --git a/modules/overloading/macros/%sp_i_st.bin b/modules/overloading/macros/%sp_i_st.bin Binary files differnew file mode 100755 index 000000000..eb2110c75 --- /dev/null +++ b/modules/overloading/macros/%sp_i_st.bin diff --git a/modules/overloading/macros/%sp_i_st.sci b/modules/overloading/macros/%sp_i_st.sci new file mode 100755 index 000000000..aeb486274 --- /dev/null +++ b/modules/overloading/macros/%sp_i_st.sci @@ -0,0 +1,12 @@ +// 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 + +function out=%sp_i_st(i,in,out) + out=generic_i_st(i,in,out) +endfunction diff --git a/modules/overloading/macros/%sp_int.bin b/modules/overloading/macros/%sp_int.bin Binary files differnew file mode 100755 index 000000000..8495d3c79 --- /dev/null +++ b/modules/overloading/macros/%sp_int.bin diff --git a/modules/overloading/macros/%sp_int.sci b/modules/overloading/macros/%sp_int.sci new file mode 100755 index 000000000..41deab6c9 --- /dev/null +++ b/modules/overloading/macros/%sp_int.sci @@ -0,0 +1,16 @@ +// 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 + +function x=%sp_int(a) + // only to be called by function int + //! + + [ij,v,mn]=spget(a) + x=sparse(ij,int(v),mn) +endfunction diff --git a/modules/overloading/macros/%sp_inv.bin b/modules/overloading/macros/%sp_inv.bin Binary files differnew file mode 100755 index 000000000..ded77b536 --- /dev/null +++ b/modules/overloading/macros/%sp_inv.bin diff --git a/modules/overloading/macros/%sp_inv.sci b/modules/overloading/macros/%sp_inv.sci new file mode 100755 index 000000000..6436df0e3 --- /dev/null +++ b/modules/overloading/macros/%sp_inv.sci @@ -0,0 +1,23 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA +// Copyright (C) 2013 - 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 x = %sp_inv(a) + + [ma, na] = size(a) + if ma<>na then + error(20,1) + end + warning("off") + Lup = umf_lufact(a); + warning("on") + x = sparse(umf_lusolve(Lup, eye(ma, na))); + umf_ludel(Lup) + +endfunction diff --git a/modules/overloading/macros/%sp_k_s.bin b/modules/overloading/macros/%sp_k_s.bin Binary files differnew file mode 100755 index 000000000..906bf7e77 --- /dev/null +++ b/modules/overloading/macros/%sp_k_s.bin diff --git a/modules/overloading/macros/%sp_k_s.sci b/modules/overloading/macros/%sp_k_s.sci new file mode 100755 index 000000000..1555eae54 --- /dev/null +++ b/modules/overloading/macros/%sp_k_s.sci @@ -0,0 +1,15 @@ +// 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 + +function r=%sp_k_s(a,b) + // a.*.b with a sparse b full + + if b==[] then r=[],return,end + r=a.*.sparse(b) +endfunction diff --git a/modules/overloading/macros/%sp_k_sp.bin b/modules/overloading/macros/%sp_k_sp.bin Binary files differnew file mode 100755 index 000000000..0c21ff203 --- /dev/null +++ b/modules/overloading/macros/%sp_k_sp.bin diff --git a/modules/overloading/macros/%sp_k_sp.sci b/modules/overloading/macros/%sp_k_sp.sci new file mode 100755 index 000000000..d471ea852 --- /dev/null +++ b/modules/overloading/macros/%sp_k_sp.sci @@ -0,0 +1,21 @@ +// 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 + +function r=%sp_k_sp(a,b) + // a.*.b with a and b sparse + + [ija,va,mna]=spget(a) + [ijb,vb,mnb]=spget(b) + ia=ija(:,1);ja=ija(:,2) + ib=ijb(:,1);jb=ijb(:,2) + + ij=[((ia-ones(ia))*mnb(1)).*.ones(ib)+ones(ia).*.ib,.. + ((ja-ones(ja))*mnb(2)).*.ones(jb)+ones(ia).*.jb] + r=sparse(ij,va.*.vb,mna.*mnb) +endfunction diff --git a/modules/overloading/macros/%sp_l_s.bin b/modules/overloading/macros/%sp_l_s.bin Binary files differnew file mode 100755 index 000000000..20833f727 --- /dev/null +++ b/modules/overloading/macros/%sp_l_s.bin diff --git a/modules/overloading/macros/%sp_l_s.sci b/modules/overloading/macros/%sp_l_s.sci new file mode 100755 index 000000000..0d0a6351c --- /dev/null +++ b/modules/overloading/macros/%sp_l_s.sci @@ -0,0 +1,40 @@ +// 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 + +function x=%sp_l_s(a,b) + // a\b , a sparse b full + + + [ma,na]=size(a) + [mb,nb]=size(b) + if mb*nb==1 then x=a\(b*speye(na,na)),return;end + + if ma<>mb then error(12),end + + if ma<>na then b=a'*b;a=a'*a;end + + if isreal(a)&isreal(b) then + [h,rk]=lufact(a) + if rk<min(ma,na) then warning("deficient rank: rank = "+string(rk)),end + x=[] + for k=1:nb + x=[x,lusolve(h,b(:,k))] + end + ludel(h) + else + [h,rk]=lufact([real(a) -imag(a);imag(a) real(a)]) + if rk<2*min(ma,na) then warning("deficient rank: rank = "+string(rk/2)),end + x=[] + for k=1:nb + x=[x,lusolve(h,[real(b(:,k));imag(b(:,k))])] + end + x=x(1:$/2,:)+%i*x($/2+1:$,:) + ludel(h) + end +endfunction diff --git a/modules/overloading/macros/%sp_l_sp.bin b/modules/overloading/macros/%sp_l_sp.bin Binary files differnew file mode 100755 index 000000000..1346d16d3 --- /dev/null +++ b/modules/overloading/macros/%sp_l_sp.bin diff --git a/modules/overloading/macros/%sp_l_sp.sci b/modules/overloading/macros/%sp_l_sp.sci new file mode 100755 index 000000000..39f55a57a --- /dev/null +++ b/modules/overloading/macros/%sp_l_sp.sci @@ -0,0 +1,27 @@ +// 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 + +function x=%sp_l_sp(a,b) + // a\b , a sparse b sparse + + [ma,na]=size(a) + [mb,nb]=size(b) + if ma<>mb then error(12),end + if ma<>na then + b=a'*b;a=a'*a + end + + [h,rk]=lufact(a) + if rk<min(ma,na) then warning("deficient rank: rank = "+string(rk)),end + x=[] + for k=1:nb + x=[x,sparse(lusolve(h,full(b(:,k))))] + end + ludel(h) +endfunction diff --git a/modules/overloading/macros/%sp_length.bin b/modules/overloading/macros/%sp_length.bin Binary files differnew file mode 100755 index 000000000..89cf4cc95 --- /dev/null +++ b/modules/overloading/macros/%sp_length.bin diff --git a/modules/overloading/macros/%sp_length.sci b/modules/overloading/macros/%sp_length.sci new file mode 100755 index 000000000..10b2c62da --- /dev/null +++ b/modules/overloading/macros/%sp_length.sci @@ -0,0 +1,13 @@ +// 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 + +function l=%sp_length(x) + l=max(size(x)) +endfunction + diff --git a/modules/overloading/macros/%sp_norm.bin b/modules/overloading/macros/%sp_norm.bin Binary files differnew file mode 100755 index 000000000..5e1c542d0 --- /dev/null +++ b/modules/overloading/macros/%sp_norm.bin diff --git a/modules/overloading/macros/%sp_norm.sci b/modules/overloading/macros/%sp_norm.sci new file mode 100755 index 000000000..2b8731416 --- /dev/null +++ b/modules/overloading/macros/%sp_norm.sci @@ -0,0 +1,68 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA +// Copyright (C) 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 res=%sp_norm(S,flag) + + [lhs,rhs]=argn(0) + if rhs==1 then flag=2;end //norm(S)=norm(S,2) + [m,n]=size(S) + + if m==1|n==1 then //vector norm + [ij,v]=spget(S); + res=norm(v,flag); + return + end + + select flag + case 1 then + res=max(ones(1,m)*abs(S)) + case 2 then + if m<n then + S1=S*S' + elseif m>n then + S1=S'*S + else + S1 = S; + end + + tol=2*%eps; + x = sum(abs(S1),1)'; + res = norm(x); + if res==0 then return,end + x = x/res;res0 = 0; + while abs(res-res0) > tol*res + res0 = res; Sx = S1*x; + + // Bug #10178: norm failed for some sparse matrix + // If Sx = 0, we had "division by zero" with x/norm(x) + // So, use to sum(abs(S).^2).^(1/2) + if Sx == 0 then + res = sum(abs(S).^2).^(1/2); + return + end + // End Bug #10178 + + res = norm(Sx); + x = S1'*Sx; + x = x/norm(x); + end + if m<>n then res=sqrt(res),end + case %inf then + res=max(abs(S)*ones(n,1)) + case "inf" then + res=max(abs(S)*ones(n,1)) + case "fro" then + [ij,v]=spget(S); + res=sqrt(sum(abs(v.*v))) + else + [ij,v]=spget(S); + res=norm(v,flag); + end +endfunction diff --git a/modules/overloading/macros/%sp_or.bin b/modules/overloading/macros/%sp_or.bin Binary files differnew file mode 100755 index 000000000..6db850c7b --- /dev/null +++ b/modules/overloading/macros/%sp_or.bin diff --git a/modules/overloading/macros/%sp_or.sci b/modules/overloading/macros/%sp_or.sci new file mode 100755 index 000000000..99d57a4c3 --- /dev/null +++ b/modules/overloading/macros/%sp_or.sci @@ -0,0 +1,18 @@ +// 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 + +function x=%sp_or(a,flag) + + if argn(2)==1 then flag="*",end + if flag=="*" then + x=find(a<>0,1)<>[] + else + x=sum(bool2s(a),flag)>=1 + end +endfunction diff --git a/modules/overloading/macros/%sp_p_s.bin b/modules/overloading/macros/%sp_p_s.bin Binary files differnew file mode 100755 index 000000000..452dbd418 --- /dev/null +++ b/modules/overloading/macros/%sp_p_s.bin diff --git a/modules/overloading/macros/%sp_p_s.sci b/modules/overloading/macros/%sp_p_s.sci new file mode 100755 index 000000000..190088f3f --- /dev/null +++ b/modules/overloading/macros/%sp_p_s.sci @@ -0,0 +1,47 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) BRUNO PINCON +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should 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 B=%sp_p_s(A,p) + // handle A^p for scalar integer p only + + if length(p) ~= 1 then + error(msprintf(_("%s: Wrong type for input argument #%d: A scalar expected.\n"),"%sp_p_s",2)); + end + if floor(p) ~= p then + error(msprintf(_("%s: Wrong type for input argument #%d: An integer expected.\n"),"%sp_p_s",2)); + end + if p == 0 then + B = speye(A) + return + elseif p < 0 then + A = inv(A) + p = -p + end + + select p + case 1 + B = A + case 2 + B = A*A + case 3 + B = A*(A*A) + case 4 + B = A*A + B = B*B + else + B = A + for i=2:p // slow method (we could use the power algorithm) + B = A*B + end + end + +endfunction + + + diff --git a/modules/overloading/macros/%sp_prod.bin b/modules/overloading/macros/%sp_prod.bin Binary files differnew file mode 100755 index 000000000..9a84042d9 --- /dev/null +++ b/modules/overloading/macros/%sp_prod.bin diff --git a/modules/overloading/macros/%sp_prod.sci b/modules/overloading/macros/%sp_prod.sci new file mode 100755 index 000000000..66bfc1566 --- /dev/null +++ b/modules/overloading/macros/%sp_prod.sci @@ -0,0 +1,71 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2010 - INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function r=%sp_prod(varargin) + a = varargin(1) + dims = size(a); + + nargs = size(varargin); + select nargs + case 1 + d = "*"; + case 2 + if or(varargin(2) == ["native", "double"]) then + d = "*"; + else + d = varargin(2); + end + case 3 + d = varargin(2); + else + error(msprintf(_("%s: Wrong number of input argument(s): %d to %d expected.\n"),"prod", 1, 3)); + end + + // Check second argument : d + select type(d) + case 1 + if size(d,'*') <> 1 then + error(msprintf(_("%s: Wrong size for input argument #%d: A scalar expected.\n"),"prod", 2)) + end + if int(d) <> d | d < 0 then + error(msprintf(_("%s: Wrong value for input argument #%d: Integer >= %d expected.\n"),"prod", 2, 1)) + end + case 10 + if size(d,'*') <> 1 then + error(msprintf(_("%s: Wrong size for input argument #%d: A string expected.\n"),"prod",2)) + end + if and(d<>["r","c","*","m"]) then + error(msprintf(_("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"),.. + "prod",2,"""*"",""r"",""c"",""m""")) + end + + pos = [1,2,0,find(dims>1,1)]; + d=pos(find(d==["r","c","*","m"])) + else + error(msprintf(_("%s: Wrong type for input argument #%d: A string or scalar expected.\n"),"prod",2)) + end + + select d + case 0 then + r=prod(a) + case 1 then + for k=1:dims(2) + r(1,k)=prod(a(:,k)) + end + r=sparse(r) + case 2 then + for k=1:dims(1) + r(k,1)=prod(a(k,:)) + end + r=sparse(r) + else + r=a + end + +endfunction diff --git a/modules/overloading/macros/%sp_q_s.bin b/modules/overloading/macros/%sp_q_s.bin Binary files differnew file mode 100755 index 000000000..baa67bff8 --- /dev/null +++ b/modules/overloading/macros/%sp_q_s.bin diff --git a/modules/overloading/macros/%sp_q_s.sci b/modules/overloading/macros/%sp_q_s.sci new file mode 100755 index 000000000..4cdafef68 --- /dev/null +++ b/modules/overloading/macros/%sp_q_s.sci @@ -0,0 +1,19 @@ +// 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 + +function r=%sp_q_s(a,b) + //r=a.\b + + [ij,v,mn]=spget(a) + if size(v,"*")<>mn(1)*mn(2) then + error(27) + else + r=full(a).\b + end +endfunction diff --git a/modules/overloading/macros/%sp_q_sp.bin b/modules/overloading/macros/%sp_q_sp.bin Binary files differnew file mode 100755 index 000000000..cdaa3fe42 --- /dev/null +++ b/modules/overloading/macros/%sp_q_sp.bin diff --git a/modules/overloading/macros/%sp_q_sp.sci b/modules/overloading/macros/%sp_q_sp.sci new file mode 100755 index 000000000..77cd69e28 --- /dev/null +++ b/modules/overloading/macros/%sp_q_sp.sci @@ -0,0 +1,14 @@ +// 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 + +function r=%sp_q_sp(a,b) + //r=a.\b + + r=full(a).\full(b) +endfunction diff --git a/modules/overloading/macros/%sp_r_s.bin b/modules/overloading/macros/%sp_r_s.bin Binary files differnew file mode 100755 index 000000000..14dd790ef --- /dev/null +++ b/modules/overloading/macros/%sp_r_s.bin diff --git a/modules/overloading/macros/%sp_r_s.sci b/modules/overloading/macros/%sp_r_s.sci new file mode 100755 index 000000000..9aba2ac3a --- /dev/null +++ b/modules/overloading/macros/%sp_r_s.sci @@ -0,0 +1,14 @@ +// 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 + +function x=%sp_r_s(a,b) + // a*b^-1 a sparse, b full + + x=full(a)/b +endfunction diff --git a/modules/overloading/macros/%sp_r_sp.bin b/modules/overloading/macros/%sp_r_sp.bin Binary files differnew file mode 100755 index 000000000..9e2f7cb97 --- /dev/null +++ b/modules/overloading/macros/%sp_r_sp.bin diff --git a/modules/overloading/macros/%sp_r_sp.sci b/modules/overloading/macros/%sp_r_sp.sci new file mode 100755 index 000000000..0c7e53dcf --- /dev/null +++ b/modules/overloading/macros/%sp_r_sp.sci @@ -0,0 +1,27 @@ +// 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 + +function x=%sp_r_sp(a,b) + // a/b , a sparse b sparse + + [ma,na]=size(a) + [mb,nb]=size(b) + if na<>nb then error(12),end + if mb<>nb then + a=a*b';b=b*b' + end + + [h,rk]=lufact(b') + if rk<min(mb,nb) then warning("deficient rank: rank = "+string(rk)),end + x=[] + for k=1:ma + x=[x;sparse(lusolve(h,full(a(k,:))')')] + end + ludel(h) +endfunction diff --git a/modules/overloading/macros/%sp_round.bin b/modules/overloading/macros/%sp_round.bin Binary files differnew file mode 100755 index 000000000..d18b475fa --- /dev/null +++ b/modules/overloading/macros/%sp_round.bin diff --git a/modules/overloading/macros/%sp_round.sci b/modules/overloading/macros/%sp_round.sci new file mode 100755 index 000000000..f8c3346e7 --- /dev/null +++ b/modules/overloading/macros/%sp_round.sci @@ -0,0 +1,14 @@ +// 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 + +function sp=%sp_round(a) + + [ij,v,mn]=spget(a) + sp=sparse(ij,round(v),mn) +endfunction diff --git a/modules/overloading/macros/%sp_s_s.bin b/modules/overloading/macros/%sp_s_s.bin Binary files differnew file mode 100755 index 000000000..9fd95fa7a --- /dev/null +++ b/modules/overloading/macros/%sp_s_s.bin diff --git a/modules/overloading/macros/%sp_s_s.sci b/modules/overloading/macros/%sp_s_s.sci new file mode 100755 index 000000000..53ac8ec9d --- /dev/null +++ b/modules/overloading/macros/%sp_s_s.sci @@ -0,0 +1,20 @@ +// 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 + +function s=%sp_s_s(a,b) + // %sp_s_s - subtract a scalar b to a sparse matrix a + //! + + if size(b)==[-1 -1] then + [m,n]=size(a) + s=a-(b+0)*speye(m,n) + else + s=full(a)-b + end +endfunction diff --git a/modules/overloading/macros/%sp_s_sp.bin b/modules/overloading/macros/%sp_s_sp.bin Binary files differnew file mode 100755 index 000000000..bf7a429b8 --- /dev/null +++ b/modules/overloading/macros/%sp_s_sp.bin diff --git a/modules/overloading/macros/%sp_s_sp.sci b/modules/overloading/macros/%sp_s_sp.sci new file mode 100755 index 000000000..56dc65c95 --- /dev/null +++ b/modules/overloading/macros/%sp_s_sp.sci @@ -0,0 +1,29 @@ +// 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 + +function s=%sp_s_sp(a,b) + // %spas - adds 2 sparse matrices (special cases) + //! + + if size(a)==[1 1] then + a=full(a) + if a==0 then + s=b, + else + s=a-full(b) + end + elseif size(b)==[1 1] then + b=full(b) + if b==0 then + s=a + else + s=full(a)-b + end + end +endfunction diff --git a/modules/overloading/macros/%sp_sin.bin b/modules/overloading/macros/%sp_sin.bin Binary files differnew file mode 100755 index 000000000..dc650e38d --- /dev/null +++ b/modules/overloading/macros/%sp_sin.bin diff --git a/modules/overloading/macros/%sp_sin.sci b/modules/overloading/macros/%sp_sin.sci new file mode 100755 index 000000000..7861c644f --- /dev/null +++ b/modules/overloading/macros/%sp_sin.sci @@ -0,0 +1,14 @@ +// 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 + +function sp=%sp_sin(a) + + [ij,v,mn]=spget(a) + sp=sparse(ij,sin(v),mn) +endfunction diff --git a/modules/overloading/macros/%sp_sqrt.bin b/modules/overloading/macros/%sp_sqrt.bin Binary files differnew file mode 100755 index 000000000..bb96ab21c --- /dev/null +++ b/modules/overloading/macros/%sp_sqrt.bin diff --git a/modules/overloading/macros/%sp_sqrt.sci b/modules/overloading/macros/%sp_sqrt.sci new file mode 100755 index 000000000..bb2e6d5e1 --- /dev/null +++ b/modules/overloading/macros/%sp_sqrt.sci @@ -0,0 +1,14 @@ +// 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 + +function sp=%sp_sqrt(a) + + [ij,v,mn]=spget(a) + sp=sparse(ij,sqrt(v),mn) +endfunction diff --git a/modules/overloading/macros/%sp_string.bin b/modules/overloading/macros/%sp_string.bin Binary files differnew file mode 100755 index 000000000..4aaf86007 --- /dev/null +++ b/modules/overloading/macros/%sp_string.bin diff --git a/modules/overloading/macros/%sp_string.sci b/modules/overloading/macros/%sp_string.sci new file mode 100755 index 000000000..790d5e970 --- /dev/null +++ b/modules/overloading/macros/%sp_string.sci @@ -0,0 +1,14 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2011 - DIGITEO - Michael Baudin +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +function s=%sp_string(A) + [ij,v,mn]=spget(A); + s = msprintf("(%d,%d) sparse matrix",mn(1),mn(2)) + s = [s; "("+string(ij(:,1)) + "," + string(ij(:,2))+") " + string(v)] +endfunction + diff --git a/modules/overloading/macros/%sp_sum.bin b/modules/overloading/macros/%sp_sum.bin Binary files differnew file mode 100755 index 000000000..78c2199cf --- /dev/null +++ b/modules/overloading/macros/%sp_sum.bin diff --git a/modules/overloading/macros/%sp_sum.sci b/modules/overloading/macros/%sp_sum.sci new file mode 100755 index 000000000..da35c5a7d --- /dev/null +++ b/modules/overloading/macros/%sp_sum.sci @@ -0,0 +1,65 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2010 - INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function a=%sp_sum(varargin) + a = varargin(1) + dims = size(a); + + nargs = size(varargin); + select nargs + case 1 + d = "*"; + case 2 + if or(varargin(2) == ["native", "double"]) then + d = "*"; + else + d = varargin(2); + end + case 3 + d = varargin(2); + else + error(msprintf(_("%s: Wrong number of input argument(s): %d to %d expected.\n"),"sum", 1, 3)); + end + + // Check second argument : d + select type(d) + case 1 + if size(d,'*') <> 1 then + error(msprintf(_("%s: Wrong size for input argument #%d: A scalar expected.\n"),"sum", 2)) + end + if int(d) <> d | d < 0 then + error(msprintf(_("%s: Wrong value for input argument #%d: Integer >= %d expected.\n"),"sum", 2, 1)) + end + case 10 + if size(d,'*') <> 1 then + error(msprintf(_("%s: Wrong size for input argument #%d: A string expected.\n"),"sum",2)) + end + if and(d<>["r","c","*","m"]) then + error(msprintf(_("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"),.. + "sum",2,"""*"",""r"",""c"",""m""")) + end + + pos = [1,2,0,find(dims>1,1)]; + d=pos(find(d==["r","c","*","m"])) + else + error(msprintf(_("%s: Wrong type for input argument #%d: A string or scalar expected.\n"),"sum",2)) + end + + select d + case 0 then + //sum of all elements + a=sum(a) + case 1 then + a=sparse(ones(1,dims(1))*a); + case 2 then + a=sparse(a*ones(dims(2),1)) + else + a=a + end +endfunction diff --git a/modules/overloading/macros/%sp_tril.bin b/modules/overloading/macros/%sp_tril.bin Binary files differnew file mode 100755 index 000000000..54b94490a --- /dev/null +++ b/modules/overloading/macros/%sp_tril.bin diff --git a/modules/overloading/macros/%sp_tril.sci b/modules/overloading/macros/%sp_tril.sci new file mode 100755 index 000000000..96c6a3555 --- /dev/null +++ b/modules/overloading/macros/%sp_tril.sci @@ -0,0 +1,19 @@ +// 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 + +function d=%sp_tril(a,k) + + [lhs,rhs]=argn(0) + if rhs==1 then k=0,end + + [ij,v,sz]=spget(a) + m=sz(1);n=sz(2) + l=find(ij(:,1)>=(ij(:,2)-k)) + d=sparse(ij(l,:),v(l),[m,n]) +endfunction diff --git a/modules/overloading/macros/%sp_triu.bin b/modules/overloading/macros/%sp_triu.bin Binary files differnew file mode 100755 index 000000000..6ef71adf5 --- /dev/null +++ b/modules/overloading/macros/%sp_triu.bin diff --git a/modules/overloading/macros/%sp_triu.sci b/modules/overloading/macros/%sp_triu.sci new file mode 100755 index 000000000..535b2e14c --- /dev/null +++ b/modules/overloading/macros/%sp_triu.sci @@ -0,0 +1,19 @@ +// 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 + +function d=%sp_triu(a,k) + + [lhs,rhs]=argn(0) + if rhs==1 then k=0,end + + [ij,v,sz]=spget(a) + m=sz(1);n=sz(2) + l=find(ij(:,1)<=(ij(:,2)-k)) + d=sparse(ij(l,:),v(l),[m,n]) +endfunction diff --git a/modules/overloading/macros/%sp_y_s.bin b/modules/overloading/macros/%sp_y_s.bin Binary files differnew file mode 100755 index 000000000..baba1dc42 --- /dev/null +++ b/modules/overloading/macros/%sp_y_s.bin diff --git a/modules/overloading/macros/%sp_y_s.sci b/modules/overloading/macros/%sp_y_s.sci new file mode 100755 index 000000000..4bd7de82e --- /dev/null +++ b/modules/overloading/macros/%sp_y_s.sci @@ -0,0 +1,15 @@ +// 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 + +function r=%sp_y_s(a,b) + // a./.b with a sparse b full + + if b==[] then r=[],return,end + r=a./.sparse(b) +endfunction diff --git a/modules/overloading/macros/%sp_y_sp.bin b/modules/overloading/macros/%sp_y_sp.bin Binary files differnew file mode 100755 index 000000000..25c2da526 --- /dev/null +++ b/modules/overloading/macros/%sp_y_sp.bin diff --git a/modules/overloading/macros/%sp_y_sp.sci b/modules/overloading/macros/%sp_y_sp.sci new file mode 100755 index 000000000..9d09fc6e2 --- /dev/null +++ b/modules/overloading/macros/%sp_y_sp.sci @@ -0,0 +1,22 @@ +// 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 + +function r=%sp_y_sp(a,b) + // a./.b with a and b sparse + + [ija,va,mna]=spget(a) + [ijb,vb,mnb]=spget(b) + if size(ijb,1)<>prod(mnb)|or(vb==0) then error(27),end + ia=ija(:,1);ja=ija(:,2) + ib=ijb(:,1);jb=ijb(:,2) + + ij=[((ia-ones(ia))*mnb(1)).*.ones(ib)+ones(ia).*.ib,.. + ((ja-ones(ja))*mnb(2)).*.ones(jb)+ones(ia).*.jb] + r=sparse(ij,va./.vb,mna.*mnb) +endfunction diff --git a/modules/overloading/macros/%sp_z_s.bin b/modules/overloading/macros/%sp_z_s.bin Binary files differnew file mode 100755 index 000000000..e0700b8d2 --- /dev/null +++ b/modules/overloading/macros/%sp_z_s.bin diff --git a/modules/overloading/macros/%sp_z_s.sci b/modules/overloading/macros/%sp_z_s.sci new file mode 100755 index 000000000..1e2276036 --- /dev/null +++ b/modules/overloading/macros/%sp_z_s.sci @@ -0,0 +1,15 @@ +// 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 + +function r=%sp_z_s(a,b) + // a.\.b with a sparse b full + + if b==[] then r=[],return,end + r=a.\.sparse(b) +endfunction diff --git a/modules/overloading/macros/%sp_z_sp.bin b/modules/overloading/macros/%sp_z_sp.bin Binary files differnew file mode 100755 index 000000000..56ef6e2be --- /dev/null +++ b/modules/overloading/macros/%sp_z_sp.bin diff --git a/modules/overloading/macros/%sp_z_sp.sci b/modules/overloading/macros/%sp_z_sp.sci new file mode 100755 index 000000000..3b8cba7ef --- /dev/null +++ b/modules/overloading/macros/%sp_z_sp.sci @@ -0,0 +1,22 @@ +// 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 + +function r=%sp_z_sp(a,b) + // a.\.b with a and b sparse + + [ija,va,mna]=spget(a) + [ijb,vb,mnb]=spget(b) + if size(ija,1)<>prod(mna)|or(va==0) then error(27),end + ia=ija(:,1);ja=ija(:,2) + ib=ijb(:,1);jb=ijb(:,2) + + ij=[((ia-ones(ia))*mnb(1)).*.ones(ib)+ones(ia).*.ib,.. + ((ja-ones(ja))*mnb(2)).*.ones(jb)+ones(ia).*.jb] + r=sparse(ij,va.\.vb,mna.*mnb) +endfunction diff --git a/modules/overloading/macros/%spb_and.bin b/modules/overloading/macros/%spb_and.bin Binary files differnew file mode 100755 index 000000000..8f881ad95 --- /dev/null +++ b/modules/overloading/macros/%spb_and.bin diff --git a/modules/overloading/macros/%spb_and.sci b/modules/overloading/macros/%spb_and.sci new file mode 100755 index 000000000..3a3dec120 --- /dev/null +++ b/modules/overloading/macros/%spb_and.sci @@ -0,0 +1,21 @@ +// 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 + +function x=%spb_and(a,flag) + // or(a) returns the logical OR + // for scalar matrices, an entry is TRUE if it is not zero. + //! + + if argn(2)==1 then flag="*",end + if flag=="*" then + x=find(~a,1)==[] + else + x=sum(bool2s(a),flag)==size(a,flag) + end +endfunction diff --git a/modules/overloading/macros/%spb_c_b.bin b/modules/overloading/macros/%spb_c_b.bin Binary files differnew file mode 100755 index 000000000..155ede4c9 --- /dev/null +++ b/modules/overloading/macros/%spb_c_b.bin diff --git a/modules/overloading/macros/%spb_c_b.sci b/modules/overloading/macros/%spb_c_b.sci new file mode 100755 index 000000000..c0a87283c --- /dev/null +++ b/modules/overloading/macros/%spb_c_b.sci @@ -0,0 +1,15 @@ +// 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 + +function r=%spb_c_b(a,b) + // perform [a b] where a is a boolean sparse matrix + // and b a boolean matrix + + r=[a sparse(b)] +endfunction diff --git a/modules/overloading/macros/%spb_cumprod.bin b/modules/overloading/macros/%spb_cumprod.bin Binary files differnew file mode 100755 index 000000000..910e24a57 --- /dev/null +++ b/modules/overloading/macros/%spb_cumprod.bin diff --git a/modules/overloading/macros/%spb_cumprod.sci b/modules/overloading/macros/%spb_cumprod.sci new file mode 100755 index 000000000..4044038ce --- /dev/null +++ b/modules/overloading/macros/%spb_cumprod.sci @@ -0,0 +1,131 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2010 - INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function r = %spb_cumprod(varargin) + a = varargin(1) + dims = size(a); + + nargs = size(varargin); + select nargs + case 1 + d = "*"; + typ = "double"; + case 2 + if or(varargin(2) == ["native", "double"]) then + d = "*"; + typ = varargin(2); + else + d = varargin(2); + typ = "double"; + end + case 3 + d = varargin(2); + typ = varargin(3); + else + error(msprintf(_("%s: Wrong number of input argument(s): %d to %d expected.\n"),"cumprod", 1, 3)); + end + + // Check second argument : d + select type(d) + case 1 + if size(d,'*') <> 1 then + error(msprintf(_("%s: Wrong size for input argument #%d: A scalar expected.\n"),"cumprod", 2)) + end + if int(d) <> d | d < 0 then + error(msprintf(_("%s: Wrong value for input argument #%d: Integer >= %d expected.\n"),"cumprod", 2, 1)) + end + case 10 + if size(d,'*') <> 1 then + error(msprintf(_("%s: Wrong size for input argument #%d: A string expected.\n"),"cumprod",2)) + end + if and(d<>["r","c","*","m"]) then + error(msprintf(_("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"),.. + "cumprod",2,"""*"",""r"",""c"",""m""")) + end + pos = [1,2,0,find(dims>1,1)]; + d=pos(find(d==["r","c","*","m"])) + else + error(msprintf(_("%s: Wrong type for input argument #%d: A string or scalar expected.\n"),"cumprod",2)) + end + + // Check third argument + if type(typ)<>10 then + error(msprintf(_("%s: Wrong type for input argument #%d: A string expected.\n"),"cumprod",3)) + end + + if size(typ,"*")<>1 then + error(msprintf(_("%s: Wrong size for input argument #%d: A string expected.\n"),"cumprod",3)) + end + + if and(typ <> ["native" "double"]) then + error(msprintf(_("%s: Wrong value for input argument #%d: ""%s"" or ""%s"" expected.\n"),"cumprod", 3, "native", "double")); + end + + r=sparse(dims,0,dims) + select d + case 0 then + [ij,v]=spget(a) + if dims(1)==1 then + l=find(diff(ij(:,2))>1,1) + if l==[] then + r=sparse(ij,cumprod(v,typ),dims) + else + r=sparse(ij(1:l,:),cumprod(v(1:l),typ),dims) + end + elseif dims(2)==1 then + l=find(diff(ij(:,1))>1,1) + if l==[] then + r=sparse(ij,cumprod(v,typ),dims) + else + r=sparse(ij(1:l,:),cumprod(v(1:l),typ),dims) + end + else + r=matrix(cumprod(matrix(a,1,-1),typ),dims) + end + case 1 then + ij=[];v=[]; + for k=1:dims(2) + [ijk,vk]=spget(a(:,k)); + if and(ijk(1,:)==[1 1]) then + l=find(diff(ijk(:,1))>1,1); + if l==[] then + ij=[ij;[ijk(:,1) k*ones(vk)]]; + v=[v;cumprod(vk,typ)]; + else + ij=[ij;[ijk(1:l,1) k*ones(l,1)]]; + v=[v;cumprod(vk(1:l,:),typ)]; + end + end + end + r=sparse(ij,v,dims) + case 2 then + ij=[];v=[] + for k=1:dims(1) + [ijk,vk]=spget(a(k,:)) + if and(ijk(1,:)==[1 1]) then + l=find(diff(ijk(:,2))>1,1) + if l==[] then + ij=[ij;[k*ones(vk) ijk(:,2)]]; + v=[v;cumprod(vk,typ)] + else + ij=[ij;[k*ones(l,1),ijk(1:l,2)]]; + v=[v;cumprod(vk(1:l,:),typ)] + end + end + end + r=sparse(ij,v,dims) + else + if typ=="native" + r=a + else + r=bool2s(a) + end + end + +endfunction diff --git a/modules/overloading/macros/%spb_cumsum.bin b/modules/overloading/macros/%spb_cumsum.bin Binary files differnew file mode 100755 index 000000000..03622b44a --- /dev/null +++ b/modules/overloading/macros/%spb_cumsum.bin diff --git a/modules/overloading/macros/%spb_cumsum.sci b/modules/overloading/macros/%spb_cumsum.sci new file mode 100755 index 000000000..1745ccfd5 --- /dev/null +++ b/modules/overloading/macros/%spb_cumsum.sci @@ -0,0 +1,182 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2010 - INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function r = %spb_cumsum(varargin) + a = varargin(1) + dims = size(a); + + nargs = size(varargin); + select nargs + case 1 + d = "*"; + typ = "double"; + case 2 + if or(varargin(2) == ["native", "double"]) then + d = "*"; + typ = varargin(2); + else + d = varargin(2); + typ = "double"; + end + case 3 + d = varargin(2); + typ = varargin(3); + else + error(msprintf(_("%s: Wrong number of input argument(s): %d to %d expected.\n"),"cumsum", 1, 3)); + end + + // Check second argument : d + select type(d) + case 1 + if size(d,'*') <> 1 then + error(msprintf(_("%s: Wrong size for input argument #%d: A scalar expected.\n"),"cumsum", 2)) + end + if int(d) <> d | d < 0 then + error(msprintf(_("%s: Wrong value for input argument #%d: Integer >= %d expected.\n"),"cumsum", 2, 1)) + end + case 10 + if size(d,'*') <> 1 then + error(msprintf(_("%s: Wrong size for input argument #%d: A string expected.\n"),"cumsum",2)) + end + if and(d<>["r","c","*","m"]) then + error(msprintf(_("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"),.. + "cumsum",2,"""*"",""r"",""c"",""m""")) + end + pos = [1,2,0,find(dims>1,1)]; + d=pos(find(d==["r","c","*","m"])) + else + error(msprintf(_("%s: Wrong type for input argument #%d: A string or scalar expected.\n"),"cumsum",2)) + end + + // Check third argument + if type(typ)<>10 then + error(msprintf(_("%s: Wrong type for input argument #%d: A string expected.\n"),"cumsum",3)) + end + + if size(typ,"*")<>1 then + error(msprintf(_("%s: Wrong size for input argument #%d: A string expected.\n"),"cumsum",3)) + end + + if and(typ <> ["native" "double"]) then + error(msprintf(_("%s: Wrong value for input argument #%d: ""%s"" or ""%s"" expected.\n"),"cumsum", 3, "native", "double")); + end + +// rhs=argn(2); +// dims=size(a) +// if rhs==1 then +// typ=list() +// d=0 //"*" +// else +// // call cumsum(a, d) or cumsum(a, d, typ) +// // d must be a string or scalar -> check type and size +// if and(type(d)<> [1, 10]) then +// error(msprintf(_("%s: Wrong type for input argument #%d: A string or scalar expected.\n"),"cumsum",2)) +// end +// +// if size(d,"*")<>1 then +// if type(d)==10 then +// error(msprintf(_("%s: Wrong size for input argument #%d: A string expected.\n"),"cumsum",2)) +// else +// error(msprintf(_("%s: Wrong size for input argument #%d: A scalar expected.\n"),"cumsum",2)) +// end +// end +// +// // call cumsum(a, d) with d = "native" or "double" +// if rhs == 2 & or(d==["native","double"]) then +// typ=list(d) +// d=0 //"*" +// else +// // call cumsum(a, d) with d is a string or scalar +// // or cumsum(a, d, typ) +// // If d is a string, d = "m", "c", "r" or "*" +// // Else d is an integer > 0 +// if type(d)==10 then +// d=find(d==["m","*","r","c"]) +// if d==[] then +// error(msprintf(_("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"),.. +// "cumsum",2,"""*"",""r"",""c"",""m"",1:"+string(ndims(a)))) +// end +// d=d-2 +// else +// if d<0 then +// error(msprintf(_("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"),.. +// "cumsum",2,"""*"",""r"",""c"",""m"",1:"+string(ndims(a)))) +// end +// end +// +// if d==-1 then +// //cumsum(x,'m'), determine the summation direction +// d=find(dims>1,1) +// if d==[] then d=0,end +// end +// +// if rhs == 3 then +// if type(typ)<>10 then +// error(msprintf(_("%s: Wrong type for input argument #%d: A string expected.\n"),"cumsum",3)) +// end +// +// if size(typ,"*")<>1 then +// error(msprintf(_("%s: Wrong size for input argument #%d: A string expected.\n"),"cumsum",3)) +// end +// +// if and(typ <> ["native", "double"]) then +// error(msprintf(_("%s: Wrong value for input argument #%d: ""%s"" or ""%s"" expected.\n"),"cumsum", 3, "native", "double")); +// end +// typ=list(typ) +// else +// typ=list() +// end +// end +// end + + if typ<>"native" then + r=sparse(dims,0,dims); + else + r=sparse(dims,%f,dims); + end + + select d + case 0 then + ij=spget(a) + if size(ij,1)==0 then return,end + if dims(1)==1 then + mnj=min(ij(:,2)) + r(1,mnj:$)=sparse(cumsum(full(a(1,mnj:$)),typ)) + elseif dims(2)==1 then + mni=min(ij(:,1)) + r(mni:$,1)=sparse(cumsum(full(a(mni:$,1)),typ)) + else + mnj=min(ij(:,2)) + r(:,mnj:dims(2))=sparse(cumsum(full(a(:,mnj:$)),typ)) + end + case 1 then + for k=1:dims(2) + ij=spget(a(:,k)) + if size(ij,1)<>0 then + mni=min(ij(:,1)) + r(mni:$,k)=sparse(cumsum(full(a(mni:$,k)),typ)) + end + end + case 2 then + for k=1:dims(1) + ij=spget(a(k,:)) + if size(ij,1)<>0 then + mnj=min(ij(:,2)) + r(k,mnj:$)=sparse(cumsum(full(a(k,mnj:$)),typ)) + end + end + else + if typ=="native" then + r=a + else + r=bool2s(a) + end + end + +endfunction diff --git a/modules/overloading/macros/%spb_diag.bin b/modules/overloading/macros/%spb_diag.bin Binary files differnew file mode 100755 index 000000000..244b9cbcd --- /dev/null +++ b/modules/overloading/macros/%spb_diag.bin diff --git a/modules/overloading/macros/%spb_diag.sci b/modules/overloading/macros/%spb_diag.sci new file mode 100755 index 000000000..011dca2b0 --- /dev/null +++ b/modules/overloading/macros/%spb_diag.sci @@ -0,0 +1,34 @@ +// 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 + +function d=%spb_diag(a,k) + // g_diag - implement diag function for sparse matrix, rational matrix ,.. + + [lhs,rhs]=argn(0) + if rhs==1 then k=0,end + [ij,v,sz]=spget(a) + m=sz(1);n=sz(2) + if m>1&n>1 then + l=find(ij(:,1)==(ij(:,2)-k)) + if k<=0 then + mn=min(m,n-k) + else + mn=min(m+k,n) + end + kk=abs(k) + d=sparse([ij(l,1),ones(ij(l,1))],v(l),[mn,1]) + else + nn = max(m,n)+abs(k) + if ij==[] then + d=sparse([],[],[nn,nn]) + else + d=sparse([ij(:,1),ij(:,1)+k],v,[nn,nn]) + end + end +endfunction diff --git a/modules/overloading/macros/%spb_e.bin b/modules/overloading/macros/%spb_e.bin Binary files differnew file mode 100755 index 000000000..7bc42d572 --- /dev/null +++ b/modules/overloading/macros/%spb_e.bin diff --git a/modules/overloading/macros/%spb_e.sci b/modules/overloading/macros/%spb_e.sci new file mode 100755 index 000000000..ae56d8aac --- /dev/null +++ b/modules/overloading/macros/%spb_e.sci @@ -0,0 +1,20 @@ +// 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 + +function r=%spb_e(i,j,a) + // r=a(i,j) for f sparse in some special cases + //! + + [lhs,rhs]=argn(0) + if rhs==2 then + a=j; + a=a(:) + r=a(i) + end +endfunction diff --git a/modules/overloading/macros/%spb_f_b.bin b/modules/overloading/macros/%spb_f_b.bin Binary files differnew file mode 100755 index 000000000..4b6121f39 --- /dev/null +++ b/modules/overloading/macros/%spb_f_b.bin diff --git a/modules/overloading/macros/%spb_f_b.sci b/modules/overloading/macros/%spb_f_b.sci new file mode 100755 index 000000000..8b772ce96 --- /dev/null +++ b/modules/overloading/macros/%spb_f_b.sci @@ -0,0 +1,15 @@ +// 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 + +function r=%spb_f_b(a,b) + // perform [a;b] where a is a boolean sparse matrix + // and b a boolean matrix + + r=[a;sparse(b)] +endfunction diff --git a/modules/overloading/macros/%spb_g_b.bin b/modules/overloading/macros/%spb_g_b.bin Binary files differnew file mode 100755 index 000000000..312473698 --- /dev/null +++ b/modules/overloading/macros/%spb_g_b.bin diff --git a/modules/overloading/macros/%spb_g_b.sci b/modules/overloading/macros/%spb_g_b.sci new file mode 100755 index 000000000..5941039f1 --- /dev/null +++ b/modules/overloading/macros/%spb_g_b.sci @@ -0,0 +1,15 @@ +// 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 + +function r=%spb_g_b(a,b) + // perform a|b where a is a boolean sparse matrix + // and b a boolean matrix + + r=a|sparse(b) +endfunction diff --git a/modules/overloading/macros/%spb_g_spb.bin b/modules/overloading/macros/%spb_g_spb.bin Binary files differnew file mode 100755 index 000000000..85a256be9 --- /dev/null +++ b/modules/overloading/macros/%spb_g_spb.bin diff --git a/modules/overloading/macros/%spb_g_spb.sci b/modules/overloading/macros/%spb_g_spb.sci new file mode 100755 index 000000000..98623008e --- /dev/null +++ b/modules/overloading/macros/%spb_g_spb.sci @@ -0,0 +1,31 @@ +// 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 + +function r=%spb_g_spb(a,b) + // perform logical elementwise or a|b where a and b are boolean sparse + // matrices + + if prod(size(a))==1 then + if full(a) then + [mb,nb]==size(b) + r=(ones(mb,nb)==1) + else + r=b + end + elseif prod(size(b))==1 then + if full(b) then + [ma,na]==size(a) + r=(ones(ma,na)==1) + else + r=a + end + else + r=a|b + end +endfunction diff --git a/modules/overloading/macros/%spb_h_b.bin b/modules/overloading/macros/%spb_h_b.bin Binary files differnew file mode 100755 index 000000000..b951d324d --- /dev/null +++ b/modules/overloading/macros/%spb_h_b.bin diff --git a/modules/overloading/macros/%spb_h_b.sci b/modules/overloading/macros/%spb_h_b.sci new file mode 100755 index 000000000..badab511c --- /dev/null +++ b/modules/overloading/macros/%spb_h_b.sci @@ -0,0 +1,15 @@ +// 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 + +function r=%spb_h_b(a,b) + // perform logical elementwise and a&b where a is a boolean sparse matrix + // and b a boolean matrix + + r=a&sparse(b) +endfunction diff --git a/modules/overloading/macros/%spb_h_spb.bin b/modules/overloading/macros/%spb_h_spb.bin Binary files differnew file mode 100755 index 000000000..49477d712 --- /dev/null +++ b/modules/overloading/macros/%spb_h_spb.bin diff --git a/modules/overloading/macros/%spb_h_spb.sci b/modules/overloading/macros/%spb_h_spb.sci new file mode 100755 index 000000000..ca25c2ade --- /dev/null +++ b/modules/overloading/macros/%spb_h_spb.sci @@ -0,0 +1,29 @@ +// 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 + +function r=%spb_h_spb(a,b) + // perform logical elementwise and a&b where a and b are boolean sparse + // matrices + + if prod(size(a))==1 then + if full(a) then + r=b + else + r=sparse([],[],size(b))<>0 + end + elseif prod(size(b))==1 then + if full(b) then + r=a + else + r=sparse([],[],size(a))<>0 + end + else + r=a&b + end +endfunction diff --git a/modules/overloading/macros/%spb_i_b.bin b/modules/overloading/macros/%spb_i_b.bin Binary files differnew file mode 100755 index 000000000..cefaa4bd7 --- /dev/null +++ b/modules/overloading/macros/%spb_i_b.bin diff --git a/modules/overloading/macros/%spb_i_b.sci b/modules/overloading/macros/%spb_i_b.sci new file mode 100755 index 000000000..254198e5e --- /dev/null +++ b/modules/overloading/macros/%spb_i_b.sci @@ -0,0 +1,16 @@ +// 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 + +function a=%spb_i_b(i,j,b,a) + // %spis(i,j,b,a) insert a sparse boolean matrix b into full boolean matrix a + // a(i,j)=b + //! + + a(i,j)=full(b) +endfunction diff --git a/modules/overloading/macros/%spb_i_ce.bin b/modules/overloading/macros/%spb_i_ce.bin Binary files differnew file mode 100755 index 000000000..581872c7f --- /dev/null +++ b/modules/overloading/macros/%spb_i_ce.bin diff --git a/modules/overloading/macros/%spb_i_ce.sci b/modules/overloading/macros/%spb_i_ce.sci new file mode 100755 index 000000000..6c01f2482 --- /dev/null +++ b/modules/overloading/macros/%spb_i_ce.sci @@ -0,0 +1,13 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - Vincent Couvert +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should 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=%spb_i_ce(varargin) + // Insertion of a boolean sparse matrix in a cell + M=generic_i_ce(varargin(:)) +endfunction diff --git a/modules/overloading/macros/%spb_i_h.bin b/modules/overloading/macros/%spb_i_h.bin Binary files differnew file mode 100755 index 000000000..accd6f0aa --- /dev/null +++ b/modules/overloading/macros/%spb_i_h.bin diff --git a/modules/overloading/macros/%spb_i_h.sci b/modules/overloading/macros/%spb_i_h.sci new file mode 100755 index 000000000..d2d0eefbe --- /dev/null +++ b/modules/overloading/macros/%spb_i_h.sci @@ -0,0 +1,16 @@ +// 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 + +function h=%spb_i_h(i,v,h) + h=generic_i_h(i,v,h) +endfunction + + + + diff --git a/modules/overloading/macros/%spb_i_st.bin b/modules/overloading/macros/%spb_i_st.bin Binary files differnew file mode 100755 index 000000000..37c5cb4f9 --- /dev/null +++ b/modules/overloading/macros/%spb_i_st.bin diff --git a/modules/overloading/macros/%spb_i_st.sci b/modules/overloading/macros/%spb_i_st.sci new file mode 100755 index 000000000..8132fdb4f --- /dev/null +++ b/modules/overloading/macros/%spb_i_st.sci @@ -0,0 +1,12 @@ +// 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 + +function out=%spb_i_st(i,in,out) + out=generic_i_st(i,in,out) +endfunction diff --git a/modules/overloading/macros/%spb_or.bin b/modules/overloading/macros/%spb_or.bin Binary files differnew file mode 100755 index 000000000..d4e1dfd70 --- /dev/null +++ b/modules/overloading/macros/%spb_or.bin diff --git a/modules/overloading/macros/%spb_or.sci b/modules/overloading/macros/%spb_or.sci new file mode 100755 index 000000000..5afcbe425 --- /dev/null +++ b/modules/overloading/macros/%spb_or.sci @@ -0,0 +1,18 @@ +// 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 + +function x=%spb_or(a,flag) + + if argn(2)==1 then flag="*",end + if flag=="*" then + x=find(a,1)<>[] + else + x=sum(bool2s(a),flag)>=1 + end +endfunction diff --git a/modules/overloading/macros/%spb_prod.bin b/modules/overloading/macros/%spb_prod.bin Binary files differnew file mode 100755 index 000000000..74f6bee48 --- /dev/null +++ b/modules/overloading/macros/%spb_prod.bin diff --git a/modules/overloading/macros/%spb_prod.sci b/modules/overloading/macros/%spb_prod.sci new file mode 100755 index 000000000..cc70125d3 --- /dev/null +++ b/modules/overloading/macros/%spb_prod.sci @@ -0,0 +1,156 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2010 - INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function r=%spb_prod(varargin) + a = varargin(1) + dims = size(a); + + nargs = size(varargin); + select nargs + case 1 + d = "*"; + typ = "double"; + case 2 + if or(varargin(2) == ["native", "double"]) then + d = "*"; + typ = varargin(2); + else + d = varargin(2); + typ = "double"; + end + case 3 + d = varargin(2); + typ = varargin(3); + else + error(msprintf(_("%s: Wrong number of input argument(s): %d to %d expected.\n"),"prod", 1, 3)); + end + + // Check second argument : d + select type(d) + case 1 + if size(d,'*') <> 1 then + error(msprintf(_("%s: Wrong size for input argument #%d: A scalar expected.\n"),"prod", 2)) + end + if int(d) <> d | d < 0 then + error(msprintf(_("%s: Wrong value for input argument #%d: Integer >= %d expected.\n"),"prod", 2, 1)) + end + case 10 + if size(d,'*') <> 1 then + error(msprintf(_("%s: Wrong size for input argument #%d: A string expected.\n"),"prod",2)) + end + if and(d<>["r","c","*","m"]) then + error(msprintf(_("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"),.. + "prod",2,"""*"",""r"",""c"",""m""")) + end + pos = [1,2,0,find(dims>1,1)]; + d=pos(find(d==["r","c","*","m"])) + else + error(msprintf(_("%s: Wrong type for input argument #%d: A string or scalar expected.\n"),"prod",2)) + end + + // Check third argument + if type(typ)<>10 then + error(msprintf(_("%s: Wrong type for input argument #%d: A string expected.\n"),"prod",3)) + end + + if size(typ,"*")<>1 then + error(msprintf(_("%s: Wrong size for input argument #%d: A string expected.\n"),"prod",3)) + end + + if and(typ <> ["native" "double"]) then + error(msprintf(_("%s: Wrong value for input argument #%d: ""%s"" or ""%s"" expected.\n"),"prod", 3, "native", "double")); + end + +// rhs = argn(2); +// dims=size(a); +// if rhs==1 then +// typ="double"; +// d=0 //"*" +// else +// // call prod(a, d) or prod(a, d, typ) +// // d must be a string or scalar -> check type and size +// if and(type(d)<> [1, 10]) then +// error(msprintf(_("%s: Wrong type for input argument #%d: A string or scalar expected.\n"),"prod",2)) +// end +// +// if size(d,"*")<>1 then +// if type(d)==10 then +// error(msprintf(_("%s: Wrong size for input argument #%d: A string expected.\n"),"prod",2)) +// else +// error(msprintf(_("%s: Wrong size for input argument #%d: A scalar expected.\n"),"prod",2)) +// end +// end +// +// // call prod(a, d) with d = "native" or "double" +// if rhs == 2 & or(d==["native","double"]) then +// typ=d; +// d=0 //"*" +// else +// // If d is a string, d = "m", "*", "r" or "c" +// // Else d is an integer > 0 +// if type(d)==10 then +// d=find(d==["m","*","r","c"]) +// if d==[] then +// error(msprintf(_("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"),.. +// "prod",2,"""*"",""r"",""c"",""m"",1:"+string(ndims(a)))) +// end +// d=d-2 +// else +// if d<0 then +// error(msprintf(_("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"),.. +// "prod",2,"""*"",""r"",""c"",""m"",1:"+string(ndims(a)))) +// end +// end +// +// if d==-1 then //'m' +// d=find(dims>1,1) +// if d==[] then d=0,end +// end +// +// // call prod(a, d, typ) +// // typ must be a string, equal to "native" or "double" +// if rhs == 3 then +// if type(typ)<>10 then +// error(msprintf(_("%s: Wrong type for input argument #%d: A string expected.\n"),"prod",3)) +// end +// +// if size(typ,"*")<>1 then +// error(msprintf(_("%s: Wrong size for input argument #%d: A string expected.\n"),"prod",3)) +// end +// +// if and(typ <> ["native", "double"]) then +// error(msprintf(_("%s: Wrong value for input argument #%d: ""%s"" or ""%s"" expected.\n"),"prod", 3, "native", "double")); +// end +// else +// typ="double" +// end +// end +// end + + select d + case 0 then + ij=spget(a) + r=size(ij,1)==prod(dims) + if typ<>"native" then r=bool2s(r),end + case 1 then + for k=1:dims(2) + r(1,k)=prod(a(:,k),typ) + end + r=sparse(r) + case 2 then + for k=1:dims(1) + r(k,1)=prod(a(k,:),typ) + end + r=sparse(r) + else + r=a + if typ<>"native" then r=bool2s(r),end + end + +endfunction diff --git a/modules/overloading/macros/%spb_sum.bin b/modules/overloading/macros/%spb_sum.bin Binary files differnew file mode 100755 index 000000000..b19f105d6 --- /dev/null +++ b/modules/overloading/macros/%spb_sum.bin diff --git a/modules/overloading/macros/%spb_sum.sci b/modules/overloading/macros/%spb_sum.sci new file mode 100755 index 000000000..869655574 --- /dev/null +++ b/modules/overloading/macros/%spb_sum.sci @@ -0,0 +1,182 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2010 - INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function r=%spb_sum(varargin) + a = varargin(1) + dims = size(a); + + nargs = size(varargin); + select nargs + case 1 + d = "*"; + typ = "double"; + case 2 + if or(varargin(2) == ["native", "double"]) then + d = "*"; + typ = varargin(2); + else + d = varargin(2); + typ = "double"; + end + case 3 + d = varargin(2); + typ = varargin(3); + else + error(msprintf(_("%s: Wrong number of input argument(s): %d to %d expected.\n"),"sum", 1, 3)); + end + + // Check second argument : d + select type(d) + case 1 + if size(d,'*') <> 1 then + error(msprintf(_("%s: Wrong size for input argument #%d: A scalar expected.\n"),"sum", 2)) + end + if int(d) <> d | d < 0 then + error(msprintf(_("%s: Wrong value for input argument #%d: Integer >= %d expected.\n"),"sum", 2, 1)) + end + case 10 + if size(d,'*') <> 1 then + error(msprintf(_("%s: Wrong size for input argument #%d: A string expected.\n"),"sum",2)) + end + if and(d<>["r","c","*","m"]) then + error(msprintf(_("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"),.. + "sum",2,"""*"",""r"",""c"",""m""")) + end + pos = [1,2,0,find(dims>1,1)]; + d=pos(find(d==["r","c","*","m"])) + else + error(msprintf(_("%s: Wrong type for input argument #%d: A string or scalar expected.\n"),"sum",2)) + end + + // Check third argument + if type(typ)<>10 then + error(msprintf(_("%s: Wrong type for input argument #%d: A string expected.\n"),"sum",3)) + end + + if size(typ,"*")<>1 then + error(msprintf(_("%s: Wrong size for input argument #%d: A string expected.\n"),"sum",3)) + end + + if and(typ <> ["native" "double"]) then + error(msprintf(_("%s: Wrong value for input argument #%d: ""%s"" or ""%s"" expected.\n"),"sum", 3, "native", "double")); + end + +// rhs=argn(2) +// if rhs==1 then +// d=0 //"*" +// typ="double" +// else +// // call sum(a, d) or sum(a, d, typ) +// // d must be a string or scalar -> check type and size +// if and(type(d)<> [1, 10]) then +// error(msprintf(_("%s: Wrong type for input argument #%d: A string or scalar expected.\n"),"sum",2)) +// end +// +// if size(d,"*")<>1 then +// if type(d)==10 then +// error(msprintf(_("%s: Wrong size for input argument #%d: A string expected.\n"),"sum",2)) +// else +// error(msprintf(_("%s: Wrong size for input argument #%d: A scalar expected.\n"),"sum",2)) +// end +// end +// +// // call sum(a, d) with d = "native" or "double" +// if rhs == 2 & or(d==["native","double"]) then +// typ=d +// d=0 //"*" +// else +// // If d is a string, d = "m", "r", "c" or "*" +// // Else d is an integer > 0 +// if type(d)==10 then +// d=find(d==["m","*","r","c"]) +// if d==[] then +// error(msprintf(_("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"),.. +// "sum",2,"""*"",""r"",""c"",""m"",1:"+string(ndims(a)))) +// end +// d=d-2 +// else +// if d<0 then +// error(msprintf(_("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"),.. +// "sum",2,"""*"",""r"",""c"",""m"",1:"+string(ndims(a)))) +// end +// end +// +// // call sum(a, d, typ) +// // typ must be a string and typ must be equal to "native" or "double" +// // check typ or size +// if rhs == 3 then +// if type(typ)<>10 then +// error(msprintf(_("%s: Wrong type for input argument #%d: A string expected.\n"),"sum",3)) +// end +// +// if size(typ,"*")<>1 then +// error(msprintf(_("%s: Wrong size for input argument #%d: A string expected.\n"),"sum",3)) +// end +// +// if and(typ <> ["native", "double"]) then +// error(msprintf(_("%s: Wrong value for input argument #%d: ""%s"" or ""%s"" expected.\n"),"sum", 3, "native", "double")); +// end +// else +// typ="double" +// end +// end +// end +// +// dims=size(a) +// +// if d==-1 then +// //sum(x,'m'), determine the summation direction +// d=find(dims>1,1) +// if d==[] then d=0,end +// end + + ij=spget(a); + select d + case 0 then + //sum of all elements + if typ=="native" then + r=size(ij,1)<>0 + else + r=size(ij,1) + end + case 1 then + if typ=="native" then + r(1,dims(2))=%f + for k=1:dims(2) + r(k)=or(ij(:,2)==k) + end + else + r=zeros(1,dims(2)); + for k=1:dims(2) + r(k)=size(find(ij(:,2)==k),"*") + end + end + r=sparse(r) + case 2 then + if typ=="native" then + r(dims(1),1)=%f + for k=1:dims(1) + r(k)=or(ij(:,1)==k) + end + else + r=zeros(ndims(1),1); + for k=1:dims(1) + r(k)=size(find(ij(:,1)==k),"*") + end + end + r=sparse(r) + else + if typ=="native" then + r=a + else + r=sparse(ij,ones(size(ij,1),1),dims) + end + end + +endfunction diff --git a/modules/overloading/macros/%spb_tril.bin b/modules/overloading/macros/%spb_tril.bin Binary files differnew file mode 100755 index 000000000..2b07b41dc --- /dev/null +++ b/modules/overloading/macros/%spb_tril.bin diff --git a/modules/overloading/macros/%spb_tril.sci b/modules/overloading/macros/%spb_tril.sci new file mode 100755 index 000000000..50a4c0b9d --- /dev/null +++ b/modules/overloading/macros/%spb_tril.sci @@ -0,0 +1,20 @@ +// 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 + +function d=%spb_tril(a,k) + + + [lhs,rhs]=argn(0) + if rhs==1 then k=0,end + + [ij,v,sz]=spget(a) + m=sz(1);n=sz(2) + l=find(ij(:,1)>=(ij(:,2)-k)) + d=sparse(ij(l,:),v(l),[m,n]) +endfunction diff --git a/modules/overloading/macros/%spb_triu.bin b/modules/overloading/macros/%spb_triu.bin Binary files differnew file mode 100755 index 000000000..f98d72038 --- /dev/null +++ b/modules/overloading/macros/%spb_triu.bin diff --git a/modules/overloading/macros/%spb_triu.sci b/modules/overloading/macros/%spb_triu.sci new file mode 100755 index 000000000..bdd0b905c --- /dev/null +++ b/modules/overloading/macros/%spb_triu.sci @@ -0,0 +1,19 @@ +// 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 + +function d=%spb_triu(a,k) + + [lhs,rhs]=argn(0) + if rhs==1 then k=0,end + + [ij,v,sz]=spget(a) + m=sz(1);n=sz(2) + l=find(ij(:,1)<=(ij(:,2)-k)) + d=sparse(ij(l,:),v(l),[m,n]) +endfunction diff --git a/modules/overloading/macros/%st_6.bin b/modules/overloading/macros/%st_6.bin Binary files differnew file mode 100755 index 000000000..dfde64844 --- /dev/null +++ b/modules/overloading/macros/%st_6.bin diff --git a/modules/overloading/macros/%st_6.sci b/modules/overloading/macros/%st_6.sci new file mode 100755 index 000000000..11cdc3f8b --- /dev/null +++ b/modules/overloading/macros/%st_6.sci @@ -0,0 +1,54 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - F.Delebcque , Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function s=%st_6(varargin) + + // called in the context of complex struct insertion + // to realize partial extraction + + nind=size(varargin)-1; //the number of indexes + s=varargin($); // the struct + if size(varargin)==2 & type(varargin(1))==10 then //X.b extraction assumed + f=getfield(1,s); + if or(varargin(1)==f(3:$)) then //field exists + // perform standard field extraction + s=%st_e(varargin(:)); + else //field does not exists + // return empty struct + //s=mlist(['st','dims'],int32([0 0])) + // return empty matrix + s=[] + end + + else //X(i,j,k) extraction assumed + //check if indexes are in the dimension bounds + dims=s.dims + if size(dims,"*")<nind then dims($:nind)=1;end + if size(dims,"*")>nind then dims=[dims(1:nind-1) prod(dims(nind:$))];end + + indmax=ones(1,nind); + for k=1:nind,indmax(k)=max(varargin(k));end + + if and(indmax<=dims) then //Yes + // perform standard sub-matrix extraction + s=%st_e(varargin(:)); + else // i,j,k out of bounds + f=getfield(1,s);f=f(3:$); + if f==[] then + // the original struct has no field return an empty struct + s.dims=int32([0 0]); + else + // return a 1x1 struct with fields set to [] + for k=1:size(f,"*"),setfield(k+2,[],s);end + s.dims=int32([1 1]); + end + end + end +endfunction + diff --git a/modules/overloading/macros/%st_c_st.bin b/modules/overloading/macros/%st_c_st.bin Binary files differnew file mode 100755 index 000000000..571173638 --- /dev/null +++ b/modules/overloading/macros/%st_c_st.bin diff --git a/modules/overloading/macros/%st_c_st.sci b/modules/overloading/macros/%st_c_st.sci new file mode 100755 index 000000000..7e98f9546 --- /dev/null +++ b/modules/overloading/macros/%st_c_st.sci @@ -0,0 +1,35 @@ +// 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 + +function R=%st_c_st(M1,M2) + + d1=M1.dims; + d2=M2.dims; + if size(d1,"*")<>size(d2,"*") then + error(msprintf(_("%s: In concatenation the number of dimensions for each component must match.\n"),"%st_c_st")); + end + F=getfield(1,M1) + if or(F<>getfield(1,M2)) then + error(msprintf(_("%s: Field names mismatch.\n"),"%st_c_st")); + end + kd=find(d1<>d2) + + kd(find(kd==2))=[] + + if kd<>[] then + error(msprintf(_("%s: Inconsistent dimensions.\n"),"%st_c_st")); + end + newdim=d1;newdim(2)=d1(2)+d2(2) + R=mlist(F,newdim) + for k=3:size(F,"*") //loop on fields + x1=getfield(k,M1),if type(x1)<>15 then x1=list(x1),end + x2=getfield(k,M2),if type(x2)<>15 then x2=list(x2),end + setfield(k,lstcat(x1,x2),R) + end +endfunction diff --git a/modules/overloading/macros/%st_e.bin b/modules/overloading/macros/%st_e.bin Binary files differnew file mode 100755 index 000000000..dd008d7ea --- /dev/null +++ b/modules/overloading/macros/%st_e.bin diff --git a/modules/overloading/macros/%st_e.sci b/modules/overloading/macros/%st_e.sci new file mode 100755 index 000000000..11e81fd83 --- /dev/null +++ b/modules/overloading/macros/%st_e.sci @@ -0,0 +1,107 @@ +// 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 + +function s=%st_e(varargin) + //extraction from struct + w=varargin($); + if type(varargin(1))==4 then + varargin(1)=find(varargin(1)); // Bug #7244 + end + if type(varargin(1))==15 //x(i,j,k).f or x.f(i,j,k) + index=varargin($-1); + if type(index($))==10 then //x(i,j,k).f + f=index($); + //ijk=list2vec(index(1)); + [indx,I]=convertindex(double(w.dims),index(1)(:)); + // I<->ijk + all_fields=getfield(1,w);all_fields=all_fields(3:$); + fieldnum=find(f==all_fields); + if fieldnum==[] then error(msprintf(gettext("%s: Invalid field name.\n"),"%st_e")); end + good_list=getfield(2+fieldnum,w); + if size(I,"*")==1 then + s=good_list(I) //list(good_list(I)) ? + else + s=list(); + for kk=1:size(I,"*") + s(kk)=good_list(I(kk));end + end + return; + else //x.f(i,j,k) + f=index(1); + li=w(f); + [indx,I]=convertindex(double(w.dims),index($)(:)); + s=li(I); + return; + end + end + + if type(varargin(1))==10 then + //field x.f + fields=getfield(1,w);nu=find(fields(3:$)==varargin(1)); + if nu==[] then + error(msprintf(gettext("%s: Wrong value for input argument #%d: not a valid field name.\n"),"%st_e",1));return; + end + s=getfield(nu+2,w); + if prod(getfield(2,w))==1 then s=s(1);end + return; + end + + //substruct x(i,j,k...) + nind=size(varargin)-1 + + dims1=double(w.dims) + if nind<size(dims1,"*") then + //reduce the dimension according to the number of indexes + dims1=[dims1(1:nind-1) prod(dims1(nind:$))] + if size(dims1,"*")==1 then dims1=[dims1 1],end + end + //get the "linear" vector of indexes + [indx,I]=convertindex(dims1,varargin(1:$-1)); + dims=zeros(1,nind) + + //computing dimensions of the result + //following loop should be merged in the convertindex code + for kk=1:nind + ik=varargin(kk) + + if or(type(ik)==[2 129]) then + ik=horner(ik,dims1(kk)) + end + if type(ik)==4 then + dims(kk)=max(find(ik)) + elseif size(ik,1)~=-1 then + dims(kk)=size(ik,"*") + else + dims(kk)=dims1(kk) + end + end + + while dims<>[]&dims($)==1 then dims($)=[],end + select size(dims,"*") + case 0 then + dims=[1,1] + case 1 then + dims=[dims,1] + else + dims=matrix(dims,1,-1) + end + s=mlist(getfield(1,w),int32(dims)); + //s=mlist(getfield(1,w),int32(indx)); + sz=size(getfield(1,w),"*"); + for k=3:sz + ww=getfield(k,w); + if type(ww)~=15 then ww=list(ww);end + //S(2,3).f1=12 -> k=3;I=6;ww(I)=12;s=mlist(["st","dims","f1"],int32([1;1])); + if prod(dims)==1 then + setfield(k,ww(I),s); + elseif prod(dims)>1 then + setfield(k,list(ww(I)),s); + end + end +endfunction diff --git a/modules/overloading/macros/%st_f_st.bin b/modules/overloading/macros/%st_f_st.bin Binary files differnew file mode 100755 index 000000000..bf0de51ea --- /dev/null +++ b/modules/overloading/macros/%st_f_st.bin diff --git a/modules/overloading/macros/%st_f_st.sci b/modules/overloading/macros/%st_f_st.sci new file mode 100755 index 000000000..9d0d39683 --- /dev/null +++ b/modules/overloading/macros/%st_f_st.sci @@ -0,0 +1,14 @@ +// 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 + +function R=%st_f_st(M1,M2) + + //R=[M1' M2']' + R=%st_t(%st_c_st(%st_t(M1),%st_t(M2))) +endfunction diff --git a/modules/overloading/macros/%st_i_b.bin b/modules/overloading/macros/%st_i_b.bin Binary files differnew file mode 100755 index 000000000..d57568fee --- /dev/null +++ b/modules/overloading/macros/%st_i_b.bin diff --git a/modules/overloading/macros/%st_i_b.sci b/modules/overloading/macros/%st_i_b.sci new file mode 100755 index 000000000..c3cf9384f --- /dev/null +++ b/modules/overloading/macros/%st_i_b.sci @@ -0,0 +1,12 @@ +// 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 + +function M=%st_i_b(varargin) + M=st_i_generic(varargin(:)) +endfunction diff --git a/modules/overloading/macros/%st_i_c.bin b/modules/overloading/macros/%st_i_c.bin Binary files differnew file mode 100755 index 000000000..fed3a38f6 --- /dev/null +++ b/modules/overloading/macros/%st_i_c.bin diff --git a/modules/overloading/macros/%st_i_c.sci b/modules/overloading/macros/%st_i_c.sci new file mode 100755 index 000000000..00454e5b6 --- /dev/null +++ b/modules/overloading/macros/%st_i_c.sci @@ -0,0 +1,12 @@ +// 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 + +function M=%st_i_c(varargin) + M=st_i_generic(varargin(:)) +endfunction diff --git a/modules/overloading/macros/%st_i_fptr.bin b/modules/overloading/macros/%st_i_fptr.bin Binary files differnew file mode 100755 index 000000000..bc9f9bcec --- /dev/null +++ b/modules/overloading/macros/%st_i_fptr.bin diff --git a/modules/overloading/macros/%st_i_fptr.sci b/modules/overloading/macros/%st_i_fptr.sci new file mode 100755 index 000000000..aa59a3415 --- /dev/null +++ b/modules/overloading/macros/%st_i_fptr.sci @@ -0,0 +1,12 @@ +// 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 + +function M=%st_i_fptr(varargin) + M=st_i_generic(varargin(:)) +endfunction diff --git a/modules/overloading/macros/%st_i_h.bin b/modules/overloading/macros/%st_i_h.bin Binary files differnew file mode 100755 index 000000000..28226921a --- /dev/null +++ b/modules/overloading/macros/%st_i_h.bin diff --git a/modules/overloading/macros/%st_i_h.sci b/modules/overloading/macros/%st_i_h.sci new file mode 100755 index 000000000..e2dcfad68 --- /dev/null +++ b/modules/overloading/macros/%st_i_h.sci @@ -0,0 +1,14 @@ +// 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 + +function M=%st_i_h(varargin) + //set(handle, property_name, value) + set(varargin(3), varargin(1), varargin(2)); + M=varargin(3); +endfunction diff --git a/modules/overloading/macros/%st_i_i.bin b/modules/overloading/macros/%st_i_i.bin Binary files differnew file mode 100755 index 000000000..f25fb0f8b --- /dev/null +++ b/modules/overloading/macros/%st_i_i.bin diff --git a/modules/overloading/macros/%st_i_i.sci b/modules/overloading/macros/%st_i_i.sci new file mode 100755 index 000000000..29ed9ab62 --- /dev/null +++ b/modules/overloading/macros/%st_i_i.sci @@ -0,0 +1,12 @@ +// 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 + +function M=%st_i_i(varargin) + M=st_i_generic(varargin(:)) +endfunction diff --git a/modules/overloading/macros/%st_i_ip.bin b/modules/overloading/macros/%st_i_ip.bin Binary files differnew file mode 100755 index 000000000..1ba3b3315 --- /dev/null +++ b/modules/overloading/macros/%st_i_ip.bin diff --git a/modules/overloading/macros/%st_i_ip.sci b/modules/overloading/macros/%st_i_ip.sci new file mode 100755 index 000000000..fc1db7780 --- /dev/null +++ b/modules/overloading/macros/%st_i_ip.sci @@ -0,0 +1,12 @@ +// 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 + +function M=%st_i_ip(varargin) + M=st_i_generic(varargin(:)) +endfunction diff --git a/modules/overloading/macros/%st_i_lss.bin b/modules/overloading/macros/%st_i_lss.bin Binary files differnew file mode 100755 index 000000000..8d1b64171 --- /dev/null +++ b/modules/overloading/macros/%st_i_lss.bin diff --git a/modules/overloading/macros/%st_i_lss.sci b/modules/overloading/macros/%st_i_lss.sci new file mode 100755 index 000000000..1923eb01f --- /dev/null +++ b/modules/overloading/macros/%st_i_lss.sci @@ -0,0 +1,12 @@ +// 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 + +function M=%st_i_lss(varargin) + M=st_i_generic(varargin(:)) +endfunction diff --git a/modules/overloading/macros/%st_i_msp.bin b/modules/overloading/macros/%st_i_msp.bin Binary files differnew file mode 100755 index 000000000..da029852e --- /dev/null +++ b/modules/overloading/macros/%st_i_msp.bin diff --git a/modules/overloading/macros/%st_i_msp.sci b/modules/overloading/macros/%st_i_msp.sci new file mode 100755 index 000000000..db8a9f947 --- /dev/null +++ b/modules/overloading/macros/%st_i_msp.sci @@ -0,0 +1,12 @@ +// 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 + +function M=%st_i_msp(varargin) + M=st_i_generic(varargin(:)) +endfunction diff --git a/modules/overloading/macros/%st_i_p.bin b/modules/overloading/macros/%st_i_p.bin Binary files differnew file mode 100755 index 000000000..08fc885e4 --- /dev/null +++ b/modules/overloading/macros/%st_i_p.bin diff --git a/modules/overloading/macros/%st_i_p.sci b/modules/overloading/macros/%st_i_p.sci new file mode 100755 index 000000000..4a1dad9d1 --- /dev/null +++ b/modules/overloading/macros/%st_i_p.sci @@ -0,0 +1,12 @@ +// 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 + +function M=%st_i_p(varargin) + M=st_i_generic(varargin(:)) +endfunction diff --git a/modules/overloading/macros/%st_i_r.bin b/modules/overloading/macros/%st_i_r.bin Binary files differnew file mode 100755 index 000000000..78579580a --- /dev/null +++ b/modules/overloading/macros/%st_i_r.bin diff --git a/modules/overloading/macros/%st_i_r.sci b/modules/overloading/macros/%st_i_r.sci new file mode 100755 index 000000000..9ea3e0d25 --- /dev/null +++ b/modules/overloading/macros/%st_i_r.sci @@ -0,0 +1,12 @@ +// 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 + +function M=%st_i_r(varargin) + M=st_i_generic(varargin(:)) +endfunction diff --git a/modules/overloading/macros/%st_i_s.bin b/modules/overloading/macros/%st_i_s.bin Binary files differnew file mode 100755 index 000000000..a1f3bd580 --- /dev/null +++ b/modules/overloading/macros/%st_i_s.bin diff --git a/modules/overloading/macros/%st_i_s.sci b/modules/overloading/macros/%st_i_s.sci new file mode 100755 index 000000000..bbfdf0984 --- /dev/null +++ b/modules/overloading/macros/%st_i_s.sci @@ -0,0 +1,12 @@ +// 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 + +function M=%st_i_s(varargin) + M=st_i_generic(varargin(:)) +endfunction diff --git a/modules/overloading/macros/%st_i_sp.bin b/modules/overloading/macros/%st_i_sp.bin Binary files differnew file mode 100755 index 000000000..01fe5bed8 --- /dev/null +++ b/modules/overloading/macros/%st_i_sp.bin diff --git a/modules/overloading/macros/%st_i_sp.sci b/modules/overloading/macros/%st_i_sp.sci new file mode 100755 index 000000000..f49a86190 --- /dev/null +++ b/modules/overloading/macros/%st_i_sp.sci @@ -0,0 +1,12 @@ +// 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 + +function M=%st_i_sp(varargin) + M=st_i_generic(varargin(:)) +endfunction diff --git a/modules/overloading/macros/%st_i_spb.bin b/modules/overloading/macros/%st_i_spb.bin Binary files differnew file mode 100755 index 000000000..de0ff7667 --- /dev/null +++ b/modules/overloading/macros/%st_i_spb.bin diff --git a/modules/overloading/macros/%st_i_spb.sci b/modules/overloading/macros/%st_i_spb.sci new file mode 100755 index 000000000..b6f200480 --- /dev/null +++ b/modules/overloading/macros/%st_i_spb.sci @@ -0,0 +1,12 @@ +// 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 + +function M=%st_i_spb(varargin) + M=st_i_generic(varargin(:)) +endfunction diff --git a/modules/overloading/macros/%st_i_st.bin b/modules/overloading/macros/%st_i_st.bin Binary files differnew file mode 100755 index 000000000..90c50f518 --- /dev/null +++ b/modules/overloading/macros/%st_i_st.bin diff --git a/modules/overloading/macros/%st_i_st.sci b/modules/overloading/macros/%st_i_st.sci new file mode 100755 index 000000000..ff39000f0 --- /dev/null +++ b/modules/overloading/macros/%st_i_st.sci @@ -0,0 +1,147 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - F. Delebcque , Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function M=%st_i_st(varargin) + + //insert the struct varargin($-1) into the struct varargin($) + //at position varargin(1), varargin(2),varargin(3),... + //insert the struct varargin($-1) as the field varargin(1) + //of the struct varargin($) + + [lhs,rhs]=argn(0) + M=varargin($) + N=varargin($-1)//inserted matrix + dims=double(matrix(M.dims,1,-1)); + + if type(varargin(1))==10 //addind a new field + flds=getfield(1,M);flds=[flds,varargin(1)]; + setfield(1,flds,M);setfield($+1,N,M); + if and(dims==[0 0]) then M.dims=int32([1 1]),end + else //Subscripted assignment between structures + //build resulting struct fields + FM=getfield(1,M);FM=FM(3:$);nFM=size(FM,"*") + FN=getfield(1,N);FN=FN(3:$);nFN=size(FN,"*") + FR=FM;for f=FN, if and(f<>FM) then FR=[FR,f],end,end + + Nfields=size(FR,"*") + //computing the dimension of the result + nd=size(dims,"*") + + olddims=dims + + reduced_index=%f + if rhs-2>nd then //more indices than M number of dims + dims(nd+1:rhs-2)=1; + elseif rhs-2<nd then //less indices than M number of dims + dims=[dims(1:rhs-3) prod(dims(rhs-2:$))] + if size(find(dims>1),"*")>1 then reduced_index=%t,end + end + //convert N-dimensional indexes to 1-D and extend dims if necessary + [Ndims,I]=convertindex(list(dims,double(matrix(N.dims,1,-1))),varargin(1:$-2));Ndims=matrix(Ndims,1,-1) + if reduced_index&or(Ndims<>dims) then error(21),end + if or(Ndims>dims) then + //extend the destination matrix + I1=0 + for k=size(Ndims,"*"):-1:1 + ik1=(1:dims(k))'; + if ik1<>[] then + if Ndims(k)>1 then + if size(I1,"*")>1 then + I1=(Ndims(k)*I1).*.ones(ik1)+ones(I1).*.(ik1-1); + else + I1=Ndims(k)*I1+ik1-1; + end + else + I1=Ndims(k)*I1+ik1-1; + end + end + end + v1=list();for k=1:prod(Ndims),v1(k)=[];end + // create the resulting matrix + R=mlist(["st","dims",matrix(FR,1,-1)],int32(Ndims)); + for k=1:size(FR,"*"),setfield(2+k,v1,R),end + // populate it with M entries + for k=1:nFM + v2=v1; + kf=find(FR==FM(k)); + w=getfield(k+2,M); + if type(w)<>15 then w=list(w),end + if type(v2)<>15 then v2=list(v2);end + for i=1:size(I1,"*"), + if w<>list() then + v2(I1(i)+1)=w(i); + else + v2(I1(i)+1)=[]; + end + end + setfield(kf+2,v2,R); + end + else //the dimension agree + R=M + //does the fields agree? + if or(FR<>FM) then //no + //add new fields + setfield(1,["st","dims",FR],R) + v1=list();for k=1:prod(Ndims),v1(k)=[];end + for k=nFM+1:size(FR,"*") + setfield($+1,v1,R) + end + end + end + + //insert N entries into result + for k=1:nFN + kf=find(FR==FN(k)); + v2=getfield(kf+2,R); + w=getfield(k+2,N); + if type(w)<>15 then w=list(w),end + if type(v2)<>15 then v2=list(v2);end + for i=1:size(I,"*"), + if w<>list() then + if size(w)==1 then + v2(I(i))=w(1); + else + v2(I(i))=w(i); + end + else + v2(I(i))=[]; + end + end + if length(v2)==1 then v2=v2(1);end + setfield(kf+2,v2,R); + end + + //remove trailing unitary dimensions + if reduced_index then + Ndims=olddims + else + while Ndims($)==1 then Ndims($)=[],end + select size(Ndims,"*") + case 0 then + Ndims=[1,1] + case 1 then + k=find(olddims<>1&olddims<>0) + if k==[] // M was a scalar + if mtlb_mode() then + Ndims=[1,Ndims] + else + Ndims=[Ndims,1] + end + else // M was a vector + olddims(k)=Ndims + Ndims=olddims; + end + else + Ndims=matrix(Ndims,1,-1) + end + end + R.dims=int32(Ndims) + M=R + end +endfunction diff --git a/modules/overloading/macros/%st_matrix.bin b/modules/overloading/macros/%st_matrix.bin Binary files differnew file mode 100755 index 000000000..aaa505706 --- /dev/null +++ b/modules/overloading/macros/%st_matrix.bin diff --git a/modules/overloading/macros/%st_matrix.sci b/modules/overloading/macros/%st_matrix.sci new file mode 100755 index 000000000..87cde1d44 --- /dev/null +++ b/modules/overloading/macros/%st_matrix.sci @@ -0,0 +1,33 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2011 - INRIA - Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function M=%st_matrix(M,varargin) + //implements matrix function for structs + if size(varargin)==1 then + sz=varargin(1) + if type(sz)<>1 then + error(msprintf(_("%s: Wrong type for argument #%d: Real vector expected.\n"),"matrix",2)) + end + else + sz=[]; + for k=1:size(varargin) + if size(varargin(k),"*")<>1|type(varargin(k))<>1 then + error(msprintf(_("%s: Wrong type for argument #%d: Real scalar expected.\n"),"matrix",k+1)) + end + sz=[sz varargin(k)] + end + sz=round(sz) + end + if size(sz,"*")<2 then sz=[sz,1],end + Dims=size(M,"*") + if Dims<>prod(sz) then + error(msprintf(_("%s: input and output matrices must have the same number of elements.\n"),"matrix")) + end + M.dims=int32(matrix(sz,1,-1)) +endfunction diff --git a/modules/overloading/macros/%st_n_c.bin b/modules/overloading/macros/%st_n_c.bin Binary files differnew file mode 100755 index 000000000..9ea03d7ec --- /dev/null +++ b/modules/overloading/macros/%st_n_c.bin diff --git a/modules/overloading/macros/%st_n_c.sci b/modules/overloading/macros/%st_n_c.sci new file mode 100755 index 000000000..fd95867fd --- /dev/null +++ b/modules/overloading/macros/%st_n_c.sci @@ -0,0 +1,14 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA, Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function r=%st_n_c(a,b) + // implements r=a~=b + // for a a struct and b a matrix of strings + r=%t +endfunction diff --git a/modules/overloading/macros/%st_n_l.bin b/modules/overloading/macros/%st_n_l.bin Binary files differnew file mode 100755 index 000000000..cc35c9e5c --- /dev/null +++ b/modules/overloading/macros/%st_n_l.bin diff --git a/modules/overloading/macros/%st_n_l.sci b/modules/overloading/macros/%st_n_l.sci new file mode 100755 index 000000000..4c7d797e5 --- /dev/null +++ b/modules/overloading/macros/%st_n_l.sci @@ -0,0 +1,14 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA, Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function r=%st_n_l(a,b) + // implements r=a~=b + // for a a struct and b a list + r=%t +endfunction diff --git a/modules/overloading/macros/%st_n_mc.bin b/modules/overloading/macros/%st_n_mc.bin Binary files differnew file mode 100755 index 000000000..b4604873b --- /dev/null +++ b/modules/overloading/macros/%st_n_mc.bin diff --git a/modules/overloading/macros/%st_n_mc.sci b/modules/overloading/macros/%st_n_mc.sci new file mode 100755 index 000000000..644f3068c --- /dev/null +++ b/modules/overloading/macros/%st_n_mc.sci @@ -0,0 +1,14 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA, Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function r=%st_n_mc(a,b) + // implements r=a~=b + // for a a struct and b a function + r=%t +endfunction diff --git a/modules/overloading/macros/%st_n_p.bin b/modules/overloading/macros/%st_n_p.bin Binary files differnew file mode 100755 index 000000000..6b4394c3e --- /dev/null +++ b/modules/overloading/macros/%st_n_p.bin diff --git a/modules/overloading/macros/%st_n_p.sci b/modules/overloading/macros/%st_n_p.sci new file mode 100755 index 000000000..ab44eddb8 --- /dev/null +++ b/modules/overloading/macros/%st_n_p.sci @@ -0,0 +1,14 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA, Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function r=%st_n_p(a,b) + // implements r=a~=b + // for a a struct and b a matrix of polynomials + r=%t +endfunction diff --git a/modules/overloading/macros/%st_n_s.bin b/modules/overloading/macros/%st_n_s.bin Binary files differnew file mode 100755 index 000000000..e5e2a0d6a --- /dev/null +++ b/modules/overloading/macros/%st_n_s.bin diff --git a/modules/overloading/macros/%st_n_s.sci b/modules/overloading/macros/%st_n_s.sci new file mode 100755 index 000000000..e382ec2c4 --- /dev/null +++ b/modules/overloading/macros/%st_n_s.sci @@ -0,0 +1,14 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA, Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function r=%st_n_s(a,b) + // implements r=a~=b + // for a a struct and b a matrix of floting point numbers + r=%t +endfunction diff --git a/modules/overloading/macros/%st_o_c.bin b/modules/overloading/macros/%st_o_c.bin Binary files differnew file mode 100755 index 000000000..b1a19d271 --- /dev/null +++ b/modules/overloading/macros/%st_o_c.bin diff --git a/modules/overloading/macros/%st_o_c.sci b/modules/overloading/macros/%st_o_c.sci new file mode 100755 index 000000000..a8c5a1c6a --- /dev/null +++ b/modules/overloading/macros/%st_o_c.sci @@ -0,0 +1,14 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA, Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function r=%st_o_c(a,b) + // implements r=a==b + // for a a struct and b a matrix of strings + r=%f +endfunction diff --git a/modules/overloading/macros/%st_o_l.bin b/modules/overloading/macros/%st_o_l.bin Binary files differnew file mode 100755 index 000000000..23ecdf0c4 --- /dev/null +++ b/modules/overloading/macros/%st_o_l.bin diff --git a/modules/overloading/macros/%st_o_l.sci b/modules/overloading/macros/%st_o_l.sci new file mode 100755 index 000000000..511fa4d6d --- /dev/null +++ b/modules/overloading/macros/%st_o_l.sci @@ -0,0 +1,14 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA, Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function r=%st_o_l(a,b) + // implements r=a==b + // for a a struct and b a list + r=%f +endfunction diff --git a/modules/overloading/macros/%st_o_mc.bin b/modules/overloading/macros/%st_o_mc.bin Binary files differnew file mode 100755 index 000000000..709c47447 --- /dev/null +++ b/modules/overloading/macros/%st_o_mc.bin diff --git a/modules/overloading/macros/%st_o_mc.sci b/modules/overloading/macros/%st_o_mc.sci new file mode 100755 index 000000000..69d6c76e6 --- /dev/null +++ b/modules/overloading/macros/%st_o_mc.sci @@ -0,0 +1,14 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA, Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function r=%st_o_mc(a,b) + // implements r=a==b + // for a a struct and b a function + r=%f +endfunction diff --git a/modules/overloading/macros/%st_o_p.bin b/modules/overloading/macros/%st_o_p.bin Binary files differnew file mode 100755 index 000000000..886ce6185 --- /dev/null +++ b/modules/overloading/macros/%st_o_p.bin diff --git a/modules/overloading/macros/%st_o_p.sci b/modules/overloading/macros/%st_o_p.sci new file mode 100755 index 000000000..9a133edc5 --- /dev/null +++ b/modules/overloading/macros/%st_o_p.sci @@ -0,0 +1,14 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA, Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function r=%st_o_p(a,b) + // implements r=a==b + // for a a struct and b a matrix of polynomials + r=%f +endfunction diff --git a/modules/overloading/macros/%st_o_s.bin b/modules/overloading/macros/%st_o_s.bin Binary files differnew file mode 100755 index 000000000..99ad7faa6 --- /dev/null +++ b/modules/overloading/macros/%st_o_s.bin diff --git a/modules/overloading/macros/%st_o_s.sci b/modules/overloading/macros/%st_o_s.sci new file mode 100755 index 000000000..6ec90bb89 --- /dev/null +++ b/modules/overloading/macros/%st_o_s.sci @@ -0,0 +1,14 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA, Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function r=%st_o_s(a,b) + // implements r=a==b + // for a a struct and b a matrix of floting point numbers + r=%f +endfunction diff --git a/modules/overloading/macros/%st_o_tl.bin b/modules/overloading/macros/%st_o_tl.bin Binary files differnew file mode 100755 index 000000000..23ecdf0c4 --- /dev/null +++ b/modules/overloading/macros/%st_o_tl.bin diff --git a/modules/overloading/macros/%st_o_tl.sci b/modules/overloading/macros/%st_o_tl.sci new file mode 100755 index 000000000..511fa4d6d --- /dev/null +++ b/modules/overloading/macros/%st_o_tl.sci @@ -0,0 +1,14 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA, Serge Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function r=%st_o_l(a,b) + // implements r=a==b + // for a a struct and b a list + r=%f +endfunction diff --git a/modules/overloading/macros/%st_p.bin b/modules/overloading/macros/%st_p.bin Binary files differnew file mode 100755 index 000000000..81e51e3ce --- /dev/null +++ b/modules/overloading/macros/%st_p.bin diff --git a/modules/overloading/macros/%st_p.sci b/modules/overloading/macros/%st_p.sci new file mode 100755 index 000000000..7a6260071 --- /dev/null +++ b/modules/overloading/macros/%st_p.sci @@ -0,0 +1,77 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA +// Copyright (C) 2010 - DIGITEO - Vincent COUVERT <vincent.couvert@scilab.org> +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should 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 %st_p(s) + + //matlab-like struct display + + f = getfield(1,s) + ll = lines() + t = [] + multi = prod(double(s.dims)); + + // No fields + if size(f, "*")==2 then + t = strcat(string(double(s.dims)), "x") + " struct array with no fields."; + write(%io(2),t,"(a)"); + return + end + + // 0x0 struct with fields + if multi==0 then + t="0x0 struct array with fields:" + for k=3:size(f,"*") + t=[t;" "+f(k)] + end + write(%io(2),t,"(a)") + return + end + + // axb struct where a<>0 & b<>0 + + if multi>1 then + t=strcat(string(double(s.dims)),"x") + " struct array with fields:"; + end + + for k=3:size(f,"*") + var=f(k) + value=s(var) + tp=typeof(value) + if tp=="st" then + str="[" + strcat(string(size(value)),"x")+" struct" + "]"; + elseif type(value)> 10 then + str=tp + else + sz=size(value) + // If number of elements in value is greater than ll(1) (current page width) + // then we do not call sci2exp + // because the returned value will be ignored at line 64: size(str,"*")==1 + // Note that ll(1)/2 elements could be the max because of colon, semi-colon and brackets added between elements by sci2exp + if sz(1)==1 & type(value) <> 9 & prod(sz) < ll(1) then // This line can avoid some stacksize error when field contains a big matrix + str=sci2exp(value,ll(1)) + else + str="["+strcat(string(size(value)),"x")+" "+tp+"]" + end + end + txt=" "+var + if multi<=1 then + if size(str,"*")==1 then + txt=txt+": "+str + else + tp=typeof(value) + txt=txt+": "+"["+strcat(string(size(value)),"x")+" "+tp+"]" + end + end + t=[t;txt] + end + + write(%io(2),t,"(a)") + +endfunction diff --git a/modules/overloading/macros/%st_size.bin b/modules/overloading/macros/%st_size.bin Binary files differnew file mode 100755 index 000000000..84c7d1d31 --- /dev/null +++ b/modules/overloading/macros/%st_size.bin diff --git a/modules/overloading/macros/%st_size.sci b/modules/overloading/macros/%st_size.sci new file mode 100755 index 000000000..49599c268 --- /dev/null +++ b/modules/overloading/macros/%st_size.sci @@ -0,0 +1,38 @@ +// 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 + +function varargout=%st_size(M,job) + + // returns dimensions of an hyper matrix + [lhs,rhs]=argn(0) + dims=matrix(double(M.dims),1,-1) + if rhs==2 then + if job=="*" then + varargout(1)=prod(dims) + return + elseif type(job)==1 then + if size(job,"*") >1 then error(msprintf(_("%s: Wrong size for input argument #%d.\n"),"%st_size",2));end + if job<=0|job>size(dims,"*") then + error(msprintf(_("%s: Wrong size or value for input argument #%d.\n"),"%st_size",2)); + end + varargout(1)=dims(job) + else + error(msprintf(_("%s: Wrong value for input argument #%d.\n"),"%st_size",2)) + end + return + end + if lhs==1 then + varargout(1)=matrix(dims,1,-1) + else + if lhs>size(dims,"*") then error(msprintf(_("%s: Wrong number of output arguments.\n"),"%st_size")),end + for k=1:lhs + varargout(k)=dims(k) + end + end +endfunction diff --git a/modules/overloading/macros/%st_string.bin b/modules/overloading/macros/%st_string.bin Binary files differnew file mode 100755 index 000000000..2db942df8 --- /dev/null +++ b/modules/overloading/macros/%st_string.bin diff --git a/modules/overloading/macros/%st_string.sci b/modules/overloading/macros/%st_string.sci new file mode 100755 index 000000000..3e78b05cf --- /dev/null +++ b/modules/overloading/macros/%st_string.sci @@ -0,0 +1,34 @@ +// 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 + +function t=%st_string(s) + f=getfield(1,s) + ll=lines() + t=[] + for k=3:size(f,"*") + var=f(k) + value=s(var) + tp=typeof(value) + if tp=="ce" then + t=[t;%ce_string(value)] + elseif tp=="st" then + t=[t;%st_string(value)] + else + str=sci2exp(value,ll(1)) + txt=" "+var+": " + if size(str,"*")==1 then + txt=txt+str + else + tp=typeof(value) + txt=txt+"{"+strcat(string(size(value)),"x")+" "+tp+"}" + end + t=[t;txt] + end + end +endfunction diff --git a/modules/overloading/macros/%st_t.bin b/modules/overloading/macros/%st_t.bin Binary files differnew file mode 100755 index 000000000..e772b5b87 --- /dev/null +++ b/modules/overloading/macros/%st_t.bin diff --git a/modules/overloading/macros/%st_t.sci b/modules/overloading/macros/%st_t.sci new file mode 100755 index 000000000..0223661e4 --- /dev/null +++ b/modules/overloading/macros/%st_t.sci @@ -0,0 +1,23 @@ +// 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 + +function R=%st_t(M) + + D=double(M.dims) + if size(D,"*")>2 then + error(msprintf(_("%s: Wrong size for input argument #%d: Transpose can not be defined.\n"),"%st_t",1)); + end + NewInd=matrix(matrix(1:prod(D),D)',1,-1) + F=getfield(1,M) + R=mlist(F,int32([D(2) D(1)])) + for k=3:size(F,"*") + v=getfield(k,M) + setfield(k,list(v(NewInd)),R) + end +endfunction diff --git a/modules/overloading/macros/%ticks_i_h.bin b/modules/overloading/macros/%ticks_i_h.bin Binary files differnew file mode 100755 index 000000000..deceef476 --- /dev/null +++ b/modules/overloading/macros/%ticks_i_h.bin diff --git a/modules/overloading/macros/%ticks_i_h.sci b/modules/overloading/macros/%ticks_i_h.sci new file mode 100755 index 000000000..3fddd13a2 --- /dev/null +++ b/modules/overloading/macros/%ticks_i_h.sci @@ -0,0 +1,44 @@ +// 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 + +function h=%ticks_i_h(i,v,h) + if type(i)==10 then + set(h,i,v) + elseif type(i)==15 then + hdl=h + p=i($) + if type(p)==1|type(p)==4|type(p)==2|type(p)==129|type(p)==15 then + index=i($) + i($)=null() + else + index=: + end + n=lstsize(i) + for k=1:n-1 + p=i(k) + if type(p)==10 then + hdl=get(hdl,p), + elseif type(p)==1|type(p)==4|type(p)==2|type(p)==129 then + hdl=hdl(p) + elseif type(p)==15 then + hdl=hdl(p(:)) + else + error(msprintf(_("%s: Invalid path.\n"),"%ticks_i_h")); + end + end + if type(index)==15 then + hdl=hdl(index(:)) + else + hdl=hdl(index) + end + set(hdl,i($),v) + else + error(msprintf(_("%s: Wrong type for input argument #%d.\n"),"%ticks_i_h",1)); + end +endfunction diff --git a/modules/overloading/macros/%xls_e.bin b/modules/overloading/macros/%xls_e.bin Binary files differnew file mode 100755 index 000000000..42aad2d7b --- /dev/null +++ b/modules/overloading/macros/%xls_e.bin diff --git a/modules/overloading/macros/%xls_e.sci b/modules/overloading/macros/%xls_e.sci new file mode 100755 index 000000000..f27566789 --- /dev/null +++ b/modules/overloading/macros/%xls_e.sci @@ -0,0 +1,13 @@ +// 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 + +function S=%xls_e(i,sheets) + //extract a sheet aout a set of sheets + S=sheets.sheets(i) +endfunction diff --git a/modules/overloading/macros/%xls_p.bin b/modules/overloading/macros/%xls_p.bin Binary files differnew file mode 100755 index 000000000..a0e4f8f3b --- /dev/null +++ b/modules/overloading/macros/%xls_p.bin diff --git a/modules/overloading/macros/%xls_p.sci b/modules/overloading/macros/%xls_p.sci new file mode 100755 index 000000000..cdc59a33d --- /dev/null +++ b/modules/overloading/macros/%xls_p.sci @@ -0,0 +1,18 @@ +// 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 + +function %xls_p(sheets) + //displays excel set of sheets + S=sheets.sheets + for k=1:size(S) + V=S(k).value + name=S(k).name + mprintf(" %s: %dx%d\n",name,size(V,1),size(V,2)) + end +endfunction diff --git a/modules/overloading/macros/%xlssheet_e.bin b/modules/overloading/macros/%xlssheet_e.bin Binary files differnew file mode 100755 index 000000000..32c47cec7 --- /dev/null +++ b/modules/overloading/macros/%xlssheet_e.bin diff --git a/modules/overloading/macros/%xlssheet_e.sci b/modules/overloading/macros/%xlssheet_e.sci new file mode 100755 index 000000000..a38bf4556 --- /dev/null +++ b/modules/overloading/macros/%xlssheet_e.sci @@ -0,0 +1,21 @@ +// 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 + +function R=%xlssheet_e(varargin) + //extract a subsheet out of an xls sheet + s=varargin($) + R=s.value;T=s.text + R=R(varargin(1:$-1)) + T=T(varargin(1:$-1)) + if and(isnan(R)) then + R=T + elseif or(isnan(R)) then + R=mlist(["xlssheet","name","text","value"],"",T,R) + end +endfunction diff --git a/modules/overloading/macros/%xlssheet_p.bin b/modules/overloading/macros/%xlssheet_p.bin Binary files differnew file mode 100755 index 000000000..e01cd8200 --- /dev/null +++ b/modules/overloading/macros/%xlssheet_p.bin diff --git a/modules/overloading/macros/%xlssheet_p.sci b/modules/overloading/macros/%xlssheet_p.sci new file mode 100755 index 000000000..28778a334 --- /dev/null +++ b/modules/overloading/macros/%xlssheet_p.sci @@ -0,0 +1,17 @@ +// 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 + +function %xlssheet_p(sheet) + //display a xls sheet + T=sheet.text + V=sheet.value + k=find(~isnan(V)) + T(k)=string(V(k)) + disp(T) +endfunction diff --git a/modules/overloading/macros/%xlssheet_size.bin b/modules/overloading/macros/%xlssheet_size.bin Binary files differnew file mode 100755 index 000000000..0fecdfc05 --- /dev/null +++ b/modules/overloading/macros/%xlssheet_size.bin diff --git a/modules/overloading/macros/%xlssheet_size.sci b/modules/overloading/macros/%xlssheet_size.sci new file mode 100755 index 000000000..445a2be6c --- /dev/null +++ b/modules/overloading/macros/%xlssheet_size.sci @@ -0,0 +1,19 @@ +// 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 + +function [m,n]=%xlssheet_size(sheet,opt) + if argn(2)>1 then + m=size(sheet.value,opt) + else + m=size(sheet.value) + if argn(1)>1 then + [m,n]=(m(1),m(2)) + end + end +endfunction diff --git a/modules/overloading/macros/%xlssheet_string.bin b/modules/overloading/macros/%xlssheet_string.bin Binary files differnew file mode 100755 index 000000000..815a9cadb --- /dev/null +++ b/modules/overloading/macros/%xlssheet_string.bin diff --git a/modules/overloading/macros/%xlssheet_string.sci b/modules/overloading/macros/%xlssheet_string.sci new file mode 100755 index 000000000..b17dd1bc5 --- /dev/null +++ b/modules/overloading/macros/%xlssheet_string.sci @@ -0,0 +1,16 @@ +// 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 + +function T=%xlssheet_string(sheet) + //display a xls sheet + T=sheet.text + V=sheet.value + k=find(~isnan(V)) + T(k)=string(V(k)) +endfunction diff --git a/modules/overloading/macros/buildmacros.bat b/modules/overloading/macros/buildmacros.bat new file mode 100755 index 000000000..c4e35ec40 --- /dev/null +++ b/modules/overloading/macros/buildmacros.bat @@ -0,0 +1 @@ +@..\..\..\bin\scilex -nwni -ns -e exec('buildmacros.sce');quit;
\ No newline at end of file diff --git a/modules/overloading/macros/buildmacros.sce b/modules/overloading/macros/buildmacros.sce new file mode 100755 index 000000000..181b0ec1a --- /dev/null +++ b/modules/overloading/macros/buildmacros.sce @@ -0,0 +1,14 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - Allan CORNET +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +if (isdef("genlib") == %f) then + exec(SCI+"/modules/functions/scripts/buildmacros/loadgenlib.sce"); +end +//------------------------------------ +genlib("overloadinglib","SCI/modules/overloading/macros",%f,%t); +//------------------------------------ diff --git a/modules/overloading/macros/cleanmacros.bat b/modules/overloading/macros/cleanmacros.bat new file mode 100755 index 000000000..5079dfd71 --- /dev/null +++ b/modules/overloading/macros/cleanmacros.bat @@ -0,0 +1,3 @@ +@del *.bin 2>NUL +@del lib 2>NUL +@del names 2>NUL
\ No newline at end of file diff --git a/modules/overloading/macros/createstruct.bin b/modules/overloading/macros/createstruct.bin Binary files differnew file mode 100755 index 000000000..ea598c528 --- /dev/null +++ b/modules/overloading/macros/createstruct.bin diff --git a/modules/overloading/macros/createstruct.sci b/modules/overloading/macros/createstruct.sci new file mode 100755 index 000000000..0e0926816 --- /dev/null +++ b/modules/overloading/macros/createstruct.sci @@ -0,0 +1,177 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - S. Steer, F. Delebecque, V. Couvert +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should 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=createstruct(index,N) + // Create a struct with field pointed by index equal to N + + // If index is not a list, creation is done by routines + if type(index)==15 then + + // When only two indexes + if size(index)==2 then + + // Second index is a fieldname + if type(index(2))==10 then + + // First index is a numerical value or a vector of numerical values + if type(index(1))==1 then + // X(p).f = y -> index=list(p,f) + I=index(1) + if mtlb_mode() then + Dims=[1 max(I)] + else + Dims=[max(I) 1] + end + nmax=prod(Dims); + if nmax==1 then + M=mlist(["st","dims",index(2)],int32(Dims),N); + else + M=mlist(["st","dims",index(2)],int32(Dims)); + //initialize the structure with empty fields + Li=list();for kl=1:nmax, Li(kl)=[];end + //set fields pointed to by index(1) to N + for kl=1:size(I,"*"), Li(I(kl))=N;end + setfield(3,Li,M); + end + return; + // First index is a list of numerical values + elseif type(index(1))==15 + // X(p,q[,...]).f=z -> index=list(list(p,q[,...]),f) + I=index(1) + Ndims=lstsize(I) //the number of dimensions + + //compute the struct dimensions from max indices values + Dims=[];for kDims=1:Ndims, Dims=[Dims,max(I(kDims)) ];end + + //initialize the structure with empty fields + Li=list();for kl=1:prod(Dims),Li(kl)=[];end + + //set fields pointed to by I to N + I1=sub2ind(Dims,I(:)) // build one dimensional index equivalent to I + for kl=1:size(I1,"*"), Li(I1(kl))=N;end + + M=mlist(["st","dims",index(2)],int32(Dims),Li); + return; + // First index is also a fieldname + else + // X.f.g=y -> index=list(f,g) + M=mlist(["st","dims",index(1)],int32([1,1]),... + mlist(["st","dims",index(2)],int32([1,1]),N)); + return; + end + + // Second index is a fieldname + else + // X.f(p[,q,...])=y : index=list(f,list(p[,q,...])) + + if typeof(N)=="st" then // When recursive call of createstruct + if type(index(2))==15 then // index=list(f,list(p,q[,...])) + Dims=list2vec(index(2))' + else // index=list(f,p) + if mtlb_mode() then + Dims=[1 index(2)] + else + Dims=[index(2) 1] + end + end + kmax=prod(Dims) + z=list() + for kl=1:kmax + z(kl)=[] + end + z(kmax)=getfield(3,N) + z=mlist(getfield(1,N),int32(Dims),z); + else + z(index(2)(:))=N; + end + if type(index(1))<>10 then pause,end + M=mlist(["st","dims",index(1)],int32([1,1]),z); + return; + end + + // Any number of indexes <> 2 + else + // Last index is a fieldname -> init struct + if type(index($))==10 then + M=mlist(["st","dims",index($)],int32([1,1]),N); + index($)=null(); + // Last index is a numerical value or a list of numerical values + elseif type(index($))==1 | type(index($))==15 then + + // If only one index value (happens when recursive calls to createstruct) + if size(index)==1 then + if typeof(N)=="st" then + if type(index($))==15 then + Dims=list2vec(index($))' + else + if mtlb_mode() then + Dims=[1 index($)] + else + Dims=[index($) 1] + end + end + kmax=prod(Dims) + if kmax==1 then + M=N + else + z=list() + for kl=1:kmax + z(kl)=[] + end + z(kmax)=getfield(3,N) + M=mlist(getfield(1,N),int32(Dims),z); + end + else + M(index($)(:))=N; + end + index($)=null() + // More than one index value + else + if typeof(N)=="st" then + if type(index($))==15 then + Dims=list2vec(index($))' + else + if mtlb_mode() then + Dims=[1 index($)] + else + Dims=[index($) 1] + end + end + kmax=prod(Dims) + z=list() + for kl=1:kmax + z(kl)=[] + end + z(kmax)=getfield(3,N) + z=mlist(getfield(1,N),int32(Dims),z); + else + z(index($)(:))=N; + end + M=mlist(["st","dims",index($-1)],int32([1,1]),z); + index($)=null() + index($)=null() + end + else + // This case should not happen (unknown kind of index) + error(msprintf(_("%s: Not implemented.\n"),"createstruct")); + end + if index==list() then + return + end + M=createstruct(index,M); + return; + end + else + if type(index)==10 then + M=mlist(["st","dims",index($)],int32([1,1]),N); + else + error(msprintf(_("%s: Not implemented.\n"),"createstruct")); + end + end +endfunction diff --git a/modules/overloading/macros/generic_i_ce.bin b/modules/overloading/macros/generic_i_ce.bin Binary files differnew file mode 100755 index 000000000..12df32b32 --- /dev/null +++ b/modules/overloading/macros/generic_i_ce.bin diff --git a/modules/overloading/macros/generic_i_ce.sci b/modules/overloading/macros/generic_i_ce.sci new file mode 100755 index 000000000..efdbff3d1 --- /dev/null +++ b/modules/overloading/macros/generic_i_ce.sci @@ -0,0 +1,13 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - Vincent Couvert +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should 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=generic_i_ce(varargin) + // Generic function for insertion of any type of data in a cell + error(msprintf(_("%s: Wrong assignment: for insertion in cell, use e.g. x(i,j).entries=y.\n"),"generic_i_ce")); +endfunction diff --git a/modules/overloading/macros/generic_i_h.bin b/modules/overloading/macros/generic_i_h.bin Binary files differnew file mode 100755 index 000000000..0a8e691cc --- /dev/null +++ b/modules/overloading/macros/generic_i_h.bin diff --git a/modules/overloading/macros/generic_i_h.sci b/modules/overloading/macros/generic_i_h.sci new file mode 100755 index 000000000..0ac648c33 --- /dev/null +++ b/modules/overloading/macros/generic_i_h.sci @@ -0,0 +1,72 @@ +// 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 + +function h=generic_i_h(i,v,h) + hsave=h + // if v==[] then error('Field property cannot be []'),end + if type(i)==10 then set(h,i,v),return,end + if type(i)<>15 then error(msprintf(_("%s: Wrong type for input argument #%d.\n"),"generic_i_h",1)),end + + if and(type(i($))<>[1 2 4 8 129 15]) then + i($+1)=: + end + n=lstsize(i) + hdl=h;hind=[] + for k=1:lstsize(i)// walk down in the handle tree + p=i(k) + lasthandle=hdl, + if type(p)==10 then + hdl=get(hdl,p), + elseif or(type(p)==[1 2 4 8 129]) then + hdl=hdl(p) + elseif type(p)==15 then + hdl=hdl(p(:)) + else + error("Invalid path") + end + if type(hdl)<>9 then //a leaf found + property=hdl + hdl=lasthandle + hind=p + if (k+1)==size(i) then + index=i($) + else + index=list(i(k+1:$)) + end + break + end + end + + if hind<>[] then // a property found + if type(index)==15 & and(type(property)<>[15 16 17]) then + property(index(:))=v + else + if or(size(index)<>[-1 -1]) then + if (index(1)=="locations" | index(1)=="labels") & size(v,"*") ~= 1 & size(property(index),"*") ~= size(v,"*") then + error(msprintf(_("%s: Incompatible sizes for properties ''%s'' and ''%s'': Same sizes expected.\n"), "generic_i_h", string(i($-2))+".locations", string(i($-2))+".labels")); + end + property(index)=v + else + property=v + end + end + if size(hdl,"*")==1 then //a single handle + hdl(hind)=property + else //mutiple handle + np=size(hdl,"*") + for k=1:np + h=hdl(k);h(hind)=property + end + + end + else + error(msprintf(_("%s: Wrong type for input argument #%d.\n"),"generic_i_h",1)); + end + h = hsave +endfunction diff --git a/modules/overloading/macros/generic_i_hm.bin b/modules/overloading/macros/generic_i_hm.bin Binary files differnew file mode 100755 index 000000000..cf9c0c725 --- /dev/null +++ b/modules/overloading/macros/generic_i_hm.bin diff --git a/modules/overloading/macros/generic_i_hm.sci b/modules/overloading/macros/generic_i_hm.sci new file mode 100755 index 000000000..da27e3bba --- /dev/null +++ b/modules/overloading/macros/generic_i_hm.sci @@ -0,0 +1,140 @@ +// 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 + +function M=generic_i_hm(default_value,varargin) + + + //insertion of a matrix in an hypermatrix + [lhs,rhs]=argn(0) + rhs=rhs-1 + M=varargin(rhs); + N=varargin(rhs-1);//inserted matrix + dims=matrix(double(M.dims),-1,1); + v=matrix(M.entries,-1,1); + + nd=size(dims,"*") + olddims=dims + + // adjust dimension of matrix M to number of indices + reduced_index=%f + if rhs-2>nd then + dims(nd+1:rhs-2)=0; + elseif rhs-2<nd then //less indices than M number of dims + dims=[dims(1:rhs-3);prod(dims(rhs-2:$))] + if size(find(dims>1),"*")>1 then reduced_index=%t,end + end + + //handling special case M(....)=[] + if N==[] then + // at most only one index should not match the full + // corresponding dimension + // if yes insertion is the extraction of the complement. + ok=[]; + for k=1:rhs-2 + dk=varargin(k) + if or(type(dk)==[2 129]) then + dk=horner(dk,dims(k)), + elseif type(dk)==4 then + dk=find(dk) + end + if or(size(dk)<>-1) then + dk=gsort(dk); + if or(dk<>(dims(k):-1:1)) then + if dk(1)<1|dk($)>dims(k) then error(21),end + if ok<>[] then + error(msprintf(_("%s: A null assignment can have only one non-colon index.\n"),"generic_i_hm")); + end + ok=k + I1=1:dims(k);I1(dk)=[] + varargin(k)=I1 + end + end + + end + + if size(ok,"*")==0 then + M=[] + else //use extraction + [Ndims,I]=convertindex(dims,varargin(1:$-2)); + dims(ok)=size(I1,"*") + while dims($)==1&size(dims,"*")>2, dims($)=[],end + M.entries=M.entries(I); + if size(dims,"*")==2 then + M=matrix(M.entries,dims) + else + M.dims=int32(dims') + end + + //M=M(varargin(1:rhs-2)) + end + + return + end + + + //convert N-dimensional indexes to 1-D and extend dims if necessary + [Ndims,I]=convertindex(list(dims,size(N)),varargin(1:$-2)); + Ndims=matrix(Ndims,-1,1) + + + //if reduced_index&or(Ndims<>dims) then error(21),end + if or(Ndims>dims) then + //extend the destination matrix + I1=0 + for k=size(Ndims,"*"):-1:1 + ik1=(1:dims(k))'; + if ik1<>[] then + if Ndims(k)>1 then + if size(I1,"*")>1 then + I1=(Ndims(k)*I1).*.ones(ik1)+ones(I1).*.(ik1-1); + else + I1=Ndims(k)*I1+ik1-1; + end + else + I1=Ndims(k)*I1+ik1-1; + end + end + end + // create the resulting matrix + v2=[];v2(1:prod(Ndims),1)=default_value; + // populate it with M entries + if v<>[] then v2(I1+1)=v;end + else + v2=v + end + //insert N entries into result + v2(I)=N(:) + + //remove trailing unitary dimensions + if reduced_index then + Ndims=olddims + else + while Ndims($)==1 then Ndims($)=[],end + select size(Ndims,"*") + case 0 then + Ndims=[1,1] + case 1 then + k=find(olddims<>1&olddims<>0) + if k==[]|Ndims>prod(olddims) then //shape changed + if mtlb_mode() then + Ndims=[1,Ndims] + else + Ndims=[Ndims,1] + end + else + Ndims=olddims; + end + else + if N==[] + Ndims=matrix(Ndims,1,-1) + end + end + end + M=matrix(v2,Ndims) +endfunction diff --git a/modules/overloading/macros/generic_i_s.bin b/modules/overloading/macros/generic_i_s.bin Binary files differnew file mode 100755 index 000000000..796057657 --- /dev/null +++ b/modules/overloading/macros/generic_i_s.bin diff --git a/modules/overloading/macros/generic_i_s.sci b/modules/overloading/macros/generic_i_s.sci new file mode 100755 index 000000000..cfc0fc987 --- /dev/null +++ b/modules/overloading/macros/generic_i_s.sci @@ -0,0 +1,36 @@ +// 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 + +function M=generic_i_s(varargin) + + [lhs,rhs]=argn(0) + M=varargin(rhs) + N=varargin(rhs-1)//inserted matrix + index=varargin(1) // + if rhs==3&(type(index)==10|type(index)==15) then + if type(index)<>15 then + M=struct() + M(index)=N + else + M=createstruct(index,N) + + end + if index($)=="entries" then + // change struct to cell + f=getfield(1,M);f(1)="ce" + setfield(1,f,M) + end + return + elseif rhs==3 &(type(index)<>10 & type(index)<>15) then + error(msprintf(_("%s: Wrong type for input argument #%d.\n"),"generic_i_s",1)); + else + error(msprintf(_("%s: Wrong number of input arguments: %d expected.\n"),"generic_i_s",3)); + end +endfunction + diff --git a/modules/overloading/macros/generic_i_st.bin b/modules/overloading/macros/generic_i_st.bin Binary files differnew file mode 100755 index 000000000..304f298d6 --- /dev/null +++ b/modules/overloading/macros/generic_i_st.bin diff --git a/modules/overloading/macros/generic_i_st.sci b/modules/overloading/macros/generic_i_st.sci new file mode 100755 index 000000000..42e9b2bbd --- /dev/null +++ b/modules/overloading/macros/generic_i_st.sci @@ -0,0 +1,25 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - F. Delebecque +// Copyright (C) INRIA - S. Steer +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function out=generic_i_st(i,in,out) + + // out.i=in + // this function is called only if the i field is not already defined in out + // + if prod(out.dims)>1 then + error(1); + end + T=getfield(1,out); + T($+1)=i;setfield(1,T,out) + setfield($+1,in,out) + if double(out.dims)==[0 0] then + out.dims=int32([1 1]); + end +endfunction diff --git a/modules/overloading/macros/lib b/modules/overloading/macros/lib Binary files differnew file mode 100755 index 000000000..7a022e5a7 --- /dev/null +++ b/modules/overloading/macros/lib diff --git a/modules/overloading/macros/names b/modules/overloading/macros/names new file mode 100755 index 000000000..0959cf6d8 --- /dev/null +++ b/modules/overloading/macros/names @@ -0,0 +1,664 @@ +%0_i_st +%3d_i_h +%ar_p +%b_c_spb +%b_diag +%b_e +%b_f_spb +%b_g_s +%b_g_spb +%b_h_s +%b_h_spb +%b_i_b +%b_i_ce +%b_i_h +%b_i_hm +%b_i_s +%b_i_sp +%b_i_spb +%b_i_st +%b_iconvert +%b_matrix +%b_n_hm +%b_o_hm +%b_string +%b_tril +%b_triu +%c_a_c +%c_b_c +%c_b_s +%c_diag +%c_dsearch +%c_e +%c_eye +%c_f_s +%c_i_c +%c_i_ce +%c_i_h +%c_i_hm +%c_i_lss +%c_i_r +%c_i_s +%c_i_st +%c_matrix +%c_n_l +%c_n_st +%c_o_l +%c_o_st +%c_ones +%c_rand +%c_tril +%c_triu +%cblock_c_cblock +%cblock_c_s +%cblock_e +%cblock_f_cblock +%cblock_p +%cblock_size +%ce_6 +%ce_c_ce +%ce_e +%ce_f_ce +%ce_i_ce +%ce_i_s +%ce_i_st +%ce_matrix +%ce_p +%ce_size +%ce_string +%ce_t +%champdat_i_h +%choose +%fptr_i_st +%grayplot_i_h +%h_i_st +%hmS_k_hmS_generic +%hm_1_hm +%hm_1_s +%hm_2_hm +%hm_2_s +%hm_3_hm +%hm_3_s +%hm_4_hm +%hm_4_s +%hm_5 +%hm_a_hm +%hm_a_r +%hm_a_s +%hm_abs +%hm_and +%hm_bool2s +%hm_c_hm +%hm_ceil +%hm_conj +%hm_cos +%hm_cumprod +%hm_cumsum +%hm_d_hm +%hm_d_s +%hm_degree +%hm_dsearch +%hm_e +%hm_exp +%hm_eye +%hm_f_hm +%hm_find +%hm_floor +%hm_g_hm +%hm_h_hm +%hm_i_b +%hm_i_ce +%hm_i_h +%hm_i_hm +%hm_i_i +%hm_i_p +%hm_i_r +%hm_i_s +%hm_i_st +%hm_iconvert +%hm_imag +%hm_int +%hm_isnan +%hm_isreal +%hm_j_hm +%hm_j_s +%hm_k_hm +%hm_k_s +%hm_log +%hm_m_p +%hm_m_r +%hm_m_s +%hm_matrix +%hm_max +%hm_mean +%hm_median +%hm_min +%hm_n_b +%hm_n_c +%hm_n_hm +%hm_n_i +%hm_n_p +%hm_n_s +%hm_o_b +%hm_o_c +%hm_o_hm +%hm_o_i +%hm_o_p +%hm_o_s +%hm_ones +%hm_or +%hm_p +%hm_prod +%hm_q_hm +%hm_r_s +%hm_rand +%hm_real +%hm_round +%hm_s +%hm_s_hm +%hm_s_r +%hm_s_s +%hm_sign +%hm_sin +%hm_size +%hm_sqrt +%hm_stdev +%hm_string +%hm_sum +%hm_x_hm +%hm_x_p +%hm_x_s +%hm_zeros +%i_a_i +%i_and +%i_ascii +%i_b_s +%i_bezout +%i_d_i +%i_dsearch +%i_e +%i_g_i +%i_gcd +%i_h_i +%i_i_ce +%i_i_h +%i_i_hm +%i_i_i +%i_i_s +%i_i_st +%i_lcm +%i_length +%i_m_i +%i_or +%i_r_i +%i_round +%i_s_i +%i_x_i +%ip_a_s +%ip_i_st +%ip_m_s +%ip_n_ip +%ip_o_ip +%ip_p +%ip_s_s +%ip_string +%l_i_h +%l_i_s +%l_i_st +%l_isequal +%l_n_c +%l_n_l +%l_n_m +%l_n_p +%l_n_s +%l_n_st +%l_o_c +%l_o_l +%l_o_m +%l_o_p +%l_o_s +%l_o_st +%lss_a_lss +%lss_a_p +%lss_a_r +%lss_a_s +%lss_c_lss +%lss_c_p +%lss_c_r +%lss_c_s +%lss_e +%lss_eye +%lss_f_lss +%lss_f_p +%lss_f_r +%lss_f_s +%lss_i_ce +%lss_i_lss +%lss_i_p +%lss_i_r +%lss_i_s +%lss_i_st +%lss_inv +%lss_l_lss +%lss_l_p +%lss_l_r +%lss_l_s +%lss_m_lss +%lss_m_p +%lss_m_r +%lss_m_s +%lss_n_lss +%lss_n_p +%lss_n_r +%lss_n_s +%lss_norm +%lss_o_lss +%lss_o_p +%lss_o_r +%lss_o_s +%lss_ones +%lss_r_lss +%lss_r_p +%lss_r_r +%lss_r_s +%lss_rand +%lss_s +%lss_s_lss +%lss_s_p +%lss_s_r +%lss_s_s +%lss_size +%lss_t +%lss_v_lss +%lss_v_p +%lss_v_r +%lss_v_s +%lt_i_s +%m_n_l +%m_o_l +%mc_i_h +%mc_i_s +%mc_i_st +%mc_n_st +%mc_o_st +%msp_i_s +%msp_i_st +%msp_n_msp +%msp_o_msp +%msp_p +%msp_spones +%p_a_lss +%p_a_r +%p_c_lss +%p_c_r +%p_cumprod +%p_cumsum +%p_d_p +%p_d_r +%p_d_s +%p_det +%p_e +%p_f_lss +%p_f_r +%p_i_ce +%p_i_h +%p_i_hm +%p_i_lss +%p_i_p +%p_i_r +%p_i_s +%p_i_st +%p_inv +%p_j_s +%p_k_p +%p_k_r +%p_k_s +%p_l_lss +%p_l_p +%p_l_r +%p_l_s +%p_m_hm +%p_m_lss +%p_m_r +%p_matrix +%p_n_l +%p_n_lss +%p_n_r +%p_o_l +%p_o_lss +%p_o_r +%p_o_sp +%p_p_s +%p_prod +%p_q_p +%p_q_r +%p_q_s +%p_r_lss +%p_r_p +%p_r_r +%p_r_s +%p_s_lss +%p_s_r +%p_simp +%p_string +%p_sum +%p_v_lss +%p_v_p +%p_v_r +%p_v_s +%p_x_hm +%p_x_r +%p_y_p +%p_y_r +%p_y_s +%p_z_p +%p_z_r +%p_z_s +%plist_p +%r_0 +%r_a_hm +%r_a_lss +%r_a_p +%r_a_r +%r_a_s +%r_c_lss +%r_c_p +%r_c_r +%r_c_s +%r_clean +%r_cumprod +%r_cumsum +%r_d_p +%r_d_r +%r_d_s +%r_det +%r_diag +%r_e +%r_eye +%r_f_lss +%r_f_p +%r_f_r +%r_f_s +%r_i_ce +%r_i_hm +%r_i_lss +%r_i_p +%r_i_r +%r_i_s +%r_i_st +%r_inv +%r_j_s +%r_k_p +%r_k_r +%r_k_s +%r_l_lss +%r_l_p +%r_l_r +%r_l_s +%r_m_hm +%r_m_lss +%r_m_p +%r_m_r +%r_m_s +%r_matrix +%r_n_lss +%r_n_p +%r_n_r +%r_n_s +%r_norm +%r_o_lss +%r_o_p +%r_o_r +%r_o_s +%r_ones +%r_p +%r_p_s +%r_prod +%r_q_p +%r_q_r +%r_q_s +%r_r_lss +%r_r_p +%r_r_r +%r_r_s +%r_rand +%r_s +%r_s_hm +%r_s_lss +%r_s_p +%r_s_r +%r_s_s +%r_simp +%r_size +%r_string +%r_sum +%r_t +%r_tril +%r_triu +%r_v_lss +%r_v_p +%r_v_r +%r_v_s +%r_varn +%r_x_p +%r_x_r +%r_x_s +%r_y_p +%r_y_r +%r_y_s +%r_z_p +%r_z_r +%r_z_s +%s_1_hm +%s_2_hm +%s_3_hm +%s_4_hm +%s_5 +%s_a_hm +%s_a_ip +%s_a_lss +%s_a_r +%s_a_sp +%s_and +%s_b_i +%s_b_s +%s_c_cblock +%s_c_lss +%s_c_r +%s_c_sp +%s_d_p +%s_d_r +%s_d_sp +%s_e +%s_f_cblock +%s_f_lss +%s_f_r +%s_f_sp +%s_g_b +%s_g_s +%s_h_b +%s_h_s +%s_i_b +%s_i_c +%s_i_ce +%s_i_h +%s_i_hm +%s_i_lss +%s_i_p +%s_i_r +%s_i_s +%s_i_sp +%s_i_spb +%s_i_st +%s_k_hm +%s_k_p +%s_k_r +%s_k_sp +%s_l_hm +%s_l_lss +%s_l_p +%s_l_r +%s_l_s +%s_l_sp +%s_m_hm +%s_m_ip +%s_m_lss +%s_m_r +%s_matrix +%s_n_hm +%s_n_l +%s_n_lss +%s_n_r +%s_n_st +%s_o_hm +%s_o_l +%s_o_lss +%s_o_r +%s_o_st +%s_or +%s_pow +%s_q_hm +%s_q_p +%s_q_r +%s_q_sp +%s_r_lss +%s_r_p +%s_r_r +%s_r_s +%s_r_sp +%s_s_hm +%s_s_ip +%s_s_lss +%s_s_r +%s_s_sp +%s_simp +%s_v_lss +%s_v_p +%s_v_r +%s_v_s +%s_x_hm +%s_x_r +%s_y_p +%s_y_r +%s_y_sp +%s_z_p +%s_z_r +%s_z_sp +%sp_a_s +%sp_a_sp +%sp_and +%sp_c_s +%sp_ceil +%sp_conj +%sp_cos +%sp_cumprod +%sp_cumsum +%sp_d_s +%sp_d_sp +%sp_det +%sp_diag +%sp_e +%sp_exp +%sp_f_s +%sp_floor +%sp_i_ce +%sp_i_h +%sp_i_s +%sp_i_sp +%sp_i_st +%sp_int +%sp_inv +%sp_k_s +%sp_k_sp +%sp_l_s +%sp_l_sp +%sp_length +%sp_norm +%sp_or +%sp_p_s +%sp_prod +%sp_q_s +%sp_q_sp +%sp_r_s +%sp_r_sp +%sp_round +%sp_s_s +%sp_s_sp +%sp_sin +%sp_sqrt +%sp_string +%sp_sum +%sp_tril +%sp_triu +%sp_y_s +%sp_y_sp +%sp_z_s +%sp_z_sp +%spb_and +%spb_c_b +%spb_cumprod +%spb_cumsum +%spb_diag +%spb_e +%spb_f_b +%spb_g_b +%spb_g_spb +%spb_h_b +%spb_h_spb +%spb_i_b +%spb_i_ce +%spb_i_h +%spb_i_st +%spb_or +%spb_prod +%spb_sum +%spb_tril +%spb_triu +%st_6 +%st_c_st +%st_e +%st_f_st +%st_i_b +%st_i_c +%st_i_fptr +%st_i_h +%st_i_i +%st_i_ip +%st_i_lss +%st_i_msp +%st_i_p +%st_i_r +%st_i_s +%st_i_sp +%st_i_spb +%st_i_st +%st_matrix +%st_n_c +%st_n_l +%st_n_mc +%st_n_p +%st_n_s +%st_o_c +%st_o_l +%st_o_mc +%st_o_p +%st_o_s +%st_o_tl +%st_p +%st_size +%st_string +%st_t +%ticks_i_h +%xls_e +%xls_p +%xlssheet_e +%xlssheet_p +%xlssheet_size +%xlssheet_string +createstruct +generic_i_ce +generic_i_h +generic_i_hm +generic_i_s +generic_i_st +st_i_generic diff --git a/modules/overloading/macros/st_i_generic.bin b/modules/overloading/macros/st_i_generic.bin Binary files differnew file mode 100755 index 000000000..674c31345 --- /dev/null +++ b/modules/overloading/macros/st_i_generic.bin diff --git a/modules/overloading/macros/st_i_generic.sci b/modules/overloading/macros/st_i_generic.sci new file mode 100755 index 000000000..0fba99b5c --- /dev/null +++ b/modules/overloading/macros/st_i_generic.sci @@ -0,0 +1,27 @@ +// 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 + +function M=st_i_generic(varargin) + [lhs,rhs]=argn(0) + M=varargin(rhs) + N=varargin(rhs-1)//inserted matrix + index=varargin(1) // + if M==[] then M=struct(),M(index)=N;return;end + if rhs==3&(type(index)==10|type(index)==15) then + if type(index)==15 then + M=struct() + M(index)=N + else + M=createstruct(index,N) + end + else + error(1) + end + +endfunction diff --git a/modules/overloading/overloading.iss b/modules/overloading/overloading.iss new file mode 100755 index 000000000..c01b368c1 --- /dev/null +++ b/modules/overloading/overloading.iss @@ -0,0 +1,40 @@ +; +; 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) +; +;-------------------------------------------------------------------------------------------------------------- +; overloading module +;-------------------------------------------------------------------------------------------------------------- +; +#define OVERLOADING "overloading" +; +Source: modules\{#OVERLOADING}\license.txt; DestDir: {app}\modules\{#OVERLOADING}; Components: {#COMPN_SCILAB} +; +Source: modules\{#OVERLOADING}\etc\{#OVERLOADING}.quit; DestDir: {app}\modules\{#OVERLOADING}\etc; Components: {#COMPN_SCILAB} +Source: modules\{#OVERLOADING}\etc\{#OVERLOADING}.start; DestDir: {app}\modules\{#OVERLOADING}\etc; Components: {#COMPN_SCILAB} +; +;Source: modules\{#OVERLOADING}\includes\*.h; DestDir: {app}\modules\{#OVERLOADING}\includes; Components: {#COMPN_SCILAB} +; +Source: modules\{#OVERLOADING}\macros\buildmacros.sce; DestDir: {app}\modules\{#OVERLOADING}\macros; Components: {#COMPN_SCILAB} +Source: modules\{#OVERLOADING}\macros\buildmacros.bat; DestDir: {app}\modules\{#OVERLOADING}\macros; Components: {#COMPN_SCILAB} +Source: modules\{#OVERLOADING}\macros\cleanmacros.bat; DestDir: {app}\modules\{#OVERLOADING}\macros; Components: {#COMPN_SCILAB} +Source: modules\{#OVERLOADING}\macros\lib; DestDir: {app}\modules\{#OVERLOADING}\macros; Components: {#COMPN_SCILAB} +Source: modules\{#OVERLOADING}\macros\names; DestDir: {app}\modules\{#OVERLOADING}\macros; Components: {#COMPN_SCILAB} +Source: modules\{#OVERLOADING}\macros\*.bin; DestDir: {app}\modules\{#OVERLOADING}\macros; Components: {#COMPN_SCILAB} +Source: modules\{#OVERLOADING}\macros\*.sci; DestDir: {app}\modules\{#OVERLOADING}\macros; Components: {#COMPN_SCILAB} +; +;Source: modules\{#OVERLOADING}\demos\*.*; DestDir: {app}\modules\{#OVERLOADING}\demos; Flags: recursesubdirs; Components: {#COMPN_SCILAB} +; +Source: modules\{#OVERLOADING}\tests\*.*; DestDir: {app}\modules\{#OVERLOADING}\tests; Flags: recursesubdirs; Components: {#COMPN_SCILAB} and {#COMPN_TESTS} +; +;-------------------------------------------------------------------------------------------------------------- diff --git a/modules/overloading/tests/nonreg_tests/bug_10180.dia.ref b/modules/overloading/tests/nonreg_tests/bug_10180.dia.ref new file mode 100755 index 000000000..f84ca3586 --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_10180.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. +// ============================================================================= +// <-- Non-regression test for bug 10180 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=10180 +// +// <-- Short Description --> +// det is not defined for sparse matrix +A=[1,2,3;3,4,5;0,0,5]; +sp=sparse(A); +assert_checkequal(det(sp), det(A)); +[e,m]=det(sp); +assert_checkequal(e, 1); +assert_checkequal(m, -1); diff --git a/modules/overloading/tests/nonreg_tests/bug_10180.tst b/modules/overloading/tests/nonreg_tests/bug_10180.tst new file mode 100755 index 000000000..d0b7a5feb --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_10180.tst @@ -0,0 +1,21 @@ +// ============================================================================= +// 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. +// ============================================================================= + +// <-- Non-regression test for bug 10180 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=10180 +// +// <-- Short Description --> +// det is not defined for sparse matrix + +A=[1,2,3;3,4,5;0,0,5]; +sp=sparse(A); +assert_checkequal(det(sp), det(A)); +[e,m]=det(sp); +assert_checkequal(e, 1); +assert_checkequal(m, -1); diff --git a/modules/overloading/tests/nonreg_tests/bug_10305.dia.ref b/modules/overloading/tests/nonreg_tests/bug_10305.dia.ref new file mode 100755 index 000000000..d7a702f61 --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_10305.dia.ref @@ -0,0 +1,16 @@ +// ============================================================================= +// 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. +// ============================================================================= +// <-- Non-regression test for bug 10305 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=10305 +// +// <-- Short Description --> +// Compare lists with empty items is impossible +l1 = list(1,,2); +l2=l1; +assert_checkequal(l1==l2, [%t %f %t]); diff --git a/modules/overloading/tests/nonreg_tests/bug_10305.tst b/modules/overloading/tests/nonreg_tests/bug_10305.tst new file mode 100755 index 000000000..e279a2508 --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_10305.tst @@ -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. +// ============================================================================= + + +// <-- Non-regression test for bug 10305 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=10305 +// +// <-- Short Description --> +// Compare lists with empty items is impossible + +l1 = list(1,,2); +l2=l1; +assert_checkequal(l1==l2, [%t %f %t]); diff --git a/modules/overloading/tests/nonreg_tests/bug_10396.dia.ref b/modules/overloading/tests/nonreg_tests/bug_10396.dia.ref new file mode 100755 index 000000000..8d7819d88 --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_10396.dia.ref @@ -0,0 +1,24 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2011 - Scilab Enterprises - Sylvestre Ledru +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// <-- Non-regression test for bug 10396 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=10396 +// +// <-- Short Description --> +// Display of a structure with large matrix took a long time. +a = struct(); +a.toto = zeros(1,100000); +a.titi = zeros(1,100000); +tic(); +a + a = + + toto: [1x100000 constant] + titi: [1x100000 constant] +timeSpent=toc(); +assert_checktrue(timeSpent<1); diff --git a/modules/overloading/tests/nonreg_tests/bug_10396.tst b/modules/overloading/tests/nonreg_tests/bug_10396.tst new file mode 100755 index 000000000..7afb1c558 --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_10396.tst @@ -0,0 +1,22 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2011 - Scilab Enterprises - Sylvestre Ledru +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +// <-- Non-regression test for bug 10396 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=10396 +// +// <-- Short Description --> +// Display of a structure with large matrix took a long time. + +a = struct(); +a.toto = zeros(1,100000); +a.titi = zeros(1,100000); +tic(); +a +timeSpent=toc(); +assert_checktrue(timeSpent<1); diff --git a/modules/overloading/tests/nonreg_tests/bug_10479.dia.ref b/modules/overloading/tests/nonreg_tests/bug_10479.dia.ref new file mode 100755 index 000000000..798088d35 --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_10479.dia.ref @@ -0,0 +1,27 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2012 - INRIA - Serge.Steer@inria.fr +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- CLI SHELL MODE --> +// +// <-- Non-regression test for bug 10479 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=10479 +// +// <-- Short Description --> +//The max and min functions where incorrect for N-D array +A=rand(3,3,3); +M=max(A,0.5); +assert_checkequal(M,matrix(max(A(:),0.5),size(A))); +M=max(0.5,A); +assert_checkequal(M,matrix(max(A(:),0.5),size(A))); +B=rand(3,3,3); +M=max(A,B); +assert_checkequal(M,matrix(max(A(:),B(:)),size(A))); +A=matrix(1:27,3,3,3); +assert_checkequal(max(A,'r'),matrix(3:3:27,1,3,3)); +assert_checkequal(max(A,'c'),matrix([7:9 16:18 25:27],3,1,3)); diff --git a/modules/overloading/tests/nonreg_tests/bug_10479.tst b/modules/overloading/tests/nonreg_tests/bug_10479.tst new file mode 100755 index 000000000..11048b683 --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_10479.tst @@ -0,0 +1,31 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2012 - INRIA - Serge.Steer@inria.fr +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- CLI SHELL MODE --> +// +// <-- Non-regression test for bug 10479 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=10479 +// +// <-- Short Description --> +//The max and min functions where incorrect for N-D array + +A=rand(3,3,3); +M=max(A,0.5); +assert_checkequal(M,matrix(max(A(:),0.5),size(A))); +M=max(0.5,A); +assert_checkequal(M,matrix(max(A(:),0.5),size(A))); + + +B=rand(3,3,3); +M=max(A,B); +assert_checkequal(M,matrix(max(A(:),B(:)),size(A))); + +A=matrix(1:27,3,3,3); +assert_checkequal(max(A,'r'),matrix(3:3:27,1,3,3)); +assert_checkequal(max(A,'c'),matrix([7:9 16:18 25:27],3,1,3)); diff --git a/modules/overloading/tests/nonreg_tests/bug_10998.dia.ref b/modules/overloading/tests/nonreg_tests/bug_10998.dia.ref new file mode 100755 index 000000000..86234b091 --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_10998.dia.ref @@ -0,0 +1,52 @@ +// ============================================================================= +// 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 10998 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=10998 +// +// <-- Short Description --> +// matrix*hypermatrix operation failed. +//--------------------------------------------------- +// Matrix * Hypermatrix +clear +rand("seed", 0); +test1 = rand(3, 3, 3); +test2 = rand(3, 3, 3); +// Multiply a 3x3 matrix by a 3x1x3 hypermatrix. +c = test1(:, :, 1) * test2(:, 2, :); +// Build the expected result. Its size is 3x1x3. +refC = zeros(3, 1, 3); +for i=1:3 + refC(:, :, i) = test1(:, :, 1) * test2(:, 2, i); +end +assert_checkequal(c, refC); +// Now with harder dimensions +test1 = rand(5, 3); +test2 = rand(3, 4, 3); +// Multiply a 5x3 matrix by a 3x2x3 hypermatrix. +c = test1(:, :) * test2(:, 1:2, :); +// Build the expected result. Its size is 5x2x3. +refC = zeros(5, 2, 3); +for i=1:3 + refC(:, :, i) = test1(:, :) * test2(:, 1:2, i); +end +assert_checkequal(c, refC); +//--------------------------------------------------- +// Hypermatrix * Matrix +test1 = rand(4, 3); +// Multiply a 3x4x3 matrix by a 4x3 hypermatrix. +c = test2(:, :, :) * test1(:, :); +// Build the expected result. Its size is 3x3x3. +refC = zeros(3, 3, 3); +for i=1:3 + refC(:, :, i) = test2(:, :, i) * test1(:, :); +end +assert_checkequal(c, refC); diff --git a/modules/overloading/tests/nonreg_tests/bug_10998.tst b/modules/overloading/tests/nonreg_tests/bug_10998.tst new file mode 100755 index 000000000..a1d0753dd --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_10998.tst @@ -0,0 +1,67 @@ +// ============================================================================= +// 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 10998 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=10998 +// +// <-- Short Description --> +// matrix*hypermatrix operation failed. + +//--------------------------------------------------- +// Matrix * Hypermatrix + +clear +rand("seed", 0); +test1 = rand(3, 3, 3); +test2 = rand(3, 3, 3); + +// Multiply a 3x3 matrix by a 3x1x3 hypermatrix. +c = test1(:, :, 1) * test2(:, 2, :); + +// Build the expected result. Its size is 3x1x3. +refC = zeros(3, 1, 3); +for i=1:3 + refC(:, :, i) = test1(:, :, 1) * test2(:, 2, i); +end + +assert_checkequal(c, refC); + + +// Now with harder dimensions +test1 = rand(5, 3); +test2 = rand(3, 4, 3); + +// Multiply a 5x3 matrix by a 3x2x3 hypermatrix. +c = test1(:, :) * test2(:, 1:2, :); + +// Build the expected result. Its size is 5x2x3. +refC = zeros(5, 2, 3); +for i=1:3 + refC(:, :, i) = test1(:, :) * test2(:, 1:2, i); +end + +assert_checkequal(c, refC); + + +//--------------------------------------------------- +// Hypermatrix * Matrix + +test1 = rand(4, 3); +// Multiply a 3x4x3 matrix by a 4x3 hypermatrix. +c = test2(:, :, :) * test1(:, :); + +// Build the expected result. Its size is 3x3x3. +refC = zeros(3, 3, 3); +for i=1:3 + refC(:, :, i) = test2(:, :, i) * test1(:, :); +end + +assert_checkequal(c, refC); diff --git a/modules/overloading/tests/nonreg_tests/bug_11139.dia.ref b/modules/overloading/tests/nonreg_tests/bug_11139.dia.ref new file mode 100755 index 000000000..5babcb38c --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_11139.dia.ref @@ -0,0 +1,17 @@ +// ============================================================================= +// 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. +// ============================================================================= +// <-- Non-regression test for bug 11139 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=11139 +// +// <-- Short Description --> +// conj is not defined for sparse matrices +A=[complex(1,2), complex(2,3); 0, 0]; +sp_ref=sparse(conj(A)); +sp=conj(sparse(A)); +assert_checkequal(sp,sp_ref); diff --git a/modules/overloading/tests/nonreg_tests/bug_11139.tst b/modules/overloading/tests/nonreg_tests/bug_11139.tst new file mode 100755 index 000000000..24a4f998e --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_11139.tst @@ -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. +// ============================================================================= + +// <-- Non-regression test for bug 11139 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=11139 +// +// <-- Short Description --> +// conj is not defined for sparse matrices + +A=[complex(1,2), complex(2,3); 0, 0]; +sp_ref=sparse(conj(A)); +sp=conj(sparse(A)); +assert_checkequal(sp,sp_ref); diff --git a/modules/overloading/tests/nonreg_tests/bug_11996.dia.ref b/modules/overloading/tests/nonreg_tests/bug_11996.dia.ref new file mode 100755 index 000000000..6cc74470c --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_11996.dia.ref @@ -0,0 +1,45 @@ +// ============================================================================= +// 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. +// ============================================================================= +// <-- Non-regression test for bug 11996 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=11996 +// +// <-- Short Description --> +// Extend eye() to hypermatrix +ref222(:,:,1) = [1,0;0,0]; +ref222(:,:,2) = [0,0;0,1]; +assert_checkequal(eye(rand(2,2,2)), ref222); +ref4445(:,:,1,1) = [1,0,0,0;0,0,0,0;0,0,0,0;0,0,0,0]; +ref4445(:,:,2,1) = zeros(4,4); +ref4445(:,:,3,1) = zeros(4,4); +ref4445(:,:,4,1) = zeros(4,4); +ref4445(:,:,1,2) = zeros(4,4); +ref4445(:,:,2,2) = [0,0,0,0;0,1,0,0;0,0,0,0;0,0,0,0]; +ref4445(:,:,3,2) = zeros(4,4); +ref4445(:,:,4,2) = zeros(4,4); +ref4445(:,:,1,3) = zeros(4,4); +ref4445(:,:,2,3) = zeros(4,4); +ref4445(:,:,3,3) = [0,0,0,0;0,0,0,0;0,0,1,0;0,0,0,0]; +ref4445(:,:,4,3) = zeros(4,4); +ref4445(:,:,1,4) = zeros(4,4); +ref4445(:,:,2,4) = zeros(4,4); +ref4445(:,:,3,4) = zeros(4,4); +ref4445(:,:,4,4) = [0,0,0,0;0,0,0,0;0,0,0,0;0,0,0,1]; +ref4445(:,:,1,5) = zeros(4,4); +ref4445(:,:,2,5) = zeros(4,4); +ref4445(:,:,3,5) = zeros(4,4); +ref4445(:,:,4,5) = zeros(4,4); +assert_checkequal(eye(zeros(4,4,4,5)), ref4445); +M = hypermat([2 3 2 2],1:24); +ref2322(:,:,1,1) = [1,0,0;0,0,0]; +ref2322(:,:,2,1) = zeros(2,3); +ref2322(:,:,1,2) = zeros(2,3); +ref2322(:,:,2,2) = [0,0,0;0,1,0]; +assert_checkequal(eye(M), ref2322); +// Error messages +assert_checkerror("eye(4,4,4)", [], 42); diff --git a/modules/overloading/tests/nonreg_tests/bug_11996.tst b/modules/overloading/tests/nonreg_tests/bug_11996.tst new file mode 100755 index 000000000..cb2e6eedb --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_11996.tst @@ -0,0 +1,49 @@ +// ============================================================================= +// 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. +// ============================================================================= + +// <-- Non-regression test for bug 11996 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=11996 +// +// <-- Short Description --> +// Extend eye() to hypermatrix + +ref222(:,:,1) = [1,0;0,0]; +ref222(:,:,2) = [0,0;0,1]; +assert_checkequal(eye(rand(2,2,2)), ref222); + +ref4445(:,:,1,1) = [1,0,0,0;0,0,0,0;0,0,0,0;0,0,0,0]; +ref4445(:,:,2,1) = zeros(4,4); +ref4445(:,:,3,1) = zeros(4,4); +ref4445(:,:,4,1) = zeros(4,4); +ref4445(:,:,1,2) = zeros(4,4); +ref4445(:,:,2,2) = [0,0,0,0;0,1,0,0;0,0,0,0;0,0,0,0]; +ref4445(:,:,3,2) = zeros(4,4); +ref4445(:,:,4,2) = zeros(4,4); +ref4445(:,:,1,3) = zeros(4,4); +ref4445(:,:,2,3) = zeros(4,4); +ref4445(:,:,3,3) = [0,0,0,0;0,0,0,0;0,0,1,0;0,0,0,0]; +ref4445(:,:,4,3) = zeros(4,4); +ref4445(:,:,1,4) = zeros(4,4); +ref4445(:,:,2,4) = zeros(4,4); +ref4445(:,:,3,4) = zeros(4,4); +ref4445(:,:,4,4) = [0,0,0,0;0,0,0,0;0,0,0,0;0,0,0,1]; +ref4445(:,:,1,5) = zeros(4,4); +ref4445(:,:,2,5) = zeros(4,4); +ref4445(:,:,3,5) = zeros(4,4); +ref4445(:,:,4,5) = zeros(4,4); +assert_checkequal(eye(zeros(4,4,4,5)), ref4445); + +M = hypermat([2 3 2 2],1:24); +ref2322(:,:,1,1) = [1,0,0;0,0,0]; +ref2322(:,:,2,1) = zeros(2,3); +ref2322(:,:,1,2) = zeros(2,3); +ref2322(:,:,2,2) = [0,0,0;0,1,0]; +assert_checkequal(eye(M), ref2322); +// Error messages +assert_checkerror("eye(4,4,4)", [], 42); diff --git a/modules/overloading/tests/nonreg_tests/bug_12364.dia.ref b/modules/overloading/tests/nonreg_tests/bug_12364.dia.ref new file mode 100755 index 000000000..cdc0f6d1d --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_12364.dia.ref @@ -0,0 +1,15 @@ +// ============================================================================= +// 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. +// ============================================================================= +// <-- Non-regression test for bug 12364 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=12364 +// +// <-- Short Description --> +// hypermat.^scalar returned a warning +r=rand(2,3,2); +assert_checktrue(execstr("r.^2","errcatch")==0); diff --git a/modules/overloading/tests/nonreg_tests/bug_12364.tst b/modules/overloading/tests/nonreg_tests/bug_12364.tst new file mode 100755 index 000000000..ea96e57a8 --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_12364.tst @@ -0,0 +1,17 @@ +// ============================================================================= +// 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. +// ============================================================================= + +// <-- Non-regression test for bug 12364 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=12364 +// +// <-- Short Description --> +// hypermat.^scalar returned a warning + +r=rand(2,3,2); +assert_checktrue(execstr("r.^2","errcatch")==0); diff --git a/modules/overloading/tests/nonreg_tests/bug_12863.dia.ref b/modules/overloading/tests/nonreg_tests/bug_12863.dia.ref new file mode 100755 index 000000000..1d1b0d9f6 --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_12863.dia.ref @@ -0,0 +1,18 @@ +// ============================================================================= +// 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. +// ============================================================================= +// +// <-- Non-regression test for bug 12863 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=12863 +// +// <-- Short Description --> +// Function size(state-space, "r") does not work +sl = ssrand(3, 2, 4); +assert_checkequal(size(sl), [3, 2]); +assert_checkequal(size(sl, "r"), 3); +assert_checkequal(size(sl, "c"), 2); diff --git a/modules/overloading/tests/nonreg_tests/bug_12863.tst b/modules/overloading/tests/nonreg_tests/bug_12863.tst new file mode 100755 index 000000000..7f9d99ce0 --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_12863.tst @@ -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. +// ============================================================================= +// +// <-- Non-regression test for bug 12863 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=12863 +// +// <-- Short Description --> +// Function size(state-space, "r") does not work + +sl = ssrand(3, 2, 4); +assert_checkequal(size(sl), [3, 2]); +assert_checkequal(size(sl, "r"), 3); +assert_checkequal(size(sl, "c"), 2); diff --git a/modules/overloading/tests/nonreg_tests/bug_13177.dia.ref b/modules/overloading/tests/nonreg_tests/bug_13177.dia.ref new file mode 100755 index 000000000..49b7bf251 --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_13177.dia.ref @@ -0,0 +1,24 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2014 - Scilab Enterprises - Calixte DENIZET +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- TEST WITH GRAPHIC --> +// +// <-- Non-regression test for bug 13177 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/13177 +// +// <-- Short Description --> +// Error when changing x_ticks.locations on axe +clf(); +plot(1:10,1:10); +f = gcf(); +f.children(1).x_ticks.labels(1) = "99"; +clf(); +plot(1:10,1:10); +a = gca(); +a.x_ticks.labels(1) = "99"; diff --git a/modules/overloading/tests/nonreg_tests/bug_13177.tst b/modules/overloading/tests/nonreg_tests/bug_13177.tst new file mode 100755 index 000000000..b2e16b0fa --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_13177.tst @@ -0,0 +1,26 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2014 - Scilab Enterprises - Calixte DENIZET +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- TEST WITH GRAPHIC --> +// +// <-- Non-regression test for bug 13177 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/13177 +// +// <-- Short Description --> +// Error when changing x_ticks.locations on axe + +clf(); +plot(1:10,1:10); +f = gcf(); +f.children(1).x_ticks.labels(1) = "99"; + +clf(); +plot(1:10,1:10); +a = gca(); +a.x_ticks.labels(1) = "99";
\ No newline at end of file diff --git a/modules/overloading/tests/nonreg_tests/bug_13247.dia.ref b/modules/overloading/tests/nonreg_tests/bug_13247.dia.ref new file mode 100755 index 000000000..318a50333 --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_13247.dia.ref @@ -0,0 +1,19 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2014 - Scilab Enterprises - Calixte DENIZET +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// +// <-- Non-regression test for bug 13247 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/13247 +// +// <-- Short Description --> +// hypermatrix in structure definition does not work properly +z = zeros(2,2,2); +s.f = z; +assert_checkequal(typeof(s), "st"); +assert_checkequal(s.f, z); diff --git a/modules/overloading/tests/nonreg_tests/bug_13247.tst b/modules/overloading/tests/nonreg_tests/bug_13247.tst new file mode 100755 index 000000000..b6de6d7b9 --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_13247.tst @@ -0,0 +1,20 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2014 - Scilab Enterprises - Calixte DENIZET +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// +// <-- Non-regression test for bug 13247 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/13247 +// +// <-- Short Description --> +// hypermatrix in structure definition did not work properly + +z = zeros(2,2,2); +s.f = z; +assert_checkequal(typeof(s), "st"); +assert_checkequal(s.f, z); diff --git a/modules/overloading/tests/nonreg_tests/bug_13481.dia.ref b/modules/overloading/tests/nonreg_tests/bug_13481.dia.ref new file mode 100755 index 000000000..e5a095239 --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_13481.dia.ref @@ -0,0 +1,34 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2014 - Scilab Enterprises - Pierre-Aime Agnel +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- Non-regression test for bug 13481 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/13481 +// +// <-- Short Description --> +// varn did not work on rational fractions +// +// <-- CLI SHELL MODE --> +// Test on a rational fractions +x = poly(0, "x"); +num = 3 + x + x^2; +den = 1 - x + 2*x^2; +R = num / den; +R.dt = 'c'; +assert_checkequal("x", varn(R)); +num = varn(num, "z"); +den = varn(den, "z"); +R2 = varn(R, "z"); +// Check varn created the same num and den +assert_checkequal(num / den, R2.num / R2.den); +// Check dt is kept with varn +assert_checkequal(R.dt, R2.dt); +// Test on matrix of rationals +matrix_R = [R, 2*R + x, R.den/R.num]; +assert_checkequal(varn(matrix_R), "x"); +assert_checkequal(varn(varn(matrix_R, "z")), "z"); diff --git a/modules/overloading/tests/nonreg_tests/bug_13481.tst b/modules/overloading/tests/nonreg_tests/bug_13481.tst new file mode 100755 index 000000000..8fa37c13f --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_13481.tst @@ -0,0 +1,43 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2014 - Scilab Enterprises - Pierre-Aime Agnel +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- Non-regression test for bug 13481 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/13481 +// +// <-- Short Description --> +// varn did not work on rational fractions +// +// <-- CLI SHELL MODE --> + +// Test on a rational fractions + +x = poly(0, "x"); +num = 3 + x + x^2; +den = 1 - x + 2*x^2; + +R = num / den; +R.dt = 'c'; + +assert_checkequal("x", varn(R)); + +num = varn(num, "z"); +den = varn(den, "z"); + +R2 = varn(R, "z"); + +// Check varn created the same num and den +assert_checkequal(num / den, R2.num / R2.den); + +// Check dt is kept with varn +assert_checkequal(R.dt, R2.dt); + +// Test on matrix of rationals +matrix_R = [R, 2*R + x, R.den/R.num]; +assert_checkequal(varn(matrix_R), "x"); +assert_checkequal(varn(varn(matrix_R, "z")), "z"); diff --git a/modules/overloading/tests/nonreg_tests/bug_13507.dia.ref b/modules/overloading/tests/nonreg_tests/bug_13507.dia.ref new file mode 100755 index 000000000..eb3f9e2de --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_13507.dia.ref @@ -0,0 +1,24 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2014 - Scilab Enterprises - Cedric Delamarre +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// <-- Non-regression test for bug 13507 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=13507 +// +// <-- Short Description --> +// Imaginary part in result of a power complex was missing. +R = [1,2;3,4]; +c = 1 + 2*%i; +computed = R ^ c; +expected = expm(c*logm(R)); +assert_checkfalse(isreal(computed)); +assert_checkalmostequal(computed, expected); +c = 2 + 0*%i; +computed = R ^ c; +expected = R ^ 2; +assert_checktrue(isreal(computed)); +assert_checkalmostequal(computed, expected); diff --git a/modules/overloading/tests/nonreg_tests/bug_13507.tst b/modules/overloading/tests/nonreg_tests/bug_13507.tst new file mode 100755 index 000000000..676050f4e --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_13507.tst @@ -0,0 +1,28 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2014 - Scilab Enterprises - Cedric Delamarre +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +// <-- Non-regression test for bug 13507 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=13507 +// +// <-- Short Description --> +// Imaginary part in result of a complex power was missing. + +R = [1,2;3,4]; +c = 1 + 2*%i; + +computed = R ^ c; +expected = expm(c*logm(R)); +assert_checkfalse(isreal(computed)); +assert_checkalmostequal(computed, expected); + +c = 2 + 0*%i; +computed = R ^ c; +expected = R ^ 2; +assert_checktrue(isreal(computed)); +assert_checkalmostequal(computed, expected); diff --git a/modules/overloading/tests/nonreg_tests/bug_1611.dia.ref b/modules/overloading/tests/nonreg_tests/bug_1611.dia.ref new file mode 100755 index 000000000..f90b53eb2 --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_1611.dia.ref @@ -0,0 +1,17 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2008 - INRIA - Serge Steer +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// <-- Non-regression test for bug 1611 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=1611 +// +// <-- Short Description --> +// untrapped incorrect assignment +my_matrix(1, :) = [4, 5, 6]; +my_list = list(1, 2, 3); +if execstr('my_matrix(1)=mylist','errcatch')==0 then bugmes();quit;end; +if execstr('my_matrix(1,:)=mylist','errcatch')==0 then bugmes();quit;end; diff --git a/modules/overloading/tests/nonreg_tests/bug_1611.tst b/modules/overloading/tests/nonreg_tests/bug_1611.tst new file mode 100755 index 000000000..47e36dcdb --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_1611.tst @@ -0,0 +1,19 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2008 - INRIA - Serge Steer +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +// <-- Non-regression test for bug 1611 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=1611 +// +// <-- Short Description --> +// untrapped incorrect assignment +my_matrix(1, :) = [4, 5, 6]; +my_list = list(1, 2, 3); + +if execstr('my_matrix(1)=mylist','errcatch')==0 then pause,end; +if execstr('my_matrix(1,:)=mylist','errcatch')==0 then pause,end; diff --git a/modules/overloading/tests/nonreg_tests/bug_2127.dia.ref b/modules/overloading/tests/nonreg_tests/bug_2127.dia.ref new file mode 100755 index 000000000..c86bf3d71 --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_2127.dia.ref @@ -0,0 +1,23 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2008 - INRIA - Serge Steer +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// <-- Non-regression test for bug 2127 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=2127 +// +// <-- Short Description --> +// Rank-increasing extraction can fail for booleans +T=%t([1 1],[1 1],[1 1]) ; +if or(T(:,:,1)<>[%t %t;%t %t]) then bugmes();quit;end +if or(T(:,:,2)<>[%t %t;%t %t]) then bugmes();quit;end +T=%s([1 1],[1 1],[1 1]) ; +if or(T(:,:,1)<>[%s %s;%s %s]) then bugmes();quit;end +if or(T(:,:,2)<>[%s %s;%s %s]) then bugmes();quit;end +t='x'; +T=t([1 1],[1 1],[1 1]) ; +if or(T(:,:,1)<>[t t;t t]) then bugmes();quit;end +if or(T(:,:,2)<>[t t;t t]) then bugmes();quit;end diff --git a/modules/overloading/tests/nonreg_tests/bug_2127.tst b/modules/overloading/tests/nonreg_tests/bug_2127.tst new file mode 100755 index 000000000..b38f37738 --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_2127.tst @@ -0,0 +1,27 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2008 - INRIA - Serge Steer +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +// <-- Non-regression test for bug 2127 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=2127 +// +// <-- Short Description --> +// Rank-increasing extraction can fail for booleans + +T=%t([1 1],[1 1],[1 1]) ; +if or(T(:,:,1)<>[%t %t;%t %t]) then pause,end +if or(T(:,:,2)<>[%t %t;%t %t]) then pause,end + +T=%s([1 1],[1 1],[1 1]) ; +if or(T(:,:,1)<>[%s %s;%s %s]) then pause,end +if or(T(:,:,2)<>[%s %s;%s %s]) then pause,end + +t='x'; +T=t([1 1],[1 1],[1 1]) ; +if or(T(:,:,1)<>[t t;t t]) then pause,end +if or(T(:,:,2)<>[t t;t t]) then pause,end diff --git a/modules/overloading/tests/nonreg_tests/bug_2153.dia.ref b/modules/overloading/tests/nonreg_tests/bug_2153.dia.ref new file mode 100755 index 000000000..d5b4dd55a --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_2153.dia.ref @@ -0,0 +1,14 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2008 - INRIA - Vincent COUVERT +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// <-- Non-regression test for bug 2153 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=2153 +// +// <-- Short Description --> +// addition and subtraction of matrix and hypermatrix of same dimension and size do not work +if execstr("zeros(1,3) + hypermat([1 3])", "errcatch")<>0 then bugmes();quit;end diff --git a/modules/overloading/tests/nonreg_tests/bug_2153.tst b/modules/overloading/tests/nonreg_tests/bug_2153.tst new file mode 100755 index 000000000..e19ed7c64 --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_2153.tst @@ -0,0 +1,16 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2008 - INRIA - Vincent COUVERT +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +// <-- Non-regression test for bug 2153 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=2153 +// +// <-- Short Description --> +// addition and subtraction of matrix and hypermatrix of same dimension and size do not work + +if execstr("zeros(1,3) + hypermat([1 3])", "errcatch")<>0 then pause,end diff --git a/modules/overloading/tests/nonreg_tests/bug_2267.dia.ref b/modules/overloading/tests/nonreg_tests/bug_2267.dia.ref new file mode 100755 index 000000000..8899f47b1 --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_2267.dia.ref @@ -0,0 +1,28 @@ +// ============================================================================= +// 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. +// ============================================================================= +// +// <-- TEST WITH GRAPHIC --> +// +// <-- Non-regression test for bug 2267 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=2267 +// +// <-- Short Description --> +// Wrong error message when ticks locations and labels have not the same sizes +clf(); plot2d(); a=gca(); +errmsg1=msprintf(_("%s: Incompatible sizes for properties ''%s'' and ''%s'': Same sizes expected.\n"), "generic_i_h", "x_ticks.locations", "x_ticks.labels"); +execstr("a.x_ticks.locations=0:2:6","errcatch"); //assert_checkerror does not catch the error here +assert_checkequal(lasterror(), errmsg1); +execstr("a.x_ticks.labels=string([0:2:6])", "errcatch"); +assert_checkequal(lasterror(), errmsg1); +errmsg2=msprintf(_("%s: Incompatible sizes for properties ''%s'' and ''%s'': Same sizes expected.\n"), "generic_i_h", "y_ticks.locations", "y_ticks.labels"); +execstr("a.y_ticks.locations=-2:1:2", "errcatch"); +assert_checkequal(lasterror(), errmsg2); +execstr("a.y_ticks.labels=string([-2:1:2])", "errcatch"); +assert_checkequal(lasterror(), errmsg2); +close diff --git a/modules/overloading/tests/nonreg_tests/bug_2267.tst b/modules/overloading/tests/nonreg_tests/bug_2267.tst new file mode 100755 index 000000000..d3f8cc63f --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_2267.tst @@ -0,0 +1,30 @@ +// ============================================================================= +// 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. +// ============================================================================= +// +// <-- TEST WITH GRAPHIC --> +// +// <-- Non-regression test for bug 2267 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=2267 +// +// <-- Short Description --> +// Wrong error message when ticks locations and labels have not the same sizes + +clf(); plot2d(); a=gca(); +errmsg1=msprintf(_("%s: Incompatible sizes for properties ''%s'' and ''%s'': Same sizes expected.\n"), "generic_i_h", "x_ticks.locations", "x_ticks.labels"); +execstr("a.x_ticks.locations=0:2:6","errcatch"); //assert_checkerror does not catch the error here +assert_checkequal(lasterror(), errmsg1); +execstr("a.x_ticks.labels=string([0:2:6])", "errcatch"); +assert_checkequal(lasterror(), errmsg1); + +errmsg2=msprintf(_("%s: Incompatible sizes for properties ''%s'' and ''%s'': Same sizes expected.\n"), "generic_i_h", "y_ticks.locations", "y_ticks.labels"); +execstr("a.y_ticks.locations=-2:1:2", "errcatch"); +assert_checkequal(lasterror(), errmsg2); +execstr("a.y_ticks.labels=string([-2:1:2])", "errcatch"); +assert_checkequal(lasterror(), errmsg2); +close diff --git a/modules/overloading/tests/nonreg_tests/bug_3121.dia.ref b/modules/overloading/tests/nonreg_tests/bug_3121.dia.ref new file mode 100755 index 000000000..235282bfc --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_3121.dia.ref @@ -0,0 +1,16 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2008 - INRIA - Serge Steer +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// <-- Non-regression test for bug 3121 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=3121 +// +// <-- Short Description --> +//The error message returned by zeros() when input arguments are not integers is not clear : +if or(zeros(2.1,2.1,2.1)<>zeros(2,2,2)) then bugmes();quit;end +if or(ones(2.1,2.1,2.1)<>ones(2,2,2)) then bugmes();quit;end +if or(size(rand(2.1,2.1,2.1))<>[2 2 2]) then bugmes();quit;end diff --git a/modules/overloading/tests/nonreg_tests/bug_3121.tst b/modules/overloading/tests/nonreg_tests/bug_3121.tst new file mode 100755 index 000000000..1cdd80180 --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_3121.tst @@ -0,0 +1,17 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2008 - INRIA - Serge Steer +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +// <-- Non-regression test for bug 3121 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=3121 +// +// <-- Short Description --> +//The error message returned by zeros() when input arguments are not integers is not clear : +if or(zeros(2.1,2.1,2.1)<>zeros(2,2,2)) then pause,end +if or(ones(2.1,2.1,2.1)<>ones(2,2,2)) then pause,end +if or(size(rand(2.1,2.1,2.1))<>[2 2 2]) then pause,end diff --git a/modules/overloading/tests/nonreg_tests/bug_3222.dia.ref b/modules/overloading/tests/nonreg_tests/bug_3222.dia.ref new file mode 100755 index 000000000..d30a76f2e --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_3222.dia.ref @@ -0,0 +1,27 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2008 - INRIA - Serge Steer +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- CLI SHELL MODE --> +// +// <-- Non-regression test for bug 3222 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=3222 +// +// <-- Short Description --> +// indexing problem +clear D;D(1)(2)="3"; +if or(D<>["" "3"]) then bugmes();quit;end +clear D;D(1).x="3"; +if D.x<>"3" then bugmes();quit;end +clear D;D(1,2).x="3"; +if D(1).x<>[] then bugmes();quit;end +if D(2).x<>"3" then bugmes();quit;end +clear D;D.x(1,2)="3"; +if or(D.x<>["" "3"]) then bugmes();quit;end +clear D;D(1,1,2)="3"; +if D(1,1,2)<>"3" then bugmes();quit;end diff --git a/modules/overloading/tests/nonreg_tests/bug_3222.tst b/modules/overloading/tests/nonreg_tests/bug_3222.tst new file mode 100755 index 000000000..c402376c4 --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_3222.tst @@ -0,0 +1,33 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2008 - INRIA - Serge Steer +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +// +// <-- CLI SHELL MODE --> +// +// <-- Non-regression test for bug 3222 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=3222 +// +// <-- Short Description --> +// indexing problem +clear D;D(1)(2)="3"; +if or(D<>["" "3"]) then pause,end + +clear D;D(1).x="3"; +if D.x<>"3" then pause,end + +clear D;D(1,2).x="3"; +if D(1).x<>[] then pause,end +if D(2).x<>"3" then pause,end + + +clear D;D.x(1,2)="3"; +if or(D.x<>["" "3"]) then pause,end + +clear D;D(1,1,2)="3"; +if D(1,1,2)<>"3" then pause,end diff --git a/modules/overloading/tests/nonreg_tests/bug_3688.dia.ref b/modules/overloading/tests/nonreg_tests/bug_3688.dia.ref new file mode 100755 index 000000000..9c287a0f7 --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_3688.dia.ref @@ -0,0 +1,92 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2010 - INRIA - Serge Steer +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// <-- CLI SHELL MODE --> +// <-- Non-regression test for bug 3688 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=3688 +// +// <-- Short Description --> +// The assignment using ":" subscript for a dimension that does not exist +// does not work for hypermatrices +A=[];A(1,1,:) = [-1 3]; +if or(size(A)<>[1 1 2])|or(matrix(A(1,1,:),1,-1)<>[-1 3]) then bugmes();quit;end +A=[];A(1,1,:) = [-1;3]; +if or(size(A)<>[1 1 2])|or(matrix(A(1,1,:),1,-1)<>[-1 3]) then bugmes();quit;end +A=[];A(1,2,:) = [-1 3]; +if or(size(A)<>[1 2 2])|or(matrix(A(1,:,:),2,-1)<>[0 0;-1 3]) then bugmes();quit;end +A=[];A(1,2,:) = [-1;3]; +if or(size(A)<>[1 2 2])|or(matrix(A(1,:,:),2,-1)<>[0 0;-1 3]) then bugmes();quit;end +A=[];A(2,1,:) = [-1 3]; +if or(size(A)<>[2 1 2])|or(matrix(A(:,1,:),2,-1)<>[0 0;-1 3]) then bugmes();quit;end +A=[];A(1,:,1) = [-1 3]; +if or(A<>[-1 3]) then bugmes();quit;end +A=[];A(1,:,1) = [-1;3]; +if or(A<>[-1 3]) then bugmes();quit;end +A=[];A(:,1,1) = [-1 3]; +if or(A<>[-1;3]) then bugmes();quit;end +A=[];A(:,1,1) = [-1;3]; +if or(A<>[-1;3]) then bugmes();quit;end +A=[];A(1,:,:) = [-1 3;5 7]; +if or(size(A)<>[1 2 2])|or(matrix(A(1,:,:),2,-1)<>[-1 3;5 7]) then bugmes();quit;end +A=[];A(:,1,:) = [-1 3;5 7]; +if or(size(A)<>[2 1 2])|or(matrix(A(:,1,:),2,-1)<>[-1 3;5 7]) then bugmes();quit;end +A=[];A(1,:,:) = [-1 3 5 7]; +if or(size(A)<>[1 1 4])|or(matrix(A(1,1,:),1,-1)<>[-1 3 5 7]) then bugmes();quit;end +if execstr("A=[];A(1,1:2,:) = [-1 3 5 7];","errcatch")==0 then bugmes();quit;end +A=[];A(1,1,2)=3;A(1,1,1,:)=[-1 3]; +if or(size(A)<>[1 1 2 2])|or(matrix(A(1,1,1,:),1,-1)<>[-1 3]) then bugmes();quit;end +A=[];A(1,1,2)=3;A(1,1,1,:)=[-1;3]; +if or(size(A)<>[1 1 2 2])|or(matrix(A(1,1,1,:),1,-1)<>[-1 3]) then bugmes();quit;end +A=[];A(1,1,2)=3;A(2,1,1,:)=[-1;3]; +if or(size(A)<>[2 1 2 2])|or(matrix(A(2,1,1,:),1,-1)<>[-1 3]) then bugmes();quit;end +//insertion of integer +A=[];A(1,1,:) = int32([-1 3]); +if or(size(A)<>[1 1 2])|or(matrix(A(1,1,:),1,-1)<>int32([-1 3])) then bugmes();quit;end +A=[];A(1,1,:) = int32([-1;3]); +if or(size(A)<>[1 1 2])|or(matrix(A(1,1,:),1,-1)<>int32([-1 3])) then bugmes();quit;end +A=[];A(1,2,:) = int32([-1 3]); +if or(size(A)<>[1 2 2])|or(matrix(A(1,:,:),2,-1)<>int32([0 0;-1 3])) then bugmes();quit;end +A=[];A(1,2,:) = int32([-1;3]); +if or(size(A)<>[1 2 2])|or(matrix(A(1,:,:),2,-1)<>int32([0 0;-1 3])) then bugmes();quit;end +A=[];A(2,1,:) = int32([-1 3]); +if or(size(A)<>[2 1 2])|or(matrix(A(:,1,:),2,-1)<>int32([0 0;-1 3])) then bugmes();quit;end +A=[];A(1,:,1) = int32([-1 3]); +if or(A<>int32([-1 3])) then bugmes();quit;end +A=[];A(1,:,1) = int32([-1;3]); +if or(A<>int32([-1 3])) then bugmes();quit;end +A=[];A(:,1,1) = int32([-1 3]); +if or(A<>int32([-1;3])) then bugmes();quit;end +A=[];A(:,1,1) = int32([-1;3]); +if or(A<>int32([-1;3])) then bugmes();quit;end +A=[];A(1,:,:) = int32([-1 3;5 7]); +if or(size(A)<>[1 2 2])|or(matrix(A(1,:,:),2,-1)<>int32([-1 3;5 7])) then bugmes();quit;end +A=[];A(:,1,:) = int32([-1 3;5 7]); +if or(size(A)<>[2 1 2])|or(matrix(A(:,1,:),2,-1)<>int32([-1 3;5 7])) then bugmes();quit;end +A=[];A(1,:,:) = int32([-1 3 5 7]); +if or(size(A)<>[1 1 4])|or(matrix(A(1,1,:),1,-1)<>int32([-1 3 5 7])) then bugmes();quit;end +if execstr("A=[];A(1,1:2,:) = int32([-1 3 5 7];","errcatch")==0 then bugmes();quit;end +A=[];A(1,1,2)=int32(3);A(1,1,1,:)=int32([-1 3]); +if or(size(A)<>[1 1 2 2])|or(matrix(A(1,1,1,:),1,-1)<>int32([-1 3])) then bugmes();quit;end +A=[];A(1,1,2)=int32(3);A(1,1,1,:)=int32([-1;3]); +if or(size(A)<>[1 1 2 2])|or(matrix(A(1,1,1,:),1,-1)<>int32([-1 3])) then bugmes();quit;end +A=[];A(1,1,2)=int32(3);A(2,1,1,:)=int32([-1;3]); +if or(size(A)<>[2 1 2 2])|or(matrix(A(2,1,1,:),1,-1)<>int32([-1 3])) then bugmes();quit;end +//same should work for other types that uses the same algorithm (generic_i_hm) +//polynomials +A=[];A(1,1,:) = [-1 3]+%s; +if or(size(A)<>[1 1 2])|or(matrix(A(1,1,:),1,-1)<>[-1 3]+%s) then bugmes();quit;end +A=[];A(1,1,2)=3;A(2,1,1,:)=[-1;3]+%s; +if or(size(A)<>[2 1 2 2])|or(matrix(A(2,1,1,:),1,-1)<>[-1 3]+%s) then bugmes();quit;end +//booleans +A=[];A(1,1,:) = [%t %f]; +if or(size(A)<>[1 1 2])|or(matrix(A(1,1,:),1,-1)<>[%t %f]) then bugmes();quit;end +A=[];A(1,1,2)=%t;A(2,1,1,:)= [%t; %f]; +if or(size(A)<>[2 1 2 2])|or(matrix(A(2,1,1,:),1,-1)<>[%t %f]) then bugmes();quit;end +//added because a bug found in %b_i_b.sci +A=%t;A(2,1,1,:)= [%t; %f]; +if or(size(A)<>[2 1 1 2])|or(matrix(A(2,1,1,:),1,-1)<>[%t %f]) then bugmes();quit;end diff --git a/modules/overloading/tests/nonreg_tests/bug_3688.tst b/modules/overloading/tests/nonreg_tests/bug_3688.tst new file mode 100755 index 000000000..49291c08c --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_3688.tst @@ -0,0 +1,134 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2010 - INRIA - Serge Steer +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +// <-- CLI SHELL MODE --> + +// <-- Non-regression test for bug 3688 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=3688 +// +// <-- Short Description --> +// The assignment using ":" subscript for a dimension that does not exist +// does not work for hypermatrices + +A=[];A(1,1,:) = [-1 3]; +if or(size(A)<>[1 1 2])|or(matrix(A(1,1,:),1,-1)<>[-1 3]) then pause,end + +A=[];A(1,1,:) = [-1;3]; +if or(size(A)<>[1 1 2])|or(matrix(A(1,1,:),1,-1)<>[-1 3]) then pause,end + +A=[];A(1,2,:) = [-1 3]; +if or(size(A)<>[1 2 2])|or(matrix(A(1,:,:),2,-1)<>[0 0;-1 3]) then pause,end + +A=[];A(1,2,:) = [-1;3]; +if or(size(A)<>[1 2 2])|or(matrix(A(1,:,:),2,-1)<>[0 0;-1 3]) then pause,end + +A=[];A(2,1,:) = [-1 3]; +if or(size(A)<>[2 1 2])|or(matrix(A(:,1,:),2,-1)<>[0 0;-1 3]) then pause,end + + + +A=[];A(1,:,1) = [-1 3]; +if or(A<>[-1 3]) then pause,end + +A=[];A(1,:,1) = [-1;3]; +if or(A<>[-1 3]) then pause,end + +A=[];A(:,1,1) = [-1 3]; +if or(A<>[-1;3]) then pause,end + +A=[];A(:,1,1) = [-1;3]; +if or(A<>[-1;3]) then pause,end + +A=[];A(1,:,:) = [-1 3;5 7]; +if or(size(A)<>[1 2 2])|or(matrix(A(1,:,:),2,-1)<>[-1 3;5 7]) then pause,end + +A=[];A(:,1,:) = [-1 3;5 7]; +if or(size(A)<>[2 1 2])|or(matrix(A(:,1,:),2,-1)<>[-1 3;5 7]) then pause,end + +A=[];A(1,:,:) = [-1 3 5 7]; +if or(size(A)<>[1 1 4])|or(matrix(A(1,1,:),1,-1)<>[-1 3 5 7]) then pause,end + +if execstr("A=[];A(1,1:2,:) = [-1 3 5 7];","errcatch")==0 then pause,end + +A=[];A(1,1,2)=3;A(1,1,1,:)=[-1 3]; +if or(size(A)<>[1 1 2 2])|or(matrix(A(1,1,1,:),1,-1)<>[-1 3]) then pause,end + +A=[];A(1,1,2)=3;A(1,1,1,:)=[-1;3]; +if or(size(A)<>[1 1 2 2])|or(matrix(A(1,1,1,:),1,-1)<>[-1 3]) then pause,end + +A=[];A(1,1,2)=3;A(2,1,1,:)=[-1;3]; +if or(size(A)<>[2 1 2 2])|or(matrix(A(2,1,1,:),1,-1)<>[-1 3]) then pause,end + +//insertion of integer +A=[];A(1,1,:) = int32([-1 3]); +if or(size(A)<>[1 1 2])|or(matrix(A(1,1,:),1,-1)<>int32([-1 3])) then pause,end + +A=[];A(1,1,:) = int32([-1;3]); +if or(size(A)<>[1 1 2])|or(matrix(A(1,1,:),1,-1)<>int32([-1 3])) then pause,end + +A=[];A(1,2,:) = int32([-1 3]); +if or(size(A)<>[1 2 2])|or(matrix(A(1,:,:),2,-1)<>int32([0 0;-1 3])) then pause,end + +A=[];A(1,2,:) = int32([-1;3]); +if or(size(A)<>[1 2 2])|or(matrix(A(1,:,:),2,-1)<>int32([0 0;-1 3])) then pause,end + +A=[];A(2,1,:) = int32([-1 3]); +if or(size(A)<>[2 1 2])|or(matrix(A(:,1,:),2,-1)<>int32([0 0;-1 3])) then pause,end + +A=[];A(1,:,1) = int32([-1 3]); +if or(A<>int32([-1 3])) then pause,end + +A=[];A(1,:,1) = int32([-1;3]); +if or(A<>int32([-1 3])) then pause,end + +A=[];A(:,1,1) = int32([-1 3]); +if or(A<>int32([-1;3])) then pause,end + +A=[];A(:,1,1) = int32([-1;3]); +if or(A<>int32([-1;3])) then pause,end + + +A=[];A(1,:,:) = int32([-1 3;5 7]); +if or(size(A)<>[1 2 2])|or(matrix(A(1,:,:),2,-1)<>int32([-1 3;5 7])) then pause,end + +A=[];A(:,1,:) = int32([-1 3;5 7]); +if or(size(A)<>[2 1 2])|or(matrix(A(:,1,:),2,-1)<>int32([-1 3;5 7])) then pause,end + +A=[];A(1,:,:) = int32([-1 3 5 7]); +if or(size(A)<>[1 1 4])|or(matrix(A(1,1,:),1,-1)<>int32([-1 3 5 7])) then pause,end + +if execstr("A=[];A(1,1:2,:) = int32([-1 3 5 7];","errcatch")==0 then pause,end + +A=[];A(1,1,2)=int32(3);A(1,1,1,:)=int32([-1 3]); +if or(size(A)<>[1 1 2 2])|or(matrix(A(1,1,1,:),1,-1)<>int32([-1 3])) then pause,end + +A=[];A(1,1,2)=int32(3);A(1,1,1,:)=int32([-1;3]); +if or(size(A)<>[1 1 2 2])|or(matrix(A(1,1,1,:),1,-1)<>int32([-1 3])) then pause,end + +A=[];A(1,1,2)=int32(3);A(2,1,1,:)=int32([-1;3]); +if or(size(A)<>[2 1 2 2])|or(matrix(A(2,1,1,:),1,-1)<>int32([-1 3])) then pause,end + +//same should work for other types that uses the same algorithm (generic_i_hm) +//polynomials +A=[];A(1,1,:) = [-1 3]+%s; +if or(size(A)<>[1 1 2])|or(matrix(A(1,1,:),1,-1)<>[-1 3]+%s) then pause,end + +A=[];A(1,1,2)=3;A(2,1,1,:)=[-1;3]+%s; +if or(size(A)<>[2 1 2 2])|or(matrix(A(2,1,1,:),1,-1)<>[-1 3]+%s) then pause,end + +//booleans +A=[];A(1,1,:) = [%t %f]; +if or(size(A)<>[1 1 2])|or(matrix(A(1,1,:),1,-1)<>[%t %f]) then pause,end + +A=[];A(1,1,2)=%t;A(2,1,1,:)= [%t; %f]; +if or(size(A)<>[2 1 2 2])|or(matrix(A(2,1,1,:),1,-1)<>[%t %f]) then pause,end + +//added because a bug found in %b_i_b.sci +A=%t;A(2,1,1,:)= [%t; %f]; +if or(size(A)<>[2 1 1 2])|or(matrix(A(2,1,1,:),1,-1)<>[%t %f]) then pause,end diff --git a/modules/overloading/tests/nonreg_tests/bug_3833.dia.ref b/modules/overloading/tests/nonreg_tests/bug_3833.dia.ref new file mode 100755 index 000000000..7125b7261 --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_3833.dia.ref @@ -0,0 +1,34 @@ +// ============================================================================= +// 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. +// ============================================================================= +// <-- Non-regression test for bug 3833 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=3833 +// +// <-- Short Description --> +// Assignment operator for cell structs storing matrices for indices greater than 1 overwrites all previous values and reinitialises the entries instead. +// Workaround was to extract the matrix from entries, update the matrix externally and re-assign the entire updated matrix into the specific cell entry. +// This is however not expedient when dealing with large structs and matrices. +g = cell(2,1); +g(2).entries = [1,2;3,4]; +if or(g(2).entries <> [1,2;3,4]) then bugmes();quit;end +g(2).entries(1,1) = 9; +if or(g(2).entries <> [9,2;3,4]) then bugmes();quit;end +g(2).entries(1,2) = 10; +if or(g(2).entries <> [9,10;3,4]) then bugmes();quit;end +g(2).entries(2,1) = 11; +if or(g(2).entries <> [9,10;11,4]) then bugmes();quit;end +g(2).entries(2,2) = 12; +if or(g(2).entries <> [9,10;11,12]) then bugmes();quit;end +g(2).entries(1) = 111; +if or(g(2).entries <> [111,10;11,12]) then bugmes();quit;end +g(2).entries(3) = 222; +if or(g(2).entries <> [111,222;11,12]) then bugmes();quit;end +g(2).entries(2) = 333; +if or(g(2).entries <> [111,222;333,12]) then bugmes();quit;end +g(2).entries(4) = 444; +if or(g(2).entries <> [111,222;333,444]) then bugmes();quit;end diff --git a/modules/overloading/tests/nonreg_tests/bug_3833.tst b/modules/overloading/tests/nonreg_tests/bug_3833.tst new file mode 100755 index 000000000..63b29844b --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_3833.tst @@ -0,0 +1,38 @@ +// ============================================================================= +// 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. +// ============================================================================= + +// <-- Non-regression test for bug 3833 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=3833 +// +// <-- Short Description --> +// Assignment operator for cell structs storing matrices for indices greater than 1 overwrites all previous values and reinitialises the entries instead. +// Workaround was to extract the matrix from entries, update the matrix externally and re-assign the entire updated matrix into the specific cell entry. +// This is however not expedient when dealing with large structs and matrices. + +g = cell(2,1); +g(2).entries = [1,2;3,4]; +if or(g(2).entries <> [1,2;3,4]) then pause; end +g(2).entries(1,1) = 9; +if or(g(2).entries <> [9,2;3,4]) then pause; end +g(2).entries(1,2) = 10; +if or(g(2).entries <> [9,10;3,4]) then pause; end +g(2).entries(2,1) = 11; +if or(g(2).entries <> [9,10;11,4]) then pause; end +g(2).entries(2,2) = 12; +if or(g(2).entries <> [9,10;11,12]) then pause; end +g(2).entries(1) = 111; +if or(g(2).entries <> [111,10;11,12]) then pause; end +g(2).entries(3) = 222; +if or(g(2).entries <> [111,222;11,12]) then pause; end +g(2).entries(2) = 333; +if or(g(2).entries <> [111,222;333,12]) then pause; end +g(2).entries(4) = 444; +if or(g(2).entries <> [111,222;333,444]) then pause; end + + diff --git a/modules/overloading/tests/nonreg_tests/bug_4266.dia.ref b/modules/overloading/tests/nonreg_tests/bug_4266.dia.ref new file mode 100755 index 000000000..a8d79b1c8 --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_4266.dia.ref @@ -0,0 +1,41 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2009 - INRIA - Serge Steer +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// <-- Non-regression test for bug 4266 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=4266 +// +// <-- Short Description --> +// ones, rand, zeros functions do not remove highest dimensions equal to 1. +a=ones(2,2,1); +if or(size(a)<>[2 2]) then bugmes();quit;end +a=ones(2,2,1,1); +if or(size(a)<>[2 2]) then bugmes();quit;end +if or(a<>ones(2,2)) then bugmes();quit;end +a=ones(2,2,2); +if or(size(a)<>[2 2 2]) then bugmes();quit;end +a=zeros(2,2,1); +if or(size(a)<>[2 2]) then bugmes();quit;end +a=zeros(2,2,1,1); +if or(size(a)<>[2 2]) then bugmes();quit;end +if or(a<>zeros(2,2)) then bugmes();quit;end +a=zeros(2,2,2); +if or(size(a)<>[2 2 2]) then bugmes();quit;end +a=rand(2,2,1); +if or(size(a)<>[2 2]) then bugmes();quit;end +a=rand(2,2,1,1); +if or(size(a)<>[2 2]) then bugmes();quit;end +if or(a<>a(:,:)) then bugmes();quit;end +a=rand(2,2,2); +if or(size(a)<>[2 2 2]) then bugmes();quit;end +a=rand(2,2,1,'normal'); +if or(size(a)<>[2 2]) then bugmes();quit;end +a=rand(2,2,1,1,'normal'); +if or(size(a)<>[2 2]) then bugmes();quit;end +if or(a<>a(:,:)) then bugmes();quit;end +a=rand(2,2,2,'normal'); +if or(size(a)<>[2 2 2]) then bugmes();quit;end diff --git a/modules/overloading/tests/nonreg_tests/bug_4266.tst b/modules/overloading/tests/nonreg_tests/bug_4266.tst new file mode 100755 index 000000000..99a926164 --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_4266.tst @@ -0,0 +1,48 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2009 - INRIA - Serge Steer +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +// <-- Non-regression test for bug 4266 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=4266 +// +// <-- Short Description --> +// ones, rand, zeros functions do not remove highest dimensions equal to 1. +a=ones(2,2,1); +if or(size(a)<>[2 2]) then pause,end +a=ones(2,2,1,1); +if or(size(a)<>[2 2]) then pause,end +if or(a<>ones(2,2)) then pause,end +a=ones(2,2,2); +if or(size(a)<>[2 2 2]) then pause,end + +a=zeros(2,2,1); +if or(size(a)<>[2 2]) then pause,end +a=zeros(2,2,1,1); +if or(size(a)<>[2 2]) then pause,end +if or(a<>zeros(2,2)) then pause,end +a=zeros(2,2,2); +if or(size(a)<>[2 2 2]) then pause,end + +a=rand(2,2,1); +if or(size(a)<>[2 2]) then pause,end +a=rand(2,2,1,1); +if or(size(a)<>[2 2]) then pause,end +if or(a<>a(:,:)) then pause,end +a=rand(2,2,2); +if or(size(a)<>[2 2 2]) then pause,end + + +a=rand(2,2,1,'normal'); +if or(size(a)<>[2 2]) then pause,end +a=rand(2,2,1,1,'normal'); +if or(size(a)<>[2 2]) then pause,end +if or(a<>a(:,:)) then pause,end +a=rand(2,2,2,'normal'); +if or(size(a)<>[2 2 2]) then pause,end + + diff --git a/modules/overloading/tests/nonreg_tests/bug_4646.dia.ref b/modules/overloading/tests/nonreg_tests/bug_4646.dia.ref new file mode 100755 index 000000000..ac634560d --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_4646.dia.ref @@ -0,0 +1,15 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2009 - INRIA - Serge Steer +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// <-- Non-regression test for bug 4266 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=4266 +// +// <-- Short Description --> +// assigning a string to an element of a matrix of numbers gives an error. +a=zeros(1,5); +if execstr('a(1)=''a'';','errcatch')==0 then bugmes();quit;end diff --git a/modules/overloading/tests/nonreg_tests/bug_4646.tst b/modules/overloading/tests/nonreg_tests/bug_4646.tst new file mode 100755 index 000000000..c7419f6a2 --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_4646.tst @@ -0,0 +1,17 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2009 - INRIA - Serge Steer +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +// <-- Non-regression test for bug 4266 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=4266 +// +// <-- Short Description --> +// assigning a string to an element of a matrix of numbers gives an error. +a=zeros(1,5); +if execstr('a(1)=''a'';','errcatch')==0 then pause,end + diff --git a/modules/overloading/tests/nonreg_tests/bug_4806.dia.ref b/modules/overloading/tests/nonreg_tests/bug_4806.dia.ref new file mode 100755 index 000000000..6cf601d72 --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_4806.dia.ref @@ -0,0 +1,15 @@ +// ============================================================================= +// 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. +// ============================================================================= +// <-- Non-regression test for bug 4806 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=4806 +// +// <-- Short Description --> +// If A is a sparse matrix, A^0 returns A and not the identity matrix as expected. +A=sparse(matrix(1:9,3,3)); +assert_checkequal(A^0,speye(A)); diff --git a/modules/overloading/tests/nonreg_tests/bug_4806.tst b/modules/overloading/tests/nonreg_tests/bug_4806.tst new file mode 100755 index 000000000..1a96a5ced --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_4806.tst @@ -0,0 +1,16 @@ +// ============================================================================= +// 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. +// ============================================================================= + +// <-- Non-regression test for bug 4806 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=4806 +// +// <-- Short Description --> +// If A is a sparse matrix, A^0 returns A and not the identity matrix as expected. +A=sparse(matrix(1:9,3,3)); +assert_checkequal(A^0,speye(A)); diff --git a/modules/overloading/tests/nonreg_tests/bug_4826.dia.ref b/modules/overloading/tests/nonreg_tests/bug_4826.dia.ref new file mode 100755 index 000000000..717fe216b --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_4826.dia.ref @@ -0,0 +1,30 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2009 - INRIA - Serge Steer +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// <-- Non-regression test for bug 4826 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=4826 +// +// <-- Short Description --> +// The type of the 'dims' entry of an hypermat is not always the same. +a=[1 2;3 4]; +A=a(:,:,[1 1]); +if typeof(A.dims)<>"int32" then bugmes();quit;end +if size(A.dims,1)<>1 then bugmes();quit;end +a=int8([1 2;3 4]); +A=a(:,:,[1 1]); +if typeof(A.dims)<>"int32" then bugmes();quit;end +if size(A.dims,1)<>1 then bugmes();quit;end +a = []; +a(1,1)= %s; +A=a(:,:,[1 1]); +if typeof(A.dims)<>"int32" then bugmes();quit;end +if size(A.dims,1)<>1 then bugmes();quit;end +a=['1' '2';'3' '4']; +A=a(:,:,[1 1]); +if typeof(A.dims)<>"int32" then bugmes();quit;end +if size(A.dims,1)<>1 then bugmes();quit;end diff --git a/modules/overloading/tests/nonreg_tests/bug_4826.tst b/modules/overloading/tests/nonreg_tests/bug_4826.tst new file mode 100755 index 000000000..581200a12 --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_4826.tst @@ -0,0 +1,35 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2009 - INRIA - Serge Steer +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +// <-- Non-regression test for bug 4826 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=4826 +// +// <-- Short Description --> +// The type of the 'dims' entry of an hypermat is not always the same. + +a=[1 2;3 4]; +A=a(:,:,[1 1]); +if typeof(A.dims)<>"int32" then pause,end +if size(A.dims,1)<>1 then pause,end + +a=int8([1 2;3 4]); +A=a(:,:,[1 1]); +if typeof(A.dims)<>"int32" then pause,end +if size(A.dims,1)<>1 then pause,end + +a = []; +a(1,1)= %s; +A=a(:,:,[1 1]); +if typeof(A.dims)<>"int32" then pause,end +if size(A.dims,1)<>1 then pause,end + +a=['1' '2';'3' '4']; +A=a(:,:,[1 1]); +if typeof(A.dims)<>"int32" then pause,end +if size(A.dims,1)<>1 then pause,end diff --git a/modules/overloading/tests/nonreg_tests/bug_6305.dia.ref b/modules/overloading/tests/nonreg_tests/bug_6305.dia.ref new file mode 100755 index 000000000..e3e1a68d6 --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_6305.dia.ref @@ -0,0 +1,64 @@ +// ============================================================================= +// 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. +// ============================================================================= +// <-- Non-regression test for bug 6305 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=6305 +// +// <-- Short Description --> +// dsearch does not work with integers, hypermatrices and strings +indref_d = [1,0, 0, 2; 2, 0, 0, 0; 0, 0, 2, 0; 4, 3, 0, 0]; +occref_d = [1, 3, 1, 1]; +inforef_d = 10; +indref_c = [1, 2, 2, 1; 1, 0, 0, 0; 0, 0, 1, 0; 3, 2, 3, 3]; +occref_c = [4, 3, 3]; +inforef_c = 6; +I = [3, 5, 6, 4; 4, 1, 2, 11; 1, 11, 4, 0; 10, 7, 9 9]; +// Integers +I_int8 = int8(I); +[ind, occ, info] = dsearch(I_int8, int8([3 4 7 10]),"d"); +assert_checkequal(ind, indref_d); +assert_checkequal(occ, occref_d); +assert_checkequal(info, inforef_d); +[ind, occ, info] = dsearch(I_int8, int8([3 4 7 10]), "c"); +assert_checkequal(ind, indref_c); +assert_checkequal(occ, occref_c); +assert_checkequal(info, inforef_c); +[ind, occ, info] = dsearch(I_int8, int8([3 4 7 10])); +assert_checkequal(ind, indref_c); +assert_checkequal(occ, occref_c); +assert_checkequal(info, inforef_c); +// Strings +[ind, occ, info] = dsearch(["K", "M", "a", "g", "E", "b", "I"], ["E", "K", "O", "T"], "c"); +assert_checkequal(ind, [1 2 0 0 1 0 1]); +assert_checkequal(occ, [3 1 0]); +assert_checkequal(info, 3); +[ind, occ, info] = dsearch(["K", "M", "a", "g", "E", "b", "I"], ["E", "K", "O", "T"], "d"); +assert_checkequal(ind, [2 0 0 0 1 0 0]); +assert_checkequal(occ, [1 1 0 0]); +assert_checkequal(info, 5); +[ind, occ, info] = dsearch(["K", "M", "a", "g", "E", "b", "I"], ["E", "K", "O", "T"]); +assert_checkequal(ind, [1 2 0 0 1 0 1]); +assert_checkequal(occ, [3 1 0]); +assert_checkequal(info, 3); +// Hypermatrices +I_hm(:,:,1) = I; +I_hm(:,:,2) = I; +indref_d(:,:,2) = indref_d; +indref_c(:,:,2) = indref_c; +[ind, occ, info] = dsearch(I_hm, [3 4 7 10], "d"); +assert_checkequal(ind, indref_d); +assert_checkequal(occ, 2*occref_d); +assert_checkequal(info, 2*inforef_d); +[ind, occ, info] = dsearch(I_hm, [3 4 7 10], "c"); +assert_checkequal(ind, indref_c); +assert_checkequal(occ, 2*occref_c); +assert_checkequal(info, 2*inforef_c); +[ind, occ, info] = dsearch(I_hm, [3 4 7 10]); +assert_checkequal(ind, indref_c); +assert_checkequal(occ, 2*occref_c); +assert_checkequal(info, 2*inforef_c); diff --git a/modules/overloading/tests/nonreg_tests/bug_6305.tst b/modules/overloading/tests/nonreg_tests/bug_6305.tst new file mode 100755 index 000000000..7c18551d2 --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_6305.tst @@ -0,0 +1,72 @@ +// ============================================================================= +// 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. +// ============================================================================= + + +// <-- Non-regression test for bug 6305 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=6305 +// +// <-- Short Description --> +// dsearch does not work with integers, hypermatrices and strings + +indref_d = [1,0, 0, 2; 2, 0, 0, 0; 0, 0, 2, 0; 4, 3, 0, 0]; +occref_d = [1, 3, 1, 1]; +inforef_d = 10; +indref_c = [1, 2, 2, 1; 1, 0, 0, 0; 0, 0, 1, 0; 3, 2, 3, 3]; +occref_c = [4, 3, 3]; +inforef_c = 6; +I = [3, 5, 6, 4; 4, 1, 2, 11; 1, 11, 4, 0; 10, 7, 9 9]; + +// Integers +I_int8 = int8(I); +[ind, occ, info] = dsearch(I_int8, int8([3 4 7 10]),"d"); +assert_checkequal(ind, indref_d); +assert_checkequal(occ, occref_d); +assert_checkequal(info, inforef_d); +[ind, occ, info] = dsearch(I_int8, int8([3 4 7 10]), "c"); +assert_checkequal(ind, indref_c); +assert_checkequal(occ, occref_c); +assert_checkequal(info, inforef_c); +[ind, occ, info] = dsearch(I_int8, int8([3 4 7 10])); +assert_checkequal(ind, indref_c); +assert_checkequal(occ, occref_c); +assert_checkequal(info, inforef_c); + +// Strings +[ind, occ, info] = dsearch(["K", "M", "a", "g", "E", "b", "I"], ["E", "K", "O", "T"], "c"); +assert_checkequal(ind, [1 2 0 0 1 0 1]); +assert_checkequal(occ, [3 1 0]); +assert_checkequal(info, 3); + +[ind, occ, info] = dsearch(["K", "M", "a", "g", "E", "b", "I"], ["E", "K", "O", "T"], "d"); +assert_checkequal(ind, [2 0 0 0 1 0 0]); +assert_checkequal(occ, [1 1 0 0]); +assert_checkequal(info, 5); + +[ind, occ, info] = dsearch(["K", "M", "a", "g", "E", "b", "I"], ["E", "K", "O", "T"]); +assert_checkequal(ind, [1 2 0 0 1 0 1]); +assert_checkequal(occ, [3 1 0]); +assert_checkequal(info, 3); + +// Hypermatrices +I_hm(:,:,1) = I; +I_hm(:,:,2) = I; +indref_d(:,:,2) = indref_d; +indref_c(:,:,2) = indref_c; +[ind, occ, info] = dsearch(I_hm, [3 4 7 10], "d"); +assert_checkequal(ind, indref_d); +assert_checkequal(occ, 2*occref_d); +assert_checkequal(info, 2*inforef_d); +[ind, occ, info] = dsearch(I_hm, [3 4 7 10], "c"); +assert_checkequal(ind, indref_c); +assert_checkequal(occ, 2*occref_c); +assert_checkequal(info, 2*inforef_c); +[ind, occ, info] = dsearch(I_hm, [3 4 7 10]); +assert_checkequal(ind, indref_c); +assert_checkequal(occ, 2*occref_c); +assert_checkequal(info, 2*inforef_c); diff --git a/modules/overloading/tests/nonreg_tests/bug_6698.dia.ref b/modules/overloading/tests/nonreg_tests/bug_6698.dia.ref new file mode 100755 index 000000000..a5552b1d3 --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_6698.dia.ref @@ -0,0 +1,16 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 20010 - INRIA - Serge Steer +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// <-- Non-regression test for bug 6698 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id= 6698 +// +// <-- Short Description --> +// isreal does not work on hypermatrix +A = ones(2,2,2); +if or(~isreal(A)) then bugmes();quit;end +if or(~isreal(A,0)) then bugmes();quit;end diff --git a/modules/overloading/tests/nonreg_tests/bug_6698.tst b/modules/overloading/tests/nonreg_tests/bug_6698.tst new file mode 100755 index 000000000..2efe05bc9 --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_6698.tst @@ -0,0 +1,17 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 20010 - INRIA - Serge Steer +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +// <-- Non-regression test for bug 6698 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id= 6698 +// +// <-- Short Description --> +// isreal does not work on hypermatrix +A = ones(2,2,2); +if or(~isreal(A)) then pause,end +if or(~isreal(A,0)) then pause,end diff --git a/modules/overloading/tests/nonreg_tests/bug_6832.dia.ref b/modules/overloading/tests/nonreg_tests/bug_6832.dia.ref new file mode 100755 index 000000000..839e01bdb --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_6832.dia.ref @@ -0,0 +1,24 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2013 - Scilab Enterprises - Paul Bignier +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- Non-regression test for bug 6832 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=6832 +// +// <-- Short Description --> +// Matrices of rationals can now be transposed via the " .' " operator. +num = (%z-%i).^grand(2, 4, "uin", 0, 2); +den = (%z+%i).^grand(2, 4, "uin", 0, 2); +R = num ./ den; +refR = ones(4, 2); +// Manually transposing R +for i=1:4 + refR(i, 1) = R(1, i); + refR(i, 2) = R(2, i); +end +assert_checkequal(R.', refR); diff --git a/modules/overloading/tests/nonreg_tests/bug_6832.tst b/modules/overloading/tests/nonreg_tests/bug_6832.tst new file mode 100755 index 000000000..22846bdf0 --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_6832.tst @@ -0,0 +1,27 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2013 - Scilab Enterprises - Paul Bignier +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- Non-regression test for bug 6832 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=6832 +// +// <-- Short Description --> +// Matrices of rationals can now be transposed via the " .' " operator. + +num = (%z-%i).^grand(2, 4, "uin", 0, 2); +den = (%z+%i).^grand(2, 4, "uin", 0, 2); +R = num ./ den; +refR = ones(4, 2); + +// Manually transposing R +for i=1:4 + refR(i, 1) = R(1, i); + refR(i, 2) = R(2, i); +end + +assert_checkequal(R.', refR); diff --git a/modules/overloading/tests/nonreg_tests/bug_6990.dia.ref b/modules/overloading/tests/nonreg_tests/bug_6990.dia.ref new file mode 100755 index 000000000..bf5c17bf8 --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_6990.dia.ref @@ -0,0 +1,21 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 20010 - INRIA - Serge Steer +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// <-- Non-regression test for bug 6990 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id= 6990 +// +// <-- Short Description --> +// and and or does not work on hypermatrix +A=matrix([%f;%t;%f;%f;%t;%t;%t;%t;%t;%f;%t;%t;%t;%f;%t;%t;%t;%t;%t;%t;%f;%f;%t;%t],2,3,4); +if or(and(A,1)<>matrix([%f;%f;%t;%t;%f;%t;%f;%t;%t;%t;%f;%t],1,3,4)) then bugmes();quit;end +if or(and(A,2)<>matrix([%f;%f;%t;%f;%t;%f;%f;%f],2,1,4)) then bugmes();quit;end +if or(and(A,3)<>[%f,%f,%t;%f,%f,%t]) then bugmes();quit;end +B=matrix([%f;%t;%f;%f;%f;%t;%t;%t;%f;%f;%t;%t;%t;%f;%f;%t;%t;%t;%f;%t;%f;%f;%f;%t],2,3,4); +if or(or(B,1)<>matrix([%t;%f;%t;%t;%f;%t;%t;%t;%t;%t;%f;%t],1,3,4)) then bugmes();quit;end +if or(or(B,2)<>matrix([%f;%t;%t;%t;%t;%t;%f;%t],2,1,4)) then bugmes();quit;end +if or(or(B,3)<>[%t,%f,%t;%t,%t,%t]) then bugmes();quit;end diff --git a/modules/overloading/tests/nonreg_tests/bug_6990.tst b/modules/overloading/tests/nonreg_tests/bug_6990.tst new file mode 100755 index 000000000..4b60330d2 --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_6990.tst @@ -0,0 +1,25 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2010 - INRIA - Serge Steer +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +// <-- Non-regression test for bug 6990 --> +// <-- CLI SHELL MODE --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id= 6990 +// +// <-- Short Description --> +// "and" and "or" does not work on hypermatrices +A=matrix([%f;%t;%f;%f;%t;%t;%t;%t;%t;%f;%t;%t;%t;%f;%t;%t;%t;%t;%t;%t;%f;%f;%t;%t],2,3,4); +if or(and(A,1)<>matrix([%f;%f;%t;%t;%f;%t;%f;%t;%t;%t;%f;%t],1,3,4)) then pause,end +if or(and(A,2)<>matrix([%f;%f;%t;%f;%t;%f;%f;%f],2,1,4)) then pause,end +if or(and(A,3)<>[%f,%f,%t;%f,%f,%t]) then pause,end + + +B=matrix([%f;%t;%f;%f;%f;%t;%t;%t;%f;%f;%t;%t;%t;%f;%f;%t;%t;%t;%f;%t;%f;%f;%f;%t],2,3,4); +if or(or(B,1)<>matrix([%t;%f;%t;%t;%f;%t;%t;%t;%t;%t;%f;%t],1,3,4)) then pause,end +if or(or(B,2)<>matrix([%f;%t;%t;%t;%t;%t;%f;%t],2,1,4)) then pause,end +if or(or(B,3)<>[%t,%f,%t;%t,%t,%t]) then pause,end diff --git a/modules/overloading/tests/nonreg_tests/bug_7042.dia.ref b/modules/overloading/tests/nonreg_tests/bug_7042.dia.ref new file mode 100755 index 000000000..1c21b1404 --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_7042.dia.ref @@ -0,0 +1,39 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2010 - INRIA - Serge Steer <serge.steer@inria.fr> +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- Non-regression test for bug 7042 --> +// +// <-- CLI SHELL MODE --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id= 7042 +// +// <-- Short Description --> +// insertion of an empty matrix into a struct (to remove a row or column) +// is buggy when multiple index is used +d11=struct('day',25,'month' ,'DEC','year',2006); +d12=struct('day',2,'month' ,'DEC','year',2006); +d21=struct('day',8,'month' ,'Feb','year',2010); +d22=struct('day',12,'month' ,'Feb','year',2010); +d=[d11 d12;d21 d22]; +dd=d; +dd(1,:)=[]; +if or(dd<>d(2,:)) then bugmes();quit;end +dd=d; +dd(:,2)=[]; +if or(dd<>d(:,1)) then bugmes();quit;end +dd=d; +dd(:,:)=[]; +if or(size(dd)<>0) then bugmes();quit;end +dd=d; +dd(1)=[]; +if or(dd<>d(2:4)) then bugmes();quit;end +dd=d; +dd(1,1,3)=d11; +dd(:,:,3)=[]; +if or(size(dd)<>[2 2 2]) then bugmes();quit;end +if or(dd(:,:,1)<>d) then bugmes();quit;end diff --git a/modules/overloading/tests/nonreg_tests/bug_7042.tst b/modules/overloading/tests/nonreg_tests/bug_7042.tst new file mode 100755 index 000000000..b854268e8 --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_7042.tst @@ -0,0 +1,45 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2010 - INRIA - Serge Steer <serge.steer@inria.fr> +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- Non-regression test for bug 7042 --> +// +// <-- CLI SHELL MODE --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id= 7042 +// +// <-- Short Description --> +// insertion of an empty matrix into a struct (to remove a row or column) +// is buggy when multiple index is used +d11=struct('day',25,'month' ,'DEC','year',2006); +d12=struct('day',2,'month' ,'DEC','year',2006); +d21=struct('day',8,'month' ,'Feb','year',2010); +d22=struct('day',12,'month' ,'Feb','year',2010); + +d=[d11 d12;d21 d22]; + +dd=d; +dd(1,:)=[]; +if or(dd<>d(2,:)) then pause,end + +dd=d; +dd(:,2)=[]; +if or(dd<>d(:,1)) then pause,end + +dd=d; +dd(:,:)=[]; +if or(size(dd)<>0) then pause,end + +dd=d; +dd(1)=[]; +if or(dd<>d(2:4)) then pause,end + +dd=d; +dd(1,1,3)=d11; +dd(:,:,3)=[]; +if or(size(dd)<>[2 2 2]) then pause,end +if or(dd(:,:,1)<>d) then pause,end diff --git a/modules/overloading/tests/nonreg_tests/bug_7244.dia.ref b/modules/overloading/tests/nonreg_tests/bug_7244.dia.ref new file mode 100755 index 000000000..9d1677dfe --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_7244.dia.ref @@ -0,0 +1,25 @@ +// ============================================================================= +// 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 7244 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=7244 +// +// <-- Short Description --> +// Extraction from a struct array with a boolean vector had a strange behavior. +foo(1).bar = 1; +foo(2).bar = 2; +foo(3).bar = 3; // 3x1 struct array with field: bar. +foo = foo([%T %F %T]); // 2x1 struct array with field: bar. +assert_checkequal(type(foo), 17); +foo(3).bar = 2; +assert_checkequal(foo.bar(1), 1); +assert_checkequal(foo.bar(2), 3); +assert_checkequal(foo.bar(3), 2); diff --git a/modules/overloading/tests/nonreg_tests/bug_7244.tst b/modules/overloading/tests/nonreg_tests/bug_7244.tst new file mode 100755 index 000000000..4c7bb52eb --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_7244.tst @@ -0,0 +1,27 @@ +// ============================================================================= +// 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 7244 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=7244 +// +// <-- Short Description --> +// Extraction from a struct array with a boolean vector had a strange behavior. + +foo(1).bar = 1; +foo(2).bar = 2; +foo(3).bar = 3; // 3x1 struct array with field: bar. +foo = foo([%T %F %T]); // 2x1 struct array with field: bar. +assert_checkequal(type(foo), 17); + +foo(3).bar = 2; +assert_checkequal(foo.bar(1), 1); +assert_checkequal(foo.bar(2), 3); +assert_checkequal(foo.bar(3), 2); diff --git a/modules/overloading/tests/nonreg_tests/bug_7714.dia.ref b/modules/overloading/tests/nonreg_tests/bug_7714.dia.ref new file mode 100755 index 000000000..c62034a54 --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_7714.dia.ref @@ -0,0 +1,21 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2010 - INRIA - Serge Steer <serge.steer@inria.fr> +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- Non-regression test for bug 7714 --> +// +// <-- CLI SHELL MODE --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id= 7714 +// +// <-- Short Description --> +// diag, triu, tril applyed to rational matrices may change the formal variable name +h=[1/%s,1/%s;1/%s,1]; +if or(triu(h)<>[1/%s,1/%s;0,1]) then bugmes();quit;end +if or(tril(h)<>[1/%s,0;1/%s,1]) then bugmes();quit;end +if or(diag(h)<>[1/%s;1]) then bugmes();quit;end +if or(diag([1/%s;1])<>[1/%s,0;0,1]) then bugmes();quit;end diff --git a/modules/overloading/tests/nonreg_tests/bug_7714.tst b/modules/overloading/tests/nonreg_tests/bug_7714.tst new file mode 100755 index 000000000..1ca6613d3 --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_7714.tst @@ -0,0 +1,24 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2010 - INRIA - Serge Steer <serge.steer@inria.fr> +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- Non-regression test for bug 7714 --> +// +// <-- CLI SHELL MODE --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id= 7714 +// +// <-- Short Description --> +// diag, triu, tril applyed to rational matrices may change the formal variable name + + +h=[1/%s,1/%s;1/%s,1]; + +if or(triu(h)<>[1/%s,1/%s;0,1]) then pause,end +if or(tril(h)<>[1/%s,0;1/%s,1]) then pause,end +if or(diag(h)<>[1/%s;1]) then pause,end +if or(diag([1/%s;1])<>[1/%s,0;0,1]) then pause,end diff --git a/modules/overloading/tests/nonreg_tests/bug_7900.dia.ref b/modules/overloading/tests/nonreg_tests/bug_7900.dia.ref new file mode 100755 index 000000000..1057ccddb --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_7900.dia.ref @@ -0,0 +1,16 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2010 - INRIA - Serge Steer +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// <-- Non-regression test for bug 7900 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=7900 +// +// <-- Short Description --> +// inserting a rational in a rational hymermatrix may generate invalid rationals entries (with zero denominators) +H(1,1,2)=1/%s; +H(2,1,2)=1/%s; +if or(H.den(:)==0) then bugmes();quit;end diff --git a/modules/overloading/tests/nonreg_tests/bug_7900.tst b/modules/overloading/tests/nonreg_tests/bug_7900.tst new file mode 100755 index 000000000..256bc5004 --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_7900.tst @@ -0,0 +1,18 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2010 - INRIA - Serge Steer +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +// <-- Non-regression test for bug 7900 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=7900 +// +// <-- Short Description --> +// inserting a rational in a rational hymermatrix may generate invalid rationals entries (with zero denominators) + +H(1,1,2)=1/%s; +H(2,1,2)=1/%s; +if or(H.den(:)==0) then pause,end diff --git a/modules/overloading/tests/nonreg_tests/bug_8098.dia.ref b/modules/overloading/tests/nonreg_tests/bug_8098.dia.ref new file mode 100755 index 000000000..84f82b81e --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_8098.dia.ref @@ -0,0 +1,47 @@ +// ============================================================================= +// 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 8098 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=8098 +// +// <-- Short Description --> +// cumsum() did not apply to rational matrices. +// ============================================================================= +s = poly(0, "s"); +r = [1/s 1/s; 1/s^2 1]; +assert_checkequal(cumsum(r), [1 1+2*s;1+s 1+2*s+s^2]./[s s^2;s^2 s^2]); +assert_checkequal(cumsum(r,"*"), [1 1+2*s;1+s 1+2*s+s^2]./[s s^2;s^2 s^2]); +assert_checkequal(cumsum(r, 1), [1 1;1+s 1+s]./[s s;s^2 s]); +assert_checkequal(cumsum(r, 2), [1 2;1 1+s^2]./[s s;s^2 s^2]); +assert_checkequal(cumsum(r, "r"), [1 1;1+s 1+s]./[s s;s^2 s]); +assert_checkequal(cumsum(r, "c"), [1 2;1 1+s^2]./[s s;s^2 s^2]); +assert_checkequal(cumsum(r, "m"), [1 1;1+s 1+s]./[s s;s^2 s]); +assert_checkequal(cumsum(r,"native"), [1 1+2*s;1+s 1+2*s+s^2]./[s s^2;s^2 s^2]); +assert_checkequal(cumsum(r,"double"), [1 1+2*s;1+s 1+2*s+s^2]./[s s^2;s^2 s^2]); +assert_checkequal(cumsum(r,"*", "native"), [1 1+2*s;1+s 1+2*s+s^2]./[s s^2;s^2 s^2]); +assert_checkequal(cumsum(r, 1, "native"), [1 1;1+s 1+s]./[s s;s^2 s]); +assert_checkequal(cumsum(r, 2, "native"), [1 2;1 1+s^2]./[s s;s^2 s^2]); +assert_checkequal(cumsum(r, "r", "native"), [1 1;1+s 1+s]./[s s;s^2 s]); +assert_checkequal(cumsum(r, "c", "native"), [1 2;1 1+s^2]./[s s;s^2 s^2]); +assert_checkequal(cumsum(r, "m", "native"), [1 1;1+s 1+s]./[s s;s^2 s]); +assert_checkequal(cumsum(r,"*", "double"), [1 1+2*s;1+s 1+2*s+s^2]./[s s^2;s^2 s^2]); +assert_checkequal(cumsum(r, 1, "double"), [1 1;1+s 1+s]./[s s;s^2 s]); +assert_checkequal(cumsum(r, 2, "double"), [1 2;1 1+s^2]./[s s;s^2 s^2]); +assert_checkequal(cumsum(r, "r", "double"), [1 1;1+s 1+s]./[s s;s^2 s]); +assert_checkequal(cumsum(r, "c", "double"), [1 2;1 1+s^2]./[s s;s^2 s^2]); +assert_checkequal(cumsum(r, "m", "double"), [1 1;1+s 1+s]./[s s;s^2 s]); +// Check error +assert_checkfalse(execstr("cumsum(r, ""toto"")" ,"errcatch") == 0); +refMsg = msprintf(_("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"),.. + "cumsum",2,"""*"",""r"",""c"",""m"""); +assert_checkerror("cumsum(r, ""toto"")", refMsg); +a = cumsum([1/%z %z/(1+2*%z)]); +assert_checkequal(a, [1/%z (1+2*%z+%z^2)/(%z+2*%z^2)]); +a = cumsum([1/%z %z/(1+2*%z)]'); +assert_checkequal(a, [1/%z (1+2*%z+%z^2)/(%z+2*%z^2)]'); diff --git a/modules/overloading/tests/nonreg_tests/bug_8098.tst b/modules/overloading/tests/nonreg_tests/bug_8098.tst new file mode 100755 index 000000000..b33d09d07 --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_8098.tst @@ -0,0 +1,54 @@ +// ============================================================================= +// 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 8098 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=8098 +// +// <-- Short Description --> +// cumsum() did not apply to rational matrices. +// ============================================================================= + +s = poly(0, "s"); +r = [1/s 1/s; 1/s^2 1]; + +assert_checkequal(cumsum(r), [1 1+2*s;1+s 1+2*s+s^2]./[s s^2;s^2 s^2]); +assert_checkequal(cumsum(r,"*"), [1 1+2*s;1+s 1+2*s+s^2]./[s s^2;s^2 s^2]); +assert_checkequal(cumsum(r, 1), [1 1;1+s 1+s]./[s s;s^2 s]); +assert_checkequal(cumsum(r, 2), [1 2;1 1+s^2]./[s s;s^2 s^2]); +assert_checkequal(cumsum(r, "r"), [1 1;1+s 1+s]./[s s;s^2 s]); +assert_checkequal(cumsum(r, "c"), [1 2;1 1+s^2]./[s s;s^2 s^2]); +assert_checkequal(cumsum(r, "m"), [1 1;1+s 1+s]./[s s;s^2 s]); +assert_checkequal(cumsum(r,"native"), [1 1+2*s;1+s 1+2*s+s^2]./[s s^2;s^2 s^2]); +assert_checkequal(cumsum(r,"double"), [1 1+2*s;1+s 1+2*s+s^2]./[s s^2;s^2 s^2]); +assert_checkequal(cumsum(r,"*", "native"), [1 1+2*s;1+s 1+2*s+s^2]./[s s^2;s^2 s^2]); +assert_checkequal(cumsum(r, 1, "native"), [1 1;1+s 1+s]./[s s;s^2 s]); +assert_checkequal(cumsum(r, 2, "native"), [1 2;1 1+s^2]./[s s;s^2 s^2]); +assert_checkequal(cumsum(r, "r", "native"), [1 1;1+s 1+s]./[s s;s^2 s]); +assert_checkequal(cumsum(r, "c", "native"), [1 2;1 1+s^2]./[s s;s^2 s^2]); +assert_checkequal(cumsum(r, "m", "native"), [1 1;1+s 1+s]./[s s;s^2 s]); +assert_checkequal(cumsum(r,"*", "double"), [1 1+2*s;1+s 1+2*s+s^2]./[s s^2;s^2 s^2]); +assert_checkequal(cumsum(r, 1, "double"), [1 1;1+s 1+s]./[s s;s^2 s]); +assert_checkequal(cumsum(r, 2, "double"), [1 2;1 1+s^2]./[s s;s^2 s^2]); +assert_checkequal(cumsum(r, "r", "double"), [1 1;1+s 1+s]./[s s;s^2 s]); +assert_checkequal(cumsum(r, "c", "double"), [1 2;1 1+s^2]./[s s;s^2 s^2]); +assert_checkequal(cumsum(r, "m", "double"), [1 1;1+s 1+s]./[s s;s^2 s]); + +// Check error +assert_checkfalse(execstr("cumsum(r, ""toto"")" ,"errcatch") == 0); +refMsg = msprintf(_("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"),.. + "cumsum",2,"""*"",""r"",""c"",""m"""); +assert_checkerror("cumsum(r, ""toto"")", refMsg); + +a = cumsum([1/%z %z/(1+2*%z)]); +assert_checkequal(a, [1/%z (1+2*%z+%z^2)/(%z+2*%z^2)]); + +a = cumsum([1/%z %z/(1+2*%z)]'); +assert_checkequal(a, [1/%z (1+2*%z+%z^2)/(%z+2*%z^2)]'); diff --git a/modules/overloading/tests/nonreg_tests/bug_8607.dia.ref b/modules/overloading/tests/nonreg_tests/bug_8607.dia.ref new file mode 100755 index 000000000..bf82dab3c --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_8607.dia.ref @@ -0,0 +1,32 @@ +// ============================================================================= +// 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. +// ============================================================================= +// <-- Non-regression test for bug 8607 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=8607 +// +// <-- Short Description --> +// Some error messages in modules/overloading/macros are not standard and not localized +b=cell(3,1); +errmsg1=msprintf(_("%s: Wrong size for input argument #%d.\n"),"%ce_size",2); +assert_checkerror("size(b,3)", errmsg1); +A(:,:,2)=[1;1;1]; +B(:,:,2)=[1,1,1]; +errmsg2=msprintf(_("%s: Input argument #%d and input argument #%d have incompatible dimensions.\n"),"%hm_1_hm",1,2); +assert_checkerror("A<B", errmsg2); +s=poly(0,"s"); +P=[2*s+1;s]; +Q=[3*s+2,s,s]; +errmsg3=msprintf(_("%s: Wrong size for input arguments.\n"),"%p_v_p"); +assert_checkerror("P/.Q", errmsg3); +errmsg4=msprintf(_("%s: Wrong value for input argument #%d: %d or %s expected.\n"),"%r_norm",2,2,"inf"); +assert_checkerror("norm(P(1)/Q(1),1)", errmsg4); +errmsg5=msprintf(_("%s: Wrong type for input argument #%d: A scalar expected.\n"),"%s_1_hm",1); +assert_checkerror("[1 1]<A", errmsg5); +sys=tf2ss(P(1)/Q(1)); +errmsg6=msprintf(_("%s: Wrong value for input argument #%d: %d or %s expected.\n"),"%lss_norm",2,2,"inf"); +assert_checkerror("norm(sys,1)",errmsg6); diff --git a/modules/overloading/tests/nonreg_tests/bug_8607.tst b/modules/overloading/tests/nonreg_tests/bug_8607.tst new file mode 100755 index 000000000..747f2d41f --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_8607.tst @@ -0,0 +1,39 @@ +// ============================================================================= +// 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. +// ============================================================================= + +// <-- Non-regression test for bug 8607 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=8607 +// +// <-- Short Description --> +// Some error messages in modules/overloading/macros are not standard and not localized + +b=cell(3,1); +errmsg1=msprintf(_("%s: Wrong size for input argument #%d.\n"),"%ce_size",2); +assert_checkerror("size(b,3)", errmsg1); + +A(:,:,2)=[1;1;1]; +B(:,:,2)=[1,1,1]; +errmsg2=msprintf(_("%s: Input argument #%d and input argument #%d have incompatible dimensions.\n"),"%hm_1_hm",1,2); +assert_checkerror("A<B", errmsg2); + +s=poly(0,"s"); +P=[2*s+1;s]; +Q=[3*s+2,s,s]; +errmsg3=msprintf(_("%s: Wrong size for input arguments.\n"),"%p_v_p"); +assert_checkerror("P/.Q", errmsg3); + +errmsg4=msprintf(_("%s: Wrong value for input argument #%d: %d or %s expected.\n"),"%r_norm",2,2,"inf"); +assert_checkerror("norm(P(1)/Q(1),1)", errmsg4); + +errmsg5=msprintf(_("%s: Wrong type for input argument #%d: A scalar expected.\n"),"%s_1_hm",1); +assert_checkerror("[1 1]<A", errmsg5); + +sys=tf2ss(P(1)/Q(1)); +errmsg6=msprintf(_("%s: Wrong value for input argument #%d: %d or %s expected.\n"),"%lss_norm",2,2,"inf"); +assert_checkerror("norm(sys,1)",errmsg6); diff --git a/modules/overloading/tests/nonreg_tests/bug_8859.dia.ref b/modules/overloading/tests/nonreg_tests/bug_8859.dia.ref new file mode 100755 index 000000000..80ef91851 --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_8859.dia.ref @@ -0,0 +1,34 @@ +// ============================================================================= +// 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 --> +// +// <-- Non-regression test for bug 8859 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=8859 +// +// <-- Short Description --> +//Missing some comparison operators for hypermatrices compared to scalar +I=int32(ones(2,2,2)); +assert_checktrue(execstr("t=I<>int32(1)","errcatch")==0); +assert_checktrue(~or(t(:))); +B=ones(2,2,2)>3; +assert_checktrue(execstr("t=B==%t","errcatch")==0); +assert_checktrue(~or(t(:))); +assert_checktrue(execstr("t=B<>%t","errcatch")==0); +assert_checktrue(or(t(:))); +P=%s;P(2,2,2)=%s; +assert_checktrue(execstr("t=P==%s+1","errcatch")==0); +assert_checktrue(~or(t(:))); +assert_checktrue(execstr("t=P<>%s+1","errcatch")==0); +assert_checktrue(or(t(:))); +S=string(rand(2,2,2)); +assert_checktrue(execstr("t=S==''x''","errcatch")==0); +assert_checktrue(~or(t(:))); +assert_checktrue(execstr("t=S<>''x''","errcatch")==0); +assert_checktrue(or(t(:))); diff --git a/modules/overloading/tests/nonreg_tests/bug_8859.tst b/modules/overloading/tests/nonreg_tests/bug_8859.tst new file mode 100755 index 000000000..a7347e181 --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_8859.tst @@ -0,0 +1,47 @@ +// ============================================================================= +// 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 --> +// +// <-- Non-regression test for bug 8859 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=8859 +// +// <-- Short Description --> +//Missing some comparison operators for hypermatrices compared to scalar + +I=int32(ones(2,2,2)); +assert_checktrue(execstr("t=I<>int32(1)","errcatch")==0); +assert_checktrue(~or(t(:))); + + +B=ones(2,2,2)>3; +assert_checktrue(execstr("t=B==%t","errcatch")==0); +assert_checktrue(~or(t(:))); + +assert_checktrue(execstr("t=B<>%t","errcatch")==0); +assert_checktrue(or(t(:))); + +P=%s;P(2,2,2)=%s; +assert_checktrue(execstr("t=P==%s+1","errcatch")==0); +assert_checktrue(~or(t(:))); + + +assert_checktrue(execstr("t=P<>%s+1","errcatch")==0); +assert_checktrue(or(t(:))); + + +S=string(rand(2,2,2)); +assert_checktrue(execstr("t=S==''x''","errcatch")==0); +assert_checktrue(~or(t(:))); + + +assert_checktrue(execstr("t=S<>''x''","errcatch")==0); +assert_checktrue(or(t(:))); + + diff --git a/modules/overloading/tests/nonreg_tests/bug_9682.dia.ref b/modules/overloading/tests/nonreg_tests/bug_9682.dia.ref new file mode 100755 index 000000000..bb06198cd --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_9682.dia.ref @@ -0,0 +1,16 @@ +// ============================================================================= +// 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. +// ============================================================================= +// <-- Non-regression test for bug 9682 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=9682 +// +// <-- Short Description --> +// 3D assignment into a 2D array of int issued an error +i = uint8([1 10;254 9]); +if execstr("i(:,:,2)=uint8(1)","errcatch")<>0 then bugmes();quit;end; +if ~assert_checkequal(i(:,:,2),uint8([1 1;1 1])) then bugmes();quit;end; diff --git a/modules/overloading/tests/nonreg_tests/bug_9682.tst b/modules/overloading/tests/nonreg_tests/bug_9682.tst new file mode 100755 index 000000000..2f9b358e5 --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_9682.tst @@ -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. +// ============================================================================= + +// <-- Non-regression test for bug 9682 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=9682 +// +// <-- Short Description --> +// 3D assignment into a 2D array of int issued an error + + +i = uint8([1 10;254 9]); +if execstr("i(:,:,2)=uint8(1)","errcatch")<>0 then pause,end; +if ~assert_checkequal(i(:,:,2),uint8([1 1;1 1])) then pause,end; diff --git a/modules/overloading/tests/nonreg_tests/bug_9783.dia.ref b/modules/overloading/tests/nonreg_tests/bug_9783.dia.ref new file mode 100755 index 000000000..ba1ce5d49 --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_9783.dia.ref @@ -0,0 +1,67 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2014 - Scilab Enterprises - Charlotte HECQUET +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- Non-regression test for bug 9783 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=9783 +// +// <-- Short Description --> +// Insertion overloading does not seem to work with mlist +// create structure +function [q] = new(x) + q = mlist(['X','x'], x); +endfunction +// q2(I) = q1 +function [q2] = %X_i_X(I,q1,q2) + if (I == []) + return; + else + x2 = q2.x; + x1 = q1.x; + x2(I) = x1; + q2 = new(x2); + end +endfunction +q0 = new([]) + q0 = + + + q0(1) + +!X x ! + + q0(2) + + [] +q1 = new([91,93]) + q1 = + + + q1(1) + +!X x ! + + q1(2) + + 91. 93. +q2 = new([10,20,30,40]) + q2 = + + + q2(1) + +!X x ! + + q2(2) + + 10. 20. 30. 40. +q2([1,3]) = q1; +q2_ref = new([91 20 93 40]); +assert_checkequal(q2,q2_ref); +q2([]) = q0; +assert_checktrue(execstr("q2([])=q0","errcatch")==0); diff --git a/modules/overloading/tests/nonreg_tests/bug_9783.tst b/modules/overloading/tests/nonreg_tests/bug_9783.tst new file mode 100755 index 000000000..01fe6153f --- /dev/null +++ b/modules/overloading/tests/nonreg_tests/bug_9783.tst @@ -0,0 +1,43 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2014 - Scilab Enterprises - Charlotte HECQUET +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- Non-regression test for bug 9783 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=9783 +// +// <-- Short Description --> +// Insertion overloading does not seem to work with mlist + + +// create structure +function [q] = new(x) + q = mlist(['X','x'], x); +endfunction + +// q2(I) = q1 +function [q2] = %X_i_X(I,q1,q2) + if (I == []) + return; + else + x2 = q2.x; + x1 = q1.x; + x2(I) = x1; + q2 = new(x2); + end +endfunction + +q0 = new([]) +q1 = new([91,93]) +q2 = new([10,20,30,40]) + +q2([1,3]) = q1; +q2_ref = new([91 20 93 40]); +assert_checkequal(q2,q2_ref); + +q2([]) = q0; +assert_checktrue(execstr("q2([])=q0","errcatch")==0); diff --git a/modules/overloading/tests/unit_tests/c_a_c.dia.ref b/modules/overloading/tests/unit_tests/c_a_c.dia.ref new file mode 100755 index 000000000..cebe46a42 --- /dev/null +++ b/modules/overloading/tests/unit_tests/c_a_c.dia.ref @@ -0,0 +1,50 @@ +// ============================================================================= +// 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 --> +a = 'a'; +b = ['a';'b']; +c = a + b; +ref = ['aa';'ab']; +if or(c <> ref) then bugmes();quit;end +a = 'a'; +b = ['a','b']; +c = a + b; +ref = ['aa','ab']; +if or(c <> ref) then bugmes();quit;end +a = ['a';'b']; +b = 'a'; +c = a + b; +ref = ['aa';'ba']; +if or(c <> ref) then bugmes();quit;end +a = ['a','b']; +b = 'a'; +c = a + b; +ref = ['aa','ba']; +if or(c <> ref) then bugmes();quit;end +a = 'a'; +b = 'b'; +c = a + b; +ref = 'ab'; +if or(c <> ref) then bugmes();quit;end +a = ['a','b']; +b = ['c','d']; +c = a + b; +ref = ['ac','bd']; +if or(c <> ref) then bugmes();quit;end +a = ['a';'b']; +b = ['c';'d']; +c = a + b; +ref = ['ac';'bd']; +if or(c <> ref) then bugmes();quit;end +a = ['a';'b';'e']; +b = ['c';'d']; +ierr = execstr('c = a + b;','errcatch'); +if ierr <> 8 then bugmes();quit;end +a = ['a';'b']; +b = ['c';'d';'e']; +ierr = execstr('c = a + b;','errcatch'); +if ierr <> 8 then bugmes();quit;end diff --git a/modules/overloading/tests/unit_tests/c_a_c.tst b/modules/overloading/tests/unit_tests/c_a_c.tst new file mode 100755 index 000000000..3e8afe060 --- /dev/null +++ b/modules/overloading/tests/unit_tests/c_a_c.tst @@ -0,0 +1,60 @@ +// ============================================================================= +// 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 --> +a = 'a'; +b = ['a';'b']; +c = a + b; +ref = ['aa';'ab']; +if or(c <> ref) then pause,end + +a = 'a'; +b = ['a','b']; +c = a + b; +ref = ['aa','ab']; +if or(c <> ref) then pause,end + +a = ['a';'b']; +b = 'a'; +c = a + b; +ref = ['aa';'ba']; +if or(c <> ref) then pause,end + +a = ['a','b']; +b = 'a'; +c = a + b; +ref = ['aa','ba']; +if or(c <> ref) then pause,end + +a = 'a'; +b = 'b'; +c = a + b; +ref = 'ab'; +if or(c <> ref) then pause,end + +a = ['a','b']; +b = ['c','d']; +c = a + b; +ref = ['ac','bd']; +if or(c <> ref) then pause,end + +a = ['a';'b']; +b = ['c';'d']; +c = a + b; +ref = ['ac';'bd']; +if or(c <> ref) then pause,end + +a = ['a';'b';'e']; +b = ['c';'d']; +ierr = execstr('c = a + b;','errcatch'); +if ierr <> 8 then pause,end + +a = ['a';'b']; +b = ['c';'d';'e']; +ierr = execstr('c = a + b;','errcatch'); +if ierr <> 8 then pause,end + diff --git a/modules/overloading/tests/unit_tests/overloadingName.dia.ref b/modules/overloading/tests/unit_tests/overloadingName.dia.ref new file mode 100755 index 000000000..c4d9bbe58 --- /dev/null +++ b/modules/overloading/tests/unit_tests/overloadingName.dia.ref @@ -0,0 +1,289 @@ +// +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2010-2010 - DIGITEO - Bruno JOFRET +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +// +// +// <-- CLI SHELL MODE --> +// <-- ENGLISH IMPOSED --> +// +// This test is to check how overloading names are +// built then called. +// use mlist to define unknown type function. +// +// This test is base on the diary output. +// +overloadingNames = [ + "%unknown_p" // Display + "%unknown_e" // Extraction + "%unknown_i_unknown" // Insertion + "%unknown_t" // transpose + "%unknown_0" + "%unknown_a_unknown" // addition + "%unknown_s_unknown" // subtraction + "%unknown_m_unknown" // mutiplication + "%unknown_x_unknown" + "%unknown_k_unknown" + "%unknown_u_unknown" + "%unknown_r_unknown" // division + "%unknown_d_unknown" + "%unknown_y_unknown" + "%unknown_v_unknown" + "%unknown_l_unknown" // right left division + "%unknown_q_unknown" + "%unknown_z_unknown" + "%unknown_w_unknown" + "%unknown_p_unknown" // power + "%unknown_j_unknown" + "%unknown_c_unknown" // column concat + "%unknown_f_unknown" // row concat + "%unknown_b_unknown" // implicit list + "%unknown_o_unknown" // equal + "%unknown_n_unknown" // different + "%unknown_g_unknown" // or + "%unknown_h_unknown" // and + "%unknown_1_unknown" // < + "%unknown_2_unknown" // > + "%unknown_3_unknown" // <= + "%unknown_4_unknown" // >= + "%unknown_5" // not +]; +// Generate all overloading functions... +for name = overloadingNames + execstr("function r="+name+"(varargin); " + ... + "disp(""Calling "+name+"...""); " + ... + "r = []; " + ... + "endfunction"); +end +M = mlist("unknown"); +if typeof(M) <> "unknown" then bugmes();quit;end +M + M = + + + Calling %unknown_p... +M(1) + + Calling %unknown_e... + ans = + + [] +M(1,2) + + Calling %unknown_e... + ans = + + [] +N = M + N = + + + Calling %unknown_p... +N(2) = M + + Calling %unknown_i_unknown... + N = + + [] +M' + + Calling %unknown_t... + ans = + + [] +M.' + + Calling %unknown_0... + ans = + + [] +M + M + + Calling %unknown_a_unknown... + ans = + + [] +M - M + + Calling %unknown_s_unknown... + ans = + + [] +M * M + + Calling %unknown_m_unknown... + ans = + + [] +M .* M + + Calling %unknown_x_unknown... + ans = + + [] +M *. M + + Calling %unknown_u_unknown... + ans = + + [] +M .*. M + + Calling %unknown_k_unknown... + ans = + + [] +M / M + + Calling %unknown_r_unknown... + ans = + + [] +M ./ M + + Calling %unknown_d_unknown... + ans = + + [] +M /. M + + Calling %unknown_v_unknown... + ans = + + [] +M ./. M + + Calling %unknown_y_unknown... + ans = + + [] +M \ M + + Calling %unknown_l_unknown... + ans = + + [] +M .\ M + + Calling %unknown_q_unknown... + ans = + + [] +M \. M + + Calling %unknown_w_unknown... + ans = + + [] +M .\. M + + Calling %unknown_z_unknown... + ans = + + [] +M ^ M + + Calling %unknown_p_unknown... + ans = + + [] +M ** M + + Calling %unknown_p_unknown... + ans = + + [] +M .^ M + + Calling %unknown_j_unknown... + ans = + + [] +// M .** M <-- This do not exists in scilab ... Wired ... +M:M + + Calling %unknown_b_unknown... + ans = + + [] +M == M + + Calling %unknown_o_unknown... + ans = + + [] +M <> M + + Calling %unknown_n_unknown... + ans = + + [] +M ~= M + + Calling %unknown_n_unknown... + ans = + + [] +M @= M + + Calling %unknown_n_unknown... + ans = + + [] +M < M + + Calling %unknown_1_unknown... + ans = + + [] +M > M + + Calling %unknown_2_unknown... + ans = + + [] +M <= M + + Calling %unknown_3_unknown... + ans = + + [] +M >= M + + Calling %unknown_4_unknown... + ans = + + [] +M | M + + Calling %unknown_g_unknown... + ans = + + [] +M & M + + Calling %unknown_h_unknown... + ans = + + [] +~M + + Calling %unknown_5... + ans = + + [] +@M + + Calling %unknown_5... + ans = + + [] +// Clear all added functions +for name = overloadingNames + execstr("clear "+name); +end diff --git a/modules/overloading/tests/unit_tests/overloadingName.tst b/modules/overloading/tests/unit_tests/overloadingName.tst new file mode 100755 index 000000000..9a9945543 --- /dev/null +++ b/modules/overloading/tests/unit_tests/overloadingName.tst @@ -0,0 +1,134 @@ +// +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2010-2010 - DIGITEO - Bruno JOFRET +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +// +// + +// <-- CLI SHELL MODE --> + +// <-- ENGLISH IMPOSED --> + +// +// This test is to check how overloading names are +// built then called. +// use mlist to define unknown type function. +// +// This test is base on the diary output. +// + +overloadingNames = [ + "%unknown_p" // Display + "%unknown_e" // Extraction + "%unknown_i_unknown" // Insertion + "%unknown_t" // transpose + "%unknown_0" + "%unknown_a_unknown" // addition + "%unknown_s_unknown" // subtraction + "%unknown_m_unknown" // mutiplication + "%unknown_x_unknown" + "%unknown_k_unknown" + "%unknown_u_unknown" + "%unknown_r_unknown" // division + "%unknown_d_unknown" + "%unknown_y_unknown" + "%unknown_v_unknown" + "%unknown_l_unknown" // right left division + "%unknown_q_unknown" + "%unknown_z_unknown" + "%unknown_w_unknown" + "%unknown_p_unknown" // power + "%unknown_j_unknown" + "%unknown_c_unknown" // column concat + "%unknown_f_unknown" // row concat + "%unknown_b_unknown" // implicit list + "%unknown_o_unknown" // equal + "%unknown_n_unknown" // different + "%unknown_g_unknown" // or + "%unknown_h_unknown" // and + "%unknown_1_unknown" // < + "%unknown_2_unknown" // > + "%unknown_3_unknown" // <= + "%unknown_4_unknown" // >= + "%unknown_5" // not +]; + + +// Generate all overloading functions... + +for name = overloadingNames + execstr("function r="+name+"(varargin); " + ... + "disp(""Calling "+name+"...""); " + ... + "r = []; " + ... + "endfunction"); +end + + +M = mlist("unknown"); + +if typeof(M) <> "unknown" then pause,end + +M + +M(1) +M(1,2) + +N = M +N(2) = M + +M' +M.' + +M + M + +M - M + +M * M +M .* M +M *. M +M .*. M + +M / M +M ./ M +M /. M +M ./. M + +M \ M +M .\ M +M \. M +M .\. M + +M ^ M +M ** M +M .^ M +// M .** M <-- This does not exists in Scilab ... Wired ... + +M:M + +M == M + +M <> M +M ~= M +M @= M + +M < M +M > M + +M <= M +M >= M + +M | M +M & M + +~M +@M + +// Clear all added functions +for name = overloadingNames + execstr("clear "+name); +end diff --git a/modules/overloading/tests/unit_tests/rational.dia.ref b/modules/overloading/tests/unit_tests/rational.dia.ref new file mode 100755 index 000000000..a703a7aca --- /dev/null +++ b/modules/overloading/tests/unit_tests/rational.dia.ref @@ -0,0 +1,341 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2009 - DIGITEO +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// <-- CLI SHELL MODE --> +s=poly(0,'s'); +z = s^0; +h=1/(2*s); +assert_checkequal(size(h), [1 1]); +assert_checkequal(h.num, 1*z); +assert_checkequal(h.den, 2*s); +//basic operations with 2D matrices +H=[h h]; +assert_checkequal(H.num, [1 1].*z); +assert_checkequal(H.den, [2*s 2*s]); +H=[h;h]; +assert_checkequal(H.num, [1;1].*z); +assert_checkequal(H.den, [2*s;2*s]); +H=[h 3]; +assert_checkequal(H.num, [1*z 3]); +assert_checkequal(H.den, [2*s 1]); +H=[h;5]; +assert_checkequal(H.num, [1*z;5]); +assert_checkequal(H.den, [2*s;1]); +H=[3 h]; +assert_checkequal(H.num, [3 1*z]); +assert_checkequal(H.den, [1 2*s]); +H=[5;h]; +assert_checkequal(H.num, [5;1*z]); +assert_checkequal(H.den, [1;2*s]); +H=[3 h;s 2]; +assert_checkequal(H(1,1), rlist(3,1)); +assert_checkequal(H(1,2), h); +assert_checkequal(H(1, [2 1]), [h rlist(3,1)]); +assert_checkequal(H(1, [2 2]), [h h]); +assert_checkequal(H(1,:), [rlist(3,1) h]); +assert_checkequal(H(:,1), [rlist(3,1); s]); +assert_checkequal(H([2 1], :), [s rlist(2,1);rlist(3,1) h]); +assert_checkequal(H([1 1], :), [rlist(3,1) h;rlist(3,1) h]); +assert_checkequal(matrix(H, -1, 1), [3*z;s;h;2*z]); +H=h;H(1,3)=1/s; +assert_checkequal(H.num, [1 0 1].*z); +assert_checkequal(H.den, [2*s 1 s]); +H=h;H(3,1)=1/s; +assert_checkequal(H.num, [1 0 1]'.*z); +assert_checkequal(H.den, [2*s 1 s]'); +H=h;H(1,3)=1.5; +assert_checkequal(H.num, [1 0 1.5].*z); +assert_checkequal(H.den, [2*s 1 1]); +H=h;H(3,1)=1.5; +assert_checkequal(H.num, [1 0 1.5]'.*z); +assert_checkequal(H.den, [2*s 1 1]'); +H=1.5;H(1,3)=1/s; +assert_checkequal(H.num, [1.5 0 1].*z); +assert_checkequal(H.den, [1 1 s]); +H=1.5;H(3,1)=1/s; +assert_checkequal(H.num, [1.5 0 1]'.*z); +assert_checkequal(H.den, [1 1 s]'); +H=[h s;1 h];H(:,1)=[]; +assert_checkequal(H, [s;h]); +H=[h s;1 h];H(2,:)=[]; +assert_checkequal(H, [h s]); +H=h+h;c=coeff(H.den,1); +assert_checkequal(H.num/c, 1*z); +assert_checkequal(H.den/c, s); +H=h+1; +assert_checkequal(H.num, 1+2*s); +assert_checkequal(H.den, 2*s); +H=1+h; +assert_checkequal(H.num, 1+2*s); +assert_checkequal(H.den, 2*s); +H=h+[]; +assert_checkequal(H, h); +H=[]+h; +assert_checkequal(H, h); +H=h+s; +assert_checkequal(H.num, 1+2*s^2); +assert_checkequal(H.den, 2*s); +H=s+h; +assert_checkequal(H.num, 1+2*s^2); +assert_checkequal(H.den, 2*s); +H=h-h; +assert_checkequal(H.num, 0*z); +assert_checkequal(H.den, 1*s^0); +H=h-1; +assert_checkequal(H.num, 1-2*s); +assert_checkequal(H.den, 2*s); +H=1-h; +assert_checkequal(H.num, -1+2*s); +assert_checkequal(H.den, 2*s); +H=[h h+1]-1; +assert_checkequal(H(1,1), h-1); +assert_checkequal(H(1,2), h); +H=[h h+1]-2*h; +assert_checkequal(H.num, [-2 -2+4*s]); +assert_checkequal(H.den, [4*s 4*s]); +H=-2*h+[h h+1]; +assert_checkequal(H.num, [-2 -2+4*s]); +assert_checkequal(H.den, [4*s 4*s]); +// * +H=h*h; +assert_checkequal(H.num, 1*z); +assert_checkequal(H.den, 4*s^2); +H=h*2; +assert_checkequal(H.num, 2*z); +assert_checkequal(H.den, 2*s); +H=2*h; +assert_checkequal(H.num, 2*z); +assert_checkequal(H.den, 2*s); +H=h*s; +assert_checkequal(H.num, 1*z); +assert_checkequal(H.den, 2*z); +H=s*h; +assert_checkequal(H.num, 1*z); +assert_checkequal(H.den, 2*z); +H=[h h+1]*h; +assert_checkequal(H, [h*h (h+1)*h]); +H=h*[h h+1]; +assert_checkequal(H, [h*h, (h+1)*h]); +H=[h h+1]*2; +assert_checkequal(H, [h*2, (h+1)*2]); +H=2*[h h+1]; +assert_checkequal(H, [h*2, (h+1)*2]); +H=[h h+1]*s; +assert_checkequal(H, [h*s, (h+1)*s]); +H=s*[h h+1]; +assert_checkequal(H, [h*s, (h+1)*s]); +H=[h 1;s 3]*[1;h]; +assert_checkequal(H, [h+h;s+3*h]); +H=[h 1]*[h 1;s 3]; +assert_checkequal(H, [h*h+s, h+3]); +H=[h 1;s 3]*[1;2]; +assert_checkequal(H, [h+2;s+6]); +H=[2 1]*[h 1;s 3]; +assert_checkequal(H, [2*h+s, 2+3]); +// .* +H=h.*h; +assert_checkequal(H.num, 1*z); +assert_checkequal(H.den, 4*s^2); +H=h.*2; +assert_checkequal(H.num, 2*z); +assert_checkequal(H.den, 2*s); +H=2 .*h; +assert_checkequal(H.num, 2*z); +assert_checkequal(H.den, 2*s); +H=h.*s; +assert_checkequal(H.num, 1*z); +assert_checkequal(H.den, 2*z); +H=s.*h; +assert_checkequal(H.num, 1*z); +assert_checkequal(H.den, 2*z); +H=[h h+1].*h; +assert_checkequal(H, [h*h (h+1)*h]); +H=h.*[h h+1]; +assert_checkequal(H, [h*h (h+1)*h]); +H=[h h+1].*2; +assert_checkequal(H, [h*2, (h+1)*2]); +H=2 .*[h h+1]; +assert_checkequal(H, [h*2, (h+1)*2]); +H=[h h+1].*s; +assert_checkequal(H, [h*s, (h+1)*s]); +H=s.*[h h+1]; +assert_checkequal(H, [h*s, (h+1)*s]); +H=[3 h;s 2].*[3 h;s 2]; +assert_checkequal(H, [9 h*h; s*s 4]); +// / +H=h/2; +assert_checkequal(H.num, 0.5*z); +assert_checkequal(H.den, 2*s); +H=h/s; +assert_checkequal(H.num, 1*z); +assert_checkequal(H.den, 2*s^2); +H=h/(h+1); +assert_checkequal(H.num, 2*z); +assert_checkequal(H.den, 2+4*s); +H=[h h-1]/2; +assert_checkequal(H, [h/2 (h-1)/2]); +H=[h h-1]/s; +assert_checkequal(H, [h/s (h-1)/s]); +H=1/h; +assert_checkequal(H.num, 2*s); +assert_checkequal(H.den, 1*z); +H=[1 2]/h; +assert_checkequal(H, [1/h 2/h]); +H=[s+1 s-2]/h; +assert_checkequal(H, [(s+1)/h (s-2)/h]); +H=[h+1 (h+1)*(h-1)]/h; +assert_checkequal(H, [(h+1)/h ((h+1)*(h-1))/h]); +H=(eye(2,2)/[3 h;s 2])*[3 h;s 2]; +assert_checkequal(coeff(H.num)./(coeff(H.den, 0) + coeff(H.den, 2)), eye(2,2)); +// ./ +H=h./2; +assert_checkequal(H.num, 0.5*z); +assert_checkequal(H.den, 2*s); +H=h./s; +assert_checkequal(H.num, 1*z); +assert_checkequal(H.den, 2*s^2); +H=h./(h+1); +assert_checkequal(H.num, 2*z); +assert_checkequal(H.den, 2+4*s); +H=[h h-1]./2; +assert_checkequal(H, [h/2 (h-1)/2]); +H=[h h-1]./s; +assert_checkequal(H, [h/s (h-1)/s]); +H=1 ./h; +assert_checkequal(H.num, 2*s); +assert_checkequal(H.den, 1*z); +H=[1 2]./h; +assert_checkequal(H, [1/h 2/h]); +H=[s+1 s-2]./h; +assert_checkequal(H, [(s+1)/h (s-2)/h]); +H=[h+1 (h+1)*(h-1)]./h; +assert_checkequal(H, [(h+1)/h ((h+1)*(h-1))/h]); +H=[3 h;s 2]./[3 h;s 2]; +assert_checkequal(coeff(H.num)./coeff(H.den), ones(2,2)); +// .\ +H=2 .\h; +assert_checkequal(H.num, 0.5*z); +assert_checkequal(H.den, 2*s); +H=s.\h; +assert_checkequal(H.num, 1*z); +assert_checkequal(H.den, 2*s^2); +H=(h+1).\h; +assert_checkequal(H.num, 2*z); +assert_checkequal(H.den, 2+4*s); +H=2 .\[h h-1]; +assert_checkequal(H, [h/2 (h-1)/2]); +H=s.\[h h-1]; +assert_checkequal(H, [h/s (h-1)/s]); +H=1 ./h; +assert_checkequal(H.num, 2*s); +assert_checkequal(H.den, 1*z); +H=h.\[1 2]; +assert_checkequal(H, [1/h 2/h]); +H=h.\[s+1 s-2]; +assert_checkequal(H, [(s+1)/h (s-2)/h]); +H=h.\[h+1 (h+1)*(h-1)]; +assert_checkequal(H, [(h+1)/h ((h+1)*(h-1))/h]); +H=[3 h;s 2]./[3 h;s 2]; +assert_checkequal(coeff(H.num)./coeff(H.den), ones(2,2)); +// hypermatrices of rationnals +clear H;H(1,1,2)=h; +assert_checkequal(H(1,1,1), rlist(0, 1, [])); +assert_checkequal(H(1,1,2), h); +H(2,1,2)=h+1; +assert_checkequal(size(H), [2 1 2]); +assert_checkequal(H(:,1,1), rlist([0; 0], [1; 1])); +assert_checkequal(H([2 2], 1, 2), [h+1;h+1]); +clear H;H(1,1,2)=h;H(2,1,1)=1; +assert_checkequal(H(:,1,1), rlist([0; 1], [1; 1])); +assert_checkequal(H(:,1,2), [h;0]); +clear H;H(1,1,2)=h;H(1,1,:)=3; +assert_checkequal(H(1,1,1), rlist(3,1)); +assert_checkequal(H(1,1,2), rlist(3,1)); +clear H;H(1,1,2)=h;H(1:2,1,1)=%s; +assert_checkequal(H(1:2,1,1), rlist([%s;%s], [1;1])); +clear H;H(2,2,2)=s;H(2,1,1)=h; +assert_checkequal(H(:,:,1), [0 0;h 0]); +assert_checkequal(H(:,:,2), rlist([0 0;0 s], [1 1;1 1])); +clear H;H(2,2,2)=8;H(2,1,1)=h; +assert_checkequal(H(:,:,1), [0 0;h 0]); +assert_checkequal(H(:,:,2), rlist([0 0;0 8], [1 1;1 1])); +clear H;H(2,2,2)=8;H(2,1,1)=h; +H(:,:,1)=[]; +assert_checkequal(H, rlist([0 0;0 8], [1 1;1 1])); +clear H;H(2,2,2)=8;H(2,1,1)=h; +H2=H(2,:,:);H(1,:,:)=[]; +assert_checkequal(H, H2); +clear H;H(2,2,2)=8;H(2,1,1)=h; +H2=H(:,2,:);H(:,1,:)=[]; +assert_checkequal(H, H2); +clear H;H(2,2,2)=h;H=H+1; +assert_checkequal(H(:,:,1), rlist([1 1;1 1], [1 1;1 1])); +assert_checkequal(H(:,:,2), [1 1;1 h+1]); +clear H;H(2,2,2)=h;H=1+H; +assert_checkequal(H(:,:,1), rlist([1 1;1 1], [1 1;1 1])); +assert_checkequal(H(:,:,2), [1 1;1 h+1]); +clear H;H(2,2,2)=h;H=H+s; +assert_checkequal(H(:,:,1), rlist([s s;s s], [1 1;1 1])); +assert_checkequal(H(:,:,2), [s s;s h+s]); +clear H;H(2,2,2)=h;H=s+H; +assert_checkequal(H(:,:,1), rlist([s s; s s], [1 1;1 1])); +assert_checkequal(H(:,:,2), [s s;s h+s]); +clear H;H(2,2,2)=h;H=H-1; +assert_checkequal(H(:,:,1), -1*rlist([1 1;1 1], [1 1;1 1])); +assert_checkequal(H(:,:,2), [-1 -1;-1 h-1]); +clear H;H(2,2,2)=h;H=1-H; +assert_checkequal(H(:,:,1), rlist([1 1;1 1], [1 1;1 1])); +assert_checkequal(H(:,:,2), [1 1;1 1-h]); +clear H;H(2,2,2)=h;H=H-s; +assert_checkequal(H(:,:,1), rlist([-s -s;-s -s], [1 1;1 1])); +assert_checkequal(H(:,:,2), [-s -s;-s h-s]); +clear H;H(2,2,2)=h;H=s-H; +assert_checkequal(H(:,:,1), rlist([s s;s s], [1 1;1 1])); +assert_checkequal(H(:,:,2), [s s;s -h+s]); +clear H;H(2,2,2)=s;H(2,1,1)=h;H=H+H; +assert_checkequal(H(:,:,1), [0 0;h+h 0]); +assert_checkequal(H(:,:,2), rlist([0 0;0 s+s], [1 1;1 1])); +clear H;H(2,2,2)=s;H(2,1,1)=h;H=H-H; +assert_checkequal(H(:,:,1), [0 0;h-h 0]); +assert_checkequal(H(:,:,2), rlist([0 0;0 0], [1 1;1 1])); +// * +clear H;H(1,1,2)=h;H(1:2,1,1)=%s;H=H*h; +assert_checkequal(H(:,:,1), [s*h;s*h]); +assert_checkequal(H(:,:,2), [h*h; 0/1]); +clear H;H(1,1,2)=h;H(1:2,1,1)=%s;H=H*2; +assert_checkequal(H(:,:,1), rlist([s*2;s*2], [1;1])); +assert_checkequal(H(:,:,2), [h*2;0]); +clear H;H(1,1,2)=h;H(1:2,1,1)=%s;H=2*H; +assert_checkequal(H(:,:,1), rlist([s*2;s*2], [1;1])); +assert_checkequal(H(:,:,2), [h*2;0]); +clear H;H(1,1,2)=h;H(1:2,1,1)=%s;H=H*s; +assert_checkequal(H(:,:,1), rlist([s*s;s*s], [1;1])); +assert_checkequal(H(:,:,2), [h*s;0]); +clear H;H(1,1,2)=h;H(1:2,1,1)=%s;H=s*H; +assert_checkequal(H(:,:,1), rlist([s*s;s*s], [1;1])); +assert_checkequal(H(:,:,2), [h*s;0]); +// .* +clear H;H(1,1,2)=h;H(1:2,1,1)=%s;H=H.*h; +assert_checkequal(H(:,:,1), [s*h;s*h]); +assert_checkequal(H(:,:,2), [h*h;0/1]); +clear H;H(1,1,2)=h;H(1:2,1,1)=%s;H=h.*H; +assert_checkequal(H(:,:,1), [s*h;s*h]); +assert_checkequal(H(:,:,2), [h*h;0/1]); +clear H;H(1,1,2)=h;H(1:2,1,1)=%s;H=H.*2; +assert_checkequal(H(:,:,1), rlist([s*2;s*2], [1;1])); +assert_checkequal(H(:,:,2), [h*2;0]); +clear H;H(1,1,2)=h;H(1:2,1,1)=%s;H=2 .*H; +assert_checkequal(H(:,:,1), rlist([s*2;s*2], [1;1])); +assert_checkequal(H(:,:,2), [h*2;0]); +clear H;H(1,1,2)=h;H(1:2,1,1)=%s;H=H.*s; +assert_checkequal(H(:,:,1), rlist([s*s;s*s], [1;1])); +assert_checkequal(H(:,:,2), [h*s;0]); +clear H;H(1,1,2)=h;H(1:2,1,1)=%s;H=s.*H; +assert_checkequal(H(:,:,1), rlist([s*s;s*s], [1;1])); +assert_checkequal(H(:,:,2), [h*s;0]); +clear H;H(1,1,2)=h;H(1:2,1,1)=%s;H=H.*H; +assert_checkequal(H(:,:,1), rlist([s*s;s*s], [1;1])); +assert_checkequal(H(:,:,2), [h*h;0]); diff --git a/modules/overloading/tests/unit_tests/rational.tst b/modules/overloading/tests/unit_tests/rational.tst new file mode 100755 index 000000000..3685cf7ad --- /dev/null +++ b/modules/overloading/tests/unit_tests/rational.tst @@ -0,0 +1,469 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2009 - DIGITEO +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// <-- CLI SHELL MODE --> + + +s=poly(0,'s'); +z = s^0; +h=1/(2*s); +assert_checkequal(size(h), [1 1]); +assert_checkequal(h.num, 1*z); +assert_checkequal(h.den, 2*s); + +//basic operations with 2D matrices +H=[h h]; +assert_checkequal(H.num, [1 1].*z); +assert_checkequal(H.den, [2*s 2*s]); + +H=[h;h]; +assert_checkequal(H.num, [1;1].*z); +assert_checkequal(H.den, [2*s;2*s]); + +H=[h 3]; +assert_checkequal(H.num, [1*z 3]); +assert_checkequal(H.den, [2*s 1]); + +H=[h;5]; +assert_checkequal(H.num, [1*z;5]); +assert_checkequal(H.den, [2*s;1]); + +H=[3 h]; +assert_checkequal(H.num, [3 1*z]); +assert_checkequal(H.den, [1 2*s]); + +H=[5;h]; +assert_checkequal(H.num, [5;1*z]); +assert_checkequal(H.den, [1;2*s]); + +H=[3 h;s 2]; +assert_checkequal(H(1,1), rlist(3,1)); +assert_checkequal(H(1,2), h); +assert_checkequal(H(1, [2 1]), [h rlist(3,1)]); +assert_checkequal(H(1, [2 2]), [h h]); +assert_checkequal(H(1,:), [rlist(3,1) h]); +assert_checkequal(H(:,1), [rlist(3,1); s]); +assert_checkequal(H([2 1], :), [s rlist(2,1);rlist(3,1) h]); +assert_checkequal(H([1 1], :), [rlist(3,1) h;rlist(3,1) h]); + +assert_checkequal(matrix(H, -1, 1), [3*z;s;h;2*z]); + +H=h;H(1,3)=1/s; +assert_checkequal(H.num, [1 0 1].*z); +assert_checkequal(H.den, [2*s 1 s]); + +H=h;H(3,1)=1/s; +assert_checkequal(H.num, [1 0 1]'.*z); +assert_checkequal(H.den, [2*s 1 s]'); + +H=h;H(1,3)=1.5; +assert_checkequal(H.num, [1 0 1.5].*z); +assert_checkequal(H.den, [2*s 1 1]); + +H=h;H(3,1)=1.5; +assert_checkequal(H.num, [1 0 1.5]'.*z); +assert_checkequal(H.den, [2*s 1 1]'); + +H=1.5;H(1,3)=1/s; +assert_checkequal(H.num, [1.5 0 1].*z); +assert_checkequal(H.den, [1 1 s]); + +H=1.5;H(3,1)=1/s; +assert_checkequal(H.num, [1.5 0 1]'.*z); +assert_checkequal(H.den, [1 1 s]'); + +H=[h s;1 h];H(:,1)=[]; +assert_checkequal(H, [s;h]); + +H=[h s;1 h];H(2,:)=[]; +assert_checkequal(H, [h s]); + +H=h+h;c=coeff(H.den,1); +assert_checkequal(H.num/c, 1*z); +assert_checkequal(H.den/c, s); + +H=h+1; +assert_checkequal(H.num, 1+2*s); +assert_checkequal(H.den, 2*s); + +H=1+h; +assert_checkequal(H.num, 1+2*s); +assert_checkequal(H.den, 2*s); + +H=h+[]; +assert_checkequal(H, h); + +H=[]+h; +assert_checkequal(H, h); + +H=h+s; +assert_checkequal(H.num, 1+2*s^2); +assert_checkequal(H.den, 2*s); + +H=s+h; +assert_checkequal(H.num, 1+2*s^2); +assert_checkequal(H.den, 2*s); + +H=h-h; +assert_checkequal(H.num, 0*z); +assert_checkequal(H.den, 1*s^0); + +H=h-1; +assert_checkequal(H.num, 1-2*s); +assert_checkequal(H.den, 2*s); + +H=1-h; +assert_checkequal(H.num, -1+2*s); +assert_checkequal(H.den, 2*s); + +H=[h h+1]-1; +assert_checkequal(H(1,1), h-1); +assert_checkequal(H(1,2), h); + +H=[h h+1]-2*h; +assert_checkequal(H.num, [-2 -2+4*s]); +assert_checkequal(H.den, [4*s 4*s]); + +H=-2*h+[h h+1]; +assert_checkequal(H.num, [-2 -2+4*s]); +assert_checkequal(H.den, [4*s 4*s]); + +// * + +H=h*h; +assert_checkequal(H.num, 1*z); +assert_checkequal(H.den, 4*s^2); + +H=h*2; +assert_checkequal(H.num, 2*z); +assert_checkequal(H.den, 2*s); + +H=2*h; +assert_checkequal(H.num, 2*z); +assert_checkequal(H.den, 2*s); + +H=h*s; +assert_checkequal(H.num, 1*z); +assert_checkequal(H.den, 2*z); + +H=s*h; +assert_checkequal(H.num, 1*z); +assert_checkequal(H.den, 2*z); + +H=[h h+1]*h; +assert_checkequal(H, [h*h (h+1)*h]); + +H=h*[h h+1]; +assert_checkequal(H, [h*h, (h+1)*h]); + +H=[h h+1]*2; +assert_checkequal(H, [h*2, (h+1)*2]); + +H=2*[h h+1]; +assert_checkequal(H, [h*2, (h+1)*2]); + +H=[h h+1]*s; +assert_checkequal(H, [h*s, (h+1)*s]); + +H=s*[h h+1]; +assert_checkequal(H, [h*s, (h+1)*s]); + +H=[h 1;s 3]*[1;h]; +assert_checkequal(H, [h+h;s+3*h]); + +H=[h 1]*[h 1;s 3]; +assert_checkequal(H, [h*h+s, h+3]); + +H=[h 1;s 3]*[1;2]; +assert_checkequal(H, [h+2;s+6]); + +H=[2 1]*[h 1;s 3]; +assert_checkequal(H, [2*h+s, 2+3]); + +// .* + +H=h.*h; +assert_checkequal(H.num, 1*z); +assert_checkequal(H.den, 4*s^2); + +H=h.*2; +assert_checkequal(H.num, 2*z); +assert_checkequal(H.den, 2*s); + +H=2 .*h; +assert_checkequal(H.num, 2*z); +assert_checkequal(H.den, 2*s); + +H=h.*s; +assert_checkequal(H.num, 1*z); +assert_checkequal(H.den, 2*z); + +H=s.*h; +assert_checkequal(H.num, 1*z); +assert_checkequal(H.den, 2*z); + +H=[h h+1].*h; +assert_checkequal(H, [h*h (h+1)*h]); + +H=h.*[h h+1]; +assert_checkequal(H, [h*h (h+1)*h]); + +H=[h h+1].*2; +assert_checkequal(H, [h*2, (h+1)*2]); + +H=2 .*[h h+1]; +assert_checkequal(H, [h*2, (h+1)*2]); + +H=[h h+1].*s; +assert_checkequal(H, [h*s, (h+1)*s]); + +H=s.*[h h+1]; +assert_checkequal(H, [h*s, (h+1)*s]); + +H=[3 h;s 2].*[3 h;s 2]; +assert_checkequal(H, [9 h*h; s*s 4]); + + +// / + +H=h/2; +assert_checkequal(H.num, 0.5*z); +assert_checkequal(H.den, 2*s); + +H=h/s; +assert_checkequal(H.num, 1*z); +assert_checkequal(H.den, 2*s^2); + +H=h/(h+1); +assert_checkequal(H.num, 2*z); +assert_checkequal(H.den, 2+4*s); + +H=[h h-1]/2; +assert_checkequal(H, [h/2 (h-1)/2]); + +H=[h h-1]/s; +assert_checkequal(H, [h/s (h-1)/s]); + +H=1/h; +assert_checkequal(H.num, 2*s); +assert_checkequal(H.den, 1*z); + +H=[1 2]/h; +assert_checkequal(H, [1/h 2/h]); + +H=[s+1 s-2]/h; +assert_checkequal(H, [(s+1)/h (s-2)/h]); + +H=[h+1 (h+1)*(h-1)]/h; +assert_checkequal(H, [(h+1)/h ((h+1)*(h-1))/h]); + +H=(eye(2,2)/[3 h;s 2])*[3 h;s 2]; +assert_checkequal(coeff(H.num)./(coeff(H.den, 0) + coeff(H.den, 2)), eye(2,2)); + +// ./ +H=h./2; +assert_checkequal(H.num, 0.5*z); +assert_checkequal(H.den, 2*s); + +H=h./s; +assert_checkequal(H.num, 1*z); +assert_checkequal(H.den, 2*s^2); + +H=h./(h+1); +assert_checkequal(H.num, 2*z); +assert_checkequal(H.den, 2+4*s); + +H=[h h-1]./2; +assert_checkequal(H, [h/2 (h-1)/2]); + +H=[h h-1]./s; +assert_checkequal(H, [h/s (h-1)/s]); + +H=1 ./h; +assert_checkequal(H.num, 2*s); +assert_checkequal(H.den, 1*z); + +H=[1 2]./h; +assert_checkequal(H, [1/h 2/h]); + +H=[s+1 s-2]./h; +assert_checkequal(H, [(s+1)/h (s-2)/h]); + +H=[h+1 (h+1)*(h-1)]./h; +assert_checkequal(H, [(h+1)/h ((h+1)*(h-1))/h]); + +H=[3 h;s 2]./[3 h;s 2]; +assert_checkequal(coeff(H.num)./coeff(H.den), ones(2,2)); + +// .\ + +H=2 .\h; +assert_checkequal(H.num, 0.5*z); +assert_checkequal(H.den, 2*s); + +H=s.\h; +assert_checkequal(H.num, 1*z); +assert_checkequal(H.den, 2*s^2); + +H=(h+1).\h; +assert_checkequal(H.num, 2*z); +assert_checkequal(H.den, 2+4*s); + +H=2 .\[h h-1]; +assert_checkequal(H, [h/2 (h-1)/2]); + +H=s.\[h h-1]; +assert_checkequal(H, [h/s (h-1)/s]); + +H=1 ./h; +assert_checkequal(H.num, 2*s); +assert_checkequal(H.den, 1*z); + +H=h.\[1 2]; +assert_checkequal(H, [1/h 2/h]); + +H=h.\[s+1 s-2]; +assert_checkequal(H, [(s+1)/h (s-2)/h]); + +H=h.\[h+1 (h+1)*(h-1)]; +assert_checkequal(H, [(h+1)/h ((h+1)*(h-1))/h]); + +H=[3 h;s 2]./[3 h;s 2]; +assert_checkequal(coeff(H.num)./coeff(H.den), ones(2,2)); + +// hypermatrices of rationnals + +clear H;H(1,1,2)=h; +assert_checkequal(H(1,1,1), rlist(0, 1, [])); +assert_checkequal(H(1,1,2), h); + +H(2,1,2)=h+1; +assert_checkequal(size(H), [2 1 2]); +assert_checkequal(H(:,1,1), rlist([0; 0], [1; 1])); +assert_checkequal(H([2 2], 1, 2), [h+1;h+1]); + +clear H;H(1,1,2)=h;H(2,1,1)=1; +assert_checkequal(H(:,1,1), rlist([0; 1], [1; 1])); +assert_checkequal(H(:,1,2), [h;0]); + +clear H;H(1,1,2)=h;H(1,1,:)=3; +assert_checkequal(H(1,1,1), rlist(3,1)); +assert_checkequal(H(1,1,2), rlist(3,1)); + +clear H;H(1,1,2)=h;H(1:2,1,1)=%s; +assert_checkequal(H(1:2,1,1), rlist([%s;%s], [1;1])); + +clear H;H(2,2,2)=s;H(2,1,1)=h; +assert_checkequal(H(:,:,1), [0 0;h 0]); +assert_checkequal(H(:,:,2), rlist([0 0;0 s], [1 1;1 1])); + +clear H;H(2,2,2)=8;H(2,1,1)=h; +assert_checkequal(H(:,:,1), [0 0;h 0]); +assert_checkequal(H(:,:,2), rlist([0 0;0 8], [1 1;1 1])); + +clear H;H(2,2,2)=8;H(2,1,1)=h; +H(:,:,1)=[]; +assert_checkequal(H, rlist([0 0;0 8], [1 1;1 1])); + +clear H;H(2,2,2)=8;H(2,1,1)=h; +H2=H(2,:,:);H(1,:,:)=[]; +assert_checkequal(H, H2); + +clear H;H(2,2,2)=8;H(2,1,1)=h; +H2=H(:,2,:);H(:,1,:)=[]; +assert_checkequal(H, H2); + +clear H;H(2,2,2)=h;H=H+1; +assert_checkequal(H(:,:,1), rlist([1 1;1 1], [1 1;1 1])); +assert_checkequal(H(:,:,2), [1 1;1 h+1]); + +clear H;H(2,2,2)=h;H=1+H; +assert_checkequal(H(:,:,1), rlist([1 1;1 1], [1 1;1 1])); +assert_checkequal(H(:,:,2), [1 1;1 h+1]); + +clear H;H(2,2,2)=h;H=H+s; +assert_checkequal(H(:,:,1), rlist([s s;s s], [1 1;1 1])); +assert_checkequal(H(:,:,2), [s s;s h+s]); + +clear H;H(2,2,2)=h;H=s+H; +assert_checkequal(H(:,:,1), rlist([s s; s s], [1 1;1 1])); +assert_checkequal(H(:,:,2), [s s;s h+s]); + +clear H;H(2,2,2)=h;H=H-1; +assert_checkequal(H(:,:,1), -1*rlist([1 1;1 1], [1 1;1 1])); +assert_checkequal(H(:,:,2), [-1 -1;-1 h-1]); + +clear H;H(2,2,2)=h;H=1-H; +assert_checkequal(H(:,:,1), rlist([1 1;1 1], [1 1;1 1])); +assert_checkequal(H(:,:,2), [1 1;1 1-h]); + +clear H;H(2,2,2)=h;H=H-s; +assert_checkequal(H(:,:,1), rlist([-s -s;-s -s], [1 1;1 1])); +assert_checkequal(H(:,:,2), [-s -s;-s h-s]); + +clear H;H(2,2,2)=h;H=s-H; +assert_checkequal(H(:,:,1), rlist([s s;s s], [1 1;1 1])); +assert_checkequal(H(:,:,2), [s s;s -h+s]); + +clear H;H(2,2,2)=s;H(2,1,1)=h;H=H+H; +assert_checkequal(H(:,:,1), [0 0;h+h 0]); +assert_checkequal(H(:,:,2), rlist([0 0;0 s+s], [1 1;1 1])); + +clear H;H(2,2,2)=s;H(2,1,1)=h;H=H-H; +assert_checkequal(H(:,:,1), [0 0;h-h 0]); +assert_checkequal(H(:,:,2), rlist([0 0;0 0], [1 1;1 1])); + +// * +clear H;H(1,1,2)=h;H(1:2,1,1)=%s;H=H*h; +assert_checkequal(H(:,:,1), [s*h;s*h]); +assert_checkequal(H(:,:,2), [h*h; 0/1]); + +clear H;H(1,1,2)=h;H(1:2,1,1)=%s;H=H*2; +assert_checkequal(H(:,:,1), rlist([s*2;s*2], [1;1])); +assert_checkequal(H(:,:,2), [h*2;0]); + +clear H;H(1,1,2)=h;H(1:2,1,1)=%s;H=2*H; +assert_checkequal(H(:,:,1), rlist([s*2;s*2], [1;1])); +assert_checkequal(H(:,:,2), [h*2;0]); + +clear H;H(1,1,2)=h;H(1:2,1,1)=%s;H=H*s; +assert_checkequal(H(:,:,1), rlist([s*s;s*s], [1;1])); +assert_checkequal(H(:,:,2), [h*s;0]); + +clear H;H(1,1,2)=h;H(1:2,1,1)=%s;H=s*H; +assert_checkequal(H(:,:,1), rlist([s*s;s*s], [1;1])); +assert_checkequal(H(:,:,2), [h*s;0]); + +// .* +clear H;H(1,1,2)=h;H(1:2,1,1)=%s;H=H.*h; +assert_checkequal(H(:,:,1), [s*h;s*h]); +assert_checkequal(H(:,:,2), [h*h;0/1]); + +clear H;H(1,1,2)=h;H(1:2,1,1)=%s;H=h.*H; +assert_checkequal(H(:,:,1), [s*h;s*h]); +assert_checkequal(H(:,:,2), [h*h;0/1]); + +clear H;H(1,1,2)=h;H(1:2,1,1)=%s;H=H.*2; +assert_checkequal(H(:,:,1), rlist([s*2;s*2], [1;1])); +assert_checkequal(H(:,:,2), [h*2;0]); + +clear H;H(1,1,2)=h;H(1:2,1,1)=%s;H=2 .*H; +assert_checkequal(H(:,:,1), rlist([s*2;s*2], [1;1])); +assert_checkequal(H(:,:,2), [h*2;0]); + +clear H;H(1,1,2)=h;H(1:2,1,1)=%s;H=H.*s; +assert_checkequal(H(:,:,1), rlist([s*s;s*s], [1;1])); +assert_checkequal(H(:,:,2), [h*s;0]); + +clear H;H(1,1,2)=h;H(1:2,1,1)=%s;H=s.*H; +assert_checkequal(H(:,:,1), rlist([s*s;s*s], [1;1])); +assert_checkequal(H(:,:,2), [h*s;0]); + +clear H;H(1,1,2)=h;H(1:2,1,1)=%s;H=H.*H; +assert_checkequal(H(:,:,1), rlist([s*s;s*s], [1;1])); +assert_checkequal(H(:,:,2), [h*h;0]); + + diff --git a/modules/overloading/tests/unit_tests/sparse.dia.ref b/modules/overloading/tests/unit_tests/sparse.dia.ref new file mode 100755 index 000000000..ceb68f5c5 --- /dev/null +++ b/modules/overloading/tests/unit_tests/sparse.dia.ref @@ -0,0 +1,15 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2011 - DIGITEO - Michael Baudin +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// <-- CLI SHELL MODE --> +A = spzeros(3,2); +A(3,1) = 2; +string(A) + ans = + +!(3,2) sparse matrix ! +! ! +!(3,1) 2 ! diff --git a/modules/overloading/tests/unit_tests/sparse.tst b/modules/overloading/tests/unit_tests/sparse.tst new file mode 100755 index 000000000..85868ca28 --- /dev/null +++ b/modules/overloading/tests/unit_tests/sparse.tst @@ -0,0 +1,13 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2011 - DIGITEO - Michael Baudin +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +// <-- CLI SHELL MODE --> + +A = spzeros(3,2); +A(3,1) = 2; +string(A) + |