Decrease dependency level with ast modules 78/17178/3
Calixte DENIZET [Tue, 8 Sep 2015 16:59:52 +0000 (18:59 +0200)]
Change-Id: I5957dfdc72073d421ae268499ab5423bf03f2865

138 files changed:
scilab/modules/ast/Makefile.am
scilab/modules/ast/Makefile.in
scilab/modules/ast/ast.vcxproj
scilab/modules/ast/ast.vcxproj.filters
scilab/modules/ast/includes/analysis/TIType.hxx
scilab/modules/ast/includes/types/arrayof.hxx
scilab/modules/ast/includes/types/double.hxx
scilab/modules/ast/includes/types/internal.hxx
scilab/modules/ast/includes/types/overload.hxx
scilab/modules/ast/includes/types/sparse.hxx
scilab/modules/ast/src/cpp/ast/treevisitor.cpp
scilab/modules/ast/src/cpp/ast/visitor_common.cpp
scilab/modules/ast/src/cpp/operations/types_comparison_eq.cpp
scilab/modules/ast/src/cpp/operations/types_comparison_ne.cpp
scilab/modules/ast/src/cpp/system_env/lasterror.cpp
scilab/modules/ast/src/cpp/system_env/sci_tmpdir.cpp
scilab/modules/ast/src/cpp/types/arrayof.cpp
scilab/modules/ast/src/cpp/types/callable.cpp
scilab/modules/ast/src/cpp/types/graphichandle.cpp
scilab/modules/ast/src/cpp/types/implicitlist.cpp
scilab/modules/ast/src/cpp/types/int.cpp
scilab/modules/ast/src/cpp/types/internal.cpp [new file with mode: 0644]
scilab/modules/ast/src/cpp/types/mlist.cpp
scilab/modules/ast/src/cpp/types/overload.cpp
scilab/modules/ast/src/cpp/types/singlepoly.cpp
scilab/modules/ast/src/cpp/types/sparse.cpp
scilab/modules/ast/src/cpp/types/struct.cpp
scilab/modules/ast/src/cpp/types/tostring_common.cpp
scilab/modules/ast/src/cpp/types/types_tools.cpp
scilab/modules/boolean/sci_gateway/cpp/sci_and.cpp
scilab/modules/boolean/sci_gateway/cpp/sci_bool2s.cpp
scilab/modules/boolean/sci_gateway/cpp/sci_find.cpp
scilab/modules/boolean/sci_gateway/cpp/sci_or.cpp
scilab/modules/cacsd/sci_gateway/cpp/sci_ereduc.cpp
scilab/modules/cacsd/sci_gateway/cpp/sci_fstair.cpp
scilab/modules/elementary_functions/includes/cos.h
scilab/modules/elementary_functions/includes/sin.h
scilab/modules/elementary_functions/sci_gateway/cpp/sci_abs.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_acos.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_acosh.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_asin.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_asinh.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_atan.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_atanh.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_ceil.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_clean.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_conj.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_cos.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_cosh.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_cumprod.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_cumsum.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_diag.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_dsearch.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_exp.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_expm.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_eye.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_floor.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_frexp.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_gsort.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_imag.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_imult.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_int.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_isreal.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_kron.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_log.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_log1p.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_matrix.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_max.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_ones.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_prod.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_rand.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_rat.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_real.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_round.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_sign.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_sin.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_sinh.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_size.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_sum.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_tan.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_tanh.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_tril.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_triu.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_zeros.cpp
scilab/modules/fftw/src/cpp/fftw_common.cpp
scilab/modules/fileio/sci_gateway/cpp/sci_mfprintf.cpp
scilab/modules/graphics/sci_gateway/cpp/sci_get.cpp
scilab/modules/graphics/sci_gateway/cpp/sci_matplot.cpp
scilab/modules/graphics/sci_gateway/cpp/sci_matplot1.cpp
scilab/modules/graphics/sci_gateway/cpp/sci_xget.cpp
scilab/modules/graphics/sci_gateway/cpp/sci_xset.cpp
scilab/modules/hdf5/sci_gateway/cpp/sci_hdf5_listvar.cpp
scilab/modules/hdf5/sci_gateway/cpp/sci_hdf5_load.cpp
scilab/modules/hdf5/sci_gateway/cpp/sci_hdf5_load_v3.cpp
scilab/modules/hdf5/sci_gateway/cpp/sci_hdf5_save.cpp
scilab/modules/integer/sci_gateway/cpp/sci_iconvert.cpp
scilab/modules/io/sci_gateway/cpp/sci_load.cpp
scilab/modules/linear_algebra/sci_gateway/cpp/sci_balanc.cpp
scilab/modules/linear_algebra/sci_gateway/cpp/sci_bdiag.cpp
scilab/modules/linear_algebra/sci_gateway/cpp/sci_chol.cpp
scilab/modules/linear_algebra/sci_gateway/cpp/sci_det.cpp
scilab/modules/linear_algebra/sci_gateway/cpp/sci_hess.cpp
scilab/modules/linear_algebra/sci_gateway/cpp/sci_inv.cpp
scilab/modules/linear_algebra/sci_gateway/cpp/sci_lsq.cpp
scilab/modules/linear_algebra/sci_gateway/cpp/sci_lu.cpp
scilab/modules/linear_algebra/sci_gateway/cpp/sci_qr.cpp
scilab/modules/linear_algebra/sci_gateway/cpp/sci_rcond.cpp
scilab/modules/linear_algebra/sci_gateway/cpp/sci_schur.cpp
scilab/modules/linear_algebra/sci_gateway/cpp/sci_spec.cpp
scilab/modules/linear_algebra/sci_gateway/cpp/sci_svd.cpp
scilab/modules/mexlib/src/cpp/mexlib.cpp
scilab/modules/output_stream/sci_gateway/cpp/sci_mprintf.cpp
scilab/modules/output_stream/sci_gateway/cpp/sci_msprintf.cpp
scilab/modules/polynomials/sci_gateway/cpp/sci_bezout.cpp
scilab/modules/polynomials/sci_gateway/cpp/sci_coeff.cpp
scilab/modules/polynomials/sci_gateway/cpp/sci_degree.cpp
scilab/modules/polynomials/sci_gateway/cpp/sci_poly.cpp
scilab/modules/polynomials/sci_gateway/cpp/sci_pppdiv.cpp
scilab/modules/polynomials/sci_gateway/cpp/sci_roots.cpp
scilab/modules/polynomials/sci_gateway/cpp/sci_sfact.cpp
scilab/modules/polynomials/sci_gateway/cpp/sci_simp.cpp
scilab/modules/polynomials/sci_gateway/cpp/sci_varn.cpp
scilab/modules/randlib/sci_gateway/cpp/sci_grand.cpp
scilab/modules/scicos/src/cpp/view_scilab/BaseAdapter.hxx
scilab/modules/sparse/sci_gateway/cpp/sci_adj2sp.cpp
scilab/modules/sparse/sci_gateway/cpp/sci_lufact.cpp
scilab/modules/sparse/sci_gateway/cpp/sci_lusolve.cpp
scilab/modules/sparse/sci_gateway/cpp/sci_nnz.cpp
scilab/modules/sparse/sci_gateway/cpp/sci_sparse.cpp
scilab/modules/special_functions/sci_gateway/cpp/sci_dlgamma.cpp
scilab/modules/special_functions/sci_gateway/cpp/sci_gamma.cpp
scilab/modules/special_functions/sci_gateway/cpp/sci_lgamma.cpp
scilab/modules/string/sci_gateway/cpp/sci_length.cpp
scilab/modules/string/sci_gateway/cpp/sci_part.cpp
scilab/modules/string/sci_gateway/cpp/sci_string.cpp
scilab/modules/string/sci_gateway/cpp/sci_strsplit.cpp
scilab/modules/types/sci_gateway/cpp/sci_cell.cpp
scilab/modules/ui_data/src/cpp/BrowseVarManager.cpp

index f854a94..9358afd 100644 (file)
@@ -73,6 +73,7 @@ src/cpp/system_env/threadmanagement.cpp \
 src/cpp/system_env/numericconstants.cpp \
 src/cpp/system_env/numericconstants_interface.cpp \
 src/cpp/types/addfunction.cpp \
+src/cpp/types/internal.cpp \
 src/cpp/types/arrayof.cpp \
 src/cpp/types/bool.cpp \
 src/cpp/types/callable.cpp \
index a06fba0..bc8700b 100644 (file)
@@ -223,14 +223,15 @@ am__libsciast_la_SOURCES_DIST = src/c/operations/doublecomplex.c \
        src/cpp/system_env/threadmanagement.cpp \
        src/cpp/system_env/numericconstants.cpp \
        src/cpp/system_env/numericconstants_interface.cpp \
-       src/cpp/types/addfunction.cpp src/cpp/types/arrayof.cpp \
-       src/cpp/types/bool.cpp src/cpp/types/callable.cpp \
-       src/cpp/types/cell.cpp src/cpp/types/double.cpp \
-       src/cpp/types/file.cpp src/cpp/types/function.cpp \
-       src/cpp/types/graphichandle.cpp src/cpp/types/implicitlist.cpp \
-       src/cpp/types/int.cpp src/cpp/types/library.cpp \
-       src/cpp/types/list.cpp src/cpp/types/listdelete.cpp \
-       src/cpp/types/listinsert.cpp src/cpp/types/listoperation.cpp \
+       src/cpp/types/addfunction.cpp src/cpp/types/internal.cpp \
+       src/cpp/types/arrayof.cpp src/cpp/types/bool.cpp \
+       src/cpp/types/callable.cpp src/cpp/types/cell.cpp \
+       src/cpp/types/double.cpp src/cpp/types/file.cpp \
+       src/cpp/types/function.cpp src/cpp/types/graphichandle.cpp \
+       src/cpp/types/implicitlist.cpp src/cpp/types/int.cpp \
+       src/cpp/types/library.cpp src/cpp/types/list.cpp \
+       src/cpp/types/listdelete.cpp src/cpp/types/listinsert.cpp \
+       src/cpp/types/listoperation.cpp \
        src/cpp/types/listundefined.cpp src/cpp/types/macro.cpp \
        src/cpp/types/macrofile.cpp src/cpp/types/mlist.cpp \
        src/cpp/types/overload.cpp src/cpp/types/polynom.cpp \
@@ -417,6 +418,7 @@ am_libsciast_la_OBJECTS =  \
        src/cpp/system_env/libsciast_la-numericconstants.lo \
        src/cpp/system_env/libsciast_la-numericconstants_interface.lo \
        src/cpp/types/libsciast_la-addfunction.lo \
+       src/cpp/types/libsciast_la-internal.lo \
        src/cpp/types/libsciast_la-arrayof.lo \
        src/cpp/types/libsciast_la-bool.lo \
        src/cpp/types/libsciast_la-callable.lo \
@@ -1008,14 +1010,15 @@ libsciast_la_SOURCES = src/c/operations/doublecomplex.c \
        src/cpp/system_env/threadmanagement.cpp \
        src/cpp/system_env/numericconstants.cpp \
        src/cpp/system_env/numericconstants_interface.cpp \
-       src/cpp/types/addfunction.cpp src/cpp/types/arrayof.cpp \
-       src/cpp/types/bool.cpp src/cpp/types/callable.cpp \
-       src/cpp/types/cell.cpp src/cpp/types/double.cpp \
-       src/cpp/types/file.cpp src/cpp/types/function.cpp \
-       src/cpp/types/graphichandle.cpp src/cpp/types/implicitlist.cpp \
-       src/cpp/types/int.cpp src/cpp/types/library.cpp \
-       src/cpp/types/list.cpp src/cpp/types/listdelete.cpp \
-       src/cpp/types/listinsert.cpp src/cpp/types/listoperation.cpp \
+       src/cpp/types/addfunction.cpp src/cpp/types/internal.cpp \
+       src/cpp/types/arrayof.cpp src/cpp/types/bool.cpp \
+       src/cpp/types/callable.cpp src/cpp/types/cell.cpp \
+       src/cpp/types/double.cpp src/cpp/types/file.cpp \
+       src/cpp/types/function.cpp src/cpp/types/graphichandle.cpp \
+       src/cpp/types/implicitlist.cpp src/cpp/types/int.cpp \
+       src/cpp/types/library.cpp src/cpp/types/list.cpp \
+       src/cpp/types/listdelete.cpp src/cpp/types/listinsert.cpp \
+       src/cpp/types/listoperation.cpp \
        src/cpp/types/listundefined.cpp src/cpp/types/macro.cpp \
        src/cpp/types/macrofile.cpp src/cpp/types/mlist.cpp \
        src/cpp/types/overload.cpp src/cpp/types/polynom.cpp \
@@ -1741,6 +1744,8 @@ src/cpp/types/$(DEPDIR)/$(am__dirstamp):
 src/cpp/types/libsciast_la-addfunction.lo:  \
        src/cpp/types/$(am__dirstamp) \
        src/cpp/types/$(DEPDIR)/$(am__dirstamp)
+src/cpp/types/libsciast_la-internal.lo: src/cpp/types/$(am__dirstamp) \
+       src/cpp/types/$(DEPDIR)/$(am__dirstamp)
 src/cpp/types/libsciast_la-arrayof.lo: src/cpp/types/$(am__dirstamp) \
        src/cpp/types/$(DEPDIR)/$(am__dirstamp)
 src/cpp/types/libsciast_la-bool.lo: src/cpp/types/$(am__dirstamp) \
@@ -2444,6 +2449,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@src/cpp/types/$(DEPDIR)/libsciast_la-implicitlist.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/cpp/types/$(DEPDIR)/libsciast_la-inspector.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/cpp/types/$(DEPDIR)/libsciast_la-int.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/cpp/types/$(DEPDIR)/libsciast_la-internal.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/cpp/types/$(DEPDIR)/libsciast_la-library.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/cpp/types/$(DEPDIR)/libsciast_la-list.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/cpp/types/$(DEPDIR)/libsciast_la-listdelete.Plo@am__quote@
@@ -2929,6 +2935,13 @@ src/cpp/types/libsciast_la-addfunction.lo: src/cpp/types/addfunction.cpp
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciast_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/cpp/types/libsciast_la-addfunction.lo `test -f 'src/cpp/types/addfunction.cpp' || echo '$(srcdir)/'`src/cpp/types/addfunction.cpp
 
+src/cpp/types/libsciast_la-internal.lo: src/cpp/types/internal.cpp
+@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciast_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/cpp/types/libsciast_la-internal.lo -MD -MP -MF src/cpp/types/$(DEPDIR)/libsciast_la-internal.Tpo -c -o src/cpp/types/libsciast_la-internal.lo `test -f 'src/cpp/types/internal.cpp' || echo '$(srcdir)/'`src/cpp/types/internal.cpp
+@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) src/cpp/types/$(DEPDIR)/libsciast_la-internal.Tpo src/cpp/types/$(DEPDIR)/libsciast_la-internal.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='src/cpp/types/internal.cpp' object='src/cpp/types/libsciast_la-internal.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciast_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/cpp/types/libsciast_la-internal.lo `test -f 'src/cpp/types/internal.cpp' || echo '$(srcdir)/'`src/cpp/types/internal.cpp
+
 src/cpp/types/libsciast_la-arrayof.lo: src/cpp/types/arrayof.cpp
 @am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciast_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/cpp/types/libsciast_la-arrayof.lo -MD -MP -MF src/cpp/types/$(DEPDIR)/libsciast_la-arrayof.Tpo -c -o src/cpp/types/libsciast_la-arrayof.lo `test -f 'src/cpp/types/arrayof.cpp' || echo '$(srcdir)/'`src/cpp/types/arrayof.cpp
 @am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) src/cpp/types/$(DEPDIR)/libsciast_la-arrayof.Tpo src/cpp/types/$(DEPDIR)/libsciast_la-arrayof.Plo
index fd4d713..f12d04a 100644 (file)
@@ -688,6 +688,7 @@ lib /DEF:"$(ProjectDir)string_import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform
     <ClCompile Include="src\cpp\types\implicitlist.cpp" />
     <ClCompile Include="src\cpp\types\inspector.cpp" />
     <ClCompile Include="src\cpp\types\int.cpp" />
+    <ClCompile Include="src\cpp\types\internal.cpp" />
     <ClCompile Include="src\cpp\types\library.cpp" />
     <ClCompile Include="src\cpp\types\list.cpp" />
     <ClCompile Include="src\cpp\types\listdelete.cpp" />
index 89e3a4c..bdd9bca 100644 (file)
     <ClCompile Include="src\cpp\analysis\check_sign.cpp">
       <Filter>Source Files\analysis</Filter>
     </ClCompile>
+    <ClCompile Include="src\cpp\types\internal.cpp">
+      <Filter>Source Files\types</Filter>
+    </ClCompile>
   </ItemGroup>
 </Project>
\ No newline at end of file
index 88281b8..7f5c229 100644 (file)
@@ -29,7 +29,9 @@ struct TIType
 {
     static const std::wstring _boolean_, _ce_, _constant_, _fptr_, _function_, _int16_, _int32_, _int64_, _int8_, _library_, _list_, _mlist_, _polynomial_, _sparse_, _st_, _string_, _tlist_, _uint16_, _uint32_, _uint64_, _uint8_, _unknown_;
 
-    enum Type { EMPTY = 0, BOOLEAN, COMPLEX, CELL, DOUBLE, FUNCTION, INT16, INT32, INT64, INT8, LIST, LIBRARY, MACRO, MACROFILE, MLIST, POLYNOMIAL, STRING, SPARSE, STRUCT, TLIST, UNKNOWN, UINT16, UINT32, UINT64, UINT8, COUNT };
+    enum Type {
+        EMPTY = 0, BOOLEAN, COMPLEX, CELL, DOUBLE, FUNCTION, INT16, INT32, INT64, INT8, LIST, LIBRARY, MACRO, MACROFILE, MLIST, POLYNOMIAL, STRING, SPARSE, STRUCT, TLIST, UNKNOWN, UINT16, UINT32, UINT64, UINT8, COUNT
+    };
     Type type;
     SymbolicDimension rows;
     SymbolicDimension cols;
@@ -40,7 +42,7 @@ struct TIType
     TIType(GVN & gvn, const Type _type) : type(_type), rows(gvn, _type == EMPTY ? 0 : 1), cols(gvn, _type == EMPTY ? 0 : 1), scalar(_type != EMPTY) { }
     TIType(GVN & gvn, const Type _type, const int _rows, const int _cols) : type(_type), rows(gvn, _rows), cols(gvn, _cols), scalar(_rows == 1 && _cols == 1) { }
     TIType(GVN & gvn, Type _type, const SymbolicDimension & _rows, const SymbolicDimension & _cols) : type(_type), rows(_rows), cols(_cols), scalar(_rows == 1 && _cols == 1) { }
-    TIType(GVN & gvn, const Type _type, const bool _scalar) : type(_type), rows(gvn, _scalar ? 1. : -1.), cols(gvn, _scalar ? 1. : -1.), scalar(_scalar) { }
+    TIType(GVN & gvn, const Type _type, const bool _scalar) : type(_type), rows(gvn, _scalar ? 1 : -1), cols(gvn, _scalar ? 1 : -1), scalar(_scalar) { }
 
     inline bool hasValidDims() const
     {
@@ -183,57 +185,57 @@ struct TIType
         const bool kd = isKnownDims();
         switch (type)
         {
-            case EMPTY :
+            case EMPTY:
                 return "E";
-            case BOOLEAN :
-                return kd ? (scalar ? "Sb" : "Mb") : "Ub";
-            case COMPLEX :
-                return kd ? (scalar ? "Sc" : "Mc") : "Uc";
-            case CELL :
-                return kd ? (scalar ? "Sce" : "Mce") : "Uce";
-            case DOUBLE :
-                return kd ? (scalar ? "Sd" : "Md") : "Ud";
-            case FUNCTION :
-                return kd ? (scalar ? "Sfn" : "Mfn") : "Ufn";
-            case INT16 :
-                return kd ? (scalar ? "Si16" : "Mi16") : "Ui16";
-            case INT32 :
-                return kd ? (scalar ? "Si32" : "Mi32") : "Ui32";
-            case INT64 :
-                return kd ? (scalar ? "Si64" : "Mi64") : "Ui64";
-            case INT8 :
-                return kd ? (scalar ? "Si8" : "Mi8") : "Ui8";
-            case LIST :
-                return kd ? (scalar ? "Sl" : "Ml") : "Ul";
-            case LIBRARY :
-                return kd ? (scalar ? "Slb" : "Mlb") : "Ulb";
-            case MACRO :
-                return kd ? (scalar ? "Sm" : "Mm") : "Um";
-            case MACROFILE :
-                return kd ? (scalar ? "Smf" : "Mmf") : "Umf";
-            case MLIST :
-                return kd ? (scalar ? "Sml" : "Mml") : "Uml";
-            case POLYNOMIAL :
-                return kd ? (scalar ? "Sp" : "Mp") : "Up";
-            case STRING :
-                return kd ? (scalar ? "Ss" : "Ms") : "Us";
-            case SPARSE :
-                return kd ? (scalar ? "Ssp" : "Msp") : "Usp";
-            case STRUCT :
-                return kd ? (scalar ? "Sst" : "Mst") : "Ust";
-            case TLIST :
-                return kd ? (scalar ? "Stl" : "Mtl") : "Utl";
-            case UNKNOWN :
-                return kd ? (scalar ? "Su" : "Mu") : "Uu";
-            case UINT16 :
-                return kd ? (scalar ? "Sui16" : "Mui16") : "Uui16";
-            case UINT32 :
-                return kd ? (scalar ? "Sui32" : "Mui32") : "Uui32";
-            case UINT64 :
-                return kd ? (scalar ? "Sui64" : "Mui64") : "Uui64";
-            case UINT8 :
-                return kd ? (scalar ? "Sui8" : "Mui8") : "Uui8";
-            default :
+            case BOOLEAN:
+                return kd ? (scalar ? "S_b" : "M_b") : "U_b";
+            case COMPLEX:
+                return kd ? (scalar ? "S_c" : "M_c") : "U_c";
+            case CELL:
+                return kd ? (scalar ? "S_ce" : "M_ce") : "U_ce";
+            case DOUBLE:
+                return kd ? (scalar ? "S_d" : "M_d") : "U_d";
+            case FUNCTION:
+                return kd ? (scalar ? "S_fn" : "M_fn") : "U_fn";
+            case INT16:
+                return kd ? (scalar ? "S_i16" : "M_i16") : "U_i16";
+            case INT32:
+                return kd ? (scalar ? "S_i32" : "M_i32") : "U_i32";
+            case INT64:
+                return kd ? (scalar ? "S_i64" : "M_i64") : "U_i64";
+            case INT8:
+                return kd ? (scalar ? "S_i8" : "M_i8") : "U_i8";
+            case LIST:
+                return kd ? (scalar ? "S_l" : "M_l") : "U_l";
+            case LIBRARY:
+                return kd ? (scalar ? "S_lb" : "M_lb") : "U_lb";
+            case MACRO:
+                return kd ? (scalar ? "S_m" : "M_m") : "U_m";
+            case MACROFILE:
+                return kd ? (scalar ? "S_mf" : "M_mf") : "U_mf";
+            case MLIST:
+                return kd ? (scalar ? "S_ml" : "M_ml") : "U_ml";
+            case POLYNOMIAL:
+                return kd ? (scalar ? "S_p" : "M_p") : "U_p";
+            case STRING:
+                return kd ? (scalar ? "S_s" : "M_s") : "U_s";
+            case SPARSE:
+                return kd ? (scalar ? "S_sp" : "M_sp") : "U_sp";
+            case STRUCT:
+                return kd ? (scalar ? "S_st" : "M_st") : "U_st";
+            case TLIST:
+                return kd ? (scalar ? "S_tl" : "M_tl") : "U_tl";
+            case UNKNOWN:
+                return kd ? (scalar ? "S_u" : "M_u") : "U_u";
+            case UINT16:
+                return kd ? (scalar ? "S_ui16" : "M_ui16") : "U_ui16";
+            case UINT32:
+                return kd ? (scalar ? "S_ui32" : "M_ui32") : "U_ui32";
+            case UINT64:
+                return kd ? (scalar ? "S_ui64" : "M_ui64") : "U_ui64";
+            case UINT8:
+                return kd ? (scalar ? "S_ui8" : "M_ui8") : "U_ui8";
+            default:
                 return "??";
         }
     }
@@ -242,57 +244,57 @@ struct TIType
     {
         switch (ty)
         {
-            case EMPTY :
+            case EMPTY:
                 return "E";
-            case BOOLEAN :
-                return scalar ? "Sb" : "Mb";
-            case COMPLEX :
-                return scalar ? "Sc" : "Mc";
-            case CELL :
-                return scalar ? "Sce" : "Mce";
-            case DOUBLE :
-                return scalar ? "Sd" : "Md";
-            case FUNCTION :
-                return scalar ? "Sfn" : "Mfn";
-            case INT16 :
-                return scalar ? "Si16" : "Mi16";
-            case INT32 :
-                return scalar ? "Si32" : "Mi32";
-            case INT64 :
-                return scalar ? "Si64" : "Mi64";
-            case INT8 :
-                return scalar ? "Si8" : "Mi8";
-            case LIST :
-                return scalar ? "Sl" : "Ml";
-            case LIBRARY :
-                return scalar ? "Slb" : "Mlb";
-            case MACRO :
-                return scalar ? "Sm" : "Mm";
-            case MACROFILE :
-                return scalar ? "Smf" : "Mmf";
-            case MLIST :
-                return scalar ? "Sml" : "Mml";
-            case POLYNOMIAL :
-                return scalar ? "Sp" : "Mp";
-            case STRING :
-                return scalar ? "Ss" : "Ms";
-            case SPARSE :
-                return scalar ? "Ssp" : "Msp";
-            case STRUCT :
-                return scalar ? "Sst" : "Mst";
-            case TLIST :
-                return scalar ? "Stl" : "Mtl";
-            case UNKNOWN :
-                return scalar ? "Su" : "Mu";
-            case UINT16 :
-                return scalar ? "Sui16" : "Mui16";
-            case UINT32 :
-                return scalar ? "Sui32" : "Mui32";
-            case UINT64 :
-                return scalar ? "Sui64" : "Mui64";
-            case UINT8 :
-                return scalar ? "Sui8" : "Mui8";
-            default :
+            case BOOLEAN:
+                return scalar ? "S_b" : "M_b";
+            case COMPLEX:
+                return scalar ? "S_c" : "M_c";
+            case CELL:
+                return scalar ? "S_ce" : "M_ce";
+            case DOUBLE:
+                return scalar ? "S_d" : "M_d";
+            case FUNCTION:
+                return scalar ? "S_fn" : "M_fn";
+            case INT16:
+                return scalar ? "S_i16" : "M_i16";
+            case INT32:
+                return scalar ? "S_i32" : "M_i32";
+            case INT64:
+                return scalar ? "S_i64" : "M_i64";
+            case INT8:
+                return scalar ? "S_i8" : "M_i8";
+            case LIST:
+                return scalar ? "S_l" : "M_l";
+            case LIBRARY:
+                return scalar ? "S_lb" : "M_lb";
+            case MACRO:
+                return scalar ? "S_m" : "M_m";
+            case MACROFILE:
+                return scalar ? "S_mf" : "M_mf";
+            case MLIST:
+                return scalar ? "S_ml" : "M_ml";
+            case POLYNOMIAL:
+                return scalar ? "S_p" : "M_p";
+            case STRING:
+                return scalar ? "S_s" : "M_s";
+            case SPARSE:
+                return scalar ? "S_sp" : "M_sp";
+            case STRUCT:
+                return scalar ? "S_st" : "M_st";
+            case TLIST:
+                return scalar ? "S_tl" : "M_tl";
+            case UNKNOWN:
+                return scalar ? "S_u" : "M_u";
+            case UINT16:
+                return scalar ? "S_ui16" : "M_ui16";
+            case UINT32:
+                return scalar ? "S_ui32" : "M_ui32";
+            case UINT64:
+                return scalar ? "S_ui64" : "M_ui64";
+            case UINT8:
+                return scalar ? "S_ui8" : "M_ui8";
+            default:
                 return "??";
         }
     }
@@ -304,16 +306,15 @@ struct TIType
 
     inline static std::string get_binary_mangling(const std::string & pre, const TIType & l, const TIType & r)
     {
-        return pre + "_" + l.get_mangling() + r.get_mangling();
+        return pre + "_" + l.get_mangling() + "_" + r.get_mangling();
     }
 
     inline static std::string get_mangling(const std::string & pre, const std::vector<TIType> & types)
     {
         std::string s(pre);
-        s += "_";
         for (std::vector<TIType>::const_iterator i = types.begin(), end = types.end(); i != end; ++i)
         {
-            s += i->get_mangling();
+            s += "_" + i->get_mangling();
         }
         return s;
     }
@@ -322,29 +323,29 @@ struct TIType
     {
         switch (type)
         {
-            case EMPTY :
+            case EMPTY:
                 return sizeof(double);
-            case BOOLEAN :
+            case BOOLEAN:
                 return sizeof(int);
-            case DOUBLE :
+            case DOUBLE:
                 return sizeof(double);
-            case INT8 :
+            case INT8:
                 return sizeof(int8_t);
-            case INT16 :
+            case INT16:
                 return sizeof(int16_t);
-            case INT32 :
+            case INT32:
                 return sizeof(int32_t);
-            case INT64 :
+            case INT64:
                 return sizeof(int64_t);
-            case UINT8 :
+            case UINT8:
                 return sizeof(uint8_t);
-            case UINT16 :
+            case UINT16:
                 return sizeof(uint16_t);
-            case UINT32 :
+            case UINT32:
                 return sizeof(uint32_t);
-            case UINT64 :
+            case UINT64:
                 return sizeof(uint64_t);
-            default :
+            default:
                 return 0;
         }
     }
@@ -353,57 +354,57 @@ struct TIType
     {
         switch (t)
         {
-            case EMPTY :
+            case EMPTY:
                 return L"[]";
-            case BOOLEAN :
+            case BOOLEAN:
                 return L"boolean";
-            case COMPLEX :
+            case COMPLEX:
                 return L"complex";
-            case CELL :
+            case CELL:
                 return L"cell";
-            case DOUBLE :
+            case DOUBLE:
                 return L"double";
-            case FUNCTION :
+            case FUNCTION:
                 return L"function";
-            case INT16 :
+            case INT16:
                 return L"int16";
-            case INT32 :
+            case INT32:
                 return L"int32";
-            case INT64 :
+            case INT64:
                 return L"int64";
-            case INT8 :
+            case INT8:
                 return L"int8";
-            case LIST :
+            case LIST:
                 return L"list";
-            case LIBRARY :
+            case LIBRARY:
                 return L"library";
-            case MACRO :
+            case MACRO:
                 return L"macro";
-            case MACROFILE :
+            case MACROFILE:
                 return L"macrofile";
-            case MLIST :
+            case MLIST:
                 return L"mlist";
-            case POLYNOMIAL :
+            case POLYNOMIAL:
                 return L"polynomial";
-            case STRING :
+            case STRING:
                 return L"string";
-            case SPARSE :
+            case SPARSE:
                 return L"sparse";
-            case STRUCT :
+            case STRUCT:
                 return L"struct";
-            case TLIST :
+            case TLIST:
                 return L"tlist";
-            case UNKNOWN :
+            case UNKNOWN:
                 return L"unknown";
-            case UINT16 :
+            case UINT16:
                 return L"uint16";
-            case UINT32 :
+            case UINT32:
                 return L"uint32";
-            case UINT64 :
+            case UINT64:
                 return L"uint64";
-            case UINT8 :
+            case UINT8:
                 return L"uint8";
-            default :
+            default:
                 return L"unknown";
         }
     }
@@ -417,57 +418,57 @@ struct TIType
     {
         switch (t)
         {
-            case EMPTY :
+            case EMPTY:
                 return _constant_;
-            case BOOLEAN :
+            case BOOLEAN:
                 return _boolean_;
-            case COMPLEX :
+            case COMPLEX:
                 return _constant_;
-            case CELL :
+            case CELL:
                 return _ce_;
-            case DOUBLE :
+            case DOUBLE:
                 return _constant_;
-            case FUNCTION :
+            case FUNCTION:
                 return _fptr_;
-            case INT16 :
+            case INT16:
                 return _int16_;
-            case INT32 :
+            case INT32:
                 return _int32_;
-            case INT64 :
+            case INT64:
                 return _int64_;
-            case INT8 :
+            case INT8:
                 return _int8_;
-            case LIST :
+            case LIST:
                 return _list_;
-            case LIBRARY :
+            case LIBRARY:
                 return _library_;
-            case MACRO :
+            case MACRO:
                 return _function_;
-            case MACROFILE :
+            case MACROFILE:
                 return _function_;
-            case MLIST :
+            case MLIST:
                 return _mlist_;
-            case POLYNOMIAL :
+            case POLYNOMIAL:
                 return _polynomial_;
-            case STRING :
+            case STRING:
                 return _string_;
-            case SPARSE :
+            case SPARSE:
                 return _sparse_;
-            case STRUCT :
+            case STRUCT:
                 return _st_;
-            case TLIST :
+            case TLIST:
                 return _tlist_;
-            case UNKNOWN :
+            case UNKNOWN:
                 return _unknown_;
-            case UINT16 :
+            case UINT16:
                 return _uint16_;
-            case UINT32 :
+            case UINT32:
                 return _uint32_;
-            case UINT64 :
+            case UINT64:
                 return _uint64_;
-            case UINT8 :
+            case UINT8:
                 return _uint8_;
-            default :
+            default:
                 return _unknown_;
         }
     }
@@ -481,57 +482,57 @@ struct TIType
     {
         switch (t)
         {
-            case EMPTY :
+            case EMPTY:
                 return 1;
-            case BOOLEAN :
+            case BOOLEAN:
                 return 4;
-            case COMPLEX :
+            case COMPLEX:
                 return 1;
-            case CELL :
+            case CELL:
                 return 17;
-            case DOUBLE :
+            case DOUBLE:
                 return 1;
-            case FUNCTION :
+            case FUNCTION:
                 return 130;
-            case INT16 :
+            case INT16:
                 return 8;
-            case INT32 :
+            case INT32:
                 return 8;
-            case INT64 :
+            case INT64:
                 return 8;
-            case INT8 :
+            case INT8:
                 return 8;
-            case LIST :
+            case LIST:
                 return 15;
-            case LIBRARY :
+            case LIBRARY:
                 return 14;
-            case MACRO :
+            case MACRO:
                 return 11;
-            case MACROFILE :
+            case MACROFILE:
                 return 13;
-            case MLIST :
+            case MLIST:
                 return 17;
-            case POLYNOMIAL :
+            case POLYNOMIAL:
                 return 2;
-            case STRING :
+            case STRING:
                 return 10;
-            case SPARSE :
+            case SPARSE:
                 return 5;
-            case STRUCT :
+            case STRUCT:
                 return 17;
-            case TLIST :
+            case TLIST:
                 return 16;
-            case UNKNOWN :
+            case UNKNOWN:
                 return -1;
-            case UINT16 :
+            case UINT16:
                 return 8;
-            case UINT32 :
+            case UINT32:
                 return 8;
-            case UINT64 :
+            case UINT64:
                 return 8;
-            case UINT8 :
+            case UINT8:
                 return 8;
-            default :
+            default:
                 return -1;
         }
     }
@@ -540,82 +541,82 @@ struct TIType
     {
         switch (type.type)
         {
-            case EMPTY :
+            case EMPTY:
                 out << L"[]";
                 break;
-            case BOOLEAN :
+            case BOOLEAN:
                 out << L"boolean";
                 break;
-            case COMPLEX :
+            case COMPLEX:
                 out << L"complex";
                 break;
-            case CELL :
+            case CELL:
                 out << L"cell";
                 break;
-            case DOUBLE :
+            case DOUBLE:
                 out << L"double";
                 break;
-            case FUNCTION :
+            case FUNCTION:
                 out << L"function";
                 break;
-            case INT16 :
+            case INT16:
                 out << L"int16";
                 break;
-            case INT32 :
+            case INT32:
                 out << L"int32";
                 break;
-            case INT64 :
+            case INT64:
                 out << L"int64";
                 break;
-            case INT8 :
+            case INT8:
                 out << L"int8";
                 break;
-            case LIST :
+            case LIST:
                 out << L"list";
                 break;
-            case LIBRARY :
+            case LIBRARY:
                 out << L"library";
                 break;
-            case MACRO :
+            case MACRO:
                 out << L"macro";
                 break;
-            case MACROFILE :
+            case MACROFILE:
                 out << L"macrofile";
                 break;
-            case MLIST :
+            case MLIST:
                 out << L"mlist";
                 break;
-            case POLYNOMIAL :
+            case POLYNOMIAL:
                 out << L"polynomial";
                 break;
-            case STRING :
+            case STRING:
                 out << L"string";
                 break;
-            case SPARSE :
+            case SPARSE:
                 out << L"sparse";
                 break;
-            case STRUCT :
+            case STRUCT:
                 out << L"struct";
                 break;
-            case TLIST :
+            case TLIST:
                 out << L"tlist";
                 break;
-            case UNKNOWN :
+            case UNKNOWN:
                 out << L"unknown";
                 break;
-            case UINT16 :
+            case UINT16:
                 out << L"uint16";
                 break;
-            case UINT32 :
+            case UINT32:
                 out << L"uint32";
                 break;
-            case UINT64 :
+            case UINT64:
                 out << L"uint64";
                 break;
-            case UINT8 :
+            case UINT8:
                 out << L"uint8";
                 break;
-            default :
+            default:
                 break;
         }
 
@@ -691,4 +692,4 @@ struct hash<analysis::TIType>
 };
 } // namespace std
 
-#endif // __TITYPE_HXX__
\ No newline at end of file
+#endif // __TITYPE_HXX__
index d3728aa..9428bf3 100644 (file)
@@ -390,46 +390,11 @@ public :
     InternalType* extract(typed_list* _pArgs);
     bool resize(int* _piDims, int _iDims);
 
-    virtual bool invoke(typed_list & in, optional_list & /*opt*/, int /*_iRetCount*/, typed_list & out, ast::ConstVisitor & /*execFunc*/, const ast::Exp & e)
-    {
-        if (in.size() == 0)
-        {
-            out.push_back(this);
-        }
-        else
-        {
-            InternalType * _out = extract(&in);
-            if (!_out)
-            {
-                std::wostringstream os;
-                os << _W("Invalid index.\n");
-                throw ast::InternalError(os.str(), 999, e.getLocation());
-            }
-            out.push_back(_out);
-        }
-
-        return true;
-    }
-
-    virtual bool isInvokable() const
-    {
-        return true;
-    }
-
-    virtual bool hasInvokeOption() const
-    {
-        return false;
-    }
-
-    virtual int getInvokeNbIn()
-    {
-        return -1;
-    }
-
-    virtual int getInvokeNbOut()
-    {
-        return 1;
-    }
+    virtual bool invoke(typed_list & in, optional_list & /*opt*/, int /*_iRetCount*/, typed_list & out, ast::ConstVisitor & /*execFunc*/, const ast::Exp & e);
+    virtual bool isInvokable() const;
+    virtual bool hasInvokeOption() const;
+    virtual int getInvokeNbIn();
+    virtual int getInvokeNbOut();
 
     bool reshape(int _iNewRows, int _iNewCols)
     {
index e19fe57..a533e2a 100644 (file)
@@ -25,7 +25,6 @@
 #include "arrayof.hxx"
 #include "bool.hxx"
 #include "types_transposition.hxx"
-#include "doubleexp.hxx"
 
 namespace types
 {
index e80f3ec..4319328 100644 (file)
@@ -18,7 +18,8 @@
 #include <vector>
 #include <map>
 #include <iostream>
-#include <string.h>
+#include <algorithm>
+#include <string>
 
 extern "C"
 {
@@ -26,9 +27,6 @@ extern "C"
 #include "configvariable_interface.h"
 }
 
-#include "exp.hxx" // for invoke
-#include "visitor.hxx" // for invoke
-#include "callexp.hxx"
 #include "localization.hxx"
 #ifndef NDEBUG
 #include "inspector.hxx"
@@ -44,8 +42,13 @@ extern "C"
 #define killMe() _killme(__FILE__, __LINE__)
 #endif
 
+#include "visitor.hxx"
+
+class Location;
+
 namespace types
 {
+
 /*
 ** List of types
 */
@@ -195,6 +198,7 @@ protected :
     }
 
 public :
+
     virtual                         ~InternalType()
     {
 #ifdef _SCILAB_DEBUGREF_
@@ -206,33 +210,16 @@ public :
         }
 #endif
     }
-    virtual void                    whoAmI(void)
-    {
-        std::cout << "types::Internal";
-    }
 
-    virtual bool                    isAssignable(void)
-    {
-        return false;
-    }
+    virtual void                    whoAmI(void);
+    virtual bool                    isAssignable(void);
     virtual ScilabType              getType(void) = 0 ; //{ return ScilabInternal; }
     virtual ScilabId                getId(void) = 0 ; //{ return ScilabInternal; }
-
-    virtual bool                    hasToString()
-    {
-        return true;
-    }
+    virtual bool                    hasToString();
     virtual bool                    toString(std::wostringstream& ostr) = 0;
-
-    virtual std::wstring            toStringInLine()
-    {
-        return getTypeStr();
-    }
+    virtual std::wstring            toStringInLine();
     virtual InternalType*           clone(void) = 0;
-    virtual ast::Exp*               getExp(const Location& /*loc*/)
-    {
-        return nullptr;
-    }
+    virtual ast::Exp*               getExp(const Location& /*loc*/);
 
 #ifdef _SCILAB_DEBUGREF_
     inline void _killme(const char * f, int l)
@@ -315,69 +302,22 @@ public :
         return m_iRef;
     }
 
-    virtual bool isTrue()
-    {
-        return false;
-    }
-
-    virtual bool neg(InternalType *& /*out*/)
-    {
-        return false;
-    }
-
-    virtual bool transpose(InternalType *& /*out*/)
-    {
-        return false;
-    }
-
-    virtual bool adjoint(InternalType *& out)
-    {
-        return transpose(out);
-    }
-
-    virtual bool isFieldExtractionOverloadable() const
-    {
-        return false;
-    }
-
-    virtual bool invoke(typed_list & /*in*/, optional_list & /*opt*/, int /*_iRetCount*/, typed_list & /*out*/, ast::ConstVisitor & /*execFunc*/, const ast::Exp & /*e*/)
-    {
-        return false;
-    }
-
-    virtual bool isInvokable() const
-    {
-        return false;
-    }
-
-    virtual bool hasInvokeOption() const
-    {
-        return false;
-    }
-
-    virtual int getInvokeNbIn()
-    {
-        return -1;
-    }
-
-    virtual int getInvokeNbOut()
-    {
-        return -1;
-    }
-
+    virtual bool isTrue();
+    virtual bool neg(InternalType *& /*out*/);
+    virtual bool transpose(InternalType *& /*out*/);
+    virtual bool adjoint(InternalType *& out);
+    virtual bool isFieldExtractionOverloadable() const;
+    virtual bool invoke(typed_list & /*in*/, optional_list & /*opt*/, int /*_iRetCount*/, typed_list & /*out*/, ast::ConstVisitor & /*execFunc*/, const ast::Exp & /*e*/);
+    virtual bool isInvokable() const;
+    virtual bool hasInvokeOption() const;
+    virtual int getInvokeNbIn();
+    virtual int getInvokeNbOut();
     /* return type as string ( double, int, cell, list, ... )*/
     virtual std::wstring            getTypeStr() = 0;
     /* return type as short string ( s, i, ce, l, ... )*/
     virtual std::wstring            getShortTypeStr() = 0;
-
-    virtual bool                    operator==(const InternalType& it)
-    {
-        return (getType() == (const_cast<InternalType *>(&it))->getType());
-    }
-    virtual bool                    operator!=(const InternalType& it)
-    {
-        return !(*this == it);
-    }
+    virtual bool                    operator==(const InternalType& it);
+    virtual bool                    operator!=(const InternalType& it);
 
     /**
     ** GenericType
@@ -390,206 +330,65 @@ public :
         return static_cast<T*>(this);
     }
 
-    virtual bool                    isGenericType(void)
-    {
-        return false;
-    }
-    virtual bool                    isArrayOf(void)
-    {
-        return false;
-    }
-    virtual bool                    isString(void)
-    {
-        return false;
-    }
-    virtual bool                    isDouble(void)
-    {
-        return false;
-    }
-    virtual bool                    isSparse(void)
-    {
-        return false;
-    }
-    virtual bool                    isSparseBool(void)
-    {
-        return false;
-    }
-    virtual bool                    isFloat(void)
-    {
-        return false;
-    }
-    virtual bool                    isInt(void)
-    {
-        return false;
-    }
-    virtual bool                    isInt8(void)
-    {
-        return false;
-    }
-    virtual bool                    isUInt8(void)
-    {
-        return false;
-    }
-    virtual bool                    isInt16(void)
-    {
-        return false;
-    }
-    virtual bool                    isUInt16(void)
-    {
-        return false;
-    }
-    virtual bool                    isInt32(void)
-    {
-        return false;
-    }
-    virtual bool                    isUInt32(void)
-    {
-        return false;
-    }
-    virtual bool                    isInt64(void)
-    {
-        return false;
-    }
-    virtual bool                    isUInt64(void)
-    {
-        return false;
-    }
-    virtual bool                    isBool(void)
-    {
-        return false;
-    }
-    virtual bool                    isPoly(void)
-    {
-        return false;
-    }
-    virtual bool                    isSinglePoly(void)
-    {
-        return false;
-    }
-    virtual bool                    isCallable(void)
-    {
-        return false;
-    }
-    virtual bool                    isFunction(void)
-    {
-        return false;
-    }
-    virtual bool                    isMacro(void)
-    {
-        return false;
-    }
-    virtual bool                    isMacroFile(void)
-    {
-        return false;
-    }
-    virtual bool                    isContainer(void)
-    {
-        return false;
-    }
-    virtual bool                    isList(void)
-    {
-        return false;
-    }
-    virtual bool                    isStruct(void)
-    {
-        return false;
-    }
-    virtual bool                    isSingleStruct(void)
-    {
-        return false;
-    }
-    virtual bool                    isCell(void)
-    {
-        return false;
-    }
-    virtual bool                    isTList(void)
-    {
-        return false;
-    }
-    virtual bool                    isMList(void)
-    {
-        return false;
-    }
-    virtual bool                    isImplicitList(void)
-    {
-        return false;
-    }
-    virtual bool                    isColon(void)
-    {
-        return false;
-    }
-    virtual bool                    isDollar(void)
-    {
-        return false;
-    }
-    virtual bool                    isFile(void)
-    {
-        return false;
-    }
-    virtual bool                    isHandle(void)
-    {
-        return false;
-    }
-    virtual bool                    isSingleHandle(void)
-    {
-        return false;
-    }
-    virtual bool                    isThreadId(void)
-    {
-        return false;
-    }
-    virtual bool                    isListOperation(void)
-    {
-        return false;
-    }
-    virtual bool                    isListDelete(void)
-    {
-        return false;
-    }
-    virtual bool                    isListInsert(void)
-    {
-        return false;
-    }
-    virtual bool                    isListUndefined(void)
-    {
-        return false;
-    }
-    virtual bool                    isPointer(void)
-    {
-        return false;
-    }
-    virtual bool                    isLibrary(void)
-    {
-        return false;
-    }
-    virtual bool                    isUserType(void)
-    {
-        return false;
-    }
-
-    void clearPrintState()
-    {
-        m_bPrintFromStart = true;
-        m_iSavePrintState = 0;
-        m_iRows1PrintState = 0;
-        m_iCols1PrintState = 0;
-        m_iRows2PrintState = 0;
-        m_iCols2PrintState = 0;
-    }
-
+    virtual bool isGenericType(void);
+    virtual bool isArrayOf(void);
+    virtual bool isString(void);
+    virtual bool isDouble(void);
+    virtual bool isSparse(void);
+    virtual bool isSparseBool(void);
+    virtual bool isFloat(void);
+    virtual bool isInt(void);
+    virtual bool isInt8(void);
+    virtual bool isUInt8(void);
+    virtual bool isInt16(void);
+    virtual bool isUInt16(void);
+    virtual bool isInt32(void);
+    virtual bool isUInt32(void);
+    virtual bool isInt64(void);
+    virtual bool isUInt64(void);
+    virtual bool isBool(void);
+    virtual bool isPoly(void);
+    virtual bool isSinglePoly(void);
+    virtual bool isCallable(void);
+    virtual bool isFunction(void);
+    virtual bool isMacro(void);
+    virtual bool isMacroFile(void);
+    virtual bool isContainer(void);
+    virtual bool isList(void);
+    virtual bool isStruct(void);
+    virtual bool isSingleStruct(void);
+    virtual bool isCell(void);
+    virtual bool isTList(void);
+    virtual bool isMList(void);
+    virtual bool isImplicitList(void);
+    virtual bool isColon(void);
+    virtual bool isDollar(void);
+    virtual bool isFile(void);
+    virtual bool isHandle(void);
+    virtual bool isSingleHandle(void);
+    virtual bool isThreadId(void);
+    virtual bool isListOperation(void);
+    virtual bool isListDelete(void);
+    virtual bool isListInsert(void);
+    virtual bool isListUndefined(void);
+    virtual bool isPointer(void);
+    virtual bool isLibrary(void);
+    virtual bool isUserType(void);
+
+    void clearPrintState();
 
 protected :
-    int                             m_iRef;
+    int          m_iRef;
     //use to know if we can delete this variables or if it's link to a scilab variable.
-    bool                            m_bAllowDelete;
+    bool         m_bAllowDelete;
 
     /*variables to manage print taking care of lines*/
-    bool                    m_bPrintFromStart;
-    int                     m_iSavePrintState;
-    int                     m_iRows1PrintState;
-    int                     m_iCols1PrintState;
-    int                     m_iRows2PrintState;
-    int                     m_iCols2PrintState;
+    bool m_bPrintFromStart;
+    int  m_iSavePrintState;
+    int  m_iRows1PrintState;
+    int  m_iCols1PrintState;
+    int  m_iRows2PrintState;
+    int  m_iCols2PrintState;
 
     bool bKillMe;
 
index 5d4482a..4081694 100644 (file)
 
 #include "function.hxx"
 #include "visitor.hxx"
-#include "opexp.hxx"
 
 class EXTERN_AST Overload
 {
+
 public:
     /**
      ** This function will build an overload function name
@@ -30,14 +30,14 @@ public:
     /**
      */
     static types::Function::ReturnValue generateNameAndCall(std::wstring _stFunctionName, types::typed_list &in, int _iRetCount,
-            types::typed_list &out, ast::ConstVisitor *_execMe, bool _isOperator = false);
+            types::typed_list &out, ast::ConstVisitor *_execMe = nullptr, bool _isOperator = false);
 
     /**
      */
     static types::Function::ReturnValue call(std::wstring _stFunctionName, types::typed_list &in, int _iRetCount,
-            types::typed_list &out, ast::ConstVisitor *_execMe, bool _isOperator = false);
+            types::typed_list &out, ast::ConstVisitor *_execMe = nullptr, bool _isOperator = false);
 
-    static std::wstring getNameFromOper(ast::OpExp::Oper);
+    static std::wstring getNameFromOper(const int);
 
 };
 
index f6d55ec..b68a3d9 100644 (file)
@@ -203,49 +203,12 @@ struct EXTERN_AST Sparse : GenericType
 
      */
     InternalType* extract(typed_list* _pArgs);
-
-    virtual bool invoke(typed_list & in, optional_list & /*opt*/, int /*_iRetCount*/, typed_list & out, ast::ConstVisitor & /*execFunc*/, const ast::Exp & e)
-    {
-        if (in.size() == 0)
-        {
-            out.push_back(this);
-        }
-        else
-        {
-            InternalType * _out = extract(&in);
-            if (!_out)
-            {
-                std::wostringstream os;
-                os << _W("Invalid index.\n");
-                throw ast::InternalError(os.str(), 999, e.getLocation());
-            }
-            out.push_back(_out);
-        }
-
-        return true;
-    }
-
-    virtual bool isInvokable() const
-    {
-        return true;
-    }
-
-    virtual bool hasInvokeOption() const
-    {
-        return false;
-    }
-
-    virtual int getInvokeNbIn()
-    {
-        return -1;
-    }
-
-    virtual int getInvokeNbOut()
-    {
-        return 1;
-    }
-
     Sparse* extract(int _iSeqCount, int* _piSeqCoord, int* _piMaxDim, int* _piDimSize, bool _bAsVector) SPARSE_CONST;
+    virtual bool invoke(typed_list & in, optional_list & /*opt*/, int /*_iRetCount*/, typed_list & out, ast::ConstVisitor & /*execFunc*/, const ast::Exp & e);
+    virtual bool isInvokable() const;
+    virtual bool hasInvokeOption() const;
+    virtual int getInvokeNbIn();
+    virtual int getInvokeNbOut();
 
     /*
        change the sign (inplace).
@@ -577,46 +540,11 @@ struct EXTERN_AST SparseBool : GenericType
     SparseBool* extract(int _iSeqCount, int* _piSeqCoord, int* _piMaxDim, int* _piDimSize, bool _bAsVector) SPARSE_CONST;
     InternalType* extract(typed_list* _pArgs);
 
-    virtual bool invoke(typed_list & in, optional_list &/*opt*/, int /*_iRetCount*/, typed_list & out, ast::ConstVisitor & /*execFunc*/, const ast::Exp & e)
-    {
-        if (in.size() == 0)
-        {
-            out.push_back(this);
-        }
-        else
-        {
-            InternalType * _out = extract(&in);
-            if (!_out)
-            {
-                std::wostringstream os;
-                os << _W("Invalid index.\n");
-                throw ast::InternalError(os.str(), 999, e.getLocation());
-            }
-            out.push_back(_out);
-        }
-
-        return true;
-    }
-
-    virtual bool isInvokable() const
-    {
-        return true;
-    }
-
-    virtual bool hasInvokeOption() const
-    {
-        return false;
-    }
-
-    virtual int getInvokeNbIn()
-    {
-        return -1;
-    }
-
-    virtual int getInvokeNbOut()
-    {
-        return 1;
-    }
+    virtual bool invoke(typed_list & in, optional_list &/*opt*/, int /*_iRetCount*/, typed_list & out, ast::ConstVisitor & /*execFunc*/, const ast::Exp & e);
+    virtual bool isInvokable() const;
+    virtual bool hasInvokeOption() const;
+    virtual int getInvokeNbIn();
+    virtual int getInvokeNbOut();
 
     bool transpose(InternalType *& out);
 
index a54e751..51f950d 100644 (file)
@@ -10,7 +10,6 @@
 *
 */
 
-#include <wchar.h>
 #include "treevisitor.hxx"
 #include "printvisitor.hxx"
 #include "execvisitor.hxx"
@@ -281,7 +280,7 @@ void TreeVisitor::visit(const OpExp &e)
 
     switch (e.getOper())
     {
-            // Arithmetics.
+        // Arithmetics.
         case OpExp::plus:
             tmp = new types::String(SCI_PLUS);
             break;
@@ -301,7 +300,7 @@ void TreeVisitor::visit(const OpExp &e)
         case OpExp::power:
             tmp = new types::String(SCI_POWER);
             break;
-            // Element wise.
+        // Element wise.
         case OpExp::dottimes:
             tmp = new types::String(SCI_DOTTIMES);
             break;
@@ -314,7 +313,7 @@ void TreeVisitor::visit(const OpExp &e)
         case OpExp::dotpower:
             tmp = new types::String(SCI_DOTPOWER);
             break;
-            // Kroneckers
+        // Kroneckers
         case OpExp::krontimes:
             tmp = new types::String(SCI_KRONTIMES);
             break;
@@ -324,7 +323,7 @@ void TreeVisitor::visit(const OpExp &e)
         case OpExp::kronldivide:
             tmp = new types::String(SCI_KRONLDIVIDE);
             break;
-            // Control
+        // Control
         case OpExp::controltimes:
             tmp = new types::String(SCI_CONTROLTIMES);
             break;
@@ -334,7 +333,7 @@ void TreeVisitor::visit(const OpExp &e)
         case OpExp::controlldivide:
             tmp = new types::String(SCI_CONTROLLDIVIDE);
             break;
-            // Comparisons
+        // Comparisons
         case OpExp::eq:
             tmp = new types::String(SCI_EQ);
             break;
index a2dd8ae..b99c1ed 100644 (file)
@@ -599,11 +599,9 @@ InternalType* callOverload(const ast::Exp& e, std::wstring _strType, typed_list*
     // For insertion in TList, call normal insertion if overload doesn't exits
     if ((_dest  && _dest->isTList() && pFunc == NULL) == false || _source->isListDelete())
     {
-        ast::ExecVisitor exec;
-
         try
         {
-            ret = Overload::call(function_name, in, 1, out, &exec);
+            ret = Overload::call(function_name, in, 1, out);
         }
         catch (const ast::InternalError& error)
         {
index 1877f1d..5dfd19f 100644 (file)
@@ -26,6 +26,7 @@
 #include "macrofile.hxx"
 #include "overload.hxx"
 #include "user.hxx"
+#include "opexp.hxx"
 
 using namespace types;
 
index 6e600aa..41902a5 100644 (file)
@@ -26,6 +26,7 @@
 #include "macrofile.hxx"
 #include "overload.hxx"
 #include "user.hxx"
+#include "opexp.hxx"
 
 using namespace types;
 
index 92c730a..5e9ba58 100644 (file)
@@ -10,8 +10,7 @@
  *
  */
 
-#include <stdlib.h>
-
+#include <algorithm>
 #include "configvariable.hxx"
 extern "C"
 {
index ae7e583..b005da4 100644 (file)
@@ -10,8 +10,6 @@
  *
  */
 
-#include <stdlib.h>
-
 #include "configvariable.hxx"
 #include "string.hxx"
 #include "context.hxx"
index 35dfd85..74a5ba5 100644 (file)
@@ -16,6 +16,7 @@
 #include "singlepoly.hxx"
 #include "singlestruct.hxx"
 #include "type_traits.hxx"
+#include "exp.hxx"
 
 extern "C"
 {
@@ -1615,6 +1616,52 @@ bool ArrayOf<T>::neg(InternalType *& out)
     return true;
 }
 
+template<typename T>
+bool ArrayOf<T>::invoke(typed_list & in, optional_list & /*opt*/, int /*_iRetCount*/, typed_list & out, ast::ConstVisitor & /*execFunc*/, const ast::Exp & e)
+{
+    if (in.size() == 0)
+    {
+        out.push_back(this);
+    }
+    else
+    {
+        InternalType * _out = extract(&in);
+        if (!_out)
+        {
+            std::wostringstream os;
+            os << _W("Invalid index.\n");
+            throw ast::InternalError(os.str(), 999, e.getLocation());
+        }
+        out.push_back(_out);
+    }
+
+    return true;
+}
+
+template<typename T>
+bool ArrayOf<T>::isInvokable() const
+{
+    return true;
+}
+
+template<typename T>
+bool ArrayOf<T>::hasInvokeOption() const
+{
+    return false;
+}
+
+template<typename T>
+int ArrayOf<T>::getInvokeNbIn()
+{
+    return -1;
+}
+
+template<typename T>
+int ArrayOf<T>::getInvokeNbOut()
+{
+    return 1;
+}
+
 
 // used to allow definition of ArrayOf methode in this cpp file.
 template class EXTERN_AST ArrayOf < char >;
index f0187f4..7c6fe95 100644 (file)
@@ -14,6 +14,7 @@
 #include <vector>
 #include "callable.hxx"
 #include "configvariable.hxx"
+#include "exp.hxx"
 
 namespace types
 {
index c17f16a..2f6203d 100644 (file)
 
 extern "C"
 {
-#include <stdio.h>
 #include "localization.h"
 #include "os_string.h"
 #include "sci_malloc.h"
 }
 
-using namespace std;
-
 namespace types
 {
 /*****************
index e2d12b5..87220f3 100644 (file)
@@ -19,6 +19,7 @@
 #include "scilabWrite.hxx"
 #include "type_traits.hxx"
 #include "numericconstants.hxx"
+#include "doubleexp.hxx"
 
 #ifndef NDEBUG
 #include "inspector.hxx"
index e98c9b8..a6dddd7 100644 (file)
@@ -1,7 +1,7 @@
 /*
 *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 *  Copyright (C) 2008-2008 - DIGITEO - Antoine ELIAS
- *  Copyright (C) 2014 - Scilab Enterprises - Calixte DENIZET
+*  Copyright (C) 2014 - Scilab Enterprises - Calixte DENIZET
 *
 *  This file must be used under the terms of the CeCILL.
 *  This source file is licensed as described in the file COPYING, which
diff --git a/scilab/modules/ast/src/cpp/types/internal.cpp b/scilab/modules/ast/src/cpp/types/internal.cpp
new file mode 100644 (file)
index 0000000..2ef88b7
--- /dev/null
@@ -0,0 +1,335 @@
+/*
+*  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+*  Copyright (C) 2015 - Scilab Enterprises - Calixte DENIZET
+*
+*  This file must be used under the terms of the CeCILL.
+*  This source file is licensed as described in the file COPYING, which
+*  you should have received as part of this distribution.  The terms
+*  are also available at
+*  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+*
+*/
+
+#include "exp.hxx" // for invoke
+#include "callexp.hxx"
+
+#include "internal.hxx"
+
+namespace types
+{
+
+void InternalType::whoAmI(void)
+{
+    std::cout << "types::Internal";
+}
+
+bool InternalType::isAssignable(void)
+{
+    return false;
+}
+
+bool InternalType::hasToString()
+{
+    return true;
+}
+
+std::wstring InternalType::toStringInLine()
+{
+    return getTypeStr();
+}
+
+ast::Exp * InternalType::getExp(const Location& /*loc*/)
+{
+    return nullptr;
+}
+
+bool InternalType::isTrue()
+{
+    return false;
+}
+
+bool InternalType::neg(InternalType *& /*out*/)
+{
+    return false;
+}
+
+bool InternalType::transpose(InternalType *& /*out*/)
+{
+    return false;
+}
+
+bool InternalType::adjoint(InternalType *& out)
+{
+    return transpose(out);
+}
+
+bool InternalType::isFieldExtractionOverloadable() const
+{
+    return false;
+}
+
+bool InternalType::invoke(typed_list & /*in*/, optional_list & /*opt*/, int /*_iRetCount*/, typed_list & /*out*/, ast::ConstVisitor & /*execFunc*/, const ast::Exp & /*e*/)
+{
+    return false;
+}
+
+bool InternalType::isInvokable() const
+{
+    return false;
+}
+
+bool InternalType::hasInvokeOption() const
+{
+    return false;
+}
+
+int InternalType::getInvokeNbIn()
+{
+    return -1;
+}
+
+int InternalType::getInvokeNbOut()
+{
+    return -1;
+}
+
+bool InternalType::operator==(const InternalType& it)
+{
+    return (getType() == (const_cast<InternalType *>(&it))->getType());
+}
+
+bool InternalType::operator!=(const InternalType& it)
+{
+    return !(*this == it);
+}
+
+bool InternalType::isGenericType(void)
+{
+    return false;
+}
+
+bool InternalType::isArrayOf(void)
+{
+    return false;
+}
+
+bool InternalType::isString(void)
+{
+    return false;
+}
+
+bool InternalType::isDouble(void)
+{
+    return false;
+}
+
+bool InternalType::isSparse(void)
+{
+    return false;
+}
+
+bool InternalType::isSparseBool(void)
+{
+    return false;
+}
+
+bool InternalType::isFloat(void)
+{
+    return false;
+}
+
+bool InternalType::isInt(void)
+{
+    return false;
+}
+bool InternalType::isInt8(void)
+{
+    return false;
+}
+
+bool InternalType::isUInt8(void)
+{
+    return false;
+}
+
+bool InternalType::isInt16(void)
+{
+    return false;
+}
+
+bool InternalType::isUInt16(void)
+{
+    return false;
+}
+
+bool InternalType::isInt32(void)
+{
+    return false;
+}
+
+bool InternalType::isUInt32(void)
+{
+    return false;
+}
+
+bool InternalType::isInt64(void)
+{
+    return false;
+}
+
+bool InternalType::isUInt64(void)
+{
+    return false;
+}
+
+bool InternalType::isBool(void)
+{
+    return false;
+}
+
+bool InternalType::isPoly(void)
+{
+    return false;
+}
+
+bool InternalType::isSinglePoly(void)
+{
+    return false;
+}
+
+bool InternalType::isCallable(void)
+{
+    return false;
+}
+
+bool InternalType::isFunction(void)
+{
+    return false;
+}
+
+bool InternalType::isMacro(void)
+{
+    return false;
+}
+
+bool InternalType::isMacroFile(void)
+{
+    return false;
+}
+
+bool InternalType::isContainer(void)
+{
+    return false;
+}
+
+bool InternalType::isList(void)
+{
+    return false;
+}
+
+bool InternalType::isStruct(void)
+{
+    return false;
+}
+
+bool InternalType::isSingleStruct(void)
+{
+    return false;
+}
+
+bool InternalType::isCell(void)
+{
+    return false;
+}
+
+bool InternalType::isTList(void)
+{
+    return false;
+}
+
+bool InternalType::isMList(void)
+{
+    return false;
+}
+
+bool InternalType::isImplicitList(void)
+{
+    return false;
+}
+
+bool InternalType::isColon(void)
+{
+    return false;
+}
+
+bool InternalType::isDollar(void)
+{
+    return false;
+}
+
+bool InternalType::isFile(void)
+{
+    return false;
+}
+
+bool InternalType::isHandle(void)
+{
+    return false;
+}
+
+bool InternalType::isSingleHandle(void)
+{
+    return false;
+}
+
+bool InternalType::isThreadId(void)
+{
+    return false;
+}
+
+bool InternalType::isListOperation(void)
+{
+    return false;
+}
+
+bool InternalType::isListDelete(void)
+{
+    return false;
+}
+
+bool InternalType::isListInsert(void)
+{
+    return false;
+}
+
+bool InternalType::isListUndefined(void)
+{
+    return false;
+}
+
+bool InternalType::isPointer(void)
+{
+    return false;
+}
+
+bool InternalType::isLibrary(void)
+{
+    return false;
+}
+
+bool InternalType::isUserType(void)
+{
+    return false;
+}
+
+void InternalType::clearPrintState()
+{
+    m_bPrintFromStart = true;
+    m_iSavePrintState = 0;
+    m_iRows1PrintState = 0;
+    m_iCols1PrintState = 0;
+    m_iRows2PrintState = 0;
+    m_iCols2PrintState = 0;
+}
+
+}
index d20fb0c..ca37c5f 100644 (file)
@@ -15,6 +15,7 @@
 #include "callable.hxx"
 #include "overload.hxx"
 #include "configvariable.hxx"
+#include "exp.hxx"
 
 #ifndef NDEBUG
 #include "inspector.hxx"
index f8b1442..fd6f61a 100644 (file)
@@ -23,6 +23,8 @@ extern "C"
 #include "callable.hxx"
 #include "overload.hxx"
 #include "context.hxx"
+#include "opexp.hxx"
+#include "execvisitor.hxx"
 
 std::wstring Overload::buildOverloadName(std::wstring _stFunctionName, types::typed_list &in, int /*_iRetCount*/, bool _isOperator, bool _truncated)
 {
@@ -112,7 +114,16 @@ types::Function::ReturnValue Overload::call(std::wstring _stOverloadingFunctionN
         // add line and function name in where
         ConfigVariable::where_begin(0, 0, pCall);
 
-        types::Function::ReturnValue ret = pCall->call(in, opt, _iRetCount, out, _execMe);
+        types::Function::ReturnValue ret;
+        if (_execMe)
+        {
+            ret = pCall->call(in, opt, _iRetCount, out, _execMe);
+        }
+        else
+        {
+            ast::ExecVisitor exec;
+            ret = pCall->call(in, opt, _iRetCount, out, &exec);
+        }
 
         // remove function name in where
         ConfigVariable::where_end();
@@ -138,7 +149,7 @@ types::Function::ReturnValue Overload::call(std::wstring _stOverloadingFunctionN
     }
 }
 
-std::wstring Overload::getNameFromOper(ast::OpExp::Oper _oper)
+std::wstring Overload::getNameFromOper(const int _oper)
 {
     switch (_oper)
     {
index dd4ec97..be1494f 100644 (file)
@@ -10,7 +10,7 @@
 *
 */
 #include <sstream>
-#include <math.h>
+#include <cmath>
 #include "singlepoly.hxx"
 #include "double.hxx"
 #include "tostring_common.hxx"
@@ -24,8 +24,6 @@ extern "C"
 #include "elem_common.h"
 }
 
-using namespace std;
-
 namespace types
 {
 SinglePoly::SinglePoly()
@@ -268,15 +266,15 @@ bool SinglePoly::evaluate(double _dblInR, double _dblInI, double *_pdblOutR, dou
     for (int i = 0 ; i < m_iSize ; i++)
     {
         //real part
-        *_pdblOutR += m_pRealData[i] * pow(_dblInR, i);
+        *_pdblOutR += m_pRealData[i] * std::pow(_dblInR, i);
         //only if variable is complex
         if (isComplex())
         {
-            *_pdblOutR -= m_pImgData[i] * pow(_dblInI, i);
+            *_pdblOutR -= m_pImgData[i] * std::pow(_dblInI, i);
             //img part
-            *_pdblOutI += m_pRealData[i] * pow(_dblInR, i);
+            *_pdblOutI += m_pRealData[i] * std::pow(_dblInR, i);
         }
-        *_pdblOutI += m_pRealData[i] * pow(_dblInI, i);
+        *_pdblOutI += m_pRealData[i] * std::pow(_dblInI, i);
     }
 
     return true;
@@ -289,7 +287,7 @@ void SinglePoly::updateRank(void)
     {
         for (int i = getRank(); i > 0 ; i--)
         {
-            if (fabs(m_pRealData[i]) == 0.0 && abs(m_pImgData[i]) == 0.0)
+            if (std::fabs(m_pRealData[i]) == 0.0 && std::fabs(m_pImgData[i]) == 0.0)
             {
                 iNewRank--;
             }
@@ -303,7 +301,7 @@ void SinglePoly::updateRank(void)
     {
         for (int i = getRank(); i > 0 ; i--)
         {
-            if (fabs(m_pRealData[i]) == 0.0)
+            if (std::fabs(m_pRealData[i]) == 0.0)
             {
                 iNewRank--;
             }
@@ -326,12 +324,12 @@ bool SinglePoly::toString(std::wostringstream& ostr)
     return true;
 }
 
-void SinglePoly::toStringReal(wstring _szVar, list<wstring>* _pListExp , list<wstring>* _pListCoef)
+void SinglePoly::toStringReal(std::wstring _szVar, std::list<std::wstring>* _pListExp , std::list<std::wstring>* _pListCoef)
 {
     toStringInternal(m_pRealData, _szVar, _pListExp, _pListCoef);
 }
 
-void SinglePoly::toStringImg(wstring _szVar, list<wstring>* _pListExp , list<wstring>* _pListCoef)
+void SinglePoly::toStringImg(std::wstring _szVar, std::list<std::wstring>* _pListExp , std::list<std::wstring>* _pListCoef)
 {
     if (isComplex() == false)
     {
@@ -343,17 +341,17 @@ void SinglePoly::toStringImg(wstring _szVar, list<wstring>* _pListExp , list<wst
     toStringInternal(m_pImgData, _szVar, _pListExp, _pListCoef);
 }
 
-bool SinglePoly::subMatrixToString(wostringstream& /*ostr*/, int* /*_piDims*/, int /*_iDims*/)
+bool SinglePoly::subMatrixToString(std::wostringstream& /*ostr*/, int* /*_piDims*/, int /*_iDims*/)
 {
     return false;
 }
 
-void SinglePoly::toStringInternal(double *_pdblVal, wstring _szVar, list<wstring>* _pListExp , list<wstring>* _pListCoef)
+void SinglePoly::toStringInternal(double *_pdblVal, std::wstring _szVar, std::list<std::wstring>* _pListExp , std::list<std::wstring>* _pListCoef)
 {
     int iLineLen = ConfigVariable::getConsoleWidth();
 
-    wostringstream ostemp;
-    wostringstream ostemp2;
+    std::wostringstream ostemp;
+    std::wostringstream ostemp2;
 
     ostemp << L" ";
     ostemp2 << L" ";
index 02479bf..2a8feae 100644 (file)
@@ -31,6 +31,7 @@
 #include "types_multiplication.hxx"
 #include "configvariable.hxx"
 #include "scilabWrite.hxx"
+#include "exp.hxx"
 
 #include "sparseOp.hxx"
 
@@ -1791,6 +1792,49 @@ Sparse* Sparse::extract(int nbCoords, int SPARSE_CONST* coords, int SPARSE_CONST
     }
     return pSp;
 }
+
+bool Sparse::invoke(typed_list & in, optional_list & /*opt*/, int /*_iRetCount*/, typed_list & out, ast::ConstVisitor & /*execFunc*/, const ast::Exp & e)
+{
+    if (in.size() == 0)
+    {
+        out.push_back(this);
+    }
+    else
+    {
+        InternalType * _out = extract(&in);
+        if (!_out)
+        {
+            std::wostringstream os;
+            os << _W("Invalid index.\n");
+            throw ast::InternalError(os.str(), 999, e.getLocation());
+        }
+        out.push_back(_out);
+    }
+
+    return true;
+}
+
+
+bool Sparse::isInvokable() const
+{
+    return true;
+}
+
+bool Sparse::hasInvokeOption() const
+{
+    return false;
+}
+
+int Sparse::getInvokeNbIn()
+{
+    return -1;
+}
+
+int Sparse::getInvokeNbOut()
+{
+    return 1;
+}
+
 /*
 coords are Scilab 1-based
 extract std::make_pair(coords, asVector), rowIter
@@ -2152,7 +2196,7 @@ template<typename S> struct GetReal: std::unary_function<typename S::InnerIterat
     }
 };
 template<> struct GetReal< Eigen::SparseMatrix<std::complex<double >, Eigen::RowMajor > >
-    : std::unary_function<Sparse::CplxSparse_t::InnerIterator, double>
+        : std::unary_function<Sparse::CplxSparse_t::InnerIterator, double>
 {
     double operator()( Sparse::CplxSparse_t::InnerIterator it) const
     {
@@ -3675,6 +3719,47 @@ InternalType* SparseBool::extract(typed_list* _pArgs)
     return pOut;
 }
 
+bool SparseBool::invoke(typed_list & in, optional_list &/*opt*/, int /*_iRetCount*/, typed_list & out, ast::ConstVisitor & /*execFunc*/, const ast::Exp & e)
+{
+    if (in.size() == 0)
+    {
+        out.push_back(this);
+    }
+    else
+    {
+        InternalType * _out = extract(&in);
+        if (!_out)
+        {
+            std::wostringstream os;
+            os << _W("Invalid index.\n");
+            throw ast::InternalError(os.str(), 999, e.getLocation());
+        }
+        out.push_back(_out);
+    }
+
+    return true;
+}
+
+bool SparseBool::isInvokable() const
+{
+    return true;
+}
+
+bool SparseBool::hasInvokeOption() const
+{
+    return false;
+}
+
+int SparseBool::getInvokeNbIn()
+{
+    return -1;
+}
+
+int SparseBool::getInvokeNbOut()
+{
+    return 1;
+}
+
 std::size_t SparseBool::nbTrue() const
 {
     return  matrixBool->nonZeros() ;
index 2183aac..e86ba8c 100644 (file)
@@ -16,6 +16,7 @@
 #include "int.hxx"
 #include "localization.hxx"
 #include "scilabWrite.hxx"
+#include "exp.hxx"
 
 namespace types
 {
index 9cddabe..064b58d 100644 (file)
 *
 */
 
-#include <wchar.h>
-#include <stdio.h>
+#include <cmath>
+#include <algorithm>
 #include <iostream>
-#include <math.h>
+
 #include "tostring_common.hxx"
 #include "configvariable.hxx"
 
@@ -27,8 +27,6 @@ extern "C"
 #define POINT_SIZE 1
 #define EXPOSANT_SIZE 2         //exposant symbol + exposant sign
 
-using namespace std;
-
 //template <typename T>
 //void GetIntFormat(T _TVal, int *_piWidth)
 //{
@@ -55,7 +53,7 @@ using namespace std;
 // }
 //}
 
-void addSign(wostringstream * _postr, double _dblVal, bool _bPrintPlusSign, bool _bPaddSign)
+void addSign(std::wostringstream * _postr, double _dblVal, bool _bPrintPlusSign, bool _bPaddSign)
 {
     if (_bPrintPlusSign == true)
     {
@@ -79,7 +77,7 @@ void getDoubleFormat(double _dblVal, DoubleFormat * _pDF)
 {
     double dblDec = 0;
     double dblEnt = 0;
-    double dblAbs = fabs(_dblVal);
+    double dblAbs = std::fabs(_dblVal);
     int iNbDigit = 0;
     int iNbDec = 0;
     int iBlankSize = _pDF->bPrintBlank ? BLANK_SIZE : 0;
@@ -96,13 +94,13 @@ void getDoubleFormat(double _dblVal, DoubleFormat * _pDF)
         return;
     }
     //get integer part and fractionnal part
-    dblDec = modf(dblAbs, &dblEnt);
+    dblDec = std::modf(dblAbs, &dblEnt);
 
     //compute len of entire part
     if (dblEnt == 0)
     {
         //[-1, 1]
-        iNbDigit = (int)fabs(floor(log10(dblAbs)));
+        iNbDigit = (int)std::fabs(std::floor(std::log10(dblAbs)));
 
         if (iNbDigit >= (iPrecNeeded - 2) || _pDF->bExp)
         {
@@ -264,18 +262,18 @@ void addDoubleValue(std::wostringstream * _postr, double _dblVal, DoubleFormat *
         double dblEnt = 0;
         double dblTemp = 0;
 
-        dblDec = modf(dblAbs, &dblEnt);
+        dblDec = std::modf(dblAbs, &dblEnt);
         if (dblEnt == 0)
         {
-            dblTemp = floor(log10(dblDec));
+            dblTemp = std::floor(std::log10(dblDec));
         }
         else
         {
-            dblTemp = log10(dblEnt);
+            dblTemp = std::log10(dblEnt);
         }
 
-        dblDec = dblAbs / pow(10., (double)(int)dblTemp);
-        dblDec = modf(dblDec, &dblEnt) * pow(10., _pDF->iPrec);
+        dblDec = dblAbs / std::pow(10., (double)(int)dblTemp);
+        dblDec = std::modf(dblDec, &dblEnt) * pow(10., _pDF->iPrec);
 
         if (_pDF->bPrintPoint)
         {
@@ -286,10 +284,10 @@ void addDoubleValue(std::wostringstream * _postr, double _dblVal, DoubleFormat *
             os_swprintf(pwstFormat, 32, L"%ls%%d%%0%ddD%%+.02d", pwstSign, _pDF->iPrec);
         }
 
-        if ((int)round(dblDec) != (int)dblDec)
+        if ((int)std::round(dblDec) != (int)dblDec)
         {
-            double d1 = (int)round(dblDec);
-            d1 = fmod(d1, pow(10., _pDF->iPrec));
+            double d1 = (int)std::round(dblDec);
+            d1 = fmod(d1, std::pow(10., _pDF->iPrec));
             if (d1 < dblDec)
             {
                 //inc integer part
@@ -324,7 +322,7 @@ void addDoubleValue(std::wostringstream * _postr, double _dblVal, DoubleFormat *
 }
 
 /*
-void addDoubleValue(wostringstream *_postr, double _dblVal, int _iWidth, int _iPrec, bool bPrintPlusSign, bool bPrintOne, bool bPaddSign)
+void addDoubleValue(std::wostringstream *_postr, double _dblVal, int _iWidth, int _iPrec, bool bPrintPlusSign, bool bPrintOne, bool bPaddSign)
 {
     addSign(_postr, _dblVal, bPrintPlusSign, bPaddSign);
     configureStream(_postr, _iWidth, _iPrec, ' ');
@@ -335,9 +333,9 @@ void addDoubleValue(wostringstream *_postr, double _dblVal, int _iWidth, int _iP
     }
 }
 */
-void addDoubleComplexValue(wostringstream * _postr, double _dblR, double _dblI, int _iTotalWidth, DoubleFormat * _pDFR, DoubleFormat * _pDFI)
+void addDoubleComplexValue(std::wostringstream * _postr, double _dblR, double _dblI, int _iTotalWidth, DoubleFormat * _pDFR, DoubleFormat * _pDFI)
 {
-    wostringstream ostemp;
+    std::wostringstream ostemp;
 
     /*
      * if R && !C -> R
@@ -372,7 +370,7 @@ void addDoubleComplexValue(wostringstream * _postr, double _dblR, double _dblI,
             df.bPrintPlusSign = false;
             df.bPrintOne = false;
             addDoubleValue(&ostemp, _dblI, &df);
-            ostemp << left << SYMBOL_I;
+            ostemp << std::left << SYMBOL_I;
             if (_dblI == 1)
             {
                 addSpaces(&ostemp, 1);
@@ -414,7 +412,7 @@ void addDoubleComplexValue(wostringstream * _postr, double _dblR, double _dblI,
             df.bPrintOne = false;
 
             addDoubleValue(&ostemp, _dblI, &df);
-            ostemp << left << SYMBOL_I;
+            ostemp << std::left << SYMBOL_I;
             if (_dblI == 1)
             {
                 addSpaces(&ostemp, 2);
@@ -423,10 +421,10 @@ void addDoubleComplexValue(wostringstream * _postr, double _dblR, double _dblI,
     }
 
     configureStream(_postr, _iTotalWidth - 3, 0, ' ');
-    *_postr << left << ostemp.str();
+    *_postr << std::left << ostemp.str();
 }
 
-void addSpaces(wostringstream * _postr, int _iSpace)
+void addSpaces(std::wostringstream * _postr, int _iSpace)
 {
     for (int i = 0; i < _iSpace; i++)
     {
@@ -434,9 +432,9 @@ void addSpaces(wostringstream * _postr, int _iSpace)
     }
 }
 
-void configureStream(wostringstream * _postr, int _iWidth, int _iPrec, char _cFill)
+void configureStream(std::wostringstream * _postr, int _iWidth, int _iPrec, char _cFill)
 {
-    _postr->setf(ios::showpoint);
+    _postr->setf(std::ios::showpoint);
     _postr->width(_iWidth);
     _postr->precision(_iPrec);
     _postr->fill(_cFill);
index c05a6e3..fd81226 100644 (file)
 *
 */
 
+#include <list>
+#include <vector>
+
 #include "alltypes.hxx"
 #include "types_tools.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
+
 extern "C"
 {
 #include "elem_common.h"
 #include "os_string.h"
+#include "more.h"
 }
 
 namespace types
@@ -57,7 +61,7 @@ double getIndex(InternalType* val)
 {
     switch (val->getType())
     {
-            //scalar
+        //scalar
         case InternalType::ScilabDouble:
         {
             return getIndex(val->getAs<Double>());
@@ -236,7 +240,7 @@ bool getImplicitIndex(GenericType* _pRef, typed_list* _pArgsIn, std::vector<int>
         }
         else if (in->isColon())
         {
-            vector<int> idx(2);
+            std::vector<int> idx(2);
             idx[0] = -1;
             idx[1] = viewAsVector ? _pRef->getSize() : pdims[i];
             lstIdx.push_back(idx);
@@ -258,7 +262,7 @@ bool getImplicitIndex(GenericType* _pRef, typed_list* _pArgsIn, std::vector<int>
                     SinglePoly* end = piEnd->getAs<Polynom>()->get()[0];
                     if (end->getRank() == 1 && end->get()[0] == 0 && end->get()[1] == 1)
                     {
-                        vector<int> idx(2);
+                        std::vector<int> idx(2);
                         idx[0] = -1;
                         idx[1] = viewAsVector ? _pRef->getSize() : pdims[i];
                         lstIdx.push_back(idx);
@@ -286,7 +290,7 @@ bool getImplicitIndex(GenericType* _pRef, typed_list* _pArgsIn, std::vector<int>
                     return true;
                 }
 
-                vector<int> idx(size);
+                std::vector<int> idx(size);
                 int* pi = idx.data();
                 pi[0] = start - 1; //0-indexed
                 for (int j = 1; j < size; ++j)
@@ -787,14 +791,13 @@ types::Function::ReturnValue VariableToString(types::InternalType* pIT, const wc
         //call overload %type_p
         types::typed_list in;
         types::typed_list out;
-        ast::ExecVisitor exec;
 
         pIT->IncreaseRef();
         in.push_back(pIT);
 
         try
         {
-            ret = Overload::generateNameAndCall(L"p", in, 1, out, &exec);
+            ret = Overload::generateNameAndCall(L"p", in, 1, out);
             pIT->DecreaseRef();
             return ret;
         }
index 65daec1..6ca4e1e 100644 (file)
@@ -16,9 +16,9 @@
 #include "function.hxx"
 #include "string.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 #include "types.hxx"
 #include "bool.hxx"
+#include "double.hxx"
 
 extern "C"
 {
@@ -55,15 +55,13 @@ types::Function::ReturnValue sci_and(types::typed_list &in, int _iRetCount, type
     if (in[0]->isGenericType() && in[0]->getAs<types::GenericType>()->getDims() > 2)
     {
         //hypermatrix are manage in external macro
-        ast::ExecVisitor exec;
-        return Overload::call(L"%hm_and", in, _iRetCount, out, &exec);
+        return Overload::call(L"%hm_and", in, _iRetCount, out);
     }
 
     if (in[0]->isBool() == false)
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_and";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     if (in.size() == 2)
@@ -111,7 +109,7 @@ types::Function::ReturnValue sci_and(types::typed_list &in, int _iRetCount, type
         }
         else if (in[1]->isDouble())
         {
-            Double *pdblIn = in[1]->getAs<types::Double>();
+            types::Double *pdblIn = in[1]->getAs<types::Double>();
             if (pdblIn->isComplex())
             {
                 Scierror(999, _("%s: Wrong value for input argument #%d.\n"), "and", 2);
index 7cfb1b7..a41351c 100644 (file)
@@ -17,7 +17,6 @@
 #include "sparse.hxx"
 #include "bool.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 
 extern "C"
 {
@@ -41,9 +40,8 @@ types::Function::ReturnValue sci_bool2s(types::typed_list &in, int _iRetCount, t
 
         if (pIn->isComplex())
         {
-            ast::ExecVisitor exec;
             std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_bool2s";
-            return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+            return Overload::call(wstFuncName, in, _iRetCount, out);
         }
 
         types::Double* pD = new types::Double(pIn->getDims(), pIn->getDimsArray());
@@ -77,9 +75,8 @@ types::Function::ReturnValue sci_bool2s(types::typed_list &in, int _iRetCount, t
 
         if (pSpIn->isComplex())
         {
-            ast::ExecVisitor exec;
             std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_bool2s";
-            return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+            return Overload::call(wstFuncName, in, _iRetCount, out);
         }
 
         types::Sparse* pSpOut = new types::Sparse(pSpIn->getRows(), pSpIn->getCols());
@@ -124,9 +121,8 @@ types::Function::ReturnValue sci_bool2s(types::typed_list &in, int _iRetCount, t
     }
     else
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_bool2s";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     out.push_back(pOut);
index bd0d42b..93fbf2d 100644 (file)
@@ -18,7 +18,6 @@
 #include "bool.hxx"
 #include "sparse.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 
 extern "C"
 {
@@ -54,9 +53,8 @@ types::Function::ReturnValue sci_find(types::typed_list &in, int _iRetCount, typ
     if (in[0]->isGenericType() == false)
     {
         //call overload for other types
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_find";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     types::GenericType* pGT = in[0]->getAs<types::GenericType>();
@@ -126,16 +124,15 @@ types::Function::ReturnValue sci_find(types::typed_list &in, int _iRetCount, typ
         delete[] piIndex;
 
         //call overload for other types
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_find";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     if (iValues == 0)
     {
         for (int i = 0 ; i < _iRetCount ; i++)
         {
-            out.push_back(Double::Empty());
+            out.push_back(types::Double::Empty());
         }
     }
     else
@@ -192,7 +189,7 @@ types::Function::ReturnValue sci_find(types::typed_list &in, int _iRetCount, typ
 
         for (int i = 0 ; i < _iRetCount ; i++)
         {
-            types::Double* pOut = new Double(1, iValues);
+            types::Double* pOut = new types::Double(1, iValues);
             for (int j = 0 ; j < iValues ; j++)
             {
                 pOut->set(j, piCoord[j][i] + 1);
index d202901..0f2dbf3 100644 (file)
@@ -16,9 +16,9 @@
 #include "function.hxx"
 #include "string.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 #include "types.hxx"
 #include "bool.hxx"
+#include "double.hxx"
 
 extern "C"
 {
@@ -51,15 +51,13 @@ types::Function::ReturnValue sci_or(types::typed_list &in, int _iRetCount, types
     if (in[0]->isGenericType() && in[0]->getAs<types::GenericType>()->getDims() > 2)
     {
         //hypermatrix are manage in external macro
-        ast::ExecVisitor exec;
-        return Overload::call(L"%hm_or", in, _iRetCount, out, &exec);
+        return Overload::call(L"%hm_or", in, _iRetCount, out);
     }
 
     if (in[0]->isBool() == false)
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_or";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     if (in.size() == 2)
@@ -108,7 +106,7 @@ types::Function::ReturnValue sci_or(types::typed_list &in, int _iRetCount, types
         }
         else if (in[1]->isDouble())
         {
-            Double *pdblIn = in[1]->getAs<types::Double>();
+            types::Double *pdblIn = in[1]->getAs<types::Double>();
 
             if (pdblIn->isComplex())
             {
index 9b52bad..7f2404a 100644 (file)
@@ -13,7 +13,7 @@
 #include "cacsd_gw.hxx"
 #include "function.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
+#include "double.hxx"
 
 extern "C"
 {
@@ -47,9 +47,8 @@ types::Function::ReturnValue sci_ereduc(types::typed_list &in, int _iRetCount, t
     // get X
     if (in[0]->isDouble() == false)
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_ereduc";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     types::Double* pDblX = in[0]->clone()->getAs<types::Double>();
index a981c70..c70324b 100644 (file)
@@ -13,7 +13,7 @@
 #include "cacsd_gw.hxx"
 #include "function.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
+#include "double.hxx"
 
 extern "C"
 {
@@ -55,9 +55,8 @@ types::Function::ReturnValue sci_fstair(types::typed_list &in, int _iRetCount, t
     {
         if (in[i]->isDouble() == false)
         {
-            ast::ExecVisitor exec;
             std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_fstair";
-            return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+            return Overload::call(wstFuncName, in, _iRetCount, out);
         }
 
         pDblOut[i] = in[i]->clone()->getAs<types::Double>();
index 6fb574c..d16d63f 100644 (file)
@@ -13,7 +13,6 @@
 #ifndef __COS_H__
 #define __COS_H__
 
-#include <math.h>
 #include "dynlib_elementary_functions.h"
 
 ELEMENTARY_FUNCTIONS_IMPEXP double dcoss(double _dblVal);
@@ -21,4 +20,4 @@ ELEMENTARY_FUNCTIONS_IMPEXP void zcoss(double _dblRealIn, double _dblImgIn, doub
 
 ELEMENTARY_FUNCTIONS_IMPEXP double dcoshs(double _dblVal);
 
-#endif /* __COS_H__ */
\ No newline at end of file
+#endif /* __COS_H__ */
index a751026..c080c11 100644 (file)
@@ -13,7 +13,6 @@
 #ifndef __SIN_H__
 #define __SIN_H__
 
-#include <math.h>
 #include "dynlib_elementary_functions.h"
 
 ELEMENTARY_FUNCTIONS_IMPEXP double dsins(double _dblVal);
@@ -21,4 +20,4 @@ ELEMENTARY_FUNCTIONS_IMPEXP void zsins(double _dblRealIn, double _dblImgIn, doub
 
 ELEMENTARY_FUNCTIONS_IMPEXP double dsinhs(double _dblVal);
 
-#endif /* __SIN_H__ */
\ No newline at end of file
+#endif /* __SIN_H__ */
index dbb2987..5423000 100644 (file)
  *
  */
 /*--------------------------------------------------------------------------*/
+
+#include <cmath>
+
 #include "elem_func_gw.hxx"
 #include "api_scilab.hxx"
 #include "function.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
-
+#include "polynom.hxx"
 
 extern "C"
 {
@@ -31,8 +33,8 @@ T* absInt(T* _pIn)
     T* pIntOut = new T(_pIn->getDims(), _pIn->getDimsArray());
     int size = _pIn->getSize();
 
-    auto* pI = _pIn->get();
-    auto* pO = pIntOut->get();
+    typename T::type* pI = _pIn->get();
+    typename T::type* pO = pIntOut->get();
     for (int i = 0; i < size; i++)
     {
         pO[i] = std::abs(pI[i]);
@@ -61,7 +63,7 @@ types::Function::ReturnValue sci_abs(types::typed_list &in, int _iRetCount, type
 
     switch (in[0]->getType())
     {
-        case InternalType::ScilabDouble:
+        case types::InternalType::ScilabDouble:
         {
             api_scilab::Double* pDblIn = api_scilab::getAsDouble(in[0]);
             api_scilab::Double* pDblOut = new api_scilab::Double(pDblIn->getDims(), pDblIn->getDimsArray());
@@ -98,7 +100,7 @@ types::Function::ReturnValue sci_abs(types::typed_list &in, int _iRetCount, type
                     }
                     else
                     {
-                        pdblOut[i] = std::abs(pdblInR[i]);
+                        pdblOut[i] = std::fabs(pdblInR[i]);
                     }
                 }
             }
@@ -108,7 +110,7 @@ types::Function::ReturnValue sci_abs(types::typed_list &in, int _iRetCount, type
             delete pDblIn;
             break;
         }
-        case InternalType::ScilabPolynom:
+        case types::InternalType::ScilabPolynom:
         {
             types::Polynom* pPolyIn = in[0]->getAs<types::Polynom>();
             types::Polynom* pPolyOut = new types::Polynom(pPolyIn->getVariableName(), pPolyIn->getDims(), pPolyIn->getDimsArray());
@@ -152,39 +154,38 @@ types::Function::ReturnValue sci_abs(types::typed_list &in, int _iRetCount, type
             out.push_back(pPolyOut);
             break;
         }
-        case InternalType::ScilabInt8:
+        case types::InternalType::ScilabInt8:
         {
             out.push_back(absInt(in[0]->getAs<types::Int8>()));
             break;
         }
-        case InternalType::ScilabInt16:
+        case types::InternalType::ScilabInt16:
         {
             out.push_back(absInt(in[0]->getAs<types::Int16>()));
             break;
         }
-        case InternalType::ScilabInt32:
+        case types::InternalType::ScilabInt32:
         {
             out.push_back(absInt(in[0]->getAs<types::Int32>()));
             break;
         }
-        case InternalType::ScilabInt64:
+        case types::InternalType::ScilabInt64:
         {
             out.push_back(absInt(in[0]->getAs<types::Int64>()));
             break;
         }
-        case InternalType::ScilabUInt8:
-        case InternalType::ScilabUInt16:
-        case InternalType::ScilabUInt32:
-        case InternalType::ScilabUInt64:
+        case types::InternalType::ScilabUInt8:
+        case types::InternalType::ScilabUInt16:
+        case types::InternalType::ScilabUInt32:
+        case types::InternalType::ScilabUInt64:
         {
             out.push_back(in[0]);
             break;
         }
         default:
         {
-            ast::ExecVisitor exec;
             std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_abs";
-            return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+            return Overload::call(wstFuncName, in, _iRetCount, out);
         }
     }
 
index bd7019f..3362ae0 100644 (file)
@@ -14,8 +14,6 @@
 #include "function.hxx"
 #include "double.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
-
 
 extern "C"
 {
@@ -52,9 +50,8 @@ types::Function::ReturnValue sci_acos(types::typed_list &in, int _iRetCount, typ
 
     if (in[0]->isDouble() == false)
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_acos";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     pDblIn = in[0]->getAs<types::Double>();
index 52a135c..269328c 100644 (file)
 *
 */
 /*--------------------------------------------------------------------------*/
+
+#include <complex>
+
 #include "elem_func_gw.hxx"
 #include "function.hxx"
 #include "double.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 
 extern "C"
 {
@@ -112,9 +114,8 @@ types::Function::ReturnValue sci_acosh(types::typed_list &in, int _iRetCount, ty
     }
     else
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_acosh";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     return types::Function::OK;
index 5e77b95..8133d39 100644 (file)
@@ -14,8 +14,6 @@
 #include "function.hxx"
 #include "double.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
-
 
 extern "C"
 {
@@ -50,9 +48,8 @@ types::Function::ReturnValue sci_asin(types::typed_list &in, int _iRetCount, typ
 
     if (in[0]->isDouble() == false)
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_asin";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     pDblIn = in[0]->getAs<types::Double>();
@@ -80,7 +77,7 @@ types::Function::ReturnValue sci_asin(types::typed_list &in, int _iRetCount, typ
         int size = pDblIn->getSize();
         for (int i = 0; i < size; i++)
         {
-            if (std::abs(pInR[i]) > 1)
+            if (std::fabs(pInR[i]) > 1)
             {
                 bOutSide = 1;
                 break;
index 815e33b..a3c636a 100644 (file)
 *
 */
 /*--------------------------------------------------------------------------*/
+
+#include <complex>
+
 #include "elem_func_gw.hxx"
 #include "function.hxx"
 #include "double.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 
 extern "C"
 {
@@ -79,9 +81,8 @@ types::Function::ReturnValue sci_asinh(types::typed_list &in, int _iRetCount, ty
     }
     else
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_asinh";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     return types::Function::OK;
index 823de05..099e036 100644 (file)
  *
  */
 /*--------------------------------------------------------------------------*/
+
+#include <cmath>
+
 #include "elem_func_gw.hxx"
 #include "function.hxx"
 #include "double.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
-
+#include "configvariable.hxx"
 
 extern "C"
 {
@@ -54,9 +56,8 @@ types::Function::ReturnValue sci_atan(types::typed_list &in, int _iRetCount, typ
 
     if (in[0]->isDouble() == false)
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_atan";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     pDblX = in[0]->getAs<types::Double>();
index 77b9eef..b1e58fc 100644 (file)
 *
 */
 /*--------------------------------------------------------------------------*/
+
+#include <complex>
+
 #include "elem_func_gw.hxx"
 #include "function.hxx"
 #include "double.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 #include "configvariable.hxx"
 
 extern "C"
@@ -113,16 +115,15 @@ types::Function::ReturnValue sci_atanh(types::typed_list &in, int _iRetCount, ty
         {
             for (int i = 0; i < iSize; i++)
             {
-                pOutR[i] = atanh(pInR[i]);
+                pOutR[i] = std::atanh(pInR[i]);
             }
         }
         out.push_back(pDblOut);
     }
     else
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_atanh";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     return types::Function::OK;
index 8078e6b..c205728 100644 (file)
  *
  */
 /*--------------------------------------------------------------------------*/
+
+#include <complex>
+
 #include "elem_func_gw.hxx"
 #include "function.hxx"
 #include "double.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 #include "sparse.hxx"
+#include "polynom.hxx"
 
 extern "C"
 {
@@ -161,9 +164,8 @@ types::Function::ReturnValue sci_ceil(types::typed_list &in, int _iRetCount, typ
     }
     else
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_ceil";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     return types::Function::OK;
index 93be34a..d5ab32c 100644 (file)
  *
  */
 /*--------------------------------------------------------------------------*/
+
+#include <complex>
+
 #include "elem_func_gw.hxx"
 #include "function.hxx"
 #include "double.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 #include "clean.hxx"
 #include "sparse.hxx"
+#include "polynom.hxx"
 
 extern "C"
 {
@@ -93,9 +96,8 @@ types::Function::ReturnValue sci_clean(types::typed_list &in, int _iRetCount, ty
     }
     else
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_clean";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
 
@@ -167,7 +169,7 @@ types::Function::ReturnValue sci_clean(types::typed_list &in, int _iRetCount, ty
         {
             for (int i = 0 ; i < iSize ; i++)
             {
-                std::complex<double> cplx = complex<double>(pdReal[i], pdImg[i]);
+                std::complex<double> cplx = std::complex<double>(pdReal[i], pdImg[i]);
                 pSparseOut->set(pRows[i] - 1, pCols[i] - 1, cplx, false);
             }
 
index f36acd2..3f2511d 100644 (file)
@@ -14,8 +14,7 @@
 #include "function.hxx"
 #include "double.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
-
+#include "polynom.hxx"
 
 extern "C"
 {
@@ -57,9 +56,8 @@ types::Function::ReturnValue sci_conj(types::typed_list &in, int _iRetCount, typ
     }
     else
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_conj";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     iSize = pDblOut->getSize();
index e572831..b0a9f1c 100644 (file)
  *
  */
 /*--------------------------------------------------------------------------*/
+
+#include <complex>
+
 #include "elem_func_gw.hxx"
 #include "function.hxx"
 #include "double.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 #include "sparse.hxx"
 
 extern "C"
@@ -50,7 +52,7 @@ types::Function::ReturnValue sci_cos(types::typed_list &in, int _iRetCount, type
     if (in[0]->isDouble())
     {
         pDblIn = in[0]->getAs<types::Double>();
-        pDblOut = trigo(pDblIn, cos, cos);
+        pDblOut = trigo(pDblIn, (double (*)(double))std::cos, (std::complex<double> (*)(const std::complex<double> &))std::cos);
         out.push_back(pDblOut);
     }
     else if (in[0]->isSparse())
@@ -101,9 +103,8 @@ types::Function::ReturnValue sci_cos(types::typed_list &in, int _iRetCount, type
     }
     else
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_cos";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     return types::Function::OK;
index 85bebc8..cecb26c 100644 (file)
 *
 */
 /*--------------------------------------------------------------------------*/
+
+#include <complex>
+
 #include "elem_func_gw.hxx"
 #include "function.hxx"
 #include "double.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 
 extern "C"
 {
@@ -79,9 +81,8 @@ types::Function::ReturnValue sci_cosh(types::typed_list &in, int _iRetCount, typ
     }
     else
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_cosh";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     return types::Function::OK;
index 5662def..a21555e 100644 (file)
@@ -15,7 +15,6 @@
 #include "double.hxx"
 #include "string.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 #include "cumprod.hxx"
 #include "int.hxx"
 
@@ -57,46 +56,45 @@ types::Function::ReturnValue sci_cumprod(types::typed_list &in, int _iRetCount,
     /***** get data *****/
     switch (in[0]->getType())
     {
-        case InternalType::ScilabDouble :
+        case types::InternalType::ScilabDouble :
             pDblIn = in[0]->getAs<types::Double>();
             isCloned = false;
             break;
-        case InternalType::ScilabBool:
+        case types::InternalType::ScilabBool:
             pDblIn = getAsDouble(in[0]->getAs<types::Bool>());
             iOuttype = 2;
             break;
-        case InternalType::ScilabPolynom :
+        case types::InternalType::ScilabPolynom :
             pPolyIn = in[0]->getAs<types::Polynom>();
             isCloned = false;
             break;
-        case InternalType::ScilabInt8:
+        case types::InternalType::ScilabInt8:
             pDblIn = getAsDouble(in[0]->getAs<types::Int8>());
             break;
-        case InternalType::ScilabInt16:
+        case types::InternalType::ScilabInt16:
             pDblIn = getAsDouble(in[0]->getAs<types::Int16>());
             break;
-        case InternalType::ScilabInt32:
+        case types::InternalType::ScilabInt32:
             pDblIn = getAsDouble(in[0]->getAs<types::Int32>());
             break;
-        case InternalType::ScilabInt64:
+        case types::InternalType::ScilabInt64:
             pDblIn = getAsDouble(in[0]->getAs<types::Int64>());
             break;
-        case InternalType::ScilabUInt8:
+        case types::InternalType::ScilabUInt8:
             pDblIn = getAsDouble(in[0]->getAs<types::UInt8>());
             break;
-        case InternalType::ScilabUInt16:
+        case types::InternalType::ScilabUInt16:
             pDblIn = getAsDouble(in[0]->getAs<types::UInt16>());
             break;
-        case InternalType::ScilabUInt32:
+        case types::InternalType::ScilabUInt32:
             pDblIn = getAsDouble(in[0]->getAs<types::UInt32>());
             break;
-        case InternalType::ScilabUInt64:
+        case types::InternalType::ScilabUInt64:
             pDblIn = getAsDouble(in[0]->getAs<types::UInt64>());
             break;
         default :
-            ast::ExecVisitor exec;
             std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_cumprod";
-            return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+            return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     if (in.size() >= 2)
@@ -322,7 +320,7 @@ types::Function::ReturnValue sci_cumprod(types::typed_list &in, int _iRetCount,
     {
         switch (in[0]->getType())
         {
-            case InternalType::ScilabBool:
+            case types::InternalType::ScilabBool:
             {
                 types::Bool* pB = new types::Bool(pDblOut->getDims(), pDblOut->getDimsArray());
                 int* p = pB->get();
@@ -335,47 +333,47 @@ types::Function::ReturnValue sci_cumprod(types::typed_list &in, int _iRetCount,
                 out.push_back(pB);
                 break;
             }
-            case InternalType::ScilabPolynom:
+            case types::InternalType::ScilabPolynom:
             {
                 out.push_back(pPolyOut);
                 break;
             }
-            case InternalType::ScilabInt8:
+            case types::InternalType::ScilabInt8:
             {
                 out.push_back(toInt<types::Int8>(pDblOut));
                 break;
             }
-            case InternalType::ScilabInt16:
+            case types::InternalType::ScilabInt16:
             {
                 out.push_back(toInt<types::Int16>(pDblOut));
                 break;
             }
-            case InternalType::ScilabInt32:
+            case types::InternalType::ScilabInt32:
             {
                 out.push_back(toInt<types::Int32>(pDblOut));
                 break;
             }
-            case InternalType::ScilabInt64:
+            case types::InternalType::ScilabInt64:
             {
                 out.push_back(toInt<types::Int64>(pDblOut));
                 break;
             }
-            case InternalType::ScilabUInt8:
+            case types::InternalType::ScilabUInt8:
             {
                 out.push_back(toInt<types::UInt8>(pDblOut));
                 break;
             }
-            case InternalType::ScilabUInt16:
+            case types::InternalType::ScilabUInt16:
             {
                 out.push_back(toInt<types::UInt16>(pDblOut));
                 break;
             }
-            case InternalType::ScilabUInt32:
+            case types::InternalType::ScilabUInt32:
             {
                 out.push_back(toInt<types::UInt32>(pDblOut));
                 break;
             }
-            case InternalType::ScilabUInt64:
+            case types::InternalType::ScilabUInt64:
             {
                 out.push_back(toInt<types::UInt64>(pDblOut));
                 break;
index 4e8df6d..fe1331e 100644 (file)
@@ -15,7 +15,6 @@
 #include "double.hxx"
 #include "string.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 #include "cumsum.hxx"
 #include "int.hxx"
 
@@ -56,46 +55,45 @@ types::Function::ReturnValue sci_cumsum(types::typed_list &in, int _iRetCount, t
     /***** get data *****/
     switch (in[0]->getType())
     {
-        case InternalType::ScilabDouble:
+        case types::InternalType::ScilabDouble:
             pDblIn = in[0]->getAs<types::Double>();
             isCloned = false;
             break;
-        case InternalType::ScilabBool:
+        case types::InternalType::ScilabBool:
             pDblIn = getAsDouble(in[0]->getAs<types::Bool>());
             iOuttype = 2;
             break;
-        case InternalType::ScilabPolynom:
+        case types::InternalType::ScilabPolynom:
             pPolyIn = in[0]->getAs<types::Polynom>();
             isCloned = false;
             break;
-        case InternalType::ScilabInt8:
+        case types::InternalType::ScilabInt8:
             pDblIn = getAsDouble(in[0]->getAs<types::Int8>());
             break;
-        case InternalType::ScilabInt16:
+        case types::InternalType::ScilabInt16:
             pDblIn = getAsDouble(in[0]->getAs<types::Int16>());
             break;
-        case InternalType::ScilabInt32:
+        case types::InternalType::ScilabInt32:
             pDblIn = getAsDouble(in[0]->getAs<types::Int32>());
             break;
-        case InternalType::ScilabInt64:
+        case types::InternalType::ScilabInt64:
             pDblIn = getAsDouble(in[0]->getAs<types::Int64>());
             break;
-        case InternalType::ScilabUInt8:
+        case types::InternalType::ScilabUInt8:
             pDblIn = getAsDouble(in[0]->getAs<types::UInt8>());
             break;
-        case InternalType::ScilabUInt16:
+        case types::InternalType::ScilabUInt16:
             pDblIn = getAsDouble(in[0]->getAs<types::UInt16>());
             break;
-        case InternalType::ScilabUInt32:
+        case types::InternalType::ScilabUInt32:
             pDblIn = getAsDouble(in[0]->getAs<types::UInt32>());
             break;
-        case InternalType::ScilabUInt64:
+        case types::InternalType::ScilabUInt64:
             pDblIn = getAsDouble(in[0]->getAs<types::UInt64>());
             break;
         default:
-            ast::ExecVisitor exec;
             std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_cumsum";
-            return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+            return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
 
@@ -326,7 +324,7 @@ types::Function::ReturnValue sci_cumsum(types::typed_list &in, int _iRetCount, t
     {
         switch (in[0]->getType())
         {
-            case InternalType::ScilabBool:
+            case types::InternalType::ScilabBool:
             {
                 types::Bool* pB = new types::Bool(pDblOut->getDims(), pDblOut->getDimsArray());
                 int* p = pB->get();
@@ -339,47 +337,47 @@ types::Function::ReturnValue sci_cumsum(types::typed_list &in, int _iRetCount, t
                 out.push_back(pB);
                 break;
             }
-            case InternalType::ScilabPolynom:
+            case types::InternalType::ScilabPolynom:
             {
                 out.push_back(pPolyOut);
                 break;
             }
-            case InternalType::ScilabInt8:
+            case types::InternalType::ScilabInt8:
             {
                 out.push_back(toInt<types::Int8>(pDblOut));
                 break;
             }
-            case InternalType::ScilabInt16:
+            case types::InternalType::ScilabInt16:
             {
                 out.push_back(toInt<types::Int16>(pDblOut));
                 break;
             }
-            case InternalType::ScilabInt32:
+            case types::InternalType::ScilabInt32:
             {
                 out.push_back(toInt<types::Int32>(pDblOut));
                 break;
             }
-            case InternalType::ScilabInt64:
+            case types::InternalType::ScilabInt64:
             {
                 out.push_back(toInt<types::Int64>(pDblOut));
                 break;
             }
-            case InternalType::ScilabUInt8:
+            case types::InternalType::ScilabUInt8:
             {
                 out.push_back(toInt<types::UInt8>(pDblOut));
                 break;
             }
-            case InternalType::ScilabUInt16:
+            case types::InternalType::ScilabUInt16:
             {
                 out.push_back(toInt<types::UInt16>(pDblOut));
                 break;
             }
-            case InternalType::ScilabUInt32:
+            case types::InternalType::ScilabUInt32:
             {
                 out.push_back(toInt<types::UInt32>(pDblOut));
                 break;
             }
-            case InternalType::ScilabUInt64:
+            case types::InternalType::ScilabUInt64:
             {
                 out.push_back(toInt<types::UInt64>(pDblOut));
                 break;
index c1b70c9..8184d4a 100644 (file)
@@ -15,7 +15,6 @@
 #include "function.hxx"
 #include "double.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 #include "diag.hxx"
 #include "int.hxx"
 
@@ -48,16 +47,14 @@ types::Function::ReturnValue sci_diag(types::typed_list &in, int _iRetCount, typ
 
     if (in[0]->isGenericType() == false)
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_diag";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     if (in[0]->getAs<types::GenericType>()->getDims() > 2)
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_diag";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     if (in.size() == 2)
@@ -119,9 +116,8 @@ types::Function::ReturnValue sci_diag(types::typed_list &in, int _iRetCount, typ
             break;
         default :
         {
-            ast::ExecVisitor exec;
             std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_diag";
-            return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+            return Overload::call(wstFuncName, in, _iRetCount, out);
         }
     }
 
index fe44d9e..632bcf6 100644 (file)
@@ -15,8 +15,6 @@
 #include "double.hxx"
 #include "string.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
-
 
 extern "C"
 {
@@ -57,7 +55,7 @@ types::Function::ReturnValue sci_dsearch(types::typed_list &in, int _iRetCount,
     // input data
     if (in[0]->isDouble() == false || in[1]->isDouble() == false)
     {
-        wstring stType;
+        std::wstring stType;
         //build manually overload name
         if (in[0]->isDouble() == false)
         {
@@ -68,8 +66,7 @@ types::Function::ReturnValue sci_dsearch(types::typed_list &in, int _iRetCount,
             stType = in[1]->getShortTypeStr();
         }
 
-        ast::ExecVisitor exec;
-        return Overload::call(L"%" + stType + L"_dsearch", in, _iRetCount, out, &exec);
+        return Overload::call(L"%" + stType + L"_dsearch", in, _iRetCount, out);
     }
 
     pDblIn = in[0]->getAs<types::Double>();
index a4ecaa6..071e38f 100644 (file)
  *
  */
 /*--------------------------------------------------------------------------*/
+
+#include <complex>
+
 #include "elem_func_gw.hxx"
 #include "function.hxx"
 #include "double.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 #include "sparse.hxx"
 
 extern "C"
@@ -114,9 +116,8 @@ types::Function::ReturnValue sci_exp(types::typed_list &in, int _iRetCount, type
     }
     else
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_exp";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     return types::Function::OK;
index ba14911..5e21bb2 100644 (file)
@@ -14,8 +14,6 @@
 #include "function.hxx"
 #include "double.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
-
 
 extern "C"
 {
@@ -44,17 +42,15 @@ types::Function::ReturnValue sci_expm(types::typed_list &in, int _iRetCount, typ
 
     if (in[0]->isDouble() == false)
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_expm";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     pDblIn = in[0]->getAs<types::Double>();
 
     if (pDblIn->getDims() > 2)
     {
-        ast::ExecVisitor exec;
-        return Overload::call(L"%hm_expm", in, _iRetCount, out, &exec);
+        return Overload::call(L"%hm_expm", in, _iRetCount, out);
     }
 
     if (pDblIn->getSize() == 0)
index 008ba63..755168e 100644 (file)
@@ -12,9 +12,7 @@
  */
 /*--------------------------------------------------------------------------*/
 #include "elem_func_gw.hxx"
-#include "context.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 
 extern "C"
 {
@@ -24,7 +22,7 @@ extern "C"
 #include "charEncoding.h"
 }
 /*--------------------------------------------------------------------------*/
-Function::ReturnValue sci_eye(types::typed_list &in, int _iRetCount, types::typed_list &out)
+types::Function::ReturnValue sci_eye(types::typed_list &in, int _iRetCount, types::typed_list &out)
 {
     types::Double* pOut = NULL;
 
@@ -34,8 +32,8 @@ Function::ReturnValue sci_eye(types::typed_list &in, int _iRetCount, types::type
 
     if (in.size() == 0)
     {
-        out.push_back(Double::Identity(-1, -1));
-        return Function::OK;
+        out.push_back(types::Double::Identity(-1, -1));
+        return types::Function::OK;
     }
 
     bool ret = getDimsFromArguments(in, "eye", &iDims, &piDims, &alloc);
@@ -49,21 +47,20 @@ Function::ReturnValue sci_eye(types::typed_list &in, int _iRetCount, types::type
             case 1:
             {
                 //call overload
-                ast::ExecVisitor exec;
-                return Overload::generateNameAndCall(L"eye", in, _iRetCount, out, &exec);
+                return Overload::generateNameAndCall(L"eye", in, _iRetCount, out);
             }
         }
 
         return types::Function::Error;
     }
 
-    pOut = Double::Identity(iDims, piDims);
+    pOut = types::Double::Identity(iDims, piDims);
     if (alloc)
     {
         delete[] piDims;
     }
 
     out.push_back(pOut);
-    return Function::OK;
+    return types::Function::OK;
 }
 /*--------------------------------------------------------------------------*/
index 378d830..bb2be38 100644 (file)
@@ -14,8 +14,8 @@
 #include "function.hxx"
 #include "double.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 #include "sparse.hxx"
+#include "polynom.hxx"
 
 extern "C"
 {
@@ -161,9 +161,8 @@ types::Function::ReturnValue sci_floor(types::typed_list &in, int _iRetCount, ty
     }
     else
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_floor";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     return types::Function::OK;
index 65361e1..38d1671 100644 (file)
@@ -14,8 +14,6 @@
 #include "function.hxx"
 #include "double.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
-
 
 extern "C"
 {
@@ -44,18 +42,16 @@ types::Function::ReturnValue sci_frexp(types::typed_list &in, int _iRetCount, ty
 
     if (in[0]->isDouble() == false)
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_frexp";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     types::Double* pDblIn = in[0]->getAs<types::Double>();
 
     if (pDblIn->getDims() > 2)
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%hm_frexp";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     if (pDblIn->isComplex())
index 82216ff..b2a4559 100644 (file)
@@ -15,7 +15,6 @@
 #include "double.hxx"
 #include "string.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 #include "gsort.hxx"
 #include "context.hxx"
 
@@ -86,17 +85,15 @@ types::Function::ReturnValue sci_gsort(types::typed_list &in, int _iRetCount, ty
     // get data and perform operation for each types::
     if (in[0]->isGenericType() == false)
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_gsort";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     types::GenericType* pGTOut = in[0]->getAs<types::GenericType>();
 
     if (pGTOut->getDims() > 2)
     {
-        ast::ExecVisitor exec;
-        return Overload::call(L"%hm_gsort", in, _iRetCount, out, &exec);
+        return Overload::call(L"%hm_gsort", in, _iRetCount, out);
     }
 
     if (_iRetCount == 2)
@@ -118,8 +115,7 @@ types::Function::ReturnValue sci_gsort(types::typed_list &in, int _iRetCount, ty
                 delete pDblInd;
             }
 
-            ast::ExecVisitor exec;
-            return Overload::call(L"%_gsort", in, _iRetCount, out, &exec);
+            return Overload::call(L"%_gsort", in, _iRetCount, out);
         }
 
         types::Double* pDblOut = gsort(pDblIn, pDblInd, wstrWay, wstrProcess);
@@ -132,9 +128,8 @@ types::Function::ReturnValue sci_gsort(types::typed_list &in, int _iRetCount, ty
             delete pDblInd;
         }
 
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_gsort";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
     else if (in[0]->isString()) // string
     {
@@ -192,9 +187,8 @@ types::Function::ReturnValue sci_gsort(types::typed_list &in, int _iRetCount, ty
     }
     else
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_gsort";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     /***** set result *****/
index 6bfdffb..a85df2d 100644 (file)
  *
  */
 /*--------------------------------------------------------------------------*/
+
+#include <complex>
+
 #include "elem_func_gw.hxx"
 #include "function.hxx"
 #include "double.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 #include "sparse.hxx"
+#include "polynom.hxx"
 
 extern "C"
 {
@@ -141,9 +144,8 @@ types::Function::ReturnValue sci_imag(types::typed_list &in, int _iRetCount, typ
     }
     else
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_imag";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     return types::Function::OK;
index 1cfab26..3fbb7ac 100644 (file)
  *
  */
 /*--------------------------------------------------------------------------*/
+
+#include <complex>
+
 #include "elem_func_gw.hxx"
 #include "function.hxx"
 #include "double.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 #include "sparse.hxx"
+#include "polynom.hxx"
 
 extern "C"
 {
@@ -142,9 +145,8 @@ types::Function::ReturnValue sci_imult(types::typed_list &in, int _iRetCount, ty
     }
     else
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_imult";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     return types::Function::OK;
index ef2b30a..85b87f9 100644 (file)
@@ -14,8 +14,8 @@
 #include "function.hxx"
 #include "double.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 #include "sparse.hxx"
+#include "polynom.hxx"
 
 extern "C"
 {
@@ -211,9 +211,8 @@ types::Function::ReturnValue sci_int(types::typed_list &in, int _iRetCount, type
 
     else
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_int";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     return types::Function::OK;
index 7050151..f9c784e 100644 (file)
@@ -14,9 +14,8 @@
 #include "function.hxx"
 #include "double.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 #include "sparse.hxx"
-
+#include "polynom.hxx"
 
 extern "C"
 {
@@ -158,9 +157,8 @@ types::Function::ReturnValue sci_isreal(types::typed_list &in, int _iRetCount, t
     }
     else
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_isreal";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     return types::Function::OK;
index 846142a..267c9d1 100644 (file)
 #include "function.hxx"
 #include "double.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 #include "types_kronecker.hxx"
 
-
 extern "C"
 {
 #include "Scierror.h"
@@ -53,14 +51,12 @@ types::Function::ReturnValue sci_kron(types::typed_list &in, int _iRetCount, typ
     else if (in[0]->isInt() || in[1]->isInt())
     {
         // int .*. double || double .*. int || int .*. int
-        ast::ExecVisitor exec;
-        return Overload::call(L"%_kron", in, _iRetCount, out, &exec);
+        return Overload::call(L"%_kron", in, _iRetCount, out);
     }
     else
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_kron";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     out.push_back(pDblOut);
index 28936b3..ea0ca9d 100644 (file)
@@ -14,8 +14,7 @@
 #include "function.hxx"
 #include "double.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
-
+#include "configvariable.hxx"
 
 extern "C"
 {
@@ -51,9 +50,8 @@ types::Function::ReturnValue sci_log(types::typed_list &in, int _iRetCount, type
 
     if (in[0]->isDouble() == false)
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_log";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     types::Double* pDblIn = in[0]->getAs<types::Double>();
index 5adba08..ea416fd 100644 (file)
@@ -14,8 +14,7 @@
 #include "function.hxx"
 #include "double.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
-
+#include "configvariable.hxx"
 
 extern "C"
 {
@@ -48,9 +47,8 @@ types::Function::ReturnValue sci_log1p(types::typed_list &in, int _iRetCount, ty
 
     if (in[0]->isDouble() == false)
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_log1p";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     types::Double* pDblIn = in[0]->getAs<types::Double>();
index be1fd29..45572f2 100644 (file)
@@ -16,8 +16,6 @@
 #include "double.hxx"
 #include "string.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
-
 
 extern "C"
 {
@@ -52,9 +50,8 @@ types::Function::ReturnValue sci_matrix(types::typed_list &in, int _iRetCount, t
             in[0]->isSparse()       == false &&
             in[0]->isSparseBool()   == false)
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_matrix";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     pGTIn = in[0]->getAs<types::GenericType>();
index b0933ed..f37437c 100644 (file)
  *
  */
 /*--------------------------------------------------------------------------*/
+
+#include <algorithm>
+
 #include "elem_func_gw.hxx"
 #include "function.hxx"
 #include "double.hxx"
 #include "string.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 #include "max.hxx"
 #include "min.hxx"
 #include "int.hxx"
@@ -97,8 +99,7 @@ types::Function::ReturnValue sci_MinMax(types::typed_list &in, int _iRetCount, t
         wchar_t* wcsMinMax = to_wide_string(fname);
         std::wstring wstFuncName = L"%" + inputs[0]->getShortTypeStr() + L"_" + wcsMinMax;
         FREE(wcsMinMax);
-        ast::ExecVisitor exec;
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     types::GenericType* pGT = NULL;
@@ -195,7 +196,7 @@ types::Function::ReturnValue sci_MinMax(types::typed_list &in, int _iRetCount, t
         types::Double* pDbl = NULL;
         switch (inputs[i]->getType())
         {
-            case InternalType::ScilabDouble:
+            case types::InternalType::ScilabDouble:
             {
                 pDbl = inputs[i]->getAs<types::Double>();
                 if (pDbl->isComplex())
@@ -208,56 +209,56 @@ types::Function::ReturnValue sci_MinMax(types::typed_list &in, int _iRetCount, t
                 cloned[i] = false;
                 break;
             }
-            case InternalType::ScilabInt8:
+            case types::InternalType::ScilabInt8:
             {
                 pDbl = getAsDouble(inputs[i]->getAs<types::Int8>());
-                iLargerInput = max(iLargerInput, 8);
+                iLargerInput = std::max(iLargerInput, 8);
                 iSigned = 1;
                 break;
             }
-            case InternalType::ScilabInt16:
+            case types::InternalType::ScilabInt16:
             {
                 pDbl = getAsDouble(inputs[i]->getAs<types::Int16>());
-                iLargerInput = max(iLargerInput, 16);
+                iLargerInput = std::max(iLargerInput, 16);
                 iSigned = 1;
                 break;
             }
-            case InternalType::ScilabInt32:
+            case types::InternalType::ScilabInt32:
             {
                 pDbl = getAsDouble(inputs[i]->getAs<types::Int32>());
-                iLargerInput = max(iLargerInput, 32);
+                iLargerInput = std::max(iLargerInput, 32);
                 iSigned = 1;
                 break;
             }
-            case InternalType::ScilabInt64:
+            case types::InternalType::ScilabInt64:
             {
                 pDbl = getAsDouble(inputs[i]->getAs<types::Int64>());
-                iLargerInput = max(iLargerInput, 64);
+                iLargerInput = std::max(iLargerInput, 64);
                 iSigned = 1;
                 break;
             }
-            case InternalType::ScilabUInt8:
+            case types::InternalType::ScilabUInt8:
             {
                 pDbl = getAsDouble(inputs[i]->getAs<types::UInt8>());
-                iLargerInput = max(iLargerInput, 8);
+                iLargerInput = std::max(iLargerInput, 8);
                 break;
             }
-            case InternalType::ScilabUInt16:
+            case types::InternalType::ScilabUInt16:
             {
                 pDbl = getAsDouble(inputs[i]->getAs<types::UInt16>());
-                iLargerInput = max(iLargerInput, 16);
+                iLargerInput = std::max(iLargerInput, 16);
                 break;
             }
-            case InternalType::ScilabUInt32:
+            case types::InternalType::ScilabUInt32:
             {
                 pDbl = getAsDouble(inputs[i]->getAs<types::UInt32>());
-                iLargerInput = max(iLargerInput, 32);
+                iLargerInput = std::max(iLargerInput, 32);
                 break;
             }
-            case InternalType::ScilabUInt64:
+            case types::InternalType::ScilabUInt64:
             {
                 pDbl = getAsDouble(inputs[i]->getAs<types::UInt64>());
-                iLargerInput = max(iLargerInput, 64);
+                iLargerInput = std::max(iLargerInput, 64);
                 break;
             }
             default:
index 9dadc84..36a20c3 100644 (file)
@@ -16,9 +16,7 @@
 #include "elem_func_gw.hxx"
 #include "function.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 #include "double.hxx"
-#include "context.hxx"
 
 extern "C"
 {
@@ -47,15 +45,14 @@ types::Function::ReturnValue sci_ones(types::typed_list &in, int _iRetCount, typ
             case 1:
             {
                 //call overload
-                ast::ExecVisitor exec;
-                return Overload::generateNameAndCall(L"ones", in, _iRetCount, out, &exec);
+                return Overload::generateNameAndCall(L"ones", in, _iRetCount, out);
             }
         }
 
         return types::Function::Error;
     }
 
-    pOut = new Double(iDims, piDims);
+    pOut = new types::Double(iDims, piDims);
     if (alloc)
     {
         delete[] piDims;
@@ -64,6 +61,6 @@ types::Function::ReturnValue sci_ones(types::typed_list &in, int _iRetCount, typ
     pOut->setOnes();
 
     out.push_back(pOut);
-    return Function::OK;
+    return types::Function::OK;
 }
 /*--------------------------------------------------------------------------*/
index d693099..dd1df32 100644 (file)
@@ -15,9 +15,9 @@
 #include "double.hxx"
 #include "string.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 #include "prod.hxx"
 #include "int.hxx"
+#include "polynom.hxx"
 
 extern "C"
 {
@@ -61,68 +61,67 @@ types::Function::ReturnValue sci_prod(types::typed_list &in, int _iRetCount, typ
     /***** get data *****/
     switch (in[0]->getType())
     {
-        case InternalType::ScilabDouble:
+        case types::InternalType::ScilabDouble:
         {
             pDblIn = in[0]->getAs<types::Double>();
             isCopy = false;
             break;
         }
-        case InternalType::ScilabBool:
+        case types::InternalType::ScilabBool:
         {
             pDblIn = getAsDouble(in[0]->getAs<types::Bool>());
             iOuttype = 2;
             break;
         }
-        case InternalType::ScilabPolynom:
+        case types::InternalType::ScilabPolynom:
         {
             pPolyIn = in[0]->getAs<types::Polynom>();
             break;
         }
-        case InternalType::ScilabInt8:
+        case types::InternalType::ScilabInt8:
         {
             pDblIn = getAsDouble(in[0]->getAs<types::Int8>());
             break;
         }
-        case InternalType::ScilabInt16:
+        case types::InternalType::ScilabInt16:
         {
             pDblIn = getAsDouble(in[0]->getAs<types::Int16>());
             break;
         }
-        case InternalType::ScilabInt32:
+        case types::InternalType::ScilabInt32:
         {
             pDblIn = getAsDouble(in[0]->getAs<types::Int32>());
             break;
         }
-        case InternalType::ScilabInt64:
+        case types::InternalType::ScilabInt64:
         {
             pDblIn = getAsDouble(in[0]->getAs<types::Int64>());
             break;
         }
-        case InternalType::ScilabUInt8:
+        case types::InternalType::ScilabUInt8:
         {
             pDblIn = getAsDouble(in[0]->getAs<types::UInt8>());
             break;
         }
-        case InternalType::ScilabUInt16:
+        case types::InternalType::ScilabUInt16:
         {
             pDblIn = getAsDouble(in[0]->getAs<types::UInt16>());
             break;
         }
-        case InternalType::ScilabUInt32:
+        case types::InternalType::ScilabUInt32:
         {
             pDblIn = getAsDouble(in[0]->getAs<types::UInt32>());
             break;
         }
-        case InternalType::ScilabUInt64:
+        case types::InternalType::ScilabUInt64:
         {
             pDblIn = getAsDouble(in[0]->getAs<types::UInt64>());
             break;
         }
         default:
         {
-            ast::ExecVisitor exec;
             std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_prod";
-            return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+            return Overload::call(wstFuncName, in, _iRetCount, out);
         }
     }
 
@@ -363,7 +362,7 @@ types::Function::ReturnValue sci_prod(types::typed_list &in, int _iRetCount, typ
     {
         switch (in[0]->getType())
         {
-            case InternalType::ScilabBool:
+            case types::InternalType::ScilabBool:
             {
                 types::Bool* pB = new types::Bool(pDblOut->getDims(), pDblOut->getDimsArray());
                 int* p = pB->get();
@@ -376,47 +375,47 @@ types::Function::ReturnValue sci_prod(types::typed_list &in, int _iRetCount, typ
                 out.push_back(pB);
                 break;
             }
-            case InternalType::ScilabPolynom:
+            case types::InternalType::ScilabPolynom:
             {
                 out.push_back(pPolyOut);
                 break;
             }
-            case InternalType::ScilabInt8:
+            case types::InternalType::ScilabInt8:
             {
                 out.push_back(toInt<types::Int8>(pDblOut));
                 break;
             }
-            case InternalType::ScilabInt16:
+            case types::InternalType::ScilabInt16:
             {
                 out.push_back(toInt<types::Int16>(pDblOut));
                 break;
             }
-            case InternalType::ScilabInt32:
+            case types::InternalType::ScilabInt32:
             {
                 out.push_back(toInt<types::Int32>(pDblOut));
                 break;
             }
-            case InternalType::ScilabInt64:
+            case types::InternalType::ScilabInt64:
             {
                 out.push_back(toInt<types::Int64>(pDblOut));
                 break;
             }
-            case InternalType::ScilabUInt8:
+            case types::InternalType::ScilabUInt8:
             {
                 out.push_back(toInt<types::UInt8>(pDblOut));
                 break;
             }
-            case InternalType::ScilabUInt16:
+            case types::InternalType::ScilabUInt16:
             {
                 out.push_back(toInt<types::UInt16>(pDblOut));
                 break;
             }
-            case InternalType::ScilabUInt32:
+            case types::InternalType::ScilabUInt32:
             {
                 out.push_back(toInt<types::UInt32>(pDblOut));
                 break;
             }
-            case InternalType::ScilabUInt64:
+            case types::InternalType::ScilabUInt64:
             {
                 out.push_back(toInt<types::UInt64>(pDblOut));
                 break;
index 3f5bce1..b20b73f 100644 (file)
@@ -14,7 +14,6 @@
 #include "elem_func_gw.hxx"
 #include "function.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 #include "double.hxx"
 #include "string.hxx"
 
@@ -134,7 +133,7 @@ types::Function::ReturnValue sci_rand(types::typed_list &in, int _iRetCount, typ
             iSizeIn--;
         }
 
-        typed_list args;
+        types::typed_list args;
         std::copy(in.begin(), in.begin() + iSizeIn, back_inserter(args));
 
         int iDims = 0;
@@ -152,8 +151,7 @@ types::Function::ReturnValue sci_rand(types::typed_list &in, int _iRetCount, typ
                 case 1:
                 {
                     //call overload
-                    ast::ExecVisitor exec;
-                    return Overload::generateNameAndCall(L"rand", in, _iRetCount, out, &exec);
+                    return Overload::generateNameAndCall(L"rand", in, _iRetCount, out);
                 }
             }
 
@@ -164,10 +162,10 @@ types::Function::ReturnValue sci_rand(types::typed_list &in, int _iRetCount, typ
         bool complex = false;
         if (in.size() == 1 && in[0]->isGenericType())
         {
-            complex = in[0]->getAs<GenericType>()->isComplex();
+            complex = in[0]->getAs<types::GenericType>()->isComplex();
         }
 
-        pOut = new Double(iDims, piDims, complex);
+        pOut = new types::Double(iDims, piDims, complex);
         if (alloc)
         {
             delete[] piDims;
index 0d81326..eda8863 100644 (file)
  */
 /*--------------------------------------------------------------------------*/
 #include <algorithm>
+
 #include "elem_func_gw.hxx"
 #include "function.hxx"
 #include "double.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
-
 
 extern "C"
 {
@@ -30,7 +29,7 @@ extern "C"
 clear a; nb = 2500; a = rand(nb, nb); tic(); rat(a); toc
 */
 /*--------------------------------------------------------------------------*/
-Function::ReturnValue sci_rat(types::typed_list &in, int _iRetCount, types::typed_list &out)
+types::Function::ReturnValue sci_rat(types::typed_list &in, int _iRetCount, types::typed_list &out)
 {
     types::Double* pDblIn   = NULL;
     types::Double* pDblN    = NULL; // numerator
@@ -54,24 +53,21 @@ Function::ReturnValue sci_rat(types::typed_list &in, int _iRetCount, types::type
     /***** get data *****/
     if (in[0]->isDouble() == false)
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_rat";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     pDblIn = in[0]->getAs<types::Double>();
 
     if (pDblIn->getDims() > 2)
     {
-        ast::ExecVisitor exec;
-        return Overload::call(L"%hm_rat", in, _iRetCount, out, &exec);
+        return Overload::call(L"%hm_rat", in, _iRetCount, out);
     }
 
     if (pDblIn->isComplex())
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_rat";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     if (in.size() == 2)
@@ -96,7 +92,7 @@ Function::ReturnValue sci_rat(types::typed_list &in, int _iRetCount, types::type
     // Make tolerance relative to the element with maximum absolute value
     for (int i = 0; i < size; i++)
     {
-        dblRTol = max(dblRTol, std::abs(pR[i]));
+        dblRTol = std::max(dblRTol, std::fabs(pR[i]));
     }
 
     if (dblRTol > 0)
@@ -144,6 +140,6 @@ Function::ReturnValue sci_rat(types::typed_list &in, int _iRetCount, types::type
         out.push_back(pDblD);
     }
 
-    return Function::OK;
+    return types::Function::OK;
 }
 /*--------------------------------------------------------------------------*/
index 67cc879..42a7049 100644 (file)
@@ -14,8 +14,8 @@
 #include "function.hxx"
 #include "double.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 #include "sparse.hxx"
+#include "polynom.hxx"
 
 extern "C"
 {
@@ -103,9 +103,8 @@ types::Function::ReturnValue sci_real(types::typed_list &in, int _iRetCount, typ
     }
     else
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_real";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     return types::Function::OK;
index 58c9334..f7fbe8d 100644 (file)
@@ -15,7 +15,6 @@
 #include "double.hxx"
 #include "polynom.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 
 extern "C"
 {
@@ -115,9 +114,8 @@ types::Function::ReturnValue sci_round(types::typed_list &in, int _iRetCount, ty
     }
     else
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_round";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 }
 /*--------------------------------------------------------------------------*/
index 4160109..0a33729 100644 (file)
@@ -15,7 +15,6 @@
 #include "function.hxx"
 #include "double.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 
 extern "C"
 {
@@ -23,7 +22,6 @@ extern "C"
 #include "Scierror.h"
 }
 
-
 /*--------------------------------------------------------------------------*/
 types::Function::ReturnValue sci_sign(types::typed_list &in, int _iRetCount, types::typed_list &out)
 {
@@ -37,7 +35,6 @@ types::Function::ReturnValue sci_sign(types::typed_list &in, int _iRetCount, typ
     double *pdblRealRet = NULL;
     double *pdblImgRet  = NULL;
 
-
     if (in.size() != 1)
     {
         Scierror(77, _("%s: Wrong number of input argument(s): %d expected.\n"), "sign", 1);
@@ -98,9 +95,8 @@ types::Function::ReturnValue sci_sign(types::typed_list &in, int _iRetCount, typ
     }
     else
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_sign";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     return types::Function::OK;
index 6596b00..1bbcf81 100644 (file)
  *
  */
 /*--------------------------------------------------------------------------*/
+
+#include <complex>
+
 #include "elem_func_gw.hxx"
 #include "function.hxx"
 #include "double.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 #include "sparse.hxx"
 
 extern "C"
@@ -50,7 +52,7 @@ types::Function::ReturnValue sci_sin(types::typed_list &in, int _iRetCount, type
     if (in[0]->isDouble())
     {
         pDblIn = in[0]->getAs<types::Double>();
-        pDblOut = trigo(pDblIn, sin, sin);
+        pDblOut = trigo(pDblIn, (double (*)(double))std::sin, (std::complex<double> (*)(const std::complex<double> &))std::sin);
         out.push_back(pDblOut);
     }
     else if (in[0]->isSparse())
@@ -96,9 +98,8 @@ types::Function::ReturnValue sci_sin(types::typed_list &in, int _iRetCount, type
     }
     else
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_sin";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     return types::Function::OK;
index 9e32cd7..380b152 100644 (file)
 *
 */
 /*--------------------------------------------------------------------------*/
+
+#include <complex>
+
 #include "elem_func_gw.hxx"
 #include "function.hxx"
 #include "double.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 
 extern "C"
 {
@@ -79,9 +81,8 @@ types::Function::ReturnValue sci_sinh(types::typed_list &in, int _iRetCount, typ
     }
     else
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_sinh";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     return types::Function::OK;
index 2b1aa1d..c2528dc 100644 (file)
  *
  */
 /*--------------------------------------------------------------------------*/
+
+#include <algorithm>
+
 #include "elem_func_gw.hxx"
 #include "types.hxx"
 #include "string.hxx"
 #include "container.hxx"
 #include "getmode.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 #include "context.hxx"
 
 extern "C"
@@ -42,9 +44,8 @@ Function::ReturnValue sci_size(types::typed_list &in, int _iRetCount, types::typ
         // Dedicated case for lists.
         case InternalType::ScilabMList:
         {
-            ast::ExecVisitor exec;
             std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_size";
-            Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+            Overload::call(wstFuncName, in, _iRetCount, out);
             break;
         }
         case InternalType::ScilabTList:
@@ -54,8 +55,7 @@ Function::ReturnValue sci_size(types::typed_list &in, int _iRetCount, types::typ
             types::InternalType *pIT = symbol::Context::getInstance()->get(symbol::Symbol(wstFuncName));
             if (pIT)
             {
-                ast::ExecVisitor exec;
-                return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+                return Overload::call(wstFuncName, in, _iRetCount, out);
             }
         }
         case InternalType::ScilabList:
@@ -75,9 +75,8 @@ Function::ReturnValue sci_size(types::typed_list &in, int _iRetCount, types::typ
         {
             if (in[0]->isGenericType() == false)
             {
-                ast::ExecVisitor exec;
                 std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_size";
-                return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+                return Overload::call(wstFuncName, in, _iRetCount, out);
             }
             int iMode = -1;
 
index 629a3ec..6329cc4 100644 (file)
@@ -17,9 +17,9 @@
 #include "double.hxx"
 #include "string.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 #include "sum.hxx"
 #include "int.hxx"
+#include "polynom.hxx"
 
 extern "C"
 {
@@ -43,7 +43,7 @@ types::Function::ReturnValue sci_sum(types::typed_list &in, int _iRetCount, type
     if (in.size() < 1 || in.size() > 3)
     {
         Scierror(999, _("%s: Wrong number of input arguments: %d to %d expected.\n"), "sum", 1, 3);
-        return Function::Error;
+        return types::Function::Error;
     }
 
     if (_iRetCount > 1)
@@ -56,68 +56,67 @@ types::Function::ReturnValue sci_sum(types::typed_list &in, int _iRetCount, type
     /***** get data *****/
     switch (in[0]->getType())
     {
-        case InternalType::ScilabDouble:
+        case types::InternalType::ScilabDouble:
         {
             pDblIn = in[0]->getAs<types::Double>();
             isCopy = false;
             break;
         }
-        case InternalType::ScilabBool:
+        case types::InternalType::ScilabBool:
         {
             pDblIn = getAsDouble(in[0]->getAs<types::Bool>());
             iOuttype = 2;
             break;
         }
-        case InternalType::ScilabPolynom:
+        case types::InternalType::ScilabPolynom:
         {
             pPolyIn = in[0]->getAs<types::Polynom>();
             break;
         }
-        case InternalType::ScilabInt8:
+        case types::InternalType::ScilabInt8:
         {
             pDblIn = getAsDouble(in[0]->getAs<types::Int8>());
             break;
         }
-        case InternalType::ScilabInt16:
+        case types::InternalType::ScilabInt16:
         {
             pDblIn = getAsDouble(in[0]->getAs<types::Int16>());
             break;
         }
-        case InternalType::ScilabInt32:
+        case types::InternalType::ScilabInt32:
         {
             pDblIn = getAsDouble(in[0]->getAs<types::Int32>());
             break;
         }
-        case InternalType::ScilabInt64:
+        case types::InternalType::ScilabInt64:
         {
             pDblIn = getAsDouble(in[0]->getAs<types::Int64>());
             break;
         }
-        case InternalType::ScilabUInt8:
+        case types::InternalType::ScilabUInt8:
         {
             pDblIn = getAsDouble(in[0]->getAs<types::UInt8>());
             break;
         }
-        case InternalType::ScilabUInt16:
+        case types::InternalType::ScilabUInt16:
         {
             pDblIn = getAsDouble(in[0]->getAs<types::UInt16>());
             break;
         }
-        case InternalType::ScilabUInt32:
+        case types::InternalType::ScilabUInt32:
         {
             pDblIn = getAsDouble(in[0]->getAs<types::UInt32>());
             break;
         }
-        case InternalType::ScilabUInt64:
+        case types::InternalType::ScilabUInt64:
         {
             pDblIn = getAsDouble(in[0]->getAs<types::UInt64>());
             break;
         }
         default:
         {
-            ast::ExecVisitor exec;
             std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_sum";
-            types::Function::ReturnValue ret = Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+            types::Function::ReturnValue ret = Overload::call(wstFuncName, in, _iRetCount, out);
 
             if (isCopy && pDblIn)
             {
@@ -309,11 +308,11 @@ types::Function::ReturnValue sci_sum(types::typed_list &in, int _iRetCount, type
         {
             if (iOrientation == 0)
             {
-                out.push_back(new Double(0));
+                out.push_back(new types::Double(0));
             }
             else
             {
-                out.push_back(Double::Empty());
+                out.push_back(types::Double::Empty());
             }
 
             if (isCopy)
@@ -321,7 +320,6 @@ types::Function::ReturnValue sci_sum(types::typed_list &in, int _iRetCount, type
                 pDblIn->killMe();
             }
 
-
             return types::Function::OK;
         }
         else if (iOrientation > pDblIn->getDims())
@@ -360,7 +358,7 @@ types::Function::ReturnValue sci_sum(types::typed_list &in, int _iRetCount, type
     {
         switch (in[0]->getType())
         {
-            case InternalType::ScilabBool:
+            case types::InternalType::ScilabBool:
             {
                 types::Bool* pB = new types::Bool(pDblOut->getDims(), pDblOut->getDimsArray());
                 int* p = pB->get();
@@ -373,47 +371,47 @@ types::Function::ReturnValue sci_sum(types::typed_list &in, int _iRetCount, type
                 out.push_back(pB);
                 break;
             }
-            case InternalType::ScilabPolynom:
+            case types::InternalType::ScilabPolynom:
             {
                 out.push_back(pPolyOut);
                 break;
             }
-            case InternalType::ScilabInt8:
+            case types::InternalType::ScilabInt8:
             {
                 out.push_back(toInt<types::Int8>(pDblOut));
                 break;
             }
-            case InternalType::ScilabInt16:
+            case types::InternalType::ScilabInt16:
             {
                 out.push_back(toInt<types::Int16>(pDblOut));
                 break;
             }
-            case InternalType::ScilabInt32:
+            case types::InternalType::ScilabInt32:
             {
                 out.push_back(toInt<types::Int32>(pDblOut));
                 break;
             }
-            case InternalType::ScilabInt64:
+            case types::InternalType::ScilabInt64:
             {
                 out.push_back(toInt<types::Int64>(pDblOut));
                 break;
             }
-            case InternalType::ScilabUInt8:
+            case types::InternalType::ScilabUInt8:
             {
                 out.push_back(toInt<types::UInt8>(pDblOut));
                 break;
             }
-            case InternalType::ScilabUInt16:
+            case types::InternalType::ScilabUInt16:
             {
                 out.push_back(toInt<types::UInt16>(pDblOut));
                 break;
             }
-            case InternalType::ScilabUInt32:
+            case types::InternalType::ScilabUInt32:
             {
                 out.push_back(toInt<types::UInt32>(pDblOut));
                 break;
             }
-            case InternalType::ScilabUInt64:
+            case types::InternalType::ScilabUInt64:
             {
                 out.push_back(toInt<types::UInt64>(pDblOut));
                 break;
@@ -430,6 +428,6 @@ types::Function::ReturnValue sci_sum(types::typed_list &in, int _iRetCount, type
         out.push_back(pDblOut);
     }
 
-    return Function::OK;
+    return types::Function::OK;
 }
 /*--------------------------------------------------------------------------*/
index 82889bb..939a475 100644 (file)
  *
  */
 /*--------------------------------------------------------------------------*/
+
+#include <complex>
+
 #include "elem_func_gw.hxx"
 #include "function.hxx"
 #include "double.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
-
 
 extern "C"
 {
 #include "Scierror.h"
 #include "localization.h"
 #include "tan.h"
-    int C2F(wtan)(double*, double*, double*, double*);
 }
 
 /*
@@ -49,13 +49,12 @@ types::Function::ReturnValue sci_tan(types::typed_list &in, int _iRetCount, type
 
     if (in[0]->isDouble() == false)
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_tan";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     pDblIn = in[0]->getAs<types::Double>();
-    pDblOut = trigo(pDblIn, tan, tan);
+    pDblOut = trigo(pDblIn, std::tan, std::tan);
     out.push_back(pDblOut);
     return types::Function::OK;
 }
index 1196459..63af171 100644 (file)
 *
 */
 /*--------------------------------------------------------------------------*/
+
+#include <complex>
+
 #include "elem_func_gw.hxx"
 #include "function.hxx"
 #include "double.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 
 extern "C"
 {
@@ -79,9 +81,8 @@ types::Function::ReturnValue sci_tanh(types::typed_list &in, int _iRetCount, typ
     }
     else
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_tanh";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     return types::Function::OK;
index 115fb5e..c363503 100644 (file)
  *
  */
 /*--------------------------------------------------------------------------*/
+
+#include <algorithm>
+
 #include "elem_func_gw.hxx"
 #include "function.hxx"
 #include "double.hxx"
 #include "string.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 #include "int.hxx"
+#include "polynom.hxx"
 
 extern "C"
 {
@@ -45,16 +48,14 @@ types::Function::ReturnValue sci_tril(types::typed_list &in, int _iRetCount, typ
 
     if (in[0]->isGenericType() == false)
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_tril";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     if (in[0]->getAs<types::GenericType>()->getDims() > 2)
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_tril";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     // get offset
@@ -125,7 +126,7 @@ types::Function::ReturnValue sci_tril(types::typed_list &in, int _iRetCount, typ
         {
             for (int i = 0; i < iCols; i++)
             {
-                int iSize = min(max(i - iOffset, 0), iRows);
+                int iSize = std::min(std::max(i - iOffset, 0), iRows);
                 for (int j = 0; j < iSize; j++)
                 {
                     types::SinglePoly* pSP = new types::SinglePoly();
@@ -139,7 +140,7 @@ types::Function::ReturnValue sci_tril(types::typed_list &in, int _iRetCount, typ
         {
             for (int i = 0; i < iCols; i++)
             {
-                int iSize = min(max(i - iOffset, 0), iRows);
+                int iSize = std::min(std::max(i - iOffset, 0), iRows);
                 for (int j = 0; j < iSize; j++)
                 {
                     types::SinglePoly* pSP = new types::SinglePoly();
@@ -153,9 +154,8 @@ types::Function::ReturnValue sci_tril(types::typed_list &in, int _iRetCount, typ
     }
     else
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_tril";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     return types::Function::OK;
@@ -174,7 +174,7 @@ template<class T> types::InternalType* tril_const(T* _pL, int iOffset)
         typename T::type* pOutImg = pOut->getImg();
         for (int i = 0; i < iCols; i++)
         {
-            int iSize = min(max(i - iOffset, 0), iRows);
+            int iSize = std::min(std::max(i - iOffset, 0), iRows);
             memset(&pOutReal[i * iRows], 0x00, iSize * sizeof(typename T::type));
             memset(&pOutImg[i * iRows], 0x00, iSize * sizeof(typename T::type));
         }
@@ -183,7 +183,7 @@ template<class T> types::InternalType* tril_const(T* _pL, int iOffset)
     {
         for (int i = 0; i < iCols; i++)
         {
-            int iSize = min(max(i - iOffset, 0), iRows);
+            int iSize = std::min(std::max(i - iOffset, 0), iRows);
             memset(&pOutReal[i * iRows], 0x00, iSize * sizeof(typename T::type));
         }
     }
index 9bdd08b..2ba6c13 100644 (file)
  *
  */
 /*--------------------------------------------------------------------------*/
+
+#include <algorithm>
+
 #include "elem_func_gw.hxx"
 #include "function.hxx"
 #include "double.hxx"
 #include "string.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 #include "int.hxx"
+#include "polynom.hxx"
 
 extern "C"
 {
@@ -47,16 +50,14 @@ types::Function::ReturnValue sci_triu(types::typed_list &in, int _iRetCount, typ
 
     if (in[0]->isGenericType() == false)
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_triu";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     if (in[0]->getAs<types::GenericType>()->getDims() > 2)
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_triu";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     if (in.size() == 2)
@@ -129,7 +130,7 @@ types::Function::ReturnValue sci_triu(types::typed_list &in, int _iRetCount, typ
 
         for (int i = 0 ; i < iCols ; i++)
         {
-            int iSize = min(max(i + 1 - iOffset, 0), iRows);
+            int iSize = std::min(std::max(i + 1 - iOffset, 0), iRows);
             for (int j = 0; j < iSize; j++)
             {
                 int iPos = i * iRows + j;
@@ -141,9 +142,8 @@ types::Function::ReturnValue sci_triu(types::typed_list &in, int _iRetCount, typ
     }
     else
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_triu";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     return types::Function::OK;
@@ -168,7 +168,7 @@ template<class T> types::InternalType* triu_const(T *_pL, int iOffset)
         memset(pOutImg, 0x00, iRows * iCols * sizeof(typename T::type));
         for (int i = 0; i < iCols; i++)
         {
-            int iSize = min(max(i + 1 - iOffset, 0), iRows);
+            int iSize = std::min(std::max(i + 1 - iOffset, 0), iRows);
             memcpy(&pOutReal[i * iRows], &pInReal[i * iRows], iSize * sizeof(typename T::type));
             memcpy(&pOutImg[i * iRows], &pInImg[i * iRows], iSize * sizeof(typename T::type));
         }
@@ -177,7 +177,7 @@ template<class T> types::InternalType* triu_const(T *_pL, int iOffset)
     {
         for (int i = 0; i < iCols; i++)
         {
-            int iSize = min(max(i + 1 - iOffset, 0), iRows);
+            int iSize = std::min(std::max(i + 1 - iOffset, 0), iRows);
             memcpy(&pOutReal[i * iRows], &pInReal[i * iRows], iSize * sizeof(typename T::type));
         }
     }
index 27cb391..73734d2 100644 (file)
@@ -16,9 +16,7 @@
 #include "elem_func_gw.hxx"
 #include "function.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 #include "double.hxx"
-#include "context.hxx"
 
 extern "C"
 {
@@ -47,15 +45,14 @@ types::Function::ReturnValue sci_zeros(types::typed_list &in, int _iRetCount, ty
             case 1:
             {
                 //call overload
-                ast::ExecVisitor exec;
-                return Overload::generateNameAndCall(L"zeros", in, _iRetCount, out, &exec);
+                return Overload::generateNameAndCall(L"zeros", in, _iRetCount, out);
             }
         }
 
         return types::Function::Error;
     }
 
-    pOut = new Double(iDims, piDims);
+    pOut = new types::Double(iDims, piDims);
     if (alloc)
     {
         delete[] piDims;
index a927816..1038a4e 100644 (file)
@@ -12,8 +12,8 @@
 
 #include "fftw_common.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 #include "int.hxx"
+#include "string.hxx"
 
 extern "C"
 {
@@ -62,8 +62,7 @@ types::Function::ReturnValue fftw_common(std::wstring& name, types::typed_list &
 
     if (in[0]->isDouble() == false)
     {
-        ast::ExecVisitor exec;
-        return Overload::generateNameAndCall(name, in, _iRetCount, out, &exec);
+        return Overload::generateNameAndCall(name, in, _iRetCount, out);
     }
 
     //check option, last parameter
index 242faeb..b81081a 100644 (file)
@@ -20,7 +20,6 @@
 #include "string.hxx"
 #include "scilab_sprintf.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 
 extern "C"
 {
@@ -88,9 +87,8 @@ Function::ReturnValue sci_mfprintf(types::typed_list &in, int _iRetCount, types:
     {
         if (in[i]->isDouble() == false && in[i]->isString() == false)
         {
-            ast::ExecVisitor exec;
             std::wstring wstFuncName = L"%" + in[i]->getShortTypeStr() + L"_mfprintf";
-            return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+            return Overload::call(wstFuncName, in, _iRetCount, out);
         }
     }
 
index 718c5f7..0b20010 100644 (file)
@@ -16,7 +16,7 @@
 #include "string.hxx"
 #include "graphichandle.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
+#include "string.hxx"
 
 extern "C"
 {
@@ -59,8 +59,7 @@ types::Function::ReturnValue sci_get(types::typed_list &in, int _iRetCount, type
 
     if (p1->isMList() || p1->isTList())
     {
-        ast::ExecVisitor exec;
-        Overload::generateNameAndCall(L"get", in, _iRetCount, out, &exec);
+        Overload::generateNameAndCall(L"get", in, _iRetCount, out);
         return types::Function::OK;
     }
 
@@ -76,8 +75,7 @@ types::Function::ReturnValue sci_get(types::typed_list &in, int _iRetCount, type
         double pdbll1 = pDbll1->get(0);
         if (pdbll1 != 0)
         {
-            ast::ExecVisitor exec;
-            Overload::generateNameAndCall(L"get", in, _iRetCount, out, &exec);
+            Overload::generateNameAndCall(L"get", in, _iRetCount, out);
             return types::Function::OK;
         }
 
@@ -127,8 +125,7 @@ types::Function::ReturnValue sci_get(types::typed_list &in, int _iRetCount, type
         types::GraphicHandle* pH = p1->getAs<types::GraphicHandle>();
         if (pH->isScalar() == false)
         {
-            ast::ExecVisitor exec;
-            return Overload::call(L"%h_get", in, _iRetCount, out, &exec);
+            return Overload::call(L"%h_get", in, _iRetCount, out);
         }
 
         if (in.size() == 1)
@@ -225,8 +222,7 @@ types::Function::ReturnValue sci_get(types::typed_list &in, int _iRetCount, type
     else
     {
         // Overload
-        ast::ExecVisitor exec;
-        return Overload::call(L"%" + p1->getShortTypeStr() + L"_get", in, _iRetCount, out, &exec);
+        return Overload::call(L"%" + p1->getShortTypeStr() + L"_get", in, _iRetCount, out);
     }
 
     char* pstProperty = wide_string_to_UTF8(pS->get(0));
index a9f66e4..131f4cc 100644 (file)
@@ -23,7 +23,6 @@
 #include "string.hxx"
 #include "graphichandle.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 #include "int.hxx"
 
 extern "C"
@@ -66,8 +65,7 @@ types::Function::ReturnValue sci_matplot(types::typed_list &in, types::optional_
 
     if (in.size() < 1)
     {
-        ast::ExecVisitor exec;
-        return Overload::call(L"%_Matplot", in, _iRetCount, out, &exec);
+        return Overload::call(L"%_Matplot", in, _iRetCount, out);
     }
 
     if (in.size() > 5)
index 8886dc0..7e6a4b8 100644 (file)
@@ -24,7 +24,6 @@
 #include "string.hxx"
 #include "graphichandle.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 #include "int.hxx"
 
 extern "C"
@@ -58,8 +57,7 @@ types::Function::ReturnValue sci_matplot1(types::typed_list &in, int _iRetCount,
 
     if (in.size() < 1)
     {
-        ast::ExecVisitor exec;
-        return Overload::call(L"%_Matplot1", in, _iRetCount, out, &exec);
+        return Overload::call(L"%_Matplot1", in, _iRetCount, out);
     }
     else if (in.size() != 2)
     {
index 7581dc4..b804d08 100644 (file)
@@ -23,8 +23,7 @@
 #include "double.hxx"
 #include "configgraphicvariable.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
-#include "internal.hxx"
+#include "string.hxx"
 
 extern "C"
 {
@@ -51,8 +50,7 @@ types::Function::ReturnValue sci_xget(types::typed_list &in, int _iRetCount, typ
 
     if (in.size() == 0)
     {
-        ast::ExecVisitor exec;
-        return Overload::call(L"%_xget", in, _iRetCount, out, &exec);
+        return Overload::call(L"%_xget", in, _iRetCount, out);
     }
 
     if (in.size() > 2)
index 1f593e5..60fb622 100644 (file)
@@ -23,8 +23,8 @@
 #include "configvariable.hxx"
 #include "configgraphicvariable.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 #include "internal.hxx"
+#include "string.hxx"
 
 extern "C"
 {
@@ -57,8 +57,7 @@ types::Function::ReturnValue sci_xset(types::typed_list &in, int _iRetCount, typ
 
     if (in.size() == 0)
     {
-        ast::ExecVisitor exec;
-        return Overload::call(L"%_xset", in, _iRetCount, out, &exec);
+        return Overload::call(L"%_xset", in, _iRetCount, out);
     }
 
     if (in.size() > 6)
index 7bcde2f..3f57bce 100644 (file)
@@ -15,7 +15,6 @@
 #include "function.hxx"
 #include "string.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 
 extern "C"
 {
@@ -82,7 +81,5 @@ types::Function::ReturnValue sci_hdf5_listvar(types::typed_list &in, int _iRetCo
         }
     }
 
-
-    ast::ExecVisitor exec;
-    return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
-}
\ No newline at end of file
+    return Overload::call(wstFuncName, in, _iRetCount, out);
+}
index e18f41b..71d2620 100644 (file)
@@ -16,8 +16,8 @@
 #include "string.hxx"
 #include "list.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 #include "loadlib.hxx"
+#include "context.hxx"
 
 extern "C"
 {
@@ -32,22 +32,22 @@ extern "C"
 
 static const std::string fname("load");
 
-Function::ReturnValue sci_hdf5_load(typed_list &in, int _iRetCount, typed_list& out)
+types::Function::ReturnValue sci_hdf5_load(types::typed_list &in, int _iRetCount, types::typed_list& out)
 {
     int rhs = static_cast<int>(in.size());
     if (rhs < 1)
     {
         Scierror(999, _("%s: Wrong number of input argument(s): at least %d expected.\n"), fname.data(), 1);
-        return Function::Error;
+        return types::Function::Error;
     }
 
-    if (in[0]->getId() != InternalType::IdScalarString)
+    if (in[0]->getId() != types::InternalType::IdScalarString)
     {
         Scierror(999, _("%s: Wrong size for input argument #%d: A string expected.\n"), fname.data(), 1);
-        return Function::Error;
+        return types::Function::Error;
     }
 
-    wchar_t* wcfilename = expandPathVariableW(in[0]->getAs<String>()->get()[0]);
+    wchar_t* wcfilename = expandPathVariableW(in[0]->getAs<types::String>()->get()[0]);
     char* cfilename = wide_string_to_UTF8(wcfilename);
     std::string filename(cfilename);
     std::wstring wfilename(wcfilename);
@@ -57,7 +57,7 @@ Function::ReturnValue sci_hdf5_load(typed_list &in, int _iRetCount, typed_list&
     if (FileExistW(wfilename.data()) == FALSE)
     {
         Scierror(999, _("%s: Unable to open file: '%s'.\n"), fname.data(), filename.data());
-        return Function::Error;
+        return types::Function::Error;
     }
 
     //library ?
@@ -65,29 +65,29 @@ Function::ReturnValue sci_hdf5_load(typed_list &in, int _iRetCount, typed_list&
     {
         //lib file
         int err = 0;
-        Library* lib = loadlib(in[0]->getAs<String>()->get()[0], &err);
+        types::Library* lib = loadlib(in[0]->getAs<types::String>()->get()[0], &err);
 
         switch (err)
         {
             case 1:
                 Scierror(999, _("%s: %s is not a valid lib file.\n"), fname.data(), filename.data());
-                return Function::Error;
+                return types::Function::Error;
             case 2:
                 Scierror(999, "%s: %s", fname.data(), _("Redefining permanent variable.\n"));
-                return Function::Error;
+                return types::Function::Error;
             default:
                 break;
         }
 
         lib->killMe();
-        return Function::OK;
+        return types::Function::OK;
     }
 
     int iFile = openHDF5File(filename.data(), 0);
     if (iFile < 0)
     {
         Scierror(999, _("%s: Unable to open file: %s\n"), fname.data(), filename.data());
-        return Function::Error;
+        return types::Function::Error;
     }
 
     std::wstring wstFuncName;
@@ -119,31 +119,29 @@ Function::ReturnValue sci_hdf5_load(typed_list &in, int _iRetCount, typed_list&
         default :
         {
             Scierror(999, _("%s: Wrong SOD file format version. Max Expected: %d Found: %d\n"), fname.data(), SOD_FILE_VERSION, version);
-            return Function::Error;
+            return types::Function::Error;
         }
     }
 
+    types::typed_list out1;
+    types::Function::ReturnValue ret = Overload::call(wstFuncName, in, _iRetCount, out1);
 
-    ast::ExecVisitor exec;
-    typed_list out1;
-    Function::ReturnValue ret = Overload::call(wstFuncName, in, _iRetCount, out1, &exec);
-
-    if (ret != Function::OK)
+    if (ret != types::Function::OK)
     {
         Scierror(999, _("%s: Unable to load '%s'\n"), fname.data(), filename.data());
-        return Function::Error;
+        return types::Function::Error;
     }
 
     if (needReprocess)
     {
         //call %sodload
-        String* vars = out1[0]->getAs<String>();
+        types::String* vars = out1[0]->getAs<types::String>();
         vars->IncreaseRef();
         int size = vars->getSize();
-        typed_list in2(1, vars);
-        typed_list out2;
+        types::typed_list in2(1, vars);
+        types::typed_list out2;
         std::wstring wstFuncName = L"%_sodload";
-        ret = Overload::call(wstFuncName, in2, size, out2, &exec);
+        ret = Overload::call(wstFuncName, in2, size, out2);
         vars->DecreaseRef();
 
         symbol::Context* ctx = symbol::Context::getInstance();
index 50470fe..8a00e4a 100644 (file)
@@ -10,7 +10,8 @@
 *
 */
 #include <list>
-#include <map>
+#include <unordered_map>
+
 #include <hdf5.h>
 #include "hdf5_gw.hxx"
 #include "context.hxx"
@@ -31,7 +32,7 @@
 #include "context.hxx"
 #include "handle_properties.hxx"
 #include "deserializervisitor.hxx"
-#include "execvisitor.hxx"
+#include "overload.hxx"
 
 std::unordered_map<int, Links::PathList> Links::paths;
 
@@ -1091,10 +1092,9 @@ static types::InternalType* import_usertype(int dataset)
 
     types::typed_list out;
     //overload
-    ast::ExecVisitor exec;
     // rational case
     std::wstring wstFuncName = L"%" + data->getShortTypeStr() + L"_load";
-    types::Callable::ReturnValue ret = Overload::call(wstFuncName, in, 1, out, &exec);
+    types::Callable::ReturnValue ret = Overload::call(wstFuncName, in, 1, out);
 
     //clean temporary variables
     delete it; //included type and data
index d55b77f..7790ecd 100644 (file)
@@ -26,7 +26,6 @@
 #include "graphichandle.hxx"
 #include "user.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 #include "handle_properties.hxx"
 #include "context.hxx"
 #include "serializervisitor.hxx"
@@ -907,13 +906,12 @@ static int export_usertype(int parent, const std::string& name, types::UserType*
 
         types::typed_list out;
         //overload
-        ast::ExecVisitor exec;
         // rational case
         std::wstring wstFuncName = L"%" + data->getShortTypeStr() + L"_save";
 
         try
         {
-            types::Callable::ReturnValue ret = Overload::call(wstFuncName, in, 1, out, &exec);
+            types::Callable::ReturnValue ret = Overload::call(wstFuncName, in, 1, out);
 
             if (ret != types::Callable::OK)
             {
index 3844384..58df122 100644 (file)
@@ -13,7 +13,6 @@
 #include "integer_gw.hxx"
 #include "function.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 
 extern "C"
 {
@@ -38,12 +37,10 @@ types::Function::ReturnValue sci_iconvert(types::typed_list &in, int _iRetCount,
     if (in[0]->isInt() == false && in[0]->isDouble() == false && in[0]->isBool() == false)
     {
         // call overload
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_iconvert";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     // perfom operation
-    ast::ExecVisitor exec;
-    return Overload::call(L"%_iconvert", in, _iRetCount, out, &exec);
+    return Overload::call(L"%_iconvert", in, _iRetCount, out);
 }
index a8a763c..c4cfc0e 100644 (file)
@@ -15,7 +15,6 @@
 #include "function.hxx"
 #include "string.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 #include "library.hxx"
 #include "loadlib.hxx"
 
@@ -58,9 +57,8 @@ Function::ReturnValue sci_load(types::typed_list &in, int _iRetCount, types::typ
 
             //call overload
             std::wstring wstFuncName = L"%_sodload";
-            ast::ExecVisitor exec;
             Callable::ReturnValue Ret = Callable::Error;
-            Ret = Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+            Ret = Overload::call(wstFuncName, in, _iRetCount, out);
             return Ret;
         }
         else
index 7c33c6d..e1037c1 100644 (file)
@@ -16,7 +16,6 @@
 #include "function.hxx"
 #include "double.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 
 extern "C"
 {
@@ -48,9 +47,8 @@ types::Function::ReturnValue sci_balanc(types::typed_list &in, int _iRetCount, t
 
     if ((in[0]->isDouble() == false))
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_balanc";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     pDbl[0] = in[0]->getAs<types::Double>()->clone()->getAs<types::Double>();
@@ -63,9 +61,8 @@ types::Function::ReturnValue sci_balanc(types::typed_list &in, int _iRetCount, t
     {
         if ((in[1]->isDouble() == false))
         {
-            ast::ExecVisitor exec;
             std::wstring wstFuncName = L"%" + in[1]->getShortTypeStr() + L"_balanc";
-            return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+            return Overload::call(wstFuncName, in, _iRetCount, out);
         }
 
         pDbl[1] = in[1]->getAs<types::Double>()->clone()->getAs<types::Double>();
index 3ec5d09..551def0 100644 (file)
@@ -12,6 +12,8 @@
 */
 /*--------------------------------------------------------------------------*/
 
+#include <cmath>
+
 #include "linear_algebra_gw.hxx"
 #include "function.hxx"
 #include "double.hxx"
@@ -106,7 +108,7 @@ types::Function::ReturnValue sci_bdiag(types::typed_list &in, int _iRetCount, ty
             double t = 0.0;
             for (int i = 0; i < pDblMatrix->getCols(); i++)
             {
-                t += std::abs(pDblMatrix->get(i + j * pDblMatrix->getCols()));
+                t += std::fabs(pDblMatrix->get(i + j * pDblMatrix->getCols()));
             }
             rMax = std::max(t, rMax);
         }
index b790fac..0af28ba 100644 (file)
@@ -16,7 +16,6 @@
 #include "function.hxx"
 #include "double.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 
 extern "C"
 {
@@ -41,9 +40,8 @@ types::Function::ReturnValue sci_chol(types::typed_list &in, int _iRetCount, typ
 
     if ((in[0]->isDouble() == false))
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_chol";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     pDbl = in[0]->getAs<types::Double>();
index 2421bac..c3b1cb5 100644 (file)
@@ -15,7 +15,6 @@
 #include "function.hxx"
 #include "double.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 
 extern "C"
 {
@@ -47,9 +46,8 @@ types::Function::ReturnValue sci_det(types::typed_list &in, int _iRetCount, type
 
     if ((in[0]->isDouble() == false))
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_det";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     pDbl = in[0]->getAs<types::Double>()->clone()->getAs<types::Double>();
index 4269ea2..5bc0d29 100644 (file)
@@ -16,7 +16,6 @@
 #include "function.hxx"
 #include "double.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 
 extern "C"
 {
@@ -48,9 +47,8 @@ types::Function::ReturnValue sci_hess(types::typed_list &in, int _iRetCount, typ
 
     if ((in[0]->isDouble() == false))
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_hess";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     pDbl = in[0]->getAs<types::Double>()->clone()->getAs<types::Double>();
index ba83004..74e7114 100644 (file)
@@ -16,7 +16,6 @@
 #include "function.hxx"
 #include "double.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 
 extern "C"
 {
@@ -43,9 +42,8 @@ types::Function::ReturnValue sci_inv(types::typed_list &in, int _iRetCount, type
 
     if ((in[0]->isDouble() == false))
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_inv";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     pDbl = in[0]->getAs<types::Double>()->clone()->getAs<types::Double>(); // input data will be modified
index 372a6a0..a305b46 100644 (file)
@@ -15,7 +15,6 @@
 #include "function.hxx"
 #include "double.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 
 extern "C"
 {
@@ -50,18 +49,16 @@ types::Function::ReturnValue sci_lsq(types::typed_list &in, int _iRetCount, type
 
     if ((in[0]->isDouble() == false))
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_lsq";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     if (in.size() == 2)
     {
         if ((in[1]->isDouble() == false))
         {
-            ast::ExecVisitor exec;
             std::wstring wstFuncName = L"%" + in[1]->getShortTypeStr() + L"_lsq";
-            return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+            return Overload::call(wstFuncName, in, _iRetCount, out);
         }
         pDbl[1] = in[1]->getAs<types::Double>()->clone()->getAs<types::Double>();
     }
index 0d4c790..ec8416b 100644 (file)
@@ -15,7 +15,6 @@
 #include "function.hxx"
 #include "double.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 
 extern "C"
 {
@@ -51,9 +50,8 @@ types::Function::ReturnValue sci_lu(types::typed_list &in, int _iRetCount, types
 
     if ((in[0]->isDouble() == false))
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_lu";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     pDbl = in[0]->getAs<types::Double>()->clone()->getAs<types::Double>();
index 5d54a5e..5fafc05 100644 (file)
@@ -16,7 +16,6 @@
 #include "function.hxx"
 #include "double.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 
 extern "C"
 {
@@ -54,9 +53,8 @@ types::Function::ReturnValue sci_qr(types::typed_list &in, int _iRetCount, types
 
     if ((in[0]->isDouble() == false))
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_qr";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     pDbl = in[0]->getAs<types::Double>()->clone()->getAs<types::Double>();
index 95fc15d..a83ff0b 100644 (file)
@@ -16,7 +16,6 @@
 #include "function.hxx"
 #include "double.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 
 extern "C"
 {
@@ -41,9 +40,8 @@ types::Function::ReturnValue sci_rcond(types::typed_list &in, int _iRetCount, ty
 
     if ((in[0]->isDouble() == false))
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_rcond";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     pDbl = in[0]->getAs<types::Double>()->clone()->getAs<types::Double>();
index 8dfccc4..5362ae7 100644 (file)
@@ -16,9 +16,9 @@
 #include "function.hxx"
 #include "double.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 #include "configvariable.hxx"
 #include "callable.hxx"
+#include "string.hxx"
 
 extern "C"
 {
@@ -54,9 +54,8 @@ types::Function::ReturnValue sci_schur(types::typed_list &in, int _iRetCount, ty
     // *** check type of input args and get it. ***
     if (in[0]->isDouble() == false)
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_schur";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     pDbl[0] = in[0]->getAs<types::Double>();
@@ -130,9 +129,8 @@ types::Function::ReturnValue sci_schur(types::typed_list &in, int _iRetCount, ty
         }
         else
         {
-            ast::ExecVisitor exec;
             std::wstring wstFuncName = L"%" + in[1]->getShortTypeStr() + L"_schur";
-            return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+            return Overload::call(wstFuncName, in, _iRetCount, out);
         }
     }
 
@@ -140,9 +138,8 @@ types::Function::ReturnValue sci_schur(types::typed_list &in, int _iRetCount, ty
     {
         if (in[2]->isString() == false && in[2]->isCallable() == false)
         {
-            ast::ExecVisitor exec;
             std::wstring wstFuncName = L"%" + in[2]->getShortTypeStr() + L"_schur";
-            return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+            return Overload::call(wstFuncName, in, _iRetCount, out);
         }
 
         if (in[2]->isString())
index 49cb7dc..93e8070 100644 (file)
@@ -16,7 +16,6 @@
 #include "function.hxx"
 #include "double.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 
 extern "C"
 {
@@ -52,9 +51,8 @@ types::Function::ReturnValue sci_spec(types::typed_list &in, int _iRetCount, typ
 
     if (in[0]->isDouble() == false)
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_spec";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     types::Double* in0 = in[0]->getAs<types::Double>();
@@ -281,9 +279,8 @@ types::Function::ReturnValue sci_spec(types::typed_list &in, int _iRetCount, typ
 
         if (in[1]->isDouble() == false)
         {
-            ast::ExecVisitor exec;
             std::wstring wstFuncName = L"%" + in[1]->getShortTypeStr() + L"_spec";
-            return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+            return Overload::call(wstFuncName, in, _iRetCount, out);
         }
 
         types::Double* in1 = in[1]->getAs<types::Double>();
index d1f5bc9..2ca59b1 100644 (file)
@@ -16,7 +16,7 @@
 #include "function.hxx"
 #include "double.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
+#include "string.hxx"
 
 extern "C"
 {
@@ -71,9 +71,8 @@ types::Function::ReturnValue sci_svd(types::typed_list &in, int _iRetCount, type
 
     if (in[0]->isDouble() == false)
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_svd";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
     pDbl = in[0]->clone()->getAs<types::Double>();
 
@@ -193,7 +192,7 @@ types::Function::ReturnValue sci_svd(types::typed_list &in, int _iRetCount, type
             }
         }
         break;
-        // default: // makes at the beginning of this gateway
+            // default: // makes at the beginning of this gateway
     }
 
     if (iRet != 0)
index 2655cb7..6c04931 100644 (file)
@@ -56,7 +56,6 @@
 #include "parser.hxx"
 #include "configvariable.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 #include "printvisitor.hxx"
 
 #include "types.hxx"
@@ -1607,8 +1606,7 @@ int mexEvalString(const char *name)
     types::typed_list in;
     types::typed_list out;
     in.push_back(new types::String(name));
-    ast::ExecVisitor execMe;
-    types::Callable::ReturnValue ret = Overload::call(L"execstr", in, 1, out, &execMe);
+    types::Callable::ReturnValue ret = Overload::call(L"execstr", in, 1, out);
     in.back()->killMe();
     if (ret != types::Callable::OK)
     {
index 413d88b..e13f50f 100644 (file)
@@ -18,7 +18,7 @@
 #include "function.hxx"
 #include "string.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
+
 #include <iterator>
 
 extern "C"
@@ -29,7 +29,7 @@ extern "C"
 #include "os_wtoi.h"
 }
 
-int new_sprintf(const std::string& funcname, const wchar_t* _pwstInput, typed_list &in, int* _piOutputRows, int* _piNewLine, wchar_t*** output);
+int new_sprintf(const std::string& funcname, const wchar_t* _pwstInput, types::typed_list &in, int* _piOutputRows, int* _piNewLine, wchar_t*** output);
 
 /*--------------------------------------------------------------------------*/
 types::Callable::ReturnValue sci_mprintf(types::typed_list &in, int _iRetCount, types::typed_list &out)
@@ -50,9 +50,8 @@ types::Callable::ReturnValue sci_mprintf(types::typed_list &in, int _iRetCount,
     {
         if (in[i]->isDouble() == false && in[i]->isString() == false)
         {
-            ast::ExecVisitor exec;
             std::wstring wstFuncName = L"%" + in[i]->getShortTypeStr() + L"_mprintf";
-            return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+            return Overload::call(wstFuncName, in, _iRetCount, out);
         }
     }
 
@@ -88,4 +87,4 @@ types::Callable::ReturnValue sci_mprintf(types::typed_list &in, int _iRetCount,
     FREE(pwstOutput);
     return types::Function::OK;
 }
-/*--------------------------------------------------------------------------*/
\ No newline at end of file
+/*--------------------------------------------------------------------------*/
index 9a0a402..7ab72ce 100644 (file)
@@ -17,7 +17,6 @@
 #include "function.hxx"
 #include "string.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 
 extern "C"
 {
@@ -45,9 +44,8 @@ types::Callable::ReturnValue sci_msprintf(types::typed_list &in, int _iRetCount,
     {
         if (in[i]->isDouble() == false && in[i]->isString() == false)
         {
-            ast::ExecVisitor exec;
             std::wstring wstFuncName = L"%" + in[i]->getShortTypeStr() + L"_msprintf";
-            return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+            return Overload::call(wstFuncName, in, _iRetCount, out);
         }
     }
 
index 34410e2..e874c01 100644 (file)
@@ -15,7 +15,6 @@
 #include "double.hxx"
 #include "polynom.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 
 extern "C"
 {
@@ -51,9 +50,8 @@ types::Function::ReturnValue sci_bezout(types::typed_list &in, int _iRetCount, t
     {
         if (in[i]->isPoly() == false && in[i]->isDouble() == false)
         {
-            ast::ExecVisitor exec;
             std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_bezout";
-            return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+            return Overload::call(wstFuncName, in, _iRetCount, out);
         }
 
         types::GenericType* pGT = in[i]->getAs<types::GenericType>();
index a3ed955..763553a 100644 (file)
@@ -16,7 +16,6 @@
 #include "string.hxx"
 #include "polynom.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 
 extern "C"
 {
@@ -100,7 +99,7 @@ types::Function::ReturnValue sci_coeff(types::typed_list &in, int _iRetCount, ty
         }
 
         pDblIn = in[0]->getAs<types::Double>();
-        pDblOut = new Double(pDblIn->getRows(), pDblIn->getCols() * iVSize, pDblIn->isComplex());
+        pDblOut = new types::Double(pDblIn->getRows(), pDblIn->getCols() * iVSize, pDblIn->isComplex());
         int iSize = pDblIn->getSize();
         for (int i = 0; i < iVSize; i++)
         {
@@ -211,9 +210,8 @@ types::Function::ReturnValue sci_coeff(types::typed_list &in, int _iRetCount, ty
     }
     else
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_coeff";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     out.push_back(pDblOut);
index a0709f3..3b39075 100644 (file)
@@ -16,7 +16,6 @@
 #include "string.hxx"
 #include "polynom.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 
 extern "C"
 {
@@ -60,9 +59,8 @@ types::Function::ReturnValue sci_degree(types::typed_list &in, int _iRetCount, t
     }
     else
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_coeff";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     out.push_back(pDblOut);
index 9fdb53c..e65726b 100644 (file)
 #include "polynomials_gw.hxx"
 #include "function.hxx"
 #include "double.hxx"
+#include "string.hxx"
 #include "polynom.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 #include "context.hxx"
+#include "execvisitor.hxx"
 
 extern "C"
 {
@@ -53,9 +54,8 @@ types::Function::ReturnValue sci_poly(types::typed_list &in, int _iRetCount, typ
 
     if (in[0]->isDouble() == false)
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_poly";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     pDblIn = in[0]->getAs<types::Double>();
index 4096835..bc54fd6 100644 (file)
  *
  */
 /*--------------------------------------------------------------------------*/
+
+#include <cmath>
+
 #include "polynomials_gw.hxx"
 #include "function.hxx"
 #include "double.hxx"
 #include "string.hxx"
 #include "polynom.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 
 extern "C"
 {
@@ -104,9 +106,8 @@ types::Function::ReturnValue sci_pppdiv(types::typed_list &in, int _iRetCount, t
         }
         else
         {
-            ast::ExecVisitor exec;
             std::wstring wstFuncName = L"%" + in[i]->getShortTypeStr() + L"_pppdiv";
-            return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+            return Overload::call(wstFuncName, in, _iRetCount, out);
         }
     }
 
@@ -177,7 +178,7 @@ types::Function::ReturnValue sci_pppdiv(types::typed_list &in, int _iRetCount, t
         for (int i = iSizeCoeff - 1; i >= 0; i--)
         {
             iSizeCoeff--;
-            if (std::abs(pdblCoeffR[i]) + std::abs(pdblCoeffI[i]))
+            if (std::fabs(pdblCoeffR[i]) + std::fabs(pdblCoeffI[i]))
             {
                 break;
             }
@@ -186,7 +187,7 @@ types::Function::ReturnValue sci_pppdiv(types::typed_list &in, int _iRetCount, t
         for (int i = iSizeRest - 1; i >= 0; i--)
         {
             iSizeRest--;
-            if (std::abs(pdblRestR[i]) + std::abs(pdblRestI[i]))
+            if (std::fabs(pdblRestR[i]) + std::fabs(pdblRestI[i]))
             {
                 break;
             }
index f8749d3..a4b4b72 100644 (file)
  *
  */
 /*--------------------------------------------------------------------------*/
+
+#include <cmath>
+
 #include "polynomials_gw.hxx"
 #include "function.hxx"
 #include "double.hxx"
 #include "string.hxx"
 #include "polynom.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 #include "context.hxx"
+#include "execvisitor.hxx"
 
 extern "C"
 {
@@ -126,9 +129,8 @@ types::Function::ReturnValue sci_roots(types::typed_list &in, int _iRetCount, ty
     }
     else
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_roots";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     // If "fast" algo was chosen and polynomial is complex,
@@ -149,10 +151,10 @@ types::Function::ReturnValue sci_roots(types::typed_list &in, int _iRetCount, ty
             return types::Function::OK;
         }
 
-        t = std::abs(pdblInReal[iSize]);
+        t = std::fabs(pdblInReal[iSize]);
         if (bComplex)
         {
-            t += std::abs(pdblInImg[iSize]);
+            t += std::fabs(pdblInImg[iSize]);
         }
     }
 
index e19f379..e8dbd34 100644 (file)
@@ -15,7 +15,6 @@
 #include "double.hxx"
 #include "polynom.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 
 extern "C"
 {
@@ -50,9 +49,8 @@ types::Function::ReturnValue sci_sfact(types::typed_list &in, int _iRetCount, ty
 
     if (in[0]->isPoly() == false)
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_sfact";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     pPolyIn = in[0]->getAs<types::Polynom>();
index 1a0daf0..ab70da3 100644 (file)
  *
  */
 /*--------------------------------------------------------------------------*/
+
+#include <algorithm>
+
 #include "polynomials_gw.hxx"
 #include "function.hxx"
 #include "double.hxx"
 #include "polynom.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 #include "configvariable.hxx"
 
 extern "C"
@@ -59,10 +61,9 @@ types::Function::ReturnValue sci_simp(types::typed_list &in, int _iRetCount, typ
 
     if (in.size() == 1)
     {
-        ast::ExecVisitor exec;
         // rational case
         std::wstring wstFuncName = L"%r_simp";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
     else // simp(num, den)
     {
@@ -95,14 +96,12 @@ types::Function::ReturnValue sci_simp(types::typed_list &in, int _iRetCount, typ
 
         if (bComplex)
         {
-            ast::ExecVisitor exec;
-            return Overload::call(L"%p_simp", in, _iRetCount, out, &exec);
+            return Overload::call(L"%p_simp", in, _iRetCount, out);
         }
 
         if (iDouble == 3) // simp(double, double)
         {
-            ast::ExecVisitor exec;
-            return Overload::call(L"%s_simp", in, _iRetCount, out, &exec);
+            return Overload::call(L"%s_simp", in, _iRetCount, out);
         }
 
         switch (iDouble)
@@ -126,9 +125,9 @@ types::Function::ReturnValue sci_simp(types::typed_list &in, int _iRetCount, typ
                 iMaxDegrNum = pNum->getMaxRank();
                 iMaxDegrDen = pDen->getMaxRank();
 
-                int iMax = max(iMaxDegrNum, iMaxDegrDen) + 1;
+                int iMax = std::max(iMaxDegrNum, iMaxDegrDen) + 1;
                 int iSizeWork = 2 * (iMaxDegrNum + iMaxDegrDen) +
-                                min(iMaxDegrNum, iMaxDegrDen) +
+                                std::min(iMaxDegrNum, iMaxDegrDen) +
                                 10 * iMax + 3 * iMax * iMax + 4;
                 double* pdblWork = new double[iSizeWork];
 
index b941c57..f4d8a54 100644 (file)
@@ -16,7 +16,6 @@
 #include "string.hxx"
 #include "polynom.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 
 extern "C"
 {
@@ -50,9 +49,8 @@ types::Function::ReturnValue sci_varn(types::typed_list &in, int _iRetCount, typ
             return types::Function::OK;
         }
 
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_varn";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     pPolyIn = in[0]->getAs<types::Polynom>();
index a999b0b..671b991 100644 (file)
@@ -20,7 +20,6 @@
 #include "polynom.hxx"
 #include "sparse.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 
 extern "C"
 {
@@ -93,9 +92,8 @@ types::Function::ReturnValue sci_grand(types::typed_list &in, int _iRetCount, ty
         {
             if (in[i]->isDouble() == false)
             {
-                ast::ExecVisitor exec;
                 std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_grand";
-                return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+                return Overload::call(wstFuncName, in, _iRetCount, out);
             }
         }
 
index 2e88e48..ea647df 100644 (file)
@@ -30,6 +30,7 @@
 #include "callable.hxx"
 #include "overload.hxx"
 #include "configvariable.hxx"
+#include "exp.hxx"
 
 #include "utilities.hxx"
 #include "Controller.hxx"
index 3b41027..2b05e5a 100644 (file)
@@ -10,7 +10,9 @@
  *
  */
 
+#include <algorithm>
 #include <iostream>
+
 #include "sparse_gw.hxx"
 #include "function.hxx"
 #include "sparse.hxx"
index 7db6523..65d34f0 100644 (file)
@@ -16,7 +16,6 @@
 #include "sparse.hxx"
 #include "pointer.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 
 extern "C"
 {
@@ -85,9 +84,8 @@ types::Function::ReturnValue sci_lufact(types::typed_list &in, int _iRetCount, t
 
     if (in[0]->isSparse() == false)
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_lufact";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     pSpIn = in[0]->getAs<types::Sparse>();
index 1bd8060..b0d56c6 100644 (file)
@@ -17,7 +17,6 @@
 #include "sparse.hxx"
 #include "pointer.hxx"
 #include "overload.hxx"
-#include "execvisitor.hxx"
 
 extern "C"
 {
@@ -104,16 +103,14 @@ types::Function::ReturnValue sci_lusolve(types::typed_list &in, int _iRetCount,
     }
     else
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_lusolve";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     if ((in[1]->isSparse() == false) && (in[1]->isDouble() == false))
     {
-        ast::ExecVisitor exec;
         std::wstring wstFuncName = L"%" + in[0]->getShortTypeStr() + L"_lusolve";
-        return Overload::call(wstFuncName, in, _iRetCount, out, &exec);
+        return Overload::call(wstFuncName, in, _iRetCount, out);
     }
 
     if (in[1]->isSparse() )
@@ -136,7 +133,7 @@ types::Function::ReturnValue sci_lusolve(types::typed_list &in, int _iRetCount,
         }
 
         double *dbl  = pDblIn->getReal();
-        types::Double *pDblOut = new Double(m2, n2, pDblIn->isComplex());
+        types::Double *pDblOut = new types::Double(m2, n2, pDblIn->isComplex());
         double *oReal = pDblOut->get();
 
         if (pDblIn->isComplex())