Merge remote-tracking branch 'origin/master' into YaSp 41/10541/3
Sylvestre Ledru [Tue, 19 Feb 2013 15:18:41 +0000 (16:18 +0100)]
Conflicts:
scilab/Makefile.in
scilab/configure
scilab/modules/api_scilab/api_scilab.vcxproj
scilab/modules/api_scilab/src/cpp/api_common.cpp
scilab/modules/completion/src/c/completion.c
scilab/modules/core/Makefile.am
scilab/modules/core/Makefile.in
scilab/modules/core/src/c/getversion.c
scilab/modules/core/src/c/inisci-c.c
scilab/modules/core/src/c/stack2.c
scilab/modules/dynamic_link/src/c/dynamic_link.c
scilab/modules/elementary_functions/Makefile.am
scilab/modules/elementary_functions/Makefile.in
scilab/modules/elementary_functions/src/c/IsEqualVar.c
scilab/modules/external_objects/src/cpp/ScilabObjects.cpp
scilab/modules/external_objects/src/cpp/deff.cpp
scilab/modules/fftw/sci_gateway/c/sci_dst.c
scilab/modules/fileio/sci_gateway/c/sci_fscanfMat.c
scilab/modules/fileio/sci_gateway/c/sci_pathconvert.c
scilab/modules/fileio/src/c/fscanfMat.h
scilab/modules/hdf5/sci_gateway/cpp/sci_export_to_hdf5.cpp
scilab/modules/io/sci_gateway/c/sci_getenv.c
scilab/modules/io/src/c/getenvc.c
scilab/modules/mexlib/src/c/mexlib.c
scilab/modules/special_functions/Makefile.am
scilab/modules/special_functions/Makefile.in
scilab/modules/special_functions/includes/gw_special_functions.h
scilab/modules/special_functions/sci_gateway/c/gw_special_functions.c
scilab/modules/special_functions/sci_gateway/c/sci_calerf.c
scilab/modules/special_functions/sci_gateway/special_functions_gateway.xml
scilab/modules/special_functions/src/c/special_functions.vcxproj

Change-Id: I611009921ecfdf7c8a0982d63a531edc6b9bb979

89 files changed:
1  2 
scilab/bin/scilab
scilab/configure
scilab/configure.ac
scilab/modules/api_scilab/api_scilab.vcxproj
scilab/modules/api_scilab/api_scilab.vcxproj.filters
scilab/modules/completion/src/c/completion.c
scilab/modules/core/Makefile.am
scilab/modules/core/Makefile.in
scilab/modules/core/includes/machine.h.in
scilab/modules/core/src/c/getversion.c
scilab/modules/core/src/c/inisci-c.c
scilab/modules/core/src/fortran/core_f.vfproj
scilab/modules/core/src/fortran/core_f2c.vcxproj
scilab/modules/core/src/fortran/core_f2c.vcxproj.filters
scilab/modules/elementary_functions/Makefile.am
scilab/modules/elementary_functions/Makefile.in
scilab/modules/elementary_functions/src/fortran/elementary_functions_f.vfproj
scilab/modules/elementary_functions/src/fortran/elementary_functions_f2c.vcxproj
scilab/modules/elementary_functions/src/fortran/elementary_functions_f2c.vcxproj.filters
scilab/modules/external_objects/sci_gateway/cpp/sci_doubleExclam_invoke_.cpp
scilab/modules/external_objects/sci_gateway/cpp/sci_invoke_lu.cpp
scilab/modules/external_objects/sci_gateway/cpp/sci_percent_EClass_e.cpp
scilab/modules/external_objects/sci_gateway/cpp/sci_percent_EObj_0.cpp
scilab/modules/external_objects/sci_gateway/cpp/sci_percent_EObj_1_foo.cpp
scilab/modules/external_objects/sci_gateway/cpp/sci_percent_EObj_2_foo.cpp
scilab/modules/external_objects/sci_gateway/cpp/sci_percent_EObj_3_foo.cpp
scilab/modules/external_objects/sci_gateway/cpp/sci_percent_EObj_4_foo.cpp
scilab/modules/external_objects/sci_gateway/cpp/sci_percent_EObj_5.cpp
scilab/modules/external_objects/sci_gateway/cpp/sci_percent_EObj_a_foo.cpp
scilab/modules/external_objects/sci_gateway/cpp/sci_percent_EObj_d_foo.cpp
scilab/modules/external_objects/sci_gateway/cpp/sci_percent_EObj_disp.cpp
scilab/modules/external_objects/sci_gateway/cpp/sci_percent_EObj_e.cpp
scilab/modules/external_objects/sci_gateway/cpp/sci_percent_EObj_g_foo.cpp
scilab/modules/external_objects/sci_gateway/cpp/sci_percent_EObj_h_foo.cpp
scilab/modules/external_objects/sci_gateway/cpp/sci_percent_EObj_j_foo.cpp
scilab/modules/external_objects/sci_gateway/cpp/sci_percent_EObj_k_foo.cpp
scilab/modules/external_objects/sci_gateway/cpp/sci_percent_EObj_l_foo.cpp
scilab/modules/external_objects/sci_gateway/cpp/sci_percent_EObj_m_foo.cpp
scilab/modules/external_objects/sci_gateway/cpp/sci_percent_EObj_n_foo.cpp
scilab/modules/external_objects/sci_gateway/cpp/sci_percent_EObj_o_foo.cpp
scilab/modules/external_objects/sci_gateway/cpp/sci_percent_EObj_p.cpp
scilab/modules/external_objects/sci_gateway/cpp/sci_percent_EObj_p_foo.cpp
scilab/modules/external_objects/sci_gateway/cpp/sci_percent_EObj_q_foo.cpp
scilab/modules/external_objects/sci_gateway/cpp/sci_percent_EObj_r_foo.cpp
scilab/modules/external_objects/sci_gateway/cpp/sci_percent_EObj_s_foo.cpp
scilab/modules/external_objects/sci_gateway/cpp/sci_percent_EObj_t.cpp
scilab/modules/external_objects/sci_gateway/cpp/sci_percent_EObj_x_foo.cpp
scilab/modules/external_objects/sci_gateway/cpp/sci_percent_EObj_y_foo.cpp
scilab/modules/external_objects/sci_gateway/cpp/sci_percent_EObj_z_foo.cpp
scilab/modules/external_objects/sci_gateway/cpp/sci_percent_foo_i_EObj.cpp
scilab/modules/external_objects/src/cpp/ScilabObjects.cpp
scilab/modules/fftw/sci_gateway/c/sci_dst.c
scilab/modules/fftw/sci_gateway/c/sci_fftw.c
scilab/modules/fileio/sci_gateway/c/sci_fscanfMat.c
scilab/modules/fileio/src/c/fscanfMat.c
scilab/modules/fileio/src/c/fscanfMat.h
scilab/modules/graphics/sci_gateway/c/sci_set.c
scilab/modules/graphics/sci_gateway/c/sci_xgetmouse.c
scilab/modules/gui/sci_gateway/cpp/sci_uigetfile.cpp
scilab/modules/hdf5/sci_gateway/cpp/sci_export_to_hdf5.cpp
scilab/modules/hdf5/src/c/h5_writeDataToFile.c
scilab/modules/io/sci_gateway/c/sci_getenv.c
scilab/modules/io/src/c/getenvc.c
scilab/modules/jvm/src/c/createMainScilabObject.c
scilab/modules/scicos/src/c/scicos.c
scilab/modules/scicos_blocks/src/c/canimxy.c
scilab/modules/scicos_blocks/src/c/canimxy3d.c
scilab/modules/scicos_blocks/src/c/cfscope.c
scilab/modules/scicos_blocks/src/c/cmscope.c
scilab/modules/scicos_blocks/src/c/cscope.c
scilab/modules/scicos_blocks/src/c/cscopxy.c
scilab/modules/scicos_blocks/src/c/cscopxy3d.c
scilab/modules/scinotes/sci_gateway/cpp/sci_scinotes.cpp
scilab/modules/special_functions/Makefile.am
scilab/modules/special_functions/Makefile.in
scilab/modules/special_functions/includes/gw_special_functions.h
scilab/modules/special_functions/sci_gateway/c/sci_besselh.c
scilab/modules/special_functions/sci_gateway/c/sci_besseli.c
scilab/modules/special_functions/sci_gateway/c/sci_besselj.c
scilab/modules/special_functions/sci_gateway/c/sci_besselk.c
scilab/modules/special_functions/sci_gateway/c/sci_bessely.c
scilab/modules/special_functions/sci_gateway/cpp/sci_faddeeva.hxx
scilab/modules/special_functions/sci_gateway/special_functions_gateway.xml
scilab/modules/special_functions/src/c/special_functions.vcxproj
scilab/modules/special_functions/src/c/special_functions.vcxproj.filters
scilab/modules/special_functions/src/cpp/faddeeva.h
scilab/modules/special_functions/tests/unit_tests/calerf.dia.ref
scilab/modules/special_functions/tests/unit_tests/calerf.tst
scilab/tools/innosetup/code.iss

Simple merge
  
  
  #################
 +## EIGEN
 +#################
 +
 +
 +ac_ext=cpp
 +ac_cpp='$CXXCPP $CPPFLAGS'
 +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5
 +$as_echo_n "checking how to run the C++ preprocessor... " >&6; }
 +if test -z "$CXXCPP"; then
 +  if ${ac_cv_prog_CXXCPP+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +      # Double quotes because CXXCPP needs to be expanded
 +    for CXXCPP in "$CXX -E" "/lib/cpp"
 +    do
 +      ac_preproc_ok=false
 +for ac_cxx_preproc_warn_flag in '' yes
 +do
 +  # Use a header file that comes with gcc, so configuring glibc
 +  # with a fresh cross-compiler works.
 +  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
 +  # <limits.h> exists even on freestanding compilers.
 +  # On the NeXT, cc -E runs the code through the compiler's parser,
 +  # not just through cpp. "Syntax error" is here to catch this case.
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +#ifdef __STDC__
 +# include <limits.h>
 +#else
 +# include <assert.h>
 +#endif
 +                   Syntax error
 +_ACEOF
 +if ac_fn_cxx_try_cpp "$LINENO"; then :
 +
 +else
 +  # Broken: fails on valid input.
 +continue
 +fi
 +rm -f conftest.err conftest.i conftest.$ac_ext
 +
 +  # OK, works on sane cases.  Now check whether nonexistent headers
 +  # can be detected and how.
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +#include <ac_nonexistent.h>
 +_ACEOF
 +if ac_fn_cxx_try_cpp "$LINENO"; then :
 +  # Broken: success on invalid input.
 +continue
 +else
 +  # Passes both tests.
 +ac_preproc_ok=:
 +break
 +fi
 +rm -f conftest.err conftest.i conftest.$ac_ext
 +
 +done
 +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
 +rm -f conftest.i conftest.err conftest.$ac_ext
 +if $ac_preproc_ok; then :
 +  break
 +fi
 +
 +    done
 +    ac_cv_prog_CXXCPP=$CXXCPP
 +
 +fi
 +  CXXCPP=$ac_cv_prog_CXXCPP
 +else
 +  ac_cv_prog_CXXCPP=$CXXCPP
 +fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5
 +$as_echo "$CXXCPP" >&6; }
 +ac_preproc_ok=false
 +for ac_cxx_preproc_warn_flag in '' yes
 +do
 +  # Use a header file that comes with gcc, so configuring glibc
 +  # with a fresh cross-compiler works.
 +  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
 +  # <limits.h> exists even on freestanding compilers.
 +  # On the NeXT, cc -E runs the code through the compiler's parser,
 +  # not just through cpp. "Syntax error" is here to catch this case.
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +#ifdef __STDC__
 +# include <limits.h>
 +#else
 +# include <assert.h>
 +#endif
 +                   Syntax error
 +_ACEOF
 +if ac_fn_cxx_try_cpp "$LINENO"; then :
 +
 +else
 +  # Broken: fails on valid input.
 +continue
 +fi
 +rm -f conftest.err conftest.i conftest.$ac_ext
 +
 +  # OK, works on sane cases.  Now check whether nonexistent headers
 +  # can be detected and how.
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +#include <ac_nonexistent.h>
 +_ACEOF
 +if ac_fn_cxx_try_cpp "$LINENO"; then :
 +  # Broken: success on invalid input.
 +continue
 +else
 +  # Passes both tests.
 +ac_preproc_ok=:
 +break
 +fi
 +rm -f conftest.err conftest.i conftest.$ac_ext
 +
 +done
 +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
 +rm -f conftest.i conftest.err conftest.$ac_ext
 +if $ac_preproc_ok; then :
 +
 +else
 +  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 +as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check
 +See \`config.log' for more details" "$LINENO" 5; }
 +fi
 +
 +ac_ext=cpp
 +ac_cpp='$CXXCPP $CPPFLAGS'
 +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
 +
 +
 +
 +ac_ext=cpp
 +ac_cpp='$CXXCPP $CPPFLAGS'
 +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
 +
 +
 +
 +# Check whether --with-eigen_include was given.
 +if test "${with_eigen_include+set}" = set; then :
 +  withval=$with_eigen_include; with_eigen_include=$withval
 +else
 +  with_eigen_include='yes'
 +
 +fi
 +
 +
 +
 +save_CPPFLAGS="$CPPFLAGS"
 +
 +if test "x$with_eigen_include" != "xyes"; then
 +      CPPFLAGS="-I$with_eigen_include"
 +      ac_fn_cxx_check_header_mongrel "$LINENO" "Eigen/Sparse" "ac_cv_header_Eigen_Sparse" "$ac_includes_default"
 +if test "x$ac_cv_header_Eigen_Sparse" = xyes; then :
 +  EIGEN_CPPFLAGS="$CPPFLAGS"
 +else
 +  as_fn_error $? "Cannot find headers (Eigen/Sparse) of the library EIGEN in $with_eigen_include. Please install the dev package (Debian : libeigen3-dev)" "$LINENO" 5
 +
 +fi
 +
 +
 +    PATH_TO_EIGEN=$with_eigen_include
 +else
 +      ac_fn_cxx_check_header_mongrel "$LINENO" "Eigen/Sparse" "ac_cv_header_Eigen_Sparse" "$ac_includes_default"
 +if test "x$ac_cv_header_Eigen_Sparse" = xyes; then :
 +  EIGEN_CPPFLAGS=""
 +else
 +         $as_unset ac_cv_header_Eigen_Sparse
 +                CPPFLAGS="-I/usr/include/eigen3/"
 +                ac_fn_cxx_check_header_mongrel "$LINENO" "Eigen/Sparse" "ac_cv_header_Eigen_Sparse" "$ac_includes_default"
 +if test "x$ac_cv_header_Eigen_Sparse" = xyes; then :
 +  EIGEN_CPPFLAGS=$CPPFLAGS
 +else
 +  as_fn_error $? "Cannot find headers (Eigen/Sparse) of the library eigen. Please install the dev package (Debian : libeigen3-dev)" "$LINENO" 5
 +
 +fi
 +
 +
 +
 +fi
 +
 +
 +    PATH_TO_EIGEN="/usr/include/eigen3/"
 +fi
 +CPPFLAGS="$save_CPPFLAGS"
 +
 +CHK_EIGEN_WORLD=3
 +CHK_EIGEN_MAJOR=1
 +CHK_EIGEN_MINOR=0
 +
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if Eigen is version $CHK_EIGEN_WORLD.$CHK_EIGEN_MAJOR.$CHK_EIGEN_MINOR or later" >&5
 +$as_echo_n "checking if Eigen is version $CHK_EIGEN_WORLD.$CHK_EIGEN_MAJOR.$CHK_EIGEN_MINOR or later... " >&6; }
 +cat > conftest.$ac_ext <<EOF
- #line 21481 "configure"
++#line 21484 "configure"
 +#include "confdefs.h"
 +
 +#include "$PATH_TO_EIGEN/Eigen/Sparse"
 +#if EIGEN_VERSION_AT_LEAST(3,1,0)
 +EIGEN_VERSION_OK
 +#endif
 +
 +EOF
 +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
 +  grep "EIGEN_VERSION_OK" >/dev/null 2>&1; then
 +  rm -rf conftest*
 +  \
 +EIGEN_VERSION_OK=1
 +else
 +  rm -rf conftest*
 +  \
 +EIGEN_VERSION_OK=0
 +fi
 +rm -f conftest*
 +
 +if test $EIGEN_VERSION_OK = 0; then
 +   as_fn_error $? "Version $CHK_EIGEN_WORLD.$CHK_EIGEN_MAJOR.$CHK_EIGEN_MINOR of Eigen expected (at least)" "$LINENO" 5
 +else
 +   { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 +$as_echo "yes" >&6; }
 +fi
 +
 +
 +
 +$as_echo "#define WITH_EIGEN /**/" >>confdefs.h
 +
 +ac_ext=c
 +ac_cpp='$CPP $CPPFLAGS'
 +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 +ac_compiler_gnu=$ac_cv_c_compiler_gnu
 +
 +
 +
 +
 +#################
  ## MPI
  #################
  
@@@ -25835,7 -25196,7 +25838,7 @@@ CPPFLAGS="$CPPFLAGS -I$CHK_TCL_INCLUDE_
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if tcl is version $CHK_TCL_MAJOR.$CHK_TCL_MINOR or later" >&5
  $as_echo_n "checking if tcl is version $CHK_TCL_MAJOR.$CHK_TCL_MINOR or later... " >&6; }
  cat > conftest.$ac_ext <<EOF
- #line 25838 "configure"
 -#line 25199 "configure"
++#line 25841 "configure"
  #include "confdefs.h"
  
  #include "$CHK_TCL_INCLUDE_PATH/$CHK_TCL_INC_NAME"
@@@ -26145,7 -25506,7 +26148,7 @@@ CPPFLAGS="$CPPFLAGS $TCL_INC_PATH -I$CH
  $as_echo_n "checking if tk is version $CHK_TK_MAJOR.$CHK_TK_MINOR or later... " >&6; }
  
  cat > conftest.$ac_ext <<EOF
- #line 26148 "configure"
 -#line 25509 "configure"
++#line 26151 "configure"
  #include "confdefs.h"
  
  #include "$CHK_TK_INCLUDE_PATH/$CHK_TK_INC_NAME"
@@@ -26723,7 -26084,7 +26726,7 @@@ $as_echo_n "checking saxon... " >&6; 
              export ac_java_classpath="$jar_resolved:$ac_java_classpath"
  
      cat << \EOF > conftest.java
- // #line 26726 "configure"
 -// #line 26087 "configure"
++// #line 26729 "configure"
  import java.util.regex.Pattern;
  
  import com.icl.saxon.Loader;
@@@ -26840,7 -26201,7 +26843,7 @@@ $as_echo_n "checking jlatexmath-fop... 
              export ac_java_classpath="$jar_resolved:$ac_java_classpath"
  
      cat << \EOF > conftest.java
- // #line 26843 "configure"
 -// #line 26204 "configure"
++// #line 26846 "configure"
  import java.util.regex.Pattern;
  
  import org.scilab.forge.jlatexmath.fop.JLaTeXMathObj;
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
- #line 33247 "configure"
 -#line 32608 "configure"
++#line 33250 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
- #line 33353 "configure"
 -#line 32714 "configure"
++#line 33356 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
Simple merge
      </ClCompile>
      <PreLinkEvent>
        <Message>Make dependencies</Message>
-       <Command>lib /DEF:"$(ProjectDir)Localization_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)scilocalization.lib" 1&gt;NUL 2&gt;NUL
- lib /DEF:"$(ProjectDir)Core_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core.lib" 1&gt;NUL 2&gt;NUL
 -      <Command>cd $(IntDir) &gt;nul
++      <Command>lib /DEF:"$(ProjectDir)core_import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core.lib" 1&gt;NUL 2&gt;NUL
++lib /DEF:"$(ProjectDir)Localization_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)scilocalization.lib" 1&gt;NUL 2&gt;NUL
++lib /DEF:"$(ProjectDir)elementary_functions_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)elementary_functions_f.lib" 1&gt;NUL 2&gt;NUL
 +lib /DEF:"$(ProjectDir)elementary_functions_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)elementary_functions.lib" 1&gt;NUL 2&gt;NUL
++lib /DEF:"$(ProjectDir)linpack_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)linpack_f.lib" 1&gt;NUL 2&gt;NUL
++
 +cd $(IntDir) &gt;nul
  for %%f in (*.obj) do  ..\..\..\bin\dumpexts -o %%~nf.def -n api_scilab.dll %%f &gt;nul
  copy *.def api_scilabtmp.def &gt;nul
  copy ..\api_scilab_header.def+api_scilabtmp.def  ..\api_scilab_export.def &gt;nul
  del *.def &gt;nul
 -cd .. &gt;nul</Command>
 +cd .. &gt;nul
 +</Command>
      </PreLinkEvent>
      <Link>
-       <AdditionalDependencies>scilocalization.lib;core.lib;elementary_functions.lib</AdditionalDependencies>
 -      <AdditionalDependencies>elementary_functions_f.lib;linpack_f.lib;core.lib;string.lib;scilocalization.lib;scilab_windows.lib;core_f.lib;%(AdditionalDependencies)</AdditionalDependencies>
++      <AdditionalDependencies>elementary_functions_f.lib;elementary_functions.lib;linpack_f.lib;core.lib;scilocalization.lib;%(AdditionalDependencies)</AdditionalDependencies>
        <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile>
        <ModuleDefinitionFile>api_scilab_export.def</ModuleDefinitionFile>
        <GenerateDebugInformation>true</GenerateDebugInformation>
        <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck>
        <RandomizedBaseAddress>false</RandomizedBaseAddress>
      </Link>
+     <PreBuildEvent>
 -      <Command>lib /DEF:"$(ProjectDir)core_import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core.lib" 1&gt;NUL 2&gt;NUL
 -lib /DEF:"$(ProjectDir)String_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)string.lib" 1&gt;NUL 2&gt;NUL
 -lib /DEF:"$(ProjectDir)Localization_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)scilocalization.lib" 1&gt;NUL 2&gt;NUL
 -lib /DEF:"$(ProjectDir)Scilab_windows_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)scilab_windows.lib" 1&gt;NUL 2&gt;NUL
 -lib /DEF:"$(ProjectDir)core_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core_f.lib" 1&gt;NUL 2&gt;NUL
 -lib /DEF:"$(ProjectDir)elementary_functions_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)elementary_functions_f.lib" 1&gt;NUL 2&gt;NUL
 -lib /DEF:"$(ProjectDir)linpack_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)linpack_f.lib" 1&gt;NUL 2&gt;NUL
 -</Command>
 -      <Message>Make dependencies</Message>
++      <Command>
++      </Command>
++      <Message>
++      </Message>
+     </PreBuildEvent>
    </ItemDefinitionGroup>
    <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
      <Midl>
      </ClCompile>
      <PreLinkEvent>
        <Message>Make dependencies</Message>
-       <Command>lib /DEF:"$(ProjectDir)Localization_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)scilocalization.lib" 1&gt;NUL 2&gt;NUL
- lib /DEF:"$(ProjectDir)Core_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core.lib" 1&gt;NUL 2&gt;NUL
 -      <Command>cd $(IntDir) &gt;nul
++      <Command>lib /DEF:"$(ProjectDir)core_import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core.lib" 1&gt;NUL 2&gt;NUL
++lib /DEF:"$(ProjectDir)Localization_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)scilocalization.lib" 1&gt;NUL 2&gt;NUL
++lib /DEF:"$(ProjectDir)elementary_functions_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)elementary_functions_f.lib" 1&gt;NUL 2&gt;NUL
 +lib /DEF:"$(ProjectDir)elementary_functions_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)elementary_functions.lib" 1&gt;NUL 2&gt;NUL
++lib /DEF:"$(ProjectDir)linpack_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)linpack_f.lib" 1&gt;NUL 2&gt;NUL
++
 +cd $(IntDir) &gt;nul
  for %%f in (*.obj) do  ..\..\..\bin\dumpexts -o %%~nf.def -n api_scilab.dll %%f &gt;nul
  copy *.def api_scilabtmp.def &gt;nul
  copy ..\api_scilab_header.def+api_scilabtmp.def  ..\api_scilab_export.def &gt;nul
  del *.def &gt;nul
 -cd .. &gt;nul</Command>
 +cd .. &gt;nul
 +</Command>
      </PreLinkEvent>
      <Link>
-       <AdditionalDependencies>scilocalization.lib;core.lib;elementary_functions.lib</AdditionalDependencies>
 -      <AdditionalDependencies>elementary_functions_f.lib;linpack_f.lib;core.lib;string.lib;scilocalization.lib;scilab_windows.lib;core_f.lib;%(AdditionalDependencies)</AdditionalDependencies>
++      <AdditionalDependencies>elementary_functions_f.lib;elementary_functions.lib;linpack_f.lib;core.lib;scilocalization.lib;%(AdditionalDependencies)</AdditionalDependencies>
        <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile>
        <ModuleDefinitionFile>api_scilab_export.def</ModuleDefinitionFile>
        <GenerateDebugInformation>true</GenerateDebugInformation>
        <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck>
        <RandomizedBaseAddress>false</RandomizedBaseAddress>
      </Link>
+     <PreBuildEvent>
 -      <Command>lib /DEF:"$(ProjectDir)core_import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core.lib" 1&gt;NUL 2&gt;NUL
 -lib /DEF:"$(ProjectDir)String_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)string.lib" 1&gt;NUL 2&gt;NUL
 -lib /DEF:"$(ProjectDir)Localization_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)scilocalization.lib" 1&gt;NUL 2&gt;NUL
 -lib /DEF:"$(ProjectDir)Scilab_windows_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)scilab_windows.lib" 1&gt;NUL 2&gt;NUL
 -lib /DEF:"$(ProjectDir)core_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core_f.lib" 1&gt;NUL 2&gt;NUL
 -lib /DEF:"$(ProjectDir)elementary_functions_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)elementary_functions_f.lib" 1&gt;NUL 2&gt;NUL
 -lib /DEF:"$(ProjectDir)linpack_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)linpack_f.lib" 1&gt;NUL 2&gt;NUL
 -</Command>
 -      <Message>Make dependencies</Message>
++      <Command>
++      </Command>
++      <Message>
++      </Message>
+     </PreBuildEvent>
    </ItemDefinitionGroup>
    <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
      <ClCompile>
      </ClCompile>
      <PreLinkEvent>
        <Message>Make dependencies</Message>
-       <Command>lib /DEF:"$(ProjectDir)Localization_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)scilocalization.lib" 1&gt;NUL 2&gt;NUL
- lib /DEF:"$(ProjectDir)Core_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core.lib" 1&gt;NUL 2&gt;NUL
 -      <Command>cd $(IntDir) &gt;nul
++      <Command>lib /DEF:"$(ProjectDir)core_import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core.lib" 1&gt;NUL 2&gt;NUL
++lib /DEF:"$(ProjectDir)Localization_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)scilocalization.lib" 1&gt;NUL 2&gt;NUL
++lib /DEF:"$(ProjectDir)elementary_functions_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)elementary_functions_f.lib" 1&gt;NUL 2&gt;NUL
 +lib /DEF:"$(ProjectDir)elementary_functions_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)elementary_functions.lib" 1&gt;NUL 2&gt;NUL
++lib /DEF:"$(ProjectDir)linpack_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)linpack_f.lib" 1&gt;NUL 2&gt;NUL
++
 +cd $(IntDir) &gt;nul
  for %%f in (*.obj) do  ..\..\..\bin\dumpexts -o %%~nf.def -n api_scilab.dll %%f &gt;nul
  copy *.def api_scilabtmp.def &gt;nul
  copy ..\api_scilab_header.def+api_scilabtmp.def  ..\api_scilab_export.def &gt;nul
  del *.def &gt;nul
 -cd .. &gt;nul</Command>
 +cd .. &gt;nul
 +</Command>
      </PreLinkEvent>
      <Link>
-       <AdditionalDependencies>scilocalization.lib;core.lib;elementary_functions.lib</AdditionalDependencies>
 -      <AdditionalDependencies>elementary_functions_f.lib;linpack_f.lib;core.lib;string.lib;scilocalization.lib;scilab_windows.lib;core_f.lib;%(AdditionalDependencies)</AdditionalDependencies>
++      <AdditionalDependencies>elementary_functions_f.lib;elementary_functions.lib;linpack_f.lib;core.lib;scilocalization.lib;%(AdditionalDependencies)</AdditionalDependencies>
        <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile>
        <ModuleDefinitionFile>api_scilab_export.def</ModuleDefinitionFile>
        <GenerateDebugInformation>false</GenerateDebugInformation>
        <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck>
        <RandomizedBaseAddress>false</RandomizedBaseAddress>
      </Link>
+     <PreBuildEvent>
 -      <Command>lib /DEF:"$(ProjectDir)core_import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core.lib" 1&gt;NUL 2&gt;NUL
 -lib /DEF:"$(ProjectDir)String_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)string.lib" 1&gt;NUL 2&gt;NUL
 -lib /DEF:"$(ProjectDir)Localization_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)scilocalization.lib" 1&gt;NUL 2&gt;NUL
 -lib /DEF:"$(ProjectDir)Scilab_windows_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)scilab_windows.lib" 1&gt;NUL 2&gt;NUL
 -lib /DEF:"$(ProjectDir)core_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core_f.lib" 1&gt;NUL 2&gt;NUL
 -lib /DEF:"$(ProjectDir)elementary_functions_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)elementary_functions_f.lib" 1&gt;NUL 2&gt;NUL
 -lib /DEF:"$(ProjectDir)linpack_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)linpack_f.lib" 1&gt;NUL 2&gt;NUL
 -</Command>
 -      <Message>Make dependencies</Message>
++      <Command>
++      </Command>
++      <Message>
++      </Message>
+     </PreBuildEvent>
    </ItemDefinitionGroup>
    <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
      <Midl>
      </ClCompile>
      <PreLinkEvent>
        <Message>Make dependencies</Message>
-       <Command>lib /DEF:"$(ProjectDir)Localization_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)scilocalization.lib" 1&gt;NUL 2&gt;NUL
- lib /DEF:"$(ProjectDir)Core_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core.lib" 1&gt;NUL 2&gt;NUL
 -      <Command>cd $(IntDir) &gt;nul
++      <Command>lib /DEF:"$(ProjectDir)core_import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core.lib" 1&gt;NUL 2&gt;NUL
++lib /DEF:"$(ProjectDir)Localization_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)scilocalization.lib" 1&gt;NUL 2&gt;NUL
++lib /DEF:"$(ProjectDir)elementary_functions_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)elementary_functions_f.lib" 1&gt;NUL 2&gt;NUL
 +lib /DEF:"$(ProjectDir)elementary_functions_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)elementary_functions.lib" 1&gt;NUL 2&gt;NUL
++lib /DEF:"$(ProjectDir)linpack_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)linpack_f.lib" 1&gt;NUL 2&gt;NUL
++
 +cd $(IntDir) &gt;nul
  for %%f in (*.obj) do  ..\..\..\bin\dumpexts -o %%~nf.def -n api_scilab.dll %%f &gt;nul
  copy *.def api_scilabtmp.def &gt;nul
  copy ..\api_scilab_header.def+api_scilabtmp.def  ..\api_scilab_export.def &gt;nul
  del *.def &gt;nul
 -cd .. &gt;nul</Command>
 +cd .. &gt;nul
 +</Command>
      </PreLinkEvent>
      <Link>
-       <AdditionalDependencies>scilocalization.lib;core.lib;elementary_functions.lib</AdditionalDependencies>
 -      <AdditionalDependencies>elementary_functions_f.lib;linpack_f.lib;core.lib;string.lib;scilocalization.lib;scilab_windows.lib;core_f.lib;%(AdditionalDependencies)</AdditionalDependencies>
++      <AdditionalDependencies>elementary_functions_f.lib;elementary_functions.lib;linpack_f.lib;core.lib;scilocalization.lib;%(AdditionalDependencies)</AdditionalDependencies>
        <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile>
        <ModuleDefinitionFile>api_scilab_export.def</ModuleDefinitionFile>
        <GenerateDebugInformation>false</GenerateDebugInformation>
        <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck>
        <RandomizedBaseAddress>false</RandomizedBaseAddress>
      </Link>
+     <PreBuildEvent>
 -      <Command>lib /DEF:"$(ProjectDir)core_import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core.lib" 1&gt;NUL 2&gt;NUL
 -lib /DEF:"$(ProjectDir)String_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)string.lib" 1&gt;NUL 2&gt;NUL
 -lib /DEF:"$(ProjectDir)Localization_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)scilocalization.lib" 1&gt;NUL 2&gt;NUL
 -lib /DEF:"$(ProjectDir)Scilab_windows_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)scilab_windows.lib" 1&gt;NUL 2&gt;NUL
 -lib /DEF:"$(ProjectDir)core_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core_f.lib" 1&gt;NUL 2&gt;NUL
 -lib /DEF:"$(ProjectDir)elementary_functions_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)elementary_functions_f.lib" 1&gt;NUL 2&gt;NUL
 -lib /DEF:"$(ProjectDir)linpack_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)linpack_f.lib" 1&gt;NUL 2&gt;NUL
 -</Command>
 -      <Message>Make dependencies</Message>
++      <Command>
++      </Command>
++      <Message>
++      </Message>
+     </PreBuildEvent>
    </ItemDefinitionGroup>
    <ItemGroup>
      <ClCompile Include="src\cpp\api_boolean.cpp" />
      <ResourceCompile Include="src\c\api_scilab.rc" />
    </ItemGroup>
    <ItemGroup>
 -    <None Include="Core_f_Import.def" />
      <None Include="core_import.def" />
+     <None Include="elementary_functions_f_Import.def" />
 +    <None Include="elementary_functions_Import.def" />
+     <None Include="linpack_f_Import.def" />
      <None Include="locales\api_scilab.pot" />
      <None Include="Localization_Import.def" />
 -    <None Include="Scilab_windows_Import.def" />
 -    <None Include="String_Import.def" />
      <None Include="api_scilab_export.def" />
      <None Include="api_scilab_header.def" />
      <None Include="api_scilab.iss" />
      <None Include="locales\api_scilab.pot">
        <Filter>localization</Filter>
      </None>
 -    <None Include="Core_f_Import.def">
 -      <Filter>Libraries Dependencies\Imports</Filter>
 -    </None>
+     <None Include="elementary_functions_f_Import.def">
+       <Filter>Libraries Dependencies\Imports</Filter>
+     </None>
+     <None Include="linpack_f_Import.def">
+       <Filter>Libraries Dependencies\Imports</Filter>
+     </None>
 +    <None Include="elementary_functions_Import.def">
 +      <Filter>Libraries Dependencies\Imports</Filter>
 +    </None>
    </ItemGroup>
  </Project>
@@@ -102,7 -116,7 +102,6 @@@ src/fortran/hmcreate.f 
  src/fortran/nextj.f \
  src/fortran/setgetmode.f \
  src/fortran/showstack.f \
- src/fortran/iseye.f \
 -src/fortran/misops.f \
  src/fortran/setippty.f \
  src/fortran/compil.f \
  src/fortran/funnam.f \
@@@ -158,8 -181,9 +156,7 @@@ src/fortran/ptrback.f 
  src/fortran/getch.f \
  src/fortran/ftob.f \
  src/fortran/seteol.f \
 -src/fortran/basin.f \
 -src/fortran/clause.f \
  src/fortran/compcl.f \
- src/fortran/termf.f \
  src/fortran/expsum.f \
  src/fortran/copyvar.f \
  src/fortran/putid.f \
@@@ -163,53 -169,56 +163,52 @@@ am__libscicore_algo_la_SOURCES_DIST = s
        src/c/callFunctionFromGateway.c src/c/getvariablesname.c \
        src/c/commandwords.c src/c/freeArrayOfString.c \
        src/c/getstaticdebuginfo.c src/c/getdynamicdebuginfo.c \
 -      src/c/callDynamicGateway.c src/c/gw_dynamic_generic.c \
 -      src/c/dynamic_gateways.c src/c/readGateway.c \
 -      src/c/comparehandles.c src/c/setPrecisionFPU.c \
 -      src/c/LaunchScilabSignal.c src/c/getos.c src/c/mode_exec.c \
 -      src/c/predef.c src/c/transposeMatrix.c \
 -      src/c/recursionFunction.c src/c/typename.c \
 -      src/c/inittypenames.c src/c/funcprot.c src/c/eqid.c \
 -      src/c/exitCodeValue.c src/c/getversion.c \
 +      src/c/gw_dynamic_generic.c src/c/dynamic_gateways.c \
 +      src/c/readGateway.c src/c/comparehandles.c \
 +      src/c/setPrecisionFPU.c src/c/LaunchScilabSignal.c \
 +      src/c/getos.c src/c/mode_exec.c src/c/predef.c \
 +      src/c/transposeMatrix.c src/c/recursionFunction.c \
 +      src/c/typename.c src/c/inittypenames.c src/c/funcprot.c \
 +      src/c/eqid.c src/c/exitCodeValue.c src/c/getversion.c \
        src/c/dynamic_tclsci.c src/c/dynamic_parallel.c \
 -      src/c/storeCommand.c src/c/backtrace.c src/c/signal_mgmt.c \
 -      src/c/suspendProcess.c src/c/windowsChangeManagement.c \
 -      src/c/setieee.c src/c/setlines.c src/c/setformat.c \
 -      src/c/InitializePreferences.c src/c/sci_tools.c \
 -      src/c/scimem64.c src/cpp/hashtable_core.cpp src/cpp/namstr.cpp \
 +      src/c/backtrace.c src/c/signal_mgmt.c src/c/suspendProcess.c \
 +      src/c/windowsChangeManagement.c src/c/setlines.c \
 +      src/c/setformat.c src/c/InitializePreferences.c \
 +      src/c/scimem64.c src/cpp/core_gw.cpp \
 +      src/cpp/hashtable_core.cpp src/cpp/namstr.cpp \
        src/cpp/search_functions.cpp src/cpp/demangle.cpp \
 -      src/cpp/backtrace_print.cpp src/fortran/clunit.f \
 -      src/fortran/getlin.f src/fortran/allowptr.f \
 -      src/fortran/isany.f src/fortran/hmcreate.f src/fortran/nextj.f \
 +      src/cpp/backtrace_print.cpp src/cpp/storeCommand.cpp \
 +      src/cpp/banner.cpp src/cpp/with_module.cpp src/cpp/runner.cpp \
 +      src/fortran/clunit.f src/fortran/getlin.f \
 +      src/fortran/allowptr.f src/fortran/isany.f \
 +      src/fortran/hmcreate.f src/fortran/nextj.f \
        src/fortran/setgetmode.f src/fortran/showstack.f \
-       src/fortran/iseye.f src/fortran/setippty.f \
-       src/fortran/compil.f src/fortran/funnam.f src/fortran/isnum.f \
-       src/fortran/cmdstr.f src/fortran/hndlops.f \
-       src/fortran/cmplxt.f src/fortran/skpins.f src/fortran/folhp.f \
-       src/fortran/cvname.f src/fortran/typ2cod.f \
-       src/fortran/prompt.f src/fortran/intstr.f \
-       src/fortran/createref.f src/fortran/btof.f \
-       src/fortran/getnum.f src/fortran/btofm.f src/fortran/getsym.f \
-       src/fortran/findequal.f src/fortran/stackg.f \
-       src/fortran/find.f src/fortran/setlnb.f src/fortran/mrknmd.f \
-       src/fortran/ref2val.f src/fortran/stack.f src/fortran/isbrk.f \
-       src/fortran/xerbla.f src/fortran/dtosci.f src/fortran/bexec.f \
-       src/fortran/varfunptr.f src/fortran/getfun.f \
-       src/fortran/savlod.f src/fortran/error.f src/fortran/cvdm.f \
-       src/fortran/tradsl.f src/fortran/mkindx.f src/fortran/whatln.f \
-       src/fortran/errmgr.f src/fortran/defmat.f src/fortran/mklist.f \
-       src/fortran/sigbas.f src/fortran/indxg.f src/fortran/istrue.f \
-       src/fortran/inisci.f src/fortran/getfunction.f \
-       src/fortran/extlarg.f src/fortran/getstr.f src/fortran/cvwm.f \
 -      src/fortran/misops.f src/fortran/setippty.f \
 -      src/fortran/compil.f src/fortran/funnam.f src/fortran/cmdstr.f \
++      src/fortran/setippty.f src/fortran/compil.f \
++      src/fortran/funnam.f src/fortran/cmdstr.f \
+       src/fortran/hndlops.f src/fortran/cmplxt.f \
+       src/fortran/skpins.f src/fortran/folhp.f src/fortran/cvname.f \
 -      src/fortran/funs.f src/fortran/fact.f src/fortran/typ2cod.f \
 -      src/fortran/prompt.f src/fortran/intstr.f \
 -      src/fortran/createref.f src/fortran/btof.f \
 -      src/fortran/getnum.f src/fortran/btofm.f src/fortran/getsym.f \
 -      src/fortran/findequal.f src/fortran/stackg.f \
 -      src/fortran/find.f src/fortran/setlnb.f src/fortran/mrknmd.f \
 -      src/fortran/stackgl.f src/fortran/allops.f src/fortran/mname.f \
 -      src/fortran/command.f src/fortran/ref2val.f \
 -      src/fortran/stack.f src/fortran/isbrk.f src/fortran/xerbla.f \
 -      src/fortran/dtosci.f src/fortran/bexec.f \
 -      src/fortran/varfunptr.f src/fortran/getfun.f \
 -      src/fortran/savlod.f src/fortran/error.f src/fortran/cvdm.f \
 -      src/fortran/tradsl.f src/fortran/mkindx.f src/fortran/whatln.f \
 -      src/fortran/errmgr.f src/fortran/defmat.f src/fortran/mklist.f \
 -      src/fortran/sigbas.f src/fortran/indxg.f src/fortran/istrue.f \
 -      src/fortran/inisci.f src/fortran/ptover.f \
 -      src/fortran/getfunction.f src/fortran/stackp.f \
 -      src/fortran/dbasin.f src/fortran/macro.f src/fortran/extlarg.f \
++      src/fortran/typ2cod.f src/fortran/prompt.f \
++      src/fortran/intstr.f src/fortran/createref.f \
++      src/fortran/btof.f src/fortran/getnum.f src/fortran/btofm.f \
++      src/fortran/getsym.f src/fortran/findequal.f \
++      src/fortran/stackg.f src/fortran/find.f src/fortran/setlnb.f \
++      src/fortran/mrknmd.f src/fortran/ref2val.f src/fortran/stack.f \
++      src/fortran/isbrk.f src/fortran/xerbla.f src/fortran/dtosci.f \
++      src/fortran/bexec.f src/fortran/varfunptr.f \
++      src/fortran/getfun.f src/fortran/savlod.f src/fortran/error.f \
++      src/fortran/cvdm.f src/fortran/tradsl.f src/fortran/mkindx.f \
++      src/fortran/whatln.f src/fortran/errmgr.f src/fortran/defmat.f \
++      src/fortran/mklist.f src/fortran/sigbas.f src/fortran/indxg.f \
++      src/fortran/istrue.f src/fortran/inisci.f \
++      src/fortran/getfunction.f src/fortran/extlarg.f \
+       src/fortran/getstr.f src/fortran/cvwm.f \
        src/fortran/storeglobal.f src/fortran/lst2vars.f \
        src/fortran/basnms.f src/fortran/ptrback.f src/fortran/getch.f \
 -      src/fortran/ftob.f src/fortran/seteol.f src/fortran/basin.f \
 -      src/fortran/clause.f src/fortran/compcl.f src/fortran/expsum.f \
 -      src/fortran/copyvar.f src/fortran/putid.f src/fortran/itosci.f \
 -      src/fortran/stackr2d.f src/fortran/stacki2d.f \
 -      src/fortran/stackc2i.f src/fortran/isinstring.f \
 -      src/fortran/relocstack.f
 +      src/fortran/ftob.f src/fortran/seteol.f src/fortran/compcl.f \
-       src/fortran/termf.f src/fortran/expsum.f src/fortran/copyvar.f \
-       src/fortran/putid.f src/fortran/itosci.f \
-       src/fortran/stackr2d.f src/fortran/stacki2d.f \
-       src/fortran/stackc2i.f src/fortran/isinstring.f \
-       src/fortran/relocstack.f
++      src/fortran/expsum.f src/fortran/copyvar.f src/fortran/putid.f \
++      src/fortran/itosci.f src/fortran/stackr2d.f \
++      src/fortran/stacki2d.f src/fortran/stackc2i.f \
++      src/fortran/isinstring.f src/fortran/relocstack.f
  @USE_DYNAMIC_STACK_TRUE@am__objects_1 =  \
  @USE_DYNAMIC_STACK_TRUE@      libscicore_algo_la-scimem64.lo
  am__objects_2 = libscicore_algo_la-inffic.lo \
@@@ -269,25 -294,24 +268,24 @@@ am__objects_3 = libscicore_algo_la-core
        libscicore_algo_la-namstr.lo \
        libscicore_algo_la-search_functions.lo \
        libscicore_algo_la-demangle.lo \
 -      libscicore_algo_la-backtrace_print.lo
 +      libscicore_algo_la-backtrace_print.lo \
 +      libscicore_algo_la-storeCommand.lo \
 +      libscicore_algo_la-banner.lo libscicore_algo_la-with_module.lo \
 +      libscicore_algo_la-runner.lo
  @USE_DYNAMIC_STACK_TRUE@am__objects_4 = relocstack.lo
  am__objects_5 = clunit.lo getlin.lo allowptr.lo isany.lo hmcreate.lo \
-       nextj.lo setgetmode.lo showstack.lo iseye.lo setippty.lo \
-       compil.lo funnam.lo isnum.lo cmdstr.lo hndlops.lo cmplxt.lo \
-       skpins.lo folhp.lo cvname.lo typ2cod.lo prompt.lo intstr.lo \
-       createref.lo btof.lo getnum.lo btofm.lo getsym.lo findequal.lo \
-       stackg.lo find.lo setlnb.lo mrknmd.lo ref2val.lo stack.lo \
-       isbrk.lo xerbla.lo dtosci.lo bexec.lo varfunptr.lo getfun.lo \
-       savlod.lo error.lo cvdm.lo tradsl.lo mkindx.lo whatln.lo \
-       errmgr.lo defmat.lo mklist.lo sigbas.lo indxg.lo istrue.lo \
-       inisci.lo getfunction.lo extlarg.lo getstr.lo cvwm.lo \
-       storeglobal.lo lst2vars.lo basnms.lo ptrback.lo getch.lo \
-       ftob.lo seteol.lo compcl.lo termf.lo expsum.lo copyvar.lo \
-       putid.lo itosci.lo stackr2d.lo stacki2d.lo stackc2i.lo \
-       isinstring.lo $(am__objects_4)
 -      nextj.lo setgetmode.lo showstack.lo misops.lo setippty.lo \
 -      compil.lo funnam.lo cmdstr.lo hndlops.lo cmplxt.lo skpins.lo \
 -      folhp.lo cvname.lo funs.lo fact.lo typ2cod.lo prompt.lo \
 -      intstr.lo createref.lo btof.lo getnum.lo btofm.lo getsym.lo \
 -      findequal.lo stackg.lo find.lo setlnb.lo mrknmd.lo stackgl.lo \
 -      allops.lo mname.lo command.lo ref2val.lo stack.lo isbrk.lo \
 -      xerbla.lo dtosci.lo bexec.lo varfunptr.lo getfun.lo savlod.lo \
 -      error.lo cvdm.lo tradsl.lo mkindx.lo whatln.lo errmgr.lo \
 -      defmat.lo mklist.lo sigbas.lo indxg.lo istrue.lo inisci.lo \
 -      ptover.lo getfunction.lo stackp.lo dbasin.lo macro.lo \
 -      extlarg.lo getstr.lo cvwm.lo storeglobal.lo lst2vars.lo \
 -      basnms.lo ptrback.lo getch.lo ftob.lo seteol.lo basin.lo \
 -      clause.lo compcl.lo expsum.lo copyvar.lo putid.lo itosci.lo \
 -      stackr2d.lo stacki2d.lo stackc2i.lo isinstring.lo \
 -      $(am__objects_4)
++      nextj.lo setgetmode.lo showstack.lo setippty.lo compil.lo \
++      funnam.lo cmdstr.lo hndlops.lo cmplxt.lo skpins.lo folhp.lo \
++      cvname.lo typ2cod.lo prompt.lo intstr.lo createref.lo btof.lo \
++      getnum.lo btofm.lo getsym.lo findequal.lo stackg.lo find.lo \
++      setlnb.lo mrknmd.lo ref2val.lo stack.lo isbrk.lo xerbla.lo \
++      dtosci.lo bexec.lo varfunptr.lo getfun.lo savlod.lo error.lo \
++      cvdm.lo tradsl.lo mkindx.lo whatln.lo errmgr.lo defmat.lo \
++      mklist.lo sigbas.lo indxg.lo istrue.lo inisci.lo \
++      getfunction.lo extlarg.lo getstr.lo cvwm.lo storeglobal.lo \
++      lst2vars.lo basnms.lo ptrback.lo getch.lo ftob.lo seteol.lo \
++      compcl.lo expsum.lo copyvar.lo putid.lo itosci.lo stackr2d.lo \
++      stacki2d.lo stackc2i.lo isinstring.lo $(am__objects_4)
  am_libscicore_algo_la_OBJECTS = $(am__objects_2) $(am__objects_3) \
        $(am__objects_5)
  libscicore_algo_la_OBJECTS = $(am_libscicore_algo_la_OBJECTS)
@@@ -686,108 -706,115 +684,107 @@@ CORE_FORTRAN_SOURCES = src/fortran/clun
        src/fortran/allowptr.f src/fortran/isany.f \
        src/fortran/hmcreate.f src/fortran/nextj.f \
        src/fortran/setgetmode.f src/fortran/showstack.f \
-       src/fortran/iseye.f src/fortran/setippty.f \
-       src/fortran/compil.f src/fortran/funnam.f src/fortran/isnum.f \
-       src/fortran/cmdstr.f src/fortran/hndlops.f \
-       src/fortran/cmplxt.f src/fortran/skpins.f src/fortran/folhp.f \
-       src/fortran/cvname.f src/fortran/typ2cod.f \
-       src/fortran/prompt.f src/fortran/intstr.f \
-       src/fortran/createref.f src/fortran/btof.f \
-       src/fortran/getnum.f src/fortran/btofm.f src/fortran/getsym.f \
-       src/fortran/findequal.f src/fortran/stackg.f \
-       src/fortran/find.f src/fortran/setlnb.f src/fortran/mrknmd.f \
-       src/fortran/ref2val.f src/fortran/stack.f src/fortran/isbrk.f \
-       src/fortran/xerbla.f src/fortran/dtosci.f src/fortran/bexec.f \
-       src/fortran/varfunptr.f src/fortran/getfun.f \
-       src/fortran/savlod.f src/fortran/error.f src/fortran/cvdm.f \
-       src/fortran/tradsl.f src/fortran/mkindx.f src/fortran/whatln.f \
-       src/fortran/errmgr.f src/fortran/defmat.f src/fortran/mklist.f \
-       src/fortran/sigbas.f src/fortran/indxg.f src/fortran/istrue.f \
-       src/fortran/inisci.f src/fortran/getfunction.f \
-       src/fortran/extlarg.f src/fortran/getstr.f src/fortran/cvwm.f \
 -      src/fortran/misops.f src/fortran/setippty.f \
 -      src/fortran/compil.f src/fortran/funnam.f src/fortran/cmdstr.f \
++      src/fortran/setippty.f src/fortran/compil.f \
++      src/fortran/funnam.f src/fortran/cmdstr.f \
+       src/fortran/hndlops.f src/fortran/cmplxt.f \
+       src/fortran/skpins.f src/fortran/folhp.f src/fortran/cvname.f \
 -      src/fortran/funs.f src/fortran/fact.f src/fortran/typ2cod.f \
 -      src/fortran/prompt.f src/fortran/intstr.f \
 -      src/fortran/createref.f src/fortran/btof.f \
 -      src/fortran/getnum.f src/fortran/btofm.f src/fortran/getsym.f \
 -      src/fortran/findequal.f src/fortran/stackg.f \
 -      src/fortran/find.f src/fortran/setlnb.f src/fortran/mrknmd.f \
 -      src/fortran/stackgl.f src/fortran/allops.f src/fortran/mname.f \
 -      src/fortran/command.f src/fortran/ref2val.f \
 -      src/fortran/stack.f src/fortran/isbrk.f src/fortran/xerbla.f \
 -      src/fortran/dtosci.f src/fortran/bexec.f \
 -      src/fortran/varfunptr.f src/fortran/getfun.f \
 -      src/fortran/savlod.f src/fortran/error.f src/fortran/cvdm.f \
 -      src/fortran/tradsl.f src/fortran/mkindx.f src/fortran/whatln.f \
 -      src/fortran/errmgr.f src/fortran/defmat.f src/fortran/mklist.f \
 -      src/fortran/sigbas.f src/fortran/indxg.f src/fortran/istrue.f \
 -      src/fortran/inisci.f src/fortran/ptover.f \
 -      src/fortran/getfunction.f src/fortran/stackp.f \
 -      src/fortran/dbasin.f src/fortran/macro.f src/fortran/extlarg.f \
++      src/fortran/typ2cod.f src/fortran/prompt.f \
++      src/fortran/intstr.f src/fortran/createref.f \
++      src/fortran/btof.f src/fortran/getnum.f src/fortran/btofm.f \
++      src/fortran/getsym.f src/fortran/findequal.f \
++      src/fortran/stackg.f src/fortran/find.f src/fortran/setlnb.f \
++      src/fortran/mrknmd.f src/fortran/ref2val.f src/fortran/stack.f \
++      src/fortran/isbrk.f src/fortran/xerbla.f src/fortran/dtosci.f \
++      src/fortran/bexec.f src/fortran/varfunptr.f \
++      src/fortran/getfun.f src/fortran/savlod.f src/fortran/error.f \
++      src/fortran/cvdm.f src/fortran/tradsl.f src/fortran/mkindx.f \
++      src/fortran/whatln.f src/fortran/errmgr.f src/fortran/defmat.f \
++      src/fortran/mklist.f src/fortran/sigbas.f src/fortran/indxg.f \
++      src/fortran/istrue.f src/fortran/inisci.f \
++      src/fortran/getfunction.f src/fortran/extlarg.f \
+       src/fortran/getstr.f src/fortran/cvwm.f \
        src/fortran/storeglobal.f src/fortran/lst2vars.f \
        src/fortran/basnms.f src/fortran/ptrback.f src/fortran/getch.f \
 -      src/fortran/ftob.f src/fortran/seteol.f src/fortran/basin.f \
 -      src/fortran/clause.f src/fortran/compcl.f src/fortran/expsum.f \
 -      src/fortran/copyvar.f src/fortran/putid.f src/fortran/itosci.f \
 -      src/fortran/stackr2d.f src/fortran/stacki2d.f \
 -      src/fortran/stackc2i.f src/fortran/isinstring.f \
 -      $(am__append_2)
 -GATEWAY_C_SOURCES = sci_gateway/c/sci_stacksize.c \
 -sci_gateway/c/sci_resume.c \
 -sci_gateway/c/sci_mtlb_mode.c \
 -sci_gateway/c/sci_banner.c \
 -sci_gateway/c/sci_where.c \
 -sci_gateway/c/sci_errcatch.c \
 -sci_gateway/c/sci_getos.c \
 -sci_gateway/c/sci_format.c \
 -sci_gateway/c/sci_getmemory.c \
 -sci_gateway/c/sci_havewindow.c \
 -sci_gateway/c/sci_delbpt.c \
 -sci_gateway/c/sci_macr2lst.c \
 -sci_gateway/c/sci_isdef.c \
 -sci_gateway/c/sci_isglobal.c \
 -sci_gateway/c/sci_who.c \
 -sci_gateway/c/sci_errclear.c \
 -sci_gateway/c/sci_global.c \
 -sci_gateway/c/sci_funcprot.c \
 -sci_gateway/c/sci_newfun.c \
 -sci_gateway/c/sci_warning.c \
 -sci_gateway/c/sci_dispbpt.c \
 -sci_gateway/c/sci_intppty.c \
 -sci_gateway/c/sci_ieee.c \
 -sci_gateway/c/sci_gstacksize.c \
 -sci_gateway/c/sci_lasterror.c \
 -sci_gateway/c/sci_funptr.c \
 -sci_gateway/c/sci_return.c \
 -sci_gateway/c/sci_exists.c \
 -sci_gateway/c/sci_getmd5.c \
 -sci_gateway/c/sci_clear.c \
 -sci_gateway/c/sci_clearfun.c \
 -sci_gateway/c/sci_setbpt.c \
 -sci_gateway/c/sci_getmodules.c \
 -sci_gateway/c/sci_what.c \
 -sci_gateway/c/sci_predef.c \
 -sci_gateway/c/sci_clearglobal.c \
 -sci_gateway/c/sci_arg.c \
 -sci_gateway/c/sci_type.c \
 -sci_gateway/c/sci_typename.c \
 -sci_gateway/c/sci_mode.c \
 -sci_gateway/c/sci_macr2tree.c \
 -sci_gateway/c/sci_iserror.c \
 -sci_gateway/c/sci_getversion.c \
 -sci_gateway/c/sci_getdebuginfo.c \
 -sci_gateway/c/sci_debug.c \
 -sci_gateway/c/gw_core.c \
 -sci_gateway/c/gw_user.c \
 -sci_gateway/c/gw_user2.c \
 -sci_gateway/c/sci_error.c \
 -sci_gateway/c/sci_sciargs.c \
 -sci_gateway/c/sci_with_module.c \
 -sci_gateway/c/sci_getscilabmode.c \
 -sci_gateway/c/sci_getvariablesonstack.c \
 -sci_gateway/c/sci_readgateway.c \
 -sci_gateway/c/sci_comp.c \
 -sci_gateway/c/sci_exit.c
 -
 -GATEWAY_FORTRAN_SOURCES = sci_gateway/fortran/sci_f_global.f \
 +      src/fortran/ftob.f src/fortran/seteol.f src/fortran/compcl.f \
-       src/fortran/termf.f src/fortran/expsum.f src/fortran/copyvar.f \
-       src/fortran/putid.f src/fortran/itosci.f \
-       src/fortran/stackr2d.f src/fortran/stacki2d.f \
-       src/fortran/stackc2i.f src/fortran/isinstring.f \
-       $(am__append_2)
++      src/fortran/expsum.f src/fortran/copyvar.f src/fortran/putid.f \
++      src/fortran/itosci.f src/fortran/stackr2d.f \
++      src/fortran/stacki2d.f src/fortran/stackc2i.f \
++      src/fortran/isinstring.f $(am__append_2)
 +GATEWAY_C_SOURCES = \
 +      sci_gateway/c/sci_mtlb_mode.c \
 +      sci_gateway/c/sci_where.c \
 +      sci_gateway/c/sci_errcatch.c \
 +      sci_gateway/c/sci_getmemory.c \
 +      sci_gateway/c/sci_havewindow.c \
 +      sci_gateway/c/sci_delbpt.c \
 +      sci_gateway/c/sci_macr2lst.c \
 +      sci_gateway/c/sci_errclear.c \
 +      sci_gateway/c/sci_funcprot.c \
 +      sci_gateway/c/sci_newfun.c \
 +      sci_gateway/c/sci_dispbpt.c \
 +      sci_gateway/c/sci_intppty.c \
 +      sci_gateway/c/sci_gstacksize.c \
 +      sci_gateway/c/sci_funptr.c \
 +      sci_gateway/c/sci_return.c \
 +      sci_gateway/c/sci_clearfun.c \
 +      sci_gateway/c/sci_setbpt.c \
 +      sci_gateway/c/sci_what.c \
 +      sci_gateway/c/sci_predef.c \
 +      sci_gateway/c/sci_type.c \
 +      sci_gateway/c/sci_typename.c \
 +      sci_gateway/c/sci_mode.c \
 +      sci_gateway/c/sci_macr2tree.c \
 +      sci_gateway/c/sci_iserror.c \
 +      sci_gateway/c/sci_getdebuginfo.c \
 +      sci_gateway/c/sci_debug.c \
 +      sci_gateway/c/gw_core.c \
 +      sci_gateway/c/gw_user.c \
 +      sci_gateway/c/gw_user2.c \
 +      sci_gateway/c/sci_getvariablesonstack.c \
 +      sci_gateway/c/sci_readgateway.c \
 +      sci_gateway/c/sci_comp.c
 +
 +GATEWAY_FORTRAN_SOURCES = \
  sci_gateway/fortran/sci_f_mtlb_mode.f \
 -sci_gateway/fortran/sci_f_resume.f \
  sci_gateway/fortran/sci_f_dispbpt.f \
  sci_gateway/fortran/sci_f_intppty.f \
 -sci_gateway/fortran/sci_f_ieee.f \
  sci_gateway/fortran/sci_f_macrovar.f \
 -sci_gateway/fortran/sci_f_exists.f \
  sci_gateway/fortran/sci_f_errcatch.f \
 -sci_gateway/fortran/sci_f_clear.f \
 -sci_gateway/fortran/sci_f_argn.f \
  sci_gateway/fortran/sci_f_setbpt.f \
 -sci_gateway/fortran/sci_f_clearglobal.f \
  sci_gateway/fortran/sci_f_delbpt.f \
  sci_gateway/fortran/where.f \
 -sci_gateway/fortran/sci_f_iserror.f \
 -sci_gateway/fortran/sci_f_comp.f \
 -sci_gateway/fortran/sci_f_isglobal.f
 +sci_gateway/fortran/sci_f_iserror.f
 +
 +GATEWAY_CPP_SOURCES = \
 +      sci_gateway/cpp/sci_getmodules.cpp \
 +      sci_gateway/cpp/sci_clear.cpp \
 +      sci_gateway/cpp/sci_banner.cpp \
 +      sci_gateway/cpp/sci_quit.cpp \
 +      sci_gateway/cpp/sci_exit.cpp \
 +      sci_gateway/cpp/sci_argn.cpp \
 +      sci_gateway/cpp/sci_clearglobal.cpp \
 +      sci_gateway/cpp/sci_global.cpp \
 +      sci_gateway/cpp/sci_isglobal.cpp \
 +      sci_gateway/cpp/sci_getscilabmode.cpp \
 +      sci_gateway/cpp/sci_getos.cpp \
 +      sci_gateway/cpp/sci_exists.cpp \
 +      sci_gateway/cpp/sci_with_module.cpp \
 +      sci_gateway/cpp/sci_lasterror.cpp \
 +      sci_gateway/cpp/sci_getversion.cpp \
 +      sci_gateway/cpp/sci_warning.cpp \
 +      sci_gateway/cpp/sci_getmd5.cpp \
 +      sci_gateway/cpp/sci_error.cpp \
 +      sci_gateway/cpp/sci_pause.cpp \
 +      sci_gateway/cpp/sci_resume.cpp \
 +      sci_gateway/cpp/sci_abort.cpp \
 +      sci_gateway/cpp/sci_who.cpp \
 +      sci_gateway/cpp/sci_stacksize.cpp \
 +      sci_gateway/cpp/sci_format.cpp \
 +      sci_gateway/cpp/sci_sciargs.cpp \
 +      sci_gateway/cpp/sci_ieee.cpp
  
  libscicore_la_CPPFLAGS = -I$(srcdir)/includes/ -I$(srcdir)/src/c/ \
 -      -I$(srcdir)/src/cpp/ -I$(top_srcdir)/libs/MALLOC/includes/ \
 +      -I$(top_srcdir)/libs/MALLOC/includes/ \
        -I$(top_srcdir)/libs/dynamiclibrary/includes/ \
        -I$(top_srcdir)/libs/doublylinkedlist/includes/ \
        -I$(top_srcdir)/modules/intersci/includes/ \
@@@ -2214,9 -2340,9 +2211,6 @@@ setgetmode.lo: src/fortran/setgetmode.
  showstack.lo: src/fortran/showstack.f
        $(LIBTOOL)  --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(AM_FFLAGS) $(FFLAGS) -c -o showstack.lo `test -f 'src/fortran/showstack.f' || echo '$(srcdir)/'`src/fortran/showstack.f
  
- iseye.lo: src/fortran/iseye.f
-       $(LIBTOOL)  --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(AM_FFLAGS) $(FFLAGS) -c -o iseye.lo `test -f 'src/fortran/iseye.f' || echo '$(srcdir)/'`src/fortran/iseye.f
 -misops.lo: src/fortran/misops.f
 -      $(LIBTOOL)  --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(AM_FFLAGS) $(FFLAGS) -c -o misops.lo `test -f 'src/fortran/misops.f' || echo '$(srcdir)/'`src/fortran/misops.f
 -
  setippty.lo: src/fortran/setippty.f
        $(LIBTOOL)  --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(AM_FFLAGS) $(FFLAGS) -c -o setippty.lo `test -f 'src/fortran/setippty.f' || echo '$(srcdir)/'`src/fortran/setippty.f
  
  #include "loadversion.h"
  #include "freeArrayOfString.h"
  #include "MALLOC.h"
 +#include "../../../io/includes/getenvc.h"
 +#include "os_wcsdup.h"
 +#include "charEncoding.h"
++
  /*--------------------------------------------------------------------------*/
 -#define TCLSCI_MODULE_NAME "tclsci"
 -#define TCLTK_OPTION_STRING "tk"
 -#define MODELICAC_OPTION_STRING "modelicac"
 -#define X86_STRING "x86"
 -#define X64_STRING "x64"
 -#define ICC_STRING "ICC"
 -#define VC_STRING "VC++"
 -#define GCC_STRING "GCC"
 -#define PGI_STRING "PGI"
 -#define SUN_STRING "SUN"
 -#define UNKNOW_STRING "UKN"
 -#define RELEASE_STRING "release"
 -#define DEBUG_STRING "debug"
 +/*wide char*/
 +#define TCLSCI_MODULE_NAME L"tclsci"
 +#define TCLTK_OPTION_STRING L"tk"
 +#define MODELICAC_OPTION_STRING L"modelicac"
 +#define X86_STRING L"x86"
 +#define X64_STRING L"x64"
 +#define ICC_STRING L"ICC"
 +#define VC_STRING L"VC++"
 +#define GCC_STRING L"GCC"
 +#define PGI_STRING L"PGI"
 +#define SUN_STRING L"SUN"
 +#define UNKNOW_STRING L"UKN"
 +#define RELEASE_STRING L"release"
 +#define DEBUG_STRING L"debug"
  #define DEFAULT_VERSION_ARRAY_SIZE 4
 -#define SCILAB_STRING "scilab"
 +#define SCILAB_STRING L"scilab"
  /*--------------------------------------------------------------------------*/
  int *getScilabVersion(int *sizeArrayReturned)
  {
@@@ -1,11 -1,11 +1,11 @@@
  /*
   * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
   * Copyright (C) INRIA
-- * 
++ *
   * This file must be used under the terms of the CeCILL.
   * This source file is licensed as described in the file COPYING, which
   * you should have received as part of this distribution.  The terms
-- * are also available at    
++ * are also available at
   * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
   *
   */
  #include "getenvc.h"
  #include "FileExist.h"
  #include "localization.h"
--#include "core_math.h" 
 -#include "setgetSCIpath.h"
++#include "core_math.h"
 +#include "sci_path.h"
 +#include "sci_home.h"
  #include "MALLOC.h"
  #include "inisci-c.h"
 -#include "SCIHOME.h"
 -#include "scilabmode.h"
 +#include "sci_mode.h"
  #include "PATH_MAX.h"
  #include "scilabDefaults.h"
  /*--------------------------------------------------------------------------*/
   */
  int SetSci(void)
  {
--      int ierr,iflag=0;
--      int lbuf=PATH_MAX;
--      char *buf = (char*)MALLOC(PATH_MAX*sizeof(char));
--      if (buf)
--      {
-               getenvc(&ierr,"SCI",buf,&lbuf,&iflag);
 -              C2F(getenvc)(&ierr,"SCI",buf,&lbuf,&iflag);
++    int ierr, iflag = 0;
++    int lbuf = PATH_MAX;
++    char *buf = (char*)MALLOC(PATH_MAX * sizeof(char));
++    if (buf)
++    {
++        getenvc(&ierr, "SCI", buf, &lbuf, &iflag);
  
-               if ( ierr== 1) 
-               {
-               #ifdef  _MSC_VER
-               MessageBox(NULL,gettext("SCI environment variable not defined.\n"),gettext("Warning"),MB_ICONWARNING);
-               #else
-               fprintf(stderr, "%s", _("SCI environment variable not defined.\n"));
-               #endif
-               exit(1);
-               }
-               setSCI(buf);
-               FREE(buf);
-               buf = NULL;
-       }
-       
-       return 0;
 -              if (ierr != 0)
 -              {
++        if (ierr != 0)
++        {
+ #ifdef  _MSC_VER
 -                  MessageBox(NULL,gettext("SCI environment variable not defined.\n"),gettext("Warning"),MB_ICONWARNING);
++            MessageBox(NULL, gettext("SCI environment variable not defined.\n"), gettext("Warning"), MB_ICONWARNING);
+ #else
 -                  fprintf(stderr, "%s", _("SCI environment variable not defined.\n"));
++            fprintf(stderr, "%s", _("SCI environment variable not defined.\n"));
+ #endif
 -              exit(1);
 -              }
++            exit(1);
++        }
++        setSCI(buf);
++        FREE(buf);
++        buf = NULL;
++    }
 -              setSCIpath(buf);
 -              FREE(buf);
 -              buf = NULL;
 -      }
 -      
 -      return 0;
++    return 0;
  }
  /*--------------------------------------------------------------------------*/
  /**
   * Get the SCI path and initialize the scilab environment path
   *
   */
--int C2F(getsci)(char *buf,int *nbuf,long int lbuf)
++int C2F(getsci)(char *buf, int *nbuf, long int lbuf)
  {
--      char *pathtmp = NULL;
++    char *pathtmp = NULL;
  
--      SetSci();
++    SetSci();
  
-       pathtmp = getSCI();
-       if (pathtmp)
-       {
-               strcpy(buf,pathtmp);
-               *nbuf = (int)strlen(buf);
-               FREE(pathtmp);
-               pathtmp = NULL;
-       }
-       else
-       {
-               *buf = NULL;
-               *nbuf = 0;
-       }
-       return 0;
 -      pathtmp = getSCIpath();
 -      if (pathtmp)
 -      {
 -              strcpy(buf,pathtmp);
 -              *nbuf = (int)strlen(buf);
 -              FREE(pathtmp);
 -              pathtmp = NULL;
 -      }
 -      else
 -      {
 -              *buf = NULL;
 -              *nbuf = 0;
 -      }
 -      return 0;
++    pathtmp = getSCI();
++    if (pathtmp)
++    {
++        strcpy(buf, pathtmp);
++        *nbuf = (int)strlen(buf);
++        FREE(pathtmp);
++        pathtmp = NULL;
++    }
++    else
++    {
++        *buf = NULL;
++        *nbuf = 0;
++    }
++    return 0;
  }
  /*--------------------------------------------------------------------------*/
- int C2F(gettmpdir)(char *buf,int *nbuf,long int lbuf)
 -/**
 -* Get the SCIHOME path and initialize the scilab environment path
 -*
 -*/
 -int C2F(getscihome)(char *buf,int *nbuf,long int lbuf)
++int C2F(gettmpdir)(char *buf, int *nbuf, long int lbuf)
  {
-       int ierr,iflag=0,l1buf=lbuf;
-       getenvc(&ierr,"TMPDIR",buf,&l1buf,&iflag);
-       if ( ierr== 1) 
-       {
 -      char *pathtmp=NULL;
 -      char *SCIHOME = getSCIHOME();
 -      if (strcmp(SCIHOME,"empty_SCIHOME")==0)
 -      {
 -              if (!setSCIHOME())
 -              {
 -                      #ifdef  _MSC_VER
 -                              MessageBox(NULL,gettext("SCIHOME not defined.\n"),gettext("Warning"),MB_ICONWARNING);
 -                      #else
 -                              fprintf(stderr,"%s",_("SCIHOME not defined.\n"));
 -                      #endif
 -                      exit(1);
 -              }
 -              else
 -              {
 -                      if (SCIHOME) {FREE(SCIHOME);SCIHOME=NULL;}
 -              }
 -      }
 -
 -      pathtmp = getSCIHOME();
 -      if (pathtmp)
 -      {
 -              strcpy(buf,pathtmp);
 -              *nbuf = (int)strlen(buf);
 -              FREE(pathtmp);
 -              pathtmp = NULL;
 -      }
 -
 -      if (SCIHOME) {FREE(SCIHOME);SCIHOME=NULL;}
 -
 -      return 0;
 -}
 -/*--------------------------------------------------------------------------*/
 -int C2F(gettmpdir)(char *buf,int *nbuf,long int lbuf)
 -{
 -      int ierr,iflag=0,l1buf=lbuf;
 -      C2F(getenvc)(&ierr,"TMPDIR",buf,&l1buf,&iflag);
 -      if (ierr != 0) 
 -      {
++    int ierr, iflag = 0, l1buf = lbuf;
++    getenvc(&ierr, "TMPDIR", buf, &l1buf, &iflag);
++    if ( ierr != 0)
++    {
  #ifdef  _MSC_VER
--              MessageBox(NULL,gettext("TMPDIR not defined.\n"),gettext("Warning"),MB_ICONWARNING);
++        MessageBox(NULL, gettext("TMPDIR not defined.\n"), gettext("Warning"), MB_ICONWARNING);
  #else
--              fprintf(stderr,"%s",_("TMPDIR not defined.\n"));
++        fprintf(stderr, "%s", _("TMPDIR not defined.\n"));
  #endif
--              exit(1);
--      }
-       *nbuf = (int)strlen(buf);
-       return 0;
++        exit(1);
++    }
 -      *nbuf = (int)strlen(buf);
 -      return 0;
++    *nbuf = (int)strlen(buf);
++    return 0;
  }
  /*--------------------------------------------------------------------------*/
  int C2F(withgui)(int *rep)
--{ 
--      *rep = (getScilabMode() != SCILAB_NWNI); 
--      return 0;
++{
++    *rep = (getScilabMode() != SCILAB_NWNI);
++    return 0;
  }
  /*--------------------------------------------------------------------------*/
  int C2F(getdefaultgstacksize)(int *defaultsize)
  {
--      *defaultsize = DEFAULTGSTACKSIZE;
--      return 0;
++    *defaultsize = DEFAULTGSTACKSIZE;
++    return 0;
  }
  /*--------------------------------------------------------------------------*/
  int C2F(getdefaultstacksize)(int *defaultsize)
  {
--      *defaultsize = DEFAULTSTACKSIZE;
--      return 0;
++    *defaultsize = DEFAULTSTACKSIZE;
++    return 0;
  }
  /*--------------------------------------------------------------------------*/
                <File RelativePath="stackg.f"/>
                <File RelativePath="stackgl.f"/>
                <File RelativePath=".\stacki2d.f"/>
 -              <File RelativePath="stackp.f"/>
                <File RelativePath=".\stackr2d.f"/>
                <File RelativePath="storeglobal.f"/>
-               <File RelativePath="termf.f"/>
                <File RelativePath="tradsl.f"/>
                <File RelativePath="typ2cod.f"/>
                <File RelativePath="varfunptr.f"/>
@@@ -400,9 -414,9 +398,8 @@@ cd .
      <ClCompile Include="stackg.c" />
      <ClCompile Include="stackgl.c" />
      <ClCompile Include="stacki2d.c" />
 -    <ClCompile Include="stackp.c" />
      <ClCompile Include="stackr2d.c" />
      <ClCompile Include="storeglobal.c" />
-     <ClCompile Include="termf.c" />
      <ClCompile Include="tradsl.c" />
      <ClCompile Include="typ2cod.c" />
      <ClCompile Include="varfunptr.c" />
      <f2c_rule Include="stackg.f" />
      <f2c_rule Include="stackgl.f" />
      <f2c_rule Include="stacki2d.f" />
 -    <f2c_rule Include="stackp.f" />
      <f2c_rule Include="stackr2d.f" />
      <f2c_rule Include="storeglobal.f" />
-     <f2c_rule Include="termf.f" />
      <f2c_rule Include="tradsl.f" />
      <f2c_rule Include="typ2cod.f" />
      <f2c_rule Include="varfunptr.f" />
@@@ -169,205 -136,224 +169,203 @@@ LINPACK_SOURCES = 
        src/fortran/linpack/dpofa.f
  
  ELEMENTARIES_FUNCTIONS_FORTRAN_SOURCES = \
 -src/fortran/psi.f \
 -src/fortran/wasum.f \
 -src/fortran/dexpm1.f \
 -src/fortran/wwdiv.f \
 -src/fortran/wdotcr.f \
 -src/fortran/iset.f \
 -src/fortran/franck.f \
 -src/fortran/dwpowe.f \
 -src/fortran/rcsort.f \
 -src/fortran/wddiv.f \
 -src/fortran/lnblnk.f \
 -src/fortran/entier.f \
 -src/fortran/round.f \
 -src/fortran/cortr.f \
 -src/fortran/simple.f \
 -src/fortran/split.f \
 -src/fortran/wdrdiv.f \
 -src/fortran/imcopy.f \
 -src/fortran/cbal.f \
 -src/fortran/cuproi.f \
 -src/fortran/dsum.f \
 -src/fortran/urand.f \
 -src/fortran/intp.f \
 -src/fortran/watan.f \
 -src/fortran/wipowe.f \
 -src/fortran/wacos.f \
 -src/fortran/wdpow1.f \
 -src/fortran/dmsum.f \
 -src/fortran/dlgama.f \
 -src/fortran/exch.f \
 -src/fortran/wsign.f \
 -src/fortran/kronr.f \
 -src/fortran/wrscal.f \
 -src/fortran/pythag.f \
 -src/fortran/dmmul1.f \
 -src/fortran/dwpow.f \
 -src/fortran/wmmul.f \
 -src/fortran/dsearch.f \
 -src/fortran/ddif.f \
 -src/fortran/wdiv.f \
 -src/fortran/wtan.f \
 -src/fortran/ddpow.f \
 -src/fortran/magic.f \
 -src/fortran/wcerr.f \
 -src/fortran/ivimp.f \
 -src/fortran/cupro.f \
 -src/fortran/dadd.f \
 -src/fortran/isort.f \
 -src/fortran/hilber.f \
 -src/fortran/wdpowe.f \
 -src/fortran/wmprod.f \
 -src/fortran/wscal.f \
 -src/fortran/dlblks.f \
 -src/fortran/kronc.f \
 -src/fortran/ddrdiv.f \
 -src/fortran/dipow.f \
 -src/fortran/wshrsl.f \
 -src/fortran/wwrdiv.f \
 -src/fortran/coshin.f \
 -src/fortran/iwamax.f \
 -src/fortran/dipowe.f \
 -src/fortran/getorient.f \
 -src/fortran/cusum.f \
 -src/fortran/d1mach.f \
 -src/fortran/wbdiag.f \
 -src/fortran/ddpow1.f \
 -src/fortran/vpythag.f \
 -src/fortran/isova0.f \
 -src/fortran/wswap.f \
 -src/fortran/wwpow1.f \
 -src/fortran/getdimfromvar.f \
 -src/fortran/gdcp2i.f \
 -src/fortran/drdiv.f \
 -src/fortran/wmsum.f \
 -src/fortran/corth.f \
 -src/fortran/mtran.f \
 -src/fortran/wwpow.f \
 -src/fortran/dvmul.f \
 -src/fortran/wclmat.f \
 -src/fortran/dsort.f \
 -src/fortran/cerr.f \
 -src/fortran/rcopy.f \
 -src/fortran/wdpow.f \
 -src/fortran/orthes.f \
 -src/fortran/waxpy.f \
 -src/fortran/coef.f \
 -src/fortran/dwdiv.f \
 -src/fortran/arcosh.f \
 -src/fortran/wasin.f \
 -src/fortran/wexpm1.f \
 -src/fortran/ddpowe.f \
 -src/fortran/nearfloat.f \
 -src/fortran/dmprod.f \
 -src/fortran/wwpowe.f \
 -src/fortran/wdotci.f \
 -src/fortran/dmcopy.f \
 -src/fortran/wexchn.f \
 -src/fortran/isoval.f \
 -src/fortran/dwrdiv.f \
 -src/fortran/wipow.f \
 -src/fortran/wlog.f \
 -src/fortran/infinity.f \
 -src/fortran/dwpow1.f \
 -src/fortran/wmul.f \
 -src/fortran/dad.f \
 -src/fortran/dset.f \
 -src/fortran/dtild.f \
 -src/fortran/i1mach.f \
 -src/fortran/dclmat.f \
 -src/fortran/ortran.f \
 -src/fortran/bdiag.f \
 -src/fortran/wvmul.f \
 -src/fortran/dmmul.f \
 -src/fortran/wsqrt.f \
 -src/fortran/israt.f \
 -src/fortran/rat.f
 +    src/fortran/psi.f \
 +    src/fortran/wasum.f \
 +    src/fortran/dexpm1.f \
 +    src/fortran/wwdiv.f \
 +    src/fortran/wdotcr.f \
 +    src/fortran/iset.f \
 +    src/fortran/franck.f \
 +    src/fortran/dwpowe.f \
 +    src/fortran/rcsort.f \
 +    src/fortran/wddiv.f \
 +    src/fortran/lnblnk.f \
 +    src/fortran/entier.f \
 +    src/fortran/round.f \
 +    src/fortran/cortr.f \
 +    src/fortran/simple.f \
 +    src/fortran/split.f \
 +    src/fortran/wdrdiv.f \
 +    src/fortran/imcopy.f \
 +    src/fortran/cbal.f \
 +    src/fortran/dsum.f \
 +    src/fortran/urand.f \
 +    src/fortran/intp.f \
 +    src/fortran/watan.f \
 +    src/fortran/wipowe.f \
 +    src/fortran/wacos.f \
 +    src/fortran/wdpow1.f \
 +    src/fortran/dlgama.f \
 +    src/fortran/exch.f \
 +    src/fortran/wsign.f \
 +    src/fortran/kronr.f \
 +    src/fortran/wrscal.f \
 +    src/fortran/dmmul1.f \
 +    src/fortran/dwpow.f \
 +    src/fortran/wmmul.f \
 +    src/fortran/ddif.f \
 +    src/fortran/wdiv.f \
 +    src/fortran/wtan.f \
 +    src/fortran/ddpow.f \
 +    src/fortran/magic.f \
 +    src/fortran/wcerr.f \
 +    src/fortran/ivimp.f \
 +    src/fortran/dadd.f \
-     src/fortran/calerf.f \
 +    src/fortran/isort.f \
 +    src/fortran/hilber.f \
 +    src/fortran/wdpowe.f \
 +    src/fortran/wmprod.f \
 +    src/fortran/wscal.f \
 +    src/fortran/dlblks.f \
 +    src/fortran/kronc.f \
 +    src/fortran/ddrdiv.f \
 +    src/fortran/dipow.f \
 +    src/fortran/wshrsl.f \
 +    src/fortran/wwrdiv.f \
 +    src/fortran/coshin.f \
 +    src/fortran/iwamax.f \
 +    src/fortran/dipowe.f \
 +    src/fortran/getorient.f \
 +    src/fortran/cusum.f \
 +    src/fortran/d1mach.f \
 +    src/fortran/wbdiag.f \
 +    src/fortran/ddpow1.f \
 +    src/fortran/vpythag.f \
 +    src/fortran/isova0.f \
 +    src/fortran/wswap.f \
 +    src/fortran/wwpow1.f \
 +    src/fortran/getdimfromvar.f \
 +    src/fortran/gdcp2i.f \
 +    src/fortran/drdiv.f \
 +    src/fortran/wmsum.f \
 +    src/fortran/corth.f \
 +    src/fortran/mtran.f \
 +    src/fortran/wwpow.f \
 +    src/fortran/dvmul.f \
 +    src/fortran/wclmat.f \
 +    src/fortran/dsort.f \
 +    src/fortran/cerr.f \
 +    src/fortran/rcopy.f \
 +    src/fortran/wdpow.f \
 +    src/fortran/orthes.f \
 +    src/fortran/waxpy.f \
 +    src/fortran/coef.f \
 +    src/fortran/dwdiv.f \
 +    src/fortran/arcosh.f \
 +    src/fortran/wasin.f \
 +    src/fortran/wexpm1.f \
 +    src/fortran/ddpowe.f \
 +    src/fortran/nearfloat.f \
 +    src/fortran/dmprod.f \
 +    src/fortran/wwpowe.f \
 +    src/fortran/wdotci.f \
 +    src/fortran/dmcopy.f \
 +    src/fortran/wexchn.f \
 +    src/fortran/isoval.f \
 +    src/fortran/dwrdiv.f \
 +    src/fortran/wipow.f \
 +    src/fortran/wlog.f \
 +    src/fortran/infinity.f \
 +    src/fortran/dwpow1.f \
 +    src/fortran/wmul.f \
 +    src/fortran/dad.f \
 +    src/fortran/dset.f \
 +    src/fortran/dtild.f \
 +    src/fortran/i1mach.f \
 +    src/fortran/dclmat.f \
 +    src/fortran/ortran.f \
 +    src/fortran/bdiag.f \
 +    src/fortran/wvmul.f \
 +    src/fortran/dmmul.f \
 +    src/fortran/wsqrt.f \
 +    src/fortran/israt.f \
 +    src/fortran/rat.f \
 +    src/fortran/old_pythag.f \
 +    src/fortran/danints.f
 +
 +GATEWAY_C_SOURCES = \
 +    sci_gateway/c/sci_sqrt.c \
 +    sci_gateway/c/sci_sign.c \
 +    sci_gateway/c/gw_elementary_functions.c \
 +    sci_gateway/c/sci_number_properties.c \
 +    sci_gateway/c/sci_testmatrix.c \
 +    sci_gateway/c/sci_spones.c \
 +    sci_gateway/c/sci_nearfloat.c \
 +    sci_gateway/c/sci_real.c \
 +    sci_gateway/c/sci_round.c \
 +    sci_gateway/c/sci_isequalbitwise.c \
 +    sci_gateway/c/sci_base2dec.c \
 +    sci_gateway/c/sci_dec2base.c
  
 -GATEWAY_C_SOURCES = sci_gateway/c/sci_isequal.c \
 -sci_gateway/c/sci_matrix.c \
 -sci_gateway/c/sci_prod.c \
 -sci_gateway/c/sci_expm.c \
 -sci_gateway/c/sci_size.c \
 -sci_gateway/c/sci_tril.c \
 -sci_gateway/c/sci_ceil.c \
 -sci_gateway/c/sci_imag.c \
 -sci_gateway/c/sci_log.c \
 -sci_gateway/c/sci_log1p.c \
 -sci_gateway/c/sci_eye.c \
 -sci_gateway/c/sci_clean.c \
 -sci_gateway/c/sci_tan.c \
 -sci_gateway/c/sci_atan.c \
 -sci_gateway/c/sci_triu.c \
 -sci_gateway/c/sci_frexp.c \
 -sci_gateway/c/sci_cos.c \
 -sci_gateway/c/sci_rand.c \
 -sci_gateway/c/sci_acos.c \
 -sci_gateway/c/sci_sin.c \
 -sci_gateway/c/sci_sqrt.c \
 -sci_gateway/c/sci_asin.c \
 -sci_gateway/c/sci_sign.c \
 -sci_gateway/c/sci_zeros.c \
 -sci_gateway/c/sci_ones.c \
 -sci_gateway/c/sci_rat.c \
 -sci_gateway/c/gw_elementary_functions.c \
 -sci_gateway/c/sci_number_properties.c \
 -sci_gateway/c/sci_diag.c \
 -sci_gateway/c/sci_sum.c \
 -sci_gateway/c/sci_testmatrix.c \
 -sci_gateway/c/sci_abs.c \
 -sci_gateway/c/sci_spones.c \
 -sci_gateway/c/sci_kron.c \
 -sci_gateway/c/sci_cumprod.c \
 -sci_gateway/c/sci_cumsum.c \
 -sci_gateway/c/sci_dsearch.c \
 -sci_gateway/c/sci_nearfloat.c \
 -sci_gateway/c/sci_chinesehat.c \
 -sci_gateway/c/sci_isreal.c \
 -sci_gateway/c/sci_floor.c \
 -sci_gateway/c/sci_real.c \
 -sci_gateway/c/sci_round.c \
 -sci_gateway/c/sci_conj.c \
 -sci_gateway/c/sci_int.c \
 -sci_gateway/c/sci_imult.c \
 -sci_gateway/c/sci_exp.c \
 -sci_gateway/c/sci_maxi.c \
 -sci_gateway/c/sci_gsort.c \
 -sci_gateway/c/sci_isequalbitwise.c \
 -sci_gateway/c/sci_base2dec.c \
 -sci_gateway/c/sci_dec2base.c
 +GATEWAY_FORTRAN_SOURCES =  \
 +    sci_gateway/fortran/sci_f_testmatrix.f \
 +    sci_gateway/fortran/sci_f_matrix.f \
 +    sci_gateway/fortran/sci_f_size.f \
 +    sci_gateway/fortran/sci_f_ceil.f \
 +    sci_gateway/fortran/sci_f_clean.f \
 +    sci_gateway/fortran/sci_f_eye.f \
 +    sci_gateway/fortran/sci_f_tan.f \
 +    sci_gateway/fortran/sci_f_atan.f \
 +    sci_gateway/fortran/sci_f_cos.f \
 +    sci_gateway/fortran/sci_f_rand.f \
 +    sci_gateway/fortran/sci_f_acos.f \
 +    sci_gateway/fortran/sci_f_sin.f \
 +    sci_gateway/fortran/sci_f_sqrt.f \
 +    sci_gateway/fortran/sci_f_asin.f \
 +    sci_gateway/fortran/sci_f_sign.f \
 +    sci_gateway/fortran/sci_f_zeros.f \
 +    sci_gateway/fortran/sci_f_ones.f \
 +    sci_gateway/fortran/sci_f_diag.f \
 +    sci_gateway/fortran/sci_f_number_properties.f \
 +    sci_gateway/fortran/sci_f_spones.f \
 +    sci_gateway/fortran/sci_f_nearfloat.f \
 +    sci_gateway/fortran/sci_f_real.f \
 +    sci_gateway/fortran/sci_f_round.f \
 +    sci_gateway/fortran/sci_f_conj.f
  
 -GATEWAY_FORTRAN_SOURCES =  sci_gateway/fortran/sci_f_isequal.f \
 -sci_gateway/fortran/sci_f_maxi.f \
 -sci_gateway/fortran/sci_f_testmatrix.f \
 -sci_gateway/fortran/sci_f_prod.f \
 -sci_gateway/fortran/sci_f_matrix.f \
 -sci_gateway/fortran/sci_f_expm.f \
 -sci_gateway/fortran/sci_f_size.f \
 -sci_gateway/fortran/sci_f_tril.f \
 -sci_gateway/fortran/sci_f_ceil.f \
 -sci_gateway/fortran/sci_f_rat.f \
 -sci_gateway/fortran/sci_f_imag.f \
 -sci_gateway/fortran/sci_f_log.f \
 -sci_gateway/fortran/sci_f_log1p.f \
 -sci_gateway/fortran/sci_f_clean.f \
 -sci_gateway/fortran/sci_f_eye.f \
 -sci_gateway/fortran/sci_f_tan.f \
 -sci_gateway/fortran/sci_f_atan.f \
 -sci_gateway/fortran/sci_f_triu.f \
 -sci_gateway/fortran/sci_f_frexp.f \
 -sci_gateway/fortran/sci_f_cos.f \
 -sci_gateway/fortran/sci_f_rand.f \
 -sci_gateway/fortran/sci_f_acos.f \
 -sci_gateway/fortran/sci_f_sin.f \
 -sci_gateway/fortran/sci_f_sqrt.f \
 -sci_gateway/fortran/sci_f_asin.f \
 -sci_gateway/fortran/sci_f_sign.f \
 -sci_gateway/fortran/sci_f_zeros.f \
 -sci_gateway/fortran/sci_f_ones.f \
 -sci_gateway/fortran/sci_f_diag.f \
 -sci_gateway/fortran/sci_f_number_properties.f \
 -sci_gateway/fortran/sci_f_sum.f \
 -sci_gateway/fortran/sci_f_cumprod.f \
 -sci_gateway/fortran/sci_f_abs.f \
 -sci_gateway/fortran/sci_f_spones.f \
 -sci_gateway/fortran/sci_f_kron.f \
 -sci_gateway/fortran/sci_f_dsearch.f \
 -sci_gateway/fortran/sci_f_cumsum.f \
 -sci_gateway/fortran/sci_f_nearfloat.f \
 -sci_gateway/fortran/sci_f_chinesehat.f \
 -sci_gateway/fortran/sci_f_isreal.f \
 -sci_gateway/fortran/sci_f_floor.f \
 -sci_gateway/fortran/sci_f_real.f \
 -sci_gateway/fortran/sci_f_round.f \
 -sci_gateway/fortran/sci_f_conj.f \
 -sci_gateway/fortran/sci_f_int.f \
 -sci_gateway/fortran/sci_f_imult.f \
 -sci_gateway/fortran/sci_f_exp.f
 +GATEWAY_CXX_SOURCES =  \
 +    sci_gateway/cpp/sci_isequal.cpp \
 +    sci_gateway/cpp/elem_func_gw.cpp \
 +    sci_gateway/cpp/sci_size.cpp \
 +    sci_gateway/cpp/sci_eye.cpp \
 +    sci_gateway/cpp/sci_rand.cpp \
 +    sci_gateway/cpp/sci_prod.cpp \
 +    sci_gateway/cpp/sci_sum.cpp \
 +    sci_gateway/cpp/sci_zeros.cpp \
 +    sci_gateway/cpp/sci_ones.cpp \
 +    sci_gateway/cpp/sci_matrix.cpp \
 +    sci_gateway/cpp/sci_abs.cpp \
 +    sci_gateway/cpp/sci_acos.cpp \
 +    sci_gateway/cpp/sci_asin.cpp \
 +    sci_gateway/cpp/sci_atan.cpp \
 +    sci_gateway/cpp/sci_ceil.cpp \
 +    sci_gateway/cpp/sci_clean.cpp \
 +    sci_gateway/cpp/sci_conj.cpp \
 +    sci_gateway/cpp/sci_cos.cpp \
 +    sci_gateway/cpp/sci_sin.cpp \
 +    sci_gateway/cpp/sci_tan.cpp \
 +    sci_gateway/cpp/sci_cumsum.cpp \
 +    sci_gateway/cpp/sci_cumprod.cpp \
 +    sci_gateway/cpp/sci_diag.cpp \
 +    sci_gateway/cpp/sci_dsearch.cpp \
 +    sci_gateway/cpp/sci_exp.cpp \
 +    sci_gateway/cpp/sci_expm.cpp \
 +    sci_gateway/cpp/sci_floor.cpp \
 +    sci_gateway/cpp/sci_frexp.cpp \
 +    sci_gateway/cpp/sci_gsort.cpp \
 +    sci_gateway/cpp/sci_imag.cpp \
 +    sci_gateway/cpp/sci_imult.cpp \
 +    sci_gateway/cpp/sci_int.cpp \
 +    sci_gateway/cpp/sci_isreal.cpp \
 +    sci_gateway/cpp/sci_kron.cpp \
 +    sci_gateway/cpp/sci_log.cpp \
 +    sci_gateway/cpp/sci_log1p.cpp \
 +    sci_gateway/cpp/sci_max.cpp \
 +    sci_gateway/cpp/sci_min.cpp \
 +    sci_gateway/cpp/sci_rat.cpp \
 +    sci_gateway/cpp/sci_triu.cpp \
 +    sci_gateway/cpp/sci_tril.cpp
  
  EISPACK_SOURCES = src/fortran/eispack/balbak.f
  
  # FIXME: why disabling optimisation ? Any bug reference ?
@@@ -384,10 -370,8 +382,9 @@@ libdummy_elementary_functions_la_CPPFLA
      -I$(top_srcdir)/modules/core/includes/ \
      $(AM_CPPFLAGS)
  
  # Includes need for the compilation
 -libscielementary_functions_la_CPPFLAGS = -I$(srcdir)/includes/ \
 +libscielementary_functions_la_CPPFLAGS = \
 +    -I$(srcdir)/includes/ \
        -I$(srcdir)/src/cpp/ \
        -I$(srcdir)/src/c/ \
        -I$(top_srcdir)/libs/MALLOC/includes/ \
@@@ -207,31 -183,23 +207,31 @@@ am__objects_4 = libscielementary_functi
  am__objects_5 = psi.lo wasum.lo dexpm1.lo wwdiv.lo wdotcr.lo iset.lo \
        franck.lo dwpowe.lo rcsort.lo wddiv.lo lnblnk.lo entier.lo \
        round.lo cortr.lo simple.lo split.lo wdrdiv.lo imcopy.lo \
 -      cbal.lo cuproi.lo dsum.lo urand.lo intp.lo watan.lo wipowe.lo \
 -      wacos.lo wdpow1.lo dmsum.lo dlgama.lo exch.lo wsign.lo \
 -      kronr.lo wrscal.lo pythag.lo dmmul1.lo dwpow.lo wmmul.lo \
 -      dsearch.lo ddif.lo wdiv.lo wtan.lo ddpow.lo magic.lo wcerr.lo \
 -      ivimp.lo cupro.lo dadd.lo isort.lo hilber.lo wdpowe.lo \
 -      wmprod.lo wscal.lo dlblks.lo kronc.lo ddrdiv.lo dipow.lo \
 -      wshrsl.lo wwrdiv.lo coshin.lo iwamax.lo dipowe.lo getorient.lo \
 -      cusum.lo d1mach.lo wbdiag.lo ddpow1.lo vpythag.lo isova0.lo \
 -      wswap.lo wwpow1.lo getdimfromvar.lo gdcp2i.lo drdiv.lo \
 -      wmsum.lo corth.lo mtran.lo wwpow.lo dvmul.lo wclmat.lo \
 -      dsort.lo cerr.lo rcopy.lo wdpow.lo orthes.lo waxpy.lo coef.lo \
 -      dwdiv.lo arcosh.lo wasin.lo wexpm1.lo ddpowe.lo nearfloat.lo \
 -      dmprod.lo wwpowe.lo wdotci.lo dmcopy.lo wexchn.lo isoval.lo \
 -      dwrdiv.lo wipow.lo wlog.lo infinity.lo dwpow1.lo wmul.lo \
 -      dad.lo dset.lo dtild.lo i1mach.lo dclmat.lo ortran.lo bdiag.lo \
 -      wvmul.lo dmmul.lo wsqrt.lo israt.lo rat.lo
 -am__objects_6 =
 +      cbal.lo dsum.lo urand.lo intp.lo watan.lo wipowe.lo wacos.lo \
 +      wdpow1.lo dlgama.lo exch.lo wsign.lo kronr.lo wrscal.lo \
 +      dmmul1.lo dwpow.lo wmmul.lo ddif.lo wdiv.lo wtan.lo ddpow.lo \
-       magic.lo wcerr.lo ivimp.lo dadd.lo calerf.lo isort.lo \
-       hilber.lo wdpowe.lo wmprod.lo wscal.lo dlblks.lo kronc.lo \
-       ddrdiv.lo dipow.lo wshrsl.lo wwrdiv.lo coshin.lo iwamax.lo \
-       dipowe.lo getorient.lo cusum.lo d1mach.lo wbdiag.lo ddpow1.lo \
-       vpythag.lo isova0.lo wswap.lo wwpow1.lo getdimfromvar.lo \
-       gdcp2i.lo drdiv.lo wmsum.lo corth.lo mtran.lo wwpow.lo \
-       dvmul.lo wclmat.lo dsort.lo cerr.lo rcopy.lo wdpow.lo \
-       orthes.lo waxpy.lo coef.lo dwdiv.lo arcosh.lo wasin.lo \
-       wexpm1.lo ddpowe.lo nearfloat.lo dmprod.lo wwpowe.lo wdotci.lo \
-       dmcopy.lo wexchn.lo isoval.lo dwrdiv.lo wipow.lo wlog.lo \
-       infinity.lo dwpow1.lo wmul.lo dad.lo dset.lo dtild.lo \
-       i1mach.lo dclmat.lo ortran.lo bdiag.lo wvmul.lo dmmul.lo \
-       wsqrt.lo israt.lo rat.lo old_pythag.lo danints.lo
++      magic.lo wcerr.lo ivimp.lo dadd.lo isort.lo hilber.lo \
++      wdpowe.lo wmprod.lo wscal.lo dlblks.lo kronc.lo ddrdiv.lo \
++      dipow.lo wshrsl.lo wwrdiv.lo coshin.lo iwamax.lo dipowe.lo \
++      getorient.lo cusum.lo d1mach.lo wbdiag.lo ddpow1.lo vpythag.lo \
++      isova0.lo wswap.lo wwpow1.lo getdimfromvar.lo gdcp2i.lo \
++      drdiv.lo wmsum.lo corth.lo mtran.lo wwpow.lo dvmul.lo \
++      wclmat.lo dsort.lo cerr.lo rcopy.lo wdpow.lo orthes.lo \
++      waxpy.lo coef.lo dwdiv.lo arcosh.lo wasin.lo wexpm1.lo \
++      ddpowe.lo nearfloat.lo dmprod.lo wwpowe.lo wdotci.lo dmcopy.lo \
++      wexchn.lo isoval.lo dwrdiv.lo wipow.lo wlog.lo infinity.lo \
++      dwpow1.lo wmul.lo dad.lo dset.lo dtild.lo i1mach.lo dclmat.lo \
++      ortran.lo bdiag.lo wvmul.lo dmmul.lo wsqrt.lo israt.lo rat.lo \
++      old_pythag.lo danints.lo
 +am__objects_6 = libscielementary_functions_algo_la-getmode.lo \
 +      libscielementary_functions_algo_la-cumsum.lo \
 +      libscielementary_functions_algo_la-cumprod.lo \
 +      libscielementary_functions_algo_la-diag.lo \
 +      libscielementary_functions_algo_la-gsort.lo \
 +      libscielementary_functions_algo_la-prod.lo \
 +      libscielementary_functions_algo_la-sum.lo \
 +      libscielementary_functions_algo_la-max.lo \
 +      libscielementary_functions_algo_la-min.lo
  am_libscielementary_functions_algo_la_OBJECTS = $(am__objects_1) \
        $(am__objects_2) $(am__objects_3) $(am__objects_4) \
        $(am__objects_5) $(am__objects_6)
@@@ -786,203 -707,223 +786,202 @@@ LINPACK_SOURCES = 
        src/fortran/linpack/dpofa.f
  
  ELEMENTARIES_FUNCTIONS_FORTRAN_SOURCES = \
 -src/fortran/psi.f \
 -src/fortran/wasum.f \
 -src/fortran/dexpm1.f \
 -src/fortran/wwdiv.f \
 -src/fortran/wdotcr.f \
 -src/fortran/iset.f \
 -src/fortran/franck.f \
 -src/fortran/dwpowe.f \
 -src/fortran/rcsort.f \
 -src/fortran/wddiv.f \
 -src/fortran/lnblnk.f \
 -src/fortran/entier.f \
 -src/fortran/round.f \
 -src/fortran/cortr.f \
 -src/fortran/simple.f \
 -src/fortran/split.f \
 -src/fortran/wdrdiv.f \
 -src/fortran/imcopy.f \
 -src/fortran/cbal.f \
 -src/fortran/cuproi.f \
 -src/fortran/dsum.f \
 -src/fortran/urand.f \
 -src/fortran/intp.f \
 -src/fortran/watan.f \
 -src/fortran/wipowe.f \
 -src/fortran/wacos.f \
 -src/fortran/wdpow1.f \
 -src/fortran/dmsum.f \
 -src/fortran/dlgama.f \
 -src/fortran/exch.f \
 -src/fortran/wsign.f \
 -src/fortran/kronr.f \
 -src/fortran/wrscal.f \
 -src/fortran/pythag.f \
 -src/fortran/dmmul1.f \
 -src/fortran/dwpow.f \
 -src/fortran/wmmul.f \
 -src/fortran/dsearch.f \
 -src/fortran/ddif.f \
 -src/fortran/wdiv.f \
 -src/fortran/wtan.f \
 -src/fortran/ddpow.f \
 -src/fortran/magic.f \
 -src/fortran/wcerr.f \
 -src/fortran/ivimp.f \
 -src/fortran/cupro.f \
 -src/fortran/dadd.f \
 -src/fortran/isort.f \
 -src/fortran/hilber.f \
 -src/fortran/wdpowe.f \
 -src/fortran/wmprod.f \
 -src/fortran/wscal.f \
 -src/fortran/dlblks.f \
 -src/fortran/kronc.f \
 -src/fortran/ddrdiv.f \
 -src/fortran/dipow.f \
 -src/fortran/wshrsl.f \
 -src/fortran/wwrdiv.f \
 -src/fortran/coshin.f \
 -src/fortran/iwamax.f \
 -src/fortran/dipowe.f \
 -src/fortran/getorient.f \
 -src/fortran/cusum.f \
 -src/fortran/d1mach.f \
 -src/fortran/wbdiag.f \
 -src/fortran/ddpow1.f \
 -src/fortran/vpythag.f \
 -src/fortran/isova0.f \
 -src/fortran/wswap.f \
 -src/fortran/wwpow1.f \
 -src/fortran/getdimfromvar.f \
 -src/fortran/gdcp2i.f \
 -src/fortran/drdiv.f \
 -src/fortran/wmsum.f \
 -src/fortran/corth.f \
 -src/fortran/mtran.f \
 -src/fortran/wwpow.f \
 -src/fortran/dvmul.f \
 -src/fortran/wclmat.f \
 -src/fortran/dsort.f \
 -src/fortran/cerr.f \
 -src/fortran/rcopy.f \
 -src/fortran/wdpow.f \
 -src/fortran/orthes.f \
 -src/fortran/waxpy.f \
 -src/fortran/coef.f \
 -src/fortran/dwdiv.f \
 -src/fortran/arcosh.f \
 -src/fortran/wasin.f \
 -src/fortran/wexpm1.f \
 -src/fortran/ddpowe.f \
 -src/fortran/nearfloat.f \
 -src/fortran/dmprod.f \
 -src/fortran/wwpowe.f \
 -src/fortran/wdotci.f \
 -src/fortran/dmcopy.f \
 -src/fortran/wexchn.f \
 -src/fortran/isoval.f \
 -src/fortran/dwrdiv.f \
 -src/fortran/wipow.f \
 -src/fortran/wlog.f \
 -src/fortran/infinity.f \
 -src/fortran/dwpow1.f \
 -src/fortran/wmul.f \
 -src/fortran/dad.f \
 -src/fortran/dset.f \
 -src/fortran/dtild.f \
 -src/fortran/i1mach.f \
 -src/fortran/dclmat.f \
 -src/fortran/ortran.f \
 -src/fortran/bdiag.f \
 -src/fortran/wvmul.f \
 -src/fortran/dmmul.f \
 -src/fortran/wsqrt.f \
 -src/fortran/israt.f \
 -src/fortran/rat.f
 -
 -GATEWAY_C_SOURCES = sci_gateway/c/sci_isequal.c \
 -sci_gateway/c/sci_matrix.c \
 -sci_gateway/c/sci_prod.c \
 -sci_gateway/c/sci_expm.c \
 -sci_gateway/c/sci_size.c \
 -sci_gateway/c/sci_tril.c \
 -sci_gateway/c/sci_ceil.c \
 -sci_gateway/c/sci_imag.c \
 -sci_gateway/c/sci_log.c \
 -sci_gateway/c/sci_log1p.c \
 -sci_gateway/c/sci_eye.c \
 -sci_gateway/c/sci_clean.c \
 -sci_gateway/c/sci_tan.c \
 -sci_gateway/c/sci_atan.c \
 -sci_gateway/c/sci_triu.c \
 -sci_gateway/c/sci_frexp.c \
 -sci_gateway/c/sci_cos.c \
 -sci_gateway/c/sci_rand.c \
 -sci_gateway/c/sci_acos.c \
 -sci_gateway/c/sci_sin.c \
 -sci_gateway/c/sci_sqrt.c \
 -sci_gateway/c/sci_asin.c \
 -sci_gateway/c/sci_sign.c \
 -sci_gateway/c/sci_zeros.c \
 -sci_gateway/c/sci_ones.c \
 -sci_gateway/c/sci_rat.c \
 -sci_gateway/c/gw_elementary_functions.c \
 -sci_gateway/c/sci_number_properties.c \
 -sci_gateway/c/sci_diag.c \
 -sci_gateway/c/sci_sum.c \
 -sci_gateway/c/sci_testmatrix.c \
 -sci_gateway/c/sci_abs.c \
 -sci_gateway/c/sci_spones.c \
 -sci_gateway/c/sci_kron.c \
 -sci_gateway/c/sci_cumprod.c \
 -sci_gateway/c/sci_cumsum.c \
 -sci_gateway/c/sci_dsearch.c \
 -sci_gateway/c/sci_nearfloat.c \
 -sci_gateway/c/sci_chinesehat.c \
 -sci_gateway/c/sci_isreal.c \
 -sci_gateway/c/sci_floor.c \
 -sci_gateway/c/sci_real.c \
 -sci_gateway/c/sci_round.c \
 -sci_gateway/c/sci_conj.c \
 -sci_gateway/c/sci_int.c \
 -sci_gateway/c/sci_imult.c \
 -sci_gateway/c/sci_exp.c \
 -sci_gateway/c/sci_maxi.c \
 -sci_gateway/c/sci_gsort.c \
 -sci_gateway/c/sci_isequalbitwise.c \
 -sci_gateway/c/sci_base2dec.c \
 -sci_gateway/c/sci_dec2base.c
 -
 -GATEWAY_FORTRAN_SOURCES = sci_gateway/fortran/sci_f_isequal.f \
 -sci_gateway/fortran/sci_f_maxi.f \
 -sci_gateway/fortran/sci_f_testmatrix.f \
 -sci_gateway/fortran/sci_f_prod.f \
 -sci_gateway/fortran/sci_f_matrix.f \
 -sci_gateway/fortran/sci_f_expm.f \
 -sci_gateway/fortran/sci_f_size.f \
 -sci_gateway/fortran/sci_f_tril.f \
 -sci_gateway/fortran/sci_f_ceil.f \
 -sci_gateway/fortran/sci_f_rat.f \
 -sci_gateway/fortran/sci_f_imag.f \
 -sci_gateway/fortran/sci_f_log.f \
 -sci_gateway/fortran/sci_f_log1p.f \
 -sci_gateway/fortran/sci_f_clean.f \
 -sci_gateway/fortran/sci_f_eye.f \
 -sci_gateway/fortran/sci_f_tan.f \
 -sci_gateway/fortran/sci_f_atan.f \
 -sci_gateway/fortran/sci_f_triu.f \
 -sci_gateway/fortran/sci_f_frexp.f \
 -sci_gateway/fortran/sci_f_cos.f \
 -sci_gateway/fortran/sci_f_rand.f \
 -sci_gateway/fortran/sci_f_acos.f \
 -sci_gateway/fortran/sci_f_sin.f \
 -sci_gateway/fortran/sci_f_sqrt.f \
 -sci_gateway/fortran/sci_f_asin.f \
 -sci_gateway/fortran/sci_f_sign.f \
 -sci_gateway/fortran/sci_f_zeros.f \
 -sci_gateway/fortran/sci_f_ones.f \
 -sci_gateway/fortran/sci_f_diag.f \
 -sci_gateway/fortran/sci_f_number_properties.f \
 -sci_gateway/fortran/sci_f_sum.f \
 -sci_gateway/fortran/sci_f_cumprod.f \
 -sci_gateway/fortran/sci_f_abs.f \
 -sci_gateway/fortran/sci_f_spones.f \
 -sci_gateway/fortran/sci_f_kron.f \
 -sci_gateway/fortran/sci_f_dsearch.f \
 -sci_gateway/fortran/sci_f_cumsum.f \
 -sci_gateway/fortran/sci_f_nearfloat.f \
 -sci_gateway/fortran/sci_f_chinesehat.f \
 -sci_gateway/fortran/sci_f_isreal.f \
 -sci_gateway/fortran/sci_f_floor.f \
 -sci_gateway/fortran/sci_f_real.f \
 -sci_gateway/fortran/sci_f_round.f \
 -sci_gateway/fortran/sci_f_conj.f \
 -sci_gateway/fortran/sci_f_int.f \
 -sci_gateway/fortran/sci_f_imult.f \
 -sci_gateway/fortran/sci_f_exp.f
 +    src/fortran/psi.f \
 +    src/fortran/wasum.f \
 +    src/fortran/dexpm1.f \
 +    src/fortran/wwdiv.f \
 +    src/fortran/wdotcr.f \
 +    src/fortran/iset.f \
 +    src/fortran/franck.f \
 +    src/fortran/dwpowe.f \
 +    src/fortran/rcsort.f \
 +    src/fortran/wddiv.f \
 +    src/fortran/lnblnk.f \
 +    src/fortran/entier.f \
 +    src/fortran/round.f \
 +    src/fortran/cortr.f \
 +    src/fortran/simple.f \
 +    src/fortran/split.f \
 +    src/fortran/wdrdiv.f \
 +    src/fortran/imcopy.f \
 +    src/fortran/cbal.f \
 +    src/fortran/dsum.f \
 +    src/fortran/urand.f \
 +    src/fortran/intp.f \
 +    src/fortran/watan.f \
 +    src/fortran/wipowe.f \
 +    src/fortran/wacos.f \
 +    src/fortran/wdpow1.f \
 +    src/fortran/dlgama.f \
 +    src/fortran/exch.f \
 +    src/fortran/wsign.f \
 +    src/fortran/kronr.f \
 +    src/fortran/wrscal.f \
 +    src/fortran/dmmul1.f \
 +    src/fortran/dwpow.f \
 +    src/fortran/wmmul.f \
 +    src/fortran/ddif.f \
 +    src/fortran/wdiv.f \
 +    src/fortran/wtan.f \
 +    src/fortran/ddpow.f \
 +    src/fortran/magic.f \
 +    src/fortran/wcerr.f \
 +    src/fortran/ivimp.f \
 +    src/fortran/dadd.f \
-     src/fortran/calerf.f \
 +    src/fortran/isort.f \
 +    src/fortran/hilber.f \
 +    src/fortran/wdpowe.f \
 +    src/fortran/wmprod.f \
 +    src/fortran/wscal.f \
 +    src/fortran/dlblks.f \
 +    src/fortran/kronc.f \
 +    src/fortran/ddrdiv.f \
 +    src/fortran/dipow.f \
 +    src/fortran/wshrsl.f \
 +    src/fortran/wwrdiv.f \
 +    src/fortran/coshin.f \
 +    src/fortran/iwamax.f \
 +    src/fortran/dipowe.f \
 +    src/fortran/getorient.f \
 +    src/fortran/cusum.f \
 +    src/fortran/d1mach.f \
 +    src/fortran/wbdiag.f \
 +    src/fortran/ddpow1.f \
 +    src/fortran/vpythag.f \
 +    src/fortran/isova0.f \
 +    src/fortran/wswap.f \
 +    src/fortran/wwpow1.f \
 +    src/fortran/getdimfromvar.f \
 +    src/fortran/gdcp2i.f \
 +    src/fortran/drdiv.f \
 +    src/fortran/wmsum.f \
 +    src/fortran/corth.f \
 +    src/fortran/mtran.f \
 +    src/fortran/wwpow.f \
 +    src/fortran/dvmul.f \
 +    src/fortran/wclmat.f \
 +    src/fortran/dsort.f \
 +    src/fortran/cerr.f \
 +    src/fortran/rcopy.f \
 +    src/fortran/wdpow.f \
 +    src/fortran/orthes.f \
 +    src/fortran/waxpy.f \
 +    src/fortran/coef.f \
 +    src/fortran/dwdiv.f \
 +    src/fortran/arcosh.f \
 +    src/fortran/wasin.f \
 +    src/fortran/wexpm1.f \
 +    src/fortran/ddpowe.f \
 +    src/fortran/nearfloat.f \
 +    src/fortran/dmprod.f \
 +    src/fortran/wwpowe.f \
 +    src/fortran/wdotci.f \
 +    src/fortran/dmcopy.f \
 +    src/fortran/wexchn.f \
 +    src/fortran/isoval.f \
 +    src/fortran/dwrdiv.f \
 +    src/fortran/wipow.f \
 +    src/fortran/wlog.f \
 +    src/fortran/infinity.f \
 +    src/fortran/dwpow1.f \
 +    src/fortran/wmul.f \
 +    src/fortran/dad.f \
 +    src/fortran/dset.f \
 +    src/fortran/dtild.f \
 +    src/fortran/i1mach.f \
 +    src/fortran/dclmat.f \
 +    src/fortran/ortran.f \
 +    src/fortran/bdiag.f \
 +    src/fortran/wvmul.f \
 +    src/fortran/dmmul.f \
 +    src/fortran/wsqrt.f \
 +    src/fortran/israt.f \
 +    src/fortran/rat.f \
 +    src/fortran/old_pythag.f \
 +    src/fortran/danints.f
 +
 +GATEWAY_C_SOURCES = \
 +    sci_gateway/c/sci_sqrt.c \
 +    sci_gateway/c/sci_sign.c \
 +    sci_gateway/c/gw_elementary_functions.c \
 +    sci_gateway/c/sci_number_properties.c \
 +    sci_gateway/c/sci_testmatrix.c \
 +    sci_gateway/c/sci_spones.c \
 +    sci_gateway/c/sci_nearfloat.c \
 +    sci_gateway/c/sci_real.c \
 +    sci_gateway/c/sci_round.c \
 +    sci_gateway/c/sci_isequalbitwise.c \
 +    sci_gateway/c/sci_base2dec.c \
 +    sci_gateway/c/sci_dec2base.c
 +
 +GATEWAY_FORTRAN_SOURCES = \
 +    sci_gateway/fortran/sci_f_testmatrix.f \
 +    sci_gateway/fortran/sci_f_matrix.f \
 +    sci_gateway/fortran/sci_f_size.f \
 +    sci_gateway/fortran/sci_f_ceil.f \
 +    sci_gateway/fortran/sci_f_clean.f \
 +    sci_gateway/fortran/sci_f_eye.f \
 +    sci_gateway/fortran/sci_f_tan.f \
 +    sci_gateway/fortran/sci_f_atan.f \
 +    sci_gateway/fortran/sci_f_cos.f \
 +    sci_gateway/fortran/sci_f_rand.f \
 +    sci_gateway/fortran/sci_f_acos.f \
 +    sci_gateway/fortran/sci_f_sin.f \
 +    sci_gateway/fortran/sci_f_sqrt.f \
 +    sci_gateway/fortran/sci_f_asin.f \
 +    sci_gateway/fortran/sci_f_sign.f \
 +    sci_gateway/fortran/sci_f_zeros.f \
 +    sci_gateway/fortran/sci_f_ones.f \
 +    sci_gateway/fortran/sci_f_diag.f \
 +    sci_gateway/fortran/sci_f_number_properties.f \
 +    sci_gateway/fortran/sci_f_spones.f \
 +    sci_gateway/fortran/sci_f_nearfloat.f \
 +    sci_gateway/fortran/sci_f_real.f \
 +    sci_gateway/fortran/sci_f_round.f \
 +    sci_gateway/fortran/sci_f_conj.f
 +
 +GATEWAY_CXX_SOURCES = \
 +    sci_gateway/cpp/sci_isequal.cpp \
 +    sci_gateway/cpp/elem_func_gw.cpp \
 +    sci_gateway/cpp/sci_size.cpp \
 +    sci_gateway/cpp/sci_eye.cpp \
 +    sci_gateway/cpp/sci_rand.cpp \
 +    sci_gateway/cpp/sci_prod.cpp \
 +    sci_gateway/cpp/sci_sum.cpp \
 +    sci_gateway/cpp/sci_zeros.cpp \
 +    sci_gateway/cpp/sci_ones.cpp \
 +    sci_gateway/cpp/sci_matrix.cpp \
 +    sci_gateway/cpp/sci_abs.cpp \
 +    sci_gateway/cpp/sci_acos.cpp \
 +    sci_gateway/cpp/sci_asin.cpp \
 +    sci_gateway/cpp/sci_atan.cpp \
 +    sci_gateway/cpp/sci_ceil.cpp \
 +    sci_gateway/cpp/sci_clean.cpp \
 +    sci_gateway/cpp/sci_conj.cpp \
 +    sci_gateway/cpp/sci_cos.cpp \
 +    sci_gateway/cpp/sci_sin.cpp \
 +    sci_gateway/cpp/sci_tan.cpp \
 +    sci_gateway/cpp/sci_cumsum.cpp \
 +    sci_gateway/cpp/sci_cumprod.cpp \
 +    sci_gateway/cpp/sci_diag.cpp \
 +    sci_gateway/cpp/sci_dsearch.cpp \
 +    sci_gateway/cpp/sci_exp.cpp \
 +    sci_gateway/cpp/sci_expm.cpp \
 +    sci_gateway/cpp/sci_floor.cpp \
 +    sci_gateway/cpp/sci_frexp.cpp \
 +    sci_gateway/cpp/sci_gsort.cpp \
 +    sci_gateway/cpp/sci_imag.cpp \
 +    sci_gateway/cpp/sci_imult.cpp \
 +    sci_gateway/cpp/sci_int.cpp \
 +    sci_gateway/cpp/sci_isreal.cpp \
 +    sci_gateway/cpp/sci_kron.cpp \
 +    sci_gateway/cpp/sci_log.cpp \
 +    sci_gateway/cpp/sci_log1p.cpp \
 +    sci_gateway/cpp/sci_max.cpp \
 +    sci_gateway/cpp/sci_min.cpp \
 +    sci_gateway/cpp/sci_rat.cpp \
 +    sci_gateway/cpp/sci_triu.cpp \
 +    sci_gateway/cpp/sci_tril.cpp
  
  EISPACK_SOURCES = src/fortran/eispack/balbak.f
  
@@@ -144,36 -149,36 +149,37 @@@ void ScilabObjects::createEnvironmentOb
  
  void ScilabObjects::copyInvocationMacroToStack(int pos, ScilabAbstractEnvironment & env, void * pvApiCtx)
  {
 -    static bool init = false;
 -    static int id[nsiz];
 -    static int interf = 0;
 -    static int funnumber = 0;
 -
 -    if (!init)
 -    {
 -        init = true;
 -        C2F(str2name)(const_cast<char *>(_INVOKE_), id, strlen(_INVOKE_));
 -        int fins = Fin;
 -        int funs = C2F(com).fun;
 -        Fin = -1;
 -        C2F(funs)(id);
 -        funnumber = Fin;
 -        interf = C2F(com).fun;
 -        C2F(com).fun = funs;
 -        Fin = fins;
 -    }
 -
 -    int tops = Top;
 -    // Remove 1 since varfunptr will increment Top
 -    Top = Top - Rhs + pos - 1;
 -
 -    // Create a function pointer variable
 -    C2F(varfunptr)(id, &interf, &funnumber);
 -    C2F(intersci).ntypes[pos - 1] = '$';
 -
 -    Top = tops;
 +    //static bool init = false;
 +    //static int id[nsiz];
 +    //static int interf = 0;
 +    //static int funnumber = 0;
 +
 +    //if (!init)
 +    //{
 +    //    init = true;
 +    //    C2F(str2name)(const_cast<char *>(_INVOKE_), id, strlen(_INVOKE_));
 +    //    int fins = Fin;
 +    //    int funs = C2F(com).fun;
 +    //    Fin = -1;
 +    //    C2F(funs)(id);
 +    //    funnumber = Fin;
 +    //    interf = C2F(com).fun;
 +    //    C2F(com).fun = funs;
 +    //    Fin = fins;
 +    //}
 +
 +    //int tops = Top;
 +    //// Remove 1 since varfunptr will increment Top
 +    //Top = Top - Rhs + pos - 1;
 +
 +    //// Create a function pointer variable
 +    //C2F(varfunptr)(id, &interf, &funnumber);
 +    //C2F(intersci).ntypes[pos - 1] = '$';
 +
 +    //Top = tops;
 +
 +    //OptionsHelper::setCopyOccured(true);
 -    OptionsHelper::setCopyOccurred(true);
  }
  
  void ScilabObjects::removeTemporaryVars(const int envId, int * tmpvar)
@@@ -973,14 -974,15 +973,16 @@@ int sci_dst_4args(void* pvApiCtx, char 
      * Return results in lhs argument *
      ***********************************/
  
-     ReturnArguments(pvApiCtx);
 +
      FREE(Dim1);
      FREE(Incr);
      FREE(Dim);
      FREE(Sel);
      FREE(gdim.dims);
      FREE(gdim.howmany_dims);
 -    ReturnArguments(_pvCtx);
++    ReturnArguments(pvApiCtx);
      return 0;
  }
  /*--------------------------------------------------------------------------*/
@@@ -37,7 -40,7 +37,6 @@@ int sci_fscanfMat(char *fname, void* pv
  
      fscanfMatResult *results = NULL;
  
-     //Nbvars = 0;
 -    Nbvars = 0;
      CheckRhs(1, 3);
      CheckLhs(1, 2);
  
  #define __FSCANFMAT_H__
  
  #include "BOOL.h"
 +#include "dynlib_fileio.h"
  
- typedef enum { 
+ typedef enum
+ {
      FSCANFMAT_NO_ERROR = 0,
      FSCANFMAT_MOPEN_ERROR = 1,
      FSCANFMAT_FORMAT_ERROR = 2,
@@@ -42,9 -43,9 +44,9 @@@ typedef struc
  /**
  *
  */
- FILEIO_IMPEXP fscanfMatResult *fscanfMat(char *filename, char *format, char *separator, BOOL asDouble);
 -fscanfMatResult *fscanfMat(char *filename, char *format, char *separator);
++FILEIO_IMPEXP fscanfMatResult *fscanfMat(char *filename, char *format, char *separator);
  
 -void freeFscanfMatResult(fscanfMatResult *resultStruct);
 +FILEIO_IMPEXP void freeFscanfMatResult(fscanfMatResult *resultStruct);
  
  #endif /* __FSCANFMAT_H__ */
  /*--------------------------------------------------------------------------*/
@@@ -36,26 -38,28 +36,27 @@@ extern "C
  
  //#define PRINT_DEBUG
  int iLevel = 0;
 -
 -static bool isVarExist(int _iFile, char* _pstVarName);
 -
 -static bool export_data(int _iH5File, int *_piVar, char* _pstName);
 -static bool export_list(int _iH5File, int *_piVar, char* _pstName, int _iVarType);
 -static bool export_double(int _iH5File, int *_piVar, char* _pstName);
 -static bool export_poly(int _iH5File, int *_piVar, char* _pstName);
 -static bool export_boolean(int _iH5File, int *_piVar, char* _pstName);
 -static bool export_sparse(int _iH5File, int *_piVar, char* _pstName);
 -static bool export_boolean_sparse(int _iH5File, int *_piVar, char* _pstName);
 -static bool export_matlab_sparse(int *_piVar, char* _pstName);
 -static bool export_ints(int _iH5File, int *_piVar, char* _pstName);
 -static bool export_handles(int *_piVar, char* _pstName);
 -static bool export_strings(int _iH5File, int *_piVar, char* _pstName);
 -static bool export_u_function(int *_piVar, char* _pstName);
 -static bool export_c_function(int *_piVar, char* _pstName);
 -static bool export_lib(int *_piVar, char* _pstName);
 -static bool export_lufact_pointer(int *_piVar, char* _pstName);
 -static bool export_void(int _iH5File, int *_piVar, char* _pstName);
++static bool isVarExist(int* pvCtx, int _iFile, char* _pstVarName);
 +
 +static bool export_data(int* pvCtx, int _iH5File, int *_piVar, char* _pstName);
 +static bool export_list(int* pvCtx, int _iH5File, int *_piVar, char* _pstName, int _iVarType);
 +static bool export_double(int* pvCtx, int _iH5File, int *_piVar, char* _pstName);
 +static bool export_poly(int* pvCtx, int _iH5File, int *_piVar, char* _pstName);
 +static bool export_boolean(int* pvCtx, int _iH5File, int *_piVar, char* _pstName);
 +static bool export_sparse(int* pvCtx, int _iH5File, int *_piVar, char* _pstName);
 +static bool export_boolean_sparse(int* pvCtx, int _iH5File, int *_piVar, char* _pstName);
 +static bool export_matlab_sparse(int* pvCtx, int *_piVar, char* _pstName);
 +static bool export_ints(int* pvCtx, int _iH5File, int *_piVar, char* _pstName);
 +static bool export_handles(int* pvCtx, int *_piVar, char* _pstName);
 +static bool export_strings(int* pvCtx, int _iH5File, int *_piVar, char* _pstName);
 +static bool export_u_function(int* pvCtx, int *_piVar, char* _pstName);
 +static bool export_c_function(int* pvCtx, int *_piVar, char* _pstName);
 +static bool export_lib(int* pvCtx, int *_piVar, char* _pstName);
 +static bool export_lufact_pointer(int* pvCtx, int *_piVar, char* _pstName);
 +static bool export_void(int* pvCtx, int _iH5File, int *_piVar, char* _pstName);
  
  void print_type(char* _pstType);
 -int extractVarNameList(int _iStart, int _iEnd, char** _pstNameList);
 +int extractVarNameList(int* pvCtx, int _iStart, int _iEnd, char** _pstNameList);
  
  
  /*--------------------------------------------------------------------------*/
@@@ -185,7 -158,26 +156,26 @@@ int sci_export_to_hdf5(char *fname, int
              continue;
          }
  
 -        if (isVarExist(iH5File, pstNameList[i]))
++        if (isVarExist(pvApiCtx, iH5File, pstNameList[i]))
+         {
+             if (bAppendMode)
+             {
+                 if (deleteHDF5Var(iH5File, pstNameList[i]))
+                 {
+                     closeHDF5File(iH5File);
+                     Scierror(999, _("%s: Unable to delete existing variable \"%s\"."), fname, pstNameList[i]);
+                     return 1;
+                 }
+             }
+             else
+             {
+                 closeHDF5File(iH5File);
+                 Scierror(999, _("%s: Variable \'%s\' already exists in file \'%s\'\nUse -append option to replace existing variable\n."), fname, pstNameList[i], pstNameList[0]);
+                 return 1;
+             }
+         }
 -        bExport = export_data(iH5File, piAddrList[i], pstNameList[i]);
 +        bExport = export_data(pvApiCtx, iH5File, piAddrList[i], pstNameList[i]);
          if (bExport == false)
          {
              break;
@@@ -267,82 -261,83 +257,82 @@@ static bool export_data(int* pvCtx, in
      switch (iType)
      {
          case sci_matrix :
-             {
-                 bReturn = export_double(pvCtx, _iH5File, _piVar, _pstName);
-                 break;
-             }
+         {
 -            bReturn = export_double(_iH5File, _piVar, _pstName);
++            bReturn = export_double(pvCtx, _iH5File, _piVar, _pstName);
+             break;
+         }
          case sci_poly :
-             {
-                 bReturn = export_poly(pvCtx, _iH5File, _piVar, _pstName);
-                 break;
-             }
+         {
 -            bReturn = export_poly(_iH5File, _piVar, _pstName);
++            bReturn = export_poly(pvCtx, _iH5File, _piVar, _pstName);
+             break;
+         }
          case sci_boolean :
-             {
-                 bReturn = export_boolean(pvCtx, _iH5File, _piVar, _pstName);
-                 break;
-             }
+         {
 -            bReturn = export_boolean(_iH5File, _piVar, _pstName);
++            bReturn = export_boolean(pvCtx, _iH5File, _piVar, _pstName);
+             break;
+         }
          case sci_sparse :
-             {
-                 bReturn = export_sparse(pvCtx, _iH5File, _piVar, _pstName);
-                 break;
-             }
+         {
 -            bReturn = export_sparse(_iH5File, _piVar, _pstName);
++            bReturn = export_sparse(pvCtx, _iH5File, _piVar, _pstName);
+             break;
+         }
          case sci_boolean_sparse :
-             {
-                 bReturn = export_boolean_sparse(pvCtx, _iH5File, _piVar, _pstName);
-                 break;
-             }
+         {
 -            bReturn = export_boolean_sparse(_iH5File, _piVar, _pstName);
++            bReturn = export_boolean_sparse(pvCtx, _iH5File, _piVar, _pstName);
+             break;
+         }
          case sci_matlab_sparse :
-             {
-                 bReturn = export_matlab_sparse(pvCtx, _piVar, _pstName);
-                 break;
-             }
+         {
 -            bReturn = export_matlab_sparse(_piVar, _pstName);
++            bReturn = export_matlab_sparse(pvCtx, _piVar, _pstName);
+             break;
+         }
          case sci_ints :
-             {
-                 bReturn = export_ints(pvCtx, _iH5File, _piVar, _pstName);
-                 break;
-             }
+         {
 -            bReturn = export_ints(_iH5File, _piVar, _pstName);
++            bReturn = export_ints(pvCtx, _iH5File, _piVar, _pstName);
+             break;
+         }
          case sci_handles :
-             {
-                 bReturn = export_handles(pvCtx, _piVar, _pstName);
-                 break;
-             }
+         {
 -            bReturn = export_handles(_piVar, _pstName);
++            bReturn = export_handles(pvCtx, _piVar, _pstName);
+             break;
+         }
          case sci_strings :
-             {
-                 bReturn = export_strings(pvCtx, _iH5File, _piVar, _pstName);
-                 break;
-             }
+         {
 -            bReturn = export_strings(_iH5File, _piVar, _pstName);
++            bReturn = export_strings(pvCtx, _iH5File, _piVar, _pstName);
+             break;
+         }
          case sci_u_function :
-             {
-                 bReturn = export_u_function(pvCtx, _piVar, _pstName);
-                 break;
-             }
+         {
 -            bReturn = export_u_function(_piVar, _pstName);
++            bReturn = export_u_function(pvCtx, _piVar, _pstName);
+             break;
+         }
          case sci_c_function :
-             {
-                 bReturn = export_c_function(pvCtx, _piVar, _pstName);
-                 break;
-             }
+         {
 -            bReturn = export_c_function(_piVar, _pstName);
++            bReturn = export_c_function(pvCtx, _piVar, _pstName);
+             break;
+         }
          case sci_lib :
-             {
-                 bReturn = export_lib(pvCtx, _piVar, _pstName);
-                 break;
-             }
+         {
 -            bReturn = export_lib(_piVar, _pstName);
++            bReturn = export_lib(pvCtx, _piVar, _pstName);
+             break;
+         }
          case sci_list :
          case sci_tlist :
          case sci_mlist :
-             {
-                 bReturn = export_list(pvCtx, _iH5File, _piVar, _pstName, iType);
-                 break;
-             }
+         {
 -            bReturn = export_list(_iH5File, _piVar, _pstName, iType);
++            bReturn = export_list(pvCtx, _iH5File, _piVar, _pstName, iType);
+             break;
+         }
          case sci_lufact_pointer :
-             {
-                 bReturn = export_lufact_pointer(pvCtx, _piVar, _pstName);
-                 break;
-             }
+         {
 -            bReturn = export_lufact_pointer(_piVar, _pstName);
++            bReturn = export_lufact_pointer(pvCtx, _piVar, _pstName);
+             break;
+         }
          case 0 : //void case to "null" items in list
-             {
-                 bReturn = export_void(pvCtx, _iH5File, _piVar, _pstName);
-                 break;
-             }
+         {
 -            bReturn = export_void(_iH5File, _piVar, _pstName);
++            bReturn = export_void(pvCtx, _iH5File, _piVar, _pstName);
+             break;
+         }
 -
          default :
          {
              bReturn = false;
@@@ -928,4 -923,30 +918,31 @@@ int extractVarNameList(int* pvCtx, int 
      return iCount;
  }
  
 -static bool isVarExist(int _iFile, char* _pstVarName)
 +/*--------------------------------------------------------------------------*/
++static bool isVarExist(int* pvCtx, int _iFile, char* _pstVarName)
+ {
+     //check if variable already exists
+     int iNbItem = getVariableNames(_iFile, NULL);
+     if (iNbItem)
+     {
+         char **pstVarNameList = (char **)MALLOC(sizeof(char *) * iNbItem);
+         iNbItem = getVariableNames(_iFile, pstVarNameList);
+         //import all data
+         for (int i = 0 ; i < iNbItem ; i++)
+         {
+             if (strcmp(pstVarNameList[i], _pstVarName) == 0)
+             {
+                 return true;
+             }
+             FREE(pstVarNameList[i]);
+         }
+         FREE(pstVarNameList);
+     }
+     return false;
+ }
+ /*--------------------------------------------------------------------------*/
@@@ -159,35 -162,24 +162,24 @@@ int sci_getenv(char *fname, void* pvApi
                return 0;
        }
  
-       #ifdef _MSC_VER
-       length_env = _MAX_ENV;
-       #else
-       length_env = bsiz;
-       #endif
-       default_env_value =  pStVarTwo;
-       env_name = pStVarOne;
-       env_value = (char*)MALLOC( (length_env + 1) *sizeof(char) );
+     default_env_value =  pStVarTwo;
+     env_name = pStVarOne;
  
-       if (env_value == NULL)
-       {
-               if (default_env_value) {FREE(default_env_value); default_env_value = NULL;}
-               if (env_name) {FREE(env_name); env_name = NULL;}
-               Scierror(999,_("%s: No more memory.\n"), fname);
-               return 0;
-       }
-       else
-       {
-               int m_out = 1, n_out = 1;
-               int iflag = 0;
 -    C2F(getenvc)(&ierr, env_name, NULL, &length_env, &iflag);
++    getenvc(&ierr, env_name, NULL, &length_env, &iflag);
  
-               getenvc(&ierr, env_name, env_value, &length_env, &iflag);
+     if(ierr == 0)
+     {
+           env_value = (char*)MALLOC( (length_env + 1) * sizeof(char) );
+           if (env_value == NULL)
+           {
+                   Scierror(999,_("%s: No more memory.\n"), fname);
+           }
+           else
+         {
 -                  C2F(getenvc)(&ierr, env_name, env_value, &length_env, &iflag);
++                  getenvc(&ierr, env_name, env_value, &length_env, &iflag);
  
-               if (ierr == 0)
-               {
-                       sciErr = createMatrixOfString(pvApiCtx, Rhs + 1, m_out, n_out, &env_value);
+             //create variable on stack and return it.
+                       sciErr = createMatrixOfString(pvApiCtx, Rhs + 1, m_out, n_out, (const char**)&env_value);
                        if(sciErr.iErr)
                        {
                                printError(&sciErr, 0);
  /*--------------------------------------------------------------------------*/
  #ifndef _MSC_VER
  static void searchenv_others(const char *filename, const char *varname,
-                                                        char *pathname);
+                              char *pathname);
  #endif
  /*--------------------------------------------------------------------------*/
 -void C2F(getenvc)(int *ierr, char *var, char *buf, int *buflen, int *iflag)
 +void getenvc(int *ierr,char *var,char *buf,int *buflen,int *iflag)
  {
  #ifdef _MSC_VER
  
@@@ -156,75 -188,42 +189,75 @@@ static void searchenv_others(const cha
  }
  #endif
  /*--------------------------------------------------------------------------*/
- char *searchEnv(const char *name,const char *env_var)
+ char *searchEnv(const char *name, const char *env_var)
  {
-       char *buffer = NULL;
-       char fullpath[PATH_MAX];
+     char *buffer = NULL;
+     char fullpath[PATH_MAX];
  
-       strcpy(fullpath,"");
+     strcpy(fullpath, "");
  
  #if _MSC_VER
-       {
-               wchar_t *wname                  = NULL;
-               wchar_t *wenv_var               = NULL;
-               wchar_t wfullpath[PATH_MAX];
+     {
+         wchar_t *wname                        = NULL;
+         wchar_t *wenv_var             = NULL;
+         wchar_t wfullpath[PATH_MAX];
  
-               wname                   = to_wide_string((char*)name);
-               wenv_var        = to_wide_string((char*)env_var);
+         wname                 = to_wide_string((char*)name);
+         wenv_var      = to_wide_string((char*)env_var);
  
-               wcscpy(wfullpath,L"");
+         wcscpy(wfullpath, L"");
  
-               _wsearchenv(wname, wenv_var, wfullpath);
+         _wsearchenv(wname, wenv_var, wfullpath);
  
-               if (wcslen(wfullpath) > 0)
-               {
-                       buffer = wide_string_to_UTF8(wfullpath);
-               }
+         if (wcslen(wfullpath) > 0)
+         {
+             buffer = wide_string_to_UTF8(wfullpath);
+         }
  
-               FREE(wname);
-               FREE(wenv_var);
-       }
+         FREE(wname);
+         FREE(wenv_var);
+     }
  #else
-       searchenv_others(name, env_var,fullpath);
-       if (strlen(fullpath) > 0)
-       {
-               buffer = os_strdup(fullpath);
-       }
+     searchenv_others(name, env_var, fullpath);
+     if (strlen(fullpath) > 0)
+     {
 -        buffer = strdup(fullpath);
++        buffer = os_strdup(fullpath);
+     }
  #endif
-       return buffer;
+     return buffer;
  }
  /*--------------------------------------------------------------------------*/
 +wchar_t* searchEnvW(const wchar_t* _pwstName, const wchar_t* _pwstEnv)
 +{
 +    wchar_t* pwstRet = NULL;
 +    wchar_t pwstFullpath[PATH_MAX];
 +
 +    wcscpy(pwstFullpath, L"");
 +
 +#if _MSC_VER
 +    {
 +        _wsearchenv(_pwstName, _pwstEnv, pwstFullpath);
 +
 +        if (wcslen(pwstFullpath) > 0)
 +        {
 +                      pwstRet = os_wcsdup(pwstFullpath);
 +              }
 +      }
 +#else
 +    char* pstName   = wide_string_to_UTF8(_pwstName);
 +    char* pstEnv    = wide_string_to_UTF8(_pwstEnv);
 +      char pstFullpath[PATH_MAX];
 +
 +      searchenv_others(pstName, pstEnv, pstFullpath);
 +      if (strlen(pstFullpath) > 0)
 +      {
 +              pwstRet = to_wide_string(pstFullpath);
 +      }
 +
 +    FREE(pstName);
 +    FREE(pstEnv);
 +#endif
 +      return pwstRet;
 +}
 +/*--------------------------------------------------------------------------*/
  
Simple merge
@@@ -4,9 -4,12 +4,11 @@@
  #
  # This file is distributed under the same license as the Scilab package.
  
 -
+ SPECIAL_FUNCTIONS_C_SOURCES = src/c/zbeshv.c
  
- SPECIAL_FUNCTIONS_C_SOURCES = \
- src/c/zbeshv.c
+ # List of the cpp files
+ SPECIAL_FUNCTIONS_CXX_SOURCES = \
+ src/cpp/faddeeva.cpp
  
  SPECIAL_FUNCTIONS_FORTRAN_SOURCES = \
  src/fortran/dbesig.f \
@@@ -35,8 -40,12 +39,11 @@@ sci_gateway/cpp/sci_faddeeva.cp
  # Includes need for the compilation
  libscispecial_functions_la_CPPFLAGS = -I$(srcdir)/includes/ \
  -I$(srcdir)/src/c/ \
+ -I$(srcdir)/src/cpp/ \
+ -I$(srcdir)/sci_gateway/cpp/ \
  -I$(top_srcdir)/libs/MALLOC/includes/ \
 --I$(top_srcdir)/modules/core/src/c/ \
  -I$(top_srcdir)/modules/elementary_functions/includes/ \
+ -I$(top_srcdir)/modules/elementary_functions/src/cpp/ \
  -I$(top_srcdir)/modules/api_scilab/includes/ \
  -I$(top_srcdir)/modules/output_stream/includes/ \
  -I$(top_srcdir)/modules/localization/includes/ \
@@@ -50,8 -56,8 +57,9 @@@ pkglib_LTLIBRARIES = libscispecial_func
  noinst_LTLIBRARIES = libscispecial_functions-algo.la
  
  
- libscispecial_functions_algo_la_SOURCES = $(SPECIAL_FUNCTIONS_C_SOURCES) $(SPECIAL_FUNCTIONS_FORTRAN_SOURCES)
- libscispecial_functions_la_SOURCES = $(GATEWAY_C_SOURCES)
+ libscispecial_functions_algo_la_SOURCES = $(SPECIAL_FUNCTIONS_C_SOURCES) $(SPECIAL_FUNCTIONS_FORTRAN_SOURCES) $(SPECIAL_FUNCTIONS_CXX_SOURCES)
+ libscispecial_functions_la_SOURCES = $(GATEWAY_C_SOURCES) $(GATEWAY_CXX_SOURCES)
++
  libscispecial_functions_algo_la_CPPFLAGS = $(libscispecial_functions_la_CPPFLAGS)
  
  # For the code check (splint)
@@@ -457,9 -462,11 +468,12 @@@ target_alias = @target_alias
  top_build_prefix = @top_build_prefix@
  top_builddir = @top_builddir@
  top_srcdir = @top_srcdir@
 +yacc_present = @yacc_present@
- SPECIAL_FUNCTIONS_C_SOURCES = \
- src/c/zbeshv.c
+ SPECIAL_FUNCTIONS_C_SOURCES = src/c/zbeshv.c
+ # List of the cpp files
+ SPECIAL_FUNCTIONS_CXX_SOURCES = \
+ src/cpp/faddeeva.cpp
  
  SPECIAL_FUNCTIONS_FORTRAN_SOURCES = \
  src/fortran/dbesig.f \
@@@ -489,8 -498,12 +505,11 @@@ sci_gateway/cpp/sci_faddeeva.cp
  # Includes need for the compilation
  libscispecial_functions_la_CPPFLAGS = -I$(srcdir)/includes/ \
  -I$(srcdir)/src/c/ \
+ -I$(srcdir)/src/cpp/ \
+ -I$(srcdir)/sci_gateway/cpp/ \
  -I$(top_srcdir)/libs/MALLOC/includes/ \
 --I$(top_srcdir)/modules/core/src/c/ \
  -I$(top_srcdir)/modules/elementary_functions/includes/ \
+ -I$(top_srcdir)/modules/elementary_functions/src/cpp/ \
  -I$(top_srcdir)/modules/api_scilab/includes/ \
  -I$(top_srcdir)/modules/output_stream/includes/ \
  -I$(top_srcdir)/modules/localization/includes/ \
  /*--------------------------------------------------------------------------*/
  SPECIAL_FUNCTIONS_IMPEXP int gw_special_functions(void);
  /*--------------------------------------------------------------------------*/
 -int sci_besselh(char *fname, unsigned long fname_len);
 -int sci_besseli(char *fname, unsigned long fname_len);
 -int sci_besselj(char *fname, unsigned long fname_len);
 -int sci_besselk(char *fname, unsigned long fname_len);
 -int sci_bessely(char *fname, unsigned long fname_len);
 -int sci_beta(char *fname, unsigned long fname_len);
 -int sci_legendre(char *fname, unsigned long fname_len);
 -int sci_gamma(char *fname, unsigned long fname_len);
 -int sci_lgamma(char *fname, unsigned long fname_len);
 -int sci_dlgamma(char *fname, unsigned long fname_len);
 -int sci_calerf(char *fname, unsigned long fname_len);
 -int sci_Faddeeva_erf(char *fname, unsigned long fname_len);
 -int sci_Faddeeva_erfc(char *fname, unsigned long fname_len);
 -int sci_Faddeeva_erfcx(char *fname, unsigned long fname_len);
 -int sci_Faddeeva_erfi(char *fname, unsigned long fname_len);
 -int sci_Faddeeva_dawson(char *fname, unsigned long fname_len);
 +SPECIAL_FUNCTIONS_IMPEXP int sci_besselh(char *fname, void* pvApiCtx);
 +SPECIAL_FUNCTIONS_IMPEXP int sci_besseli(char *fname, void* pvApiCtx);
 +SPECIAL_FUNCTIONS_IMPEXP int sci_besselj(char *fname, void* pvApiCtx);
 +SPECIAL_FUNCTIONS_IMPEXP int sci_besselk(char *fname, void* pvApiCtx);
 +SPECIAL_FUNCTIONS_IMPEXP int sci_bessely(char *fname, void* pvApiCtx);
 +SPECIAL_FUNCTIONS_IMPEXP int sci_beta(char *fname, void* pvApiCtx);
 +SPECIAL_FUNCTIONS_IMPEXP int sci_legendre(char *fname, void* pvApiCtx);
 +SPECIAL_FUNCTIONS_IMPEXP int sci_gamma(char *fname, void* pvApiCtx);
 +SPECIAL_FUNCTIONS_IMPEXP int sci_lgamma(char *fname, void* pvApiCtx);
 +SPECIAL_FUNCTIONS_IMPEXP int sci_dlgamma(char *fname, void* pvApiCtx);
 +SPECIAL_FUNCTIONS_IMPEXP int sci_calerf(char *fname, void* pvApiCtx);
++SPECIAL_FUNCTIONS_IMPEXP int sci_Faddeeva_erf(char *fname, void* pvApiCtx);
++SPECIAL_FUNCTIONS_IMPEXP int sci_Faddeeva_erfc(char *fname, void* pvApiCtx);
++SPECIAL_FUNCTIONS_IMPEXP int sci_Faddeeva_erfcx(char *fname, void* pvApiCtx);
++SPECIAL_FUNCTIONS_IMPEXP int sci_Faddeeva_erfi(char *fname, void* pvApiCtx);
++SPECIAL_FUNCTIONS_IMPEXP int sci_Faddeeva_dawson(char *fname, void* pvApiCtx);
  /*--------------------------------------------------------------------------*/
  #endif /* __GW_SPECIAL_FUNCTIONS_H__ */
  /*--------------------------------------------------------------------------*/
index 0000000,723f9b4..2b6f288
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,95 +1,95 @@@
+ /*
+  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+  * Copyright (C) 2012 - Steven G. Johnson <stevenj@alum.mit.edu>
+  *
+  * This file must be used under the terms of the CeCILL.
+  * This source file is licensed as described in the file COPYING, 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
+  *
+  */
+ /* #define SCI_FADDEEVA and FADDEEVA_FUNC before #including this header
+    file.  This gives us a simple way to define several similar "gateway"
+    functions for the Faddeeva::erf, erfc, erfcx, erfi, and Dawson functions. */
 -int SCI_FADDEEVA(char *fname, unsigned long fname_len)
++int SCI_FADDEEVA(char *fname, void* pvApiCtx)
+ {
+     int* zAddr = NULL;
+     double* zr = NULL;
+     double* zi = NULL;
+     int m, n, N;
+     double* wr = NULL;
+     double* wi = NULL;
+     int iType = 0;
+     SciErr sciErr;
+     CheckInputArgument(pvApiCtx, 1, 1);
+     /* get z */
+     //get variable address of the input argument
+     sciErr = getVarAddressFromPosition(pvApiCtx, 1, &zAddr);
+     if (sciErr.iErr)
+     {
+         printError(&sciErr, 0);
+         return 1;
+     }
+     // check type
+     sciErr = getVarType(pvApiCtx, zAddr, &iType);
+     if (sciErr.iErr)
+     {
+         printError(&sciErr, 0);
+         Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 1);
+         return 0;
+     }
+     if (iType != sci_matrix)
+     {
+         Scierror(999, _("%s: Wrong type for argument #%d: Real or complex matrix expected.\n"), fname, 1);
+         return 0;
+     }
+     sciErr = getComplexMatrixOfDouble(pvApiCtx, zAddr, &m, &n, &zr, &zi);
+     if (sciErr.iErr)
+     {
+         printError(&sciErr, 0);
+         return 1;
+     }
+     N = m * n;
+     if (N == 0)    /* w([]) */
+     {
+         AssignOutputVariable(pvApiCtx, 1) = 1;
+         ReturnArguments(pvApiCtx);
+         return 0;
+     }
+     if (zi)   // complex inputs and outputs
+     {
+         allocComplexMatrixOfDouble(pvApiCtx, 2, m, n, &wr, &wi);
+         for (int i = 0; i < N; ++i)
+         {
+             std::complex<double> w =
+                 FADDEEVA_FUNC(std::complex<double>(zr[i], zi[i]));
+             wr[i] = std::real(w);
+             wi[i] = std::imag(w);
+         }
+     }
+     else   // real inputs and outputs
+     {
+         allocMatrixOfDouble(pvApiCtx, 2, m, n, &wr);
+         for (int i = 0; i < N; ++i)
+         {
+             wr[i] = FADDEEVA_FUNC(zr[i]);
+         }
+     }
+     AssignOutputVariable(pvApiCtx, 1) = 2;
+     ReturnArguments(pvApiCtx);
+     return 0;
+ }
@@@ -1,33 -1,42 +1,38 @@@
  <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 +<!DOCTYPE module SYSTEM "../../functions/xml/gateway.dtd">
 +<!--
 +/*
 + *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 + *  Copyright (C) 2012 - Scilab Enterprises - Cedric DELAMARRE
 + *
 + *  This file must be used under the terms of the CeCILL.
 + *  This source file is licensed as described in the file COPYING, 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
 + *
 + */
 -<!DOCTYPE GATEWAY SYSTEM "../../functions/xml/gateway.dtd">
 -<GATEWAY name="special_functions">
 -    <!-- =================== -->
 -    <!--
   Scilab
   Interface description. In this file, we define the list of the function which
   will be available into Scilab and the link to the "native" function.
  
 - gatewayId is the position in the hashtable 'Interfaces' defined in the
 - file SCI/modules/core/src/c/callinterf.h
 -
 - primitiveId is the position in the hashtable '<module>Table Tab[]' defined
 - in the file modules/<module>/sci_gateway/c/gw_<module>.c
 -
 - primitiveName is the name of the Scilab function
 -
 - @author Allan CORNET
 - @author Sylvestre LEDRU
 - @date INRIA 2007
 - ===================
   Don't touch if you do not know what you are doing
  -->
 -    <!-- =================== -->
 -    
 -    <PRIMITIVE gatewayId="39" primitiveId="1" primitiveName="legendre" />
 -    <PRIMITIVE gatewayId="39" primitiveId="2" primitiveName="beta" />
 -    <PRIMITIVE gatewayId="39" primitiveId="3" primitiveName="besseli" />
 -    <PRIMITIVE gatewayId="39" primitiveId="4" primitiveName="besselj" />
 -    <PRIMITIVE gatewayId="39" primitiveId="5" primitiveName="besselk" />
 -    <PRIMITIVE gatewayId="39" primitiveId="6" primitiveName="bessely" />
 -    <PRIMITIVE gatewayId="39" primitiveId="7" primitiveName="besselh" />
 -    <PRIMITIVE gatewayId="39" primitiveId="8" primitiveName="gamma" />
 -    <PRIMITIVE gatewayId="39" primitiveId="9" primitiveName="gammaln" />
 -    <PRIMITIVE gatewayId="39" primitiveId="10" primitiveName="dlgamma" />
 -    <PRIMITIVE gatewayId="39" primitiveId="11" primitiveName="erf" />
 -    <PRIMITIVE gatewayId="39" primitiveId="12" primitiveName="erfc" />
 -    <PRIMITIVE gatewayId="39" primitiveId="13" primitiveName="erfcx" />
 -    <PRIMITIVE gatewayId="39" primitiveId="14" primitiveName="erfi" />
 -    <PRIMITIVE gatewayId="39" primitiveId="15" primitiveName="dawson" />
 -</GATEWAY>
 +<module name="special_functions">
 +    <gateway name="sci_legendre"        function="legendre"     type="0" />
 +    <gateway name="sci_beta"            function="beta"         type="0" />
 +    <gateway name="sci_besseli"         function="besseli"      type="0" />
 +    <gateway name="sci_besselj"         function="besselj"      type="0" />
 +    <gateway name="sci_besselk"         function="besselk"      type="0" />
 +    <gateway name="sci_bessely"         function="bessely"      type="0" />
 +    <gateway name="sci_besselh"         function="besselh"      type="0" />
 +    <gateway name="sci_gamma"           function="gamma"        type="0" />
 +    <gateway name="sci_gammaln"         function="gammaln"      type="0" />
 +    <gateway name="sci_dlgamma"         function="dlgamma"      type="0" />
-     <gateway name="sci_calerf"          function="calerf"       type="0" />
++    <gateway name="sci_Faddeeva_erf"    function="dawson"       type="0" />
++    <gateway name="sci_Faddeeva_erfc"   function="dawson"       type="0" />
++    <gateway name="sci_Faddeeva_erfcx"  function="dawson"       type="0" />
++    <gateway name="sci_Faddeeva_erfi"   function="dawson"       type="0" />
++    <gateway name="sci_Faddeeva_dawson" function="dawson"       type="0" />
 +</module>
@@@ -76,7 -76,7 +76,7 @@@
    <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
      <ClCompile>
        <Optimization>Disabled</Optimization>
-       <AdditionalIncludeDirectories>.;../../includes;../../../../libs/MALLOC/includes;../../../core/includes;../../../output_stream/includes;../../../dynamic_link/includes;../../../elementary_functions/includes;../../../dynamic_link/src/c;../../../localization/includes;../../../core/src/c;../../../../libs/intl;../../../special_functions/includes;../../../api_scilab/includes;../../../system_env/includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 -      <AdditionalIncludeDirectories>.;../../includes;../../sci_gateway/cpp;../cpp;../../../../libs/MALLOC/includes;../../../core/includes;../../../output_stream/includes;../../../dynamic_link/includes;../../../elementary_functions/includes;../../../dynamic_link/src/c;../../../localization/includes;../../../core/src/c;../../../../libs/intl;../../../special_functions/includes;../../../api_scilab/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
++      <AdditionalIncludeDirectories>.;../../includes;../cpp;../../sci_gateway/cpp;../../../../libs/MALLOC/includes;../../../core/includes;../../../output_stream/includes;../../../dynamic_link/includes;../../../elementary_functions/includes;../../../dynamic_link/src/c;../../../localization/includes;../../../core/src/c;../../../../libs/intl;../../../special_functions/includes;../../../api_scilab/includes;../../../system_env/includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
        <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;FORDLL;_DEBUG;_WINDOWS;_USRDLL;SPECIAL_FUNCTIONS_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
        <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
        <WarningLevel>Level3</WarningLevel>
@@@ -106,7 -106,7 +106,7 @@@ lib /DEF:"$(ProjectDir)slatec_f_Import.
      </Midl>
      <ClCompile>
        <Optimization>Disabled</Optimization>
-       <AdditionalIncludeDirectories>.;../../includes;../../../../libs/MALLOC/includes;../../../core/includes;../../../output_stream/includes;../../../dynamic_link/includes;../../../elementary_functions/includes;../../../dynamic_link/src/c;../../../localization/includes;../../../core/src/c;../../../../libs/intl;../../../special_functions/includes;../../../api_scilab/includes;../../../system_env/includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 -      <AdditionalIncludeDirectories>.;../../includes;../../sci_gateway/cpp;../cpp;../../../../libs/MALLOC/includes;../../../core/includes;../../../output_stream/includes;../../../dynamic_link/includes;../../../elementary_functions/includes;../../../dynamic_link/src/c;../../../localization/includes;../../../core/src/c;../../../../libs/intl;../../../special_functions/includes;../../../api_scilab/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
++      <AdditionalIncludeDirectories>.;../../includes;../cpp;../../sci_gateway/cpp;../../../../libs/MALLOC/includes;../../../core/includes;../../../output_stream/includes;../../../dynamic_link/includes;../../../elementary_functions/includes;../../../dynamic_link/src/c;../../../localization/includes;../../../core/src/c;../../../../libs/intl;../../../special_functions/includes;../../../api_scilab/includes;../../../system_env/includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
        <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;FORDLL;_DEBUG;_WINDOWS;_USRDLL;SPECIAL_FUNCTIONS_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
        <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
        <WarningLevel>Level3</WarningLevel>
@@@ -134,7 -134,7 +134,7 @@@ lib /DEF:"$(ProjectDir)slatec_f_Import.
      <ClCompile>
        <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
        <WholeProgramOptimization>false</WholeProgramOptimization>
-       <AdditionalIncludeDirectories>.;../../includes;../../../../libs/MALLOC/includes;../../../core/includes;../../../output_stream/includes;../../../dynamic_link/includes;../../../elementary_functions/includes;../../../dynamic_link/src/c;../../../localization/includes;../../../core/src/c;../../../../libs/intl;../../../special_functions/includes;../../../api_scilab/includes;../../../system_env/includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 -      <AdditionalIncludeDirectories>.;../../includes;../../sci_gateway/cpp;../cpp;../../../../libs/MALLOC/includes;../../../core/includes;../../../output_stream/includes;../../../dynamic_link/includes;../../../elementary_functions/includes;../../../dynamic_link/src/c;../../../localization/includes;../../../core/src/c;../../../../libs/intl;../../../special_functions/includes;../../../api_scilab/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
++      <AdditionalIncludeDirectories>.;../../includes;../cpp;../../sci_gateway/cpp;../../../../libs/MALLOC/includes;../../../core/includes;../../../output_stream/includes;../../../dynamic_link/includes;../../../elementary_functions/includes;../../../dynamic_link/src/c;../../../localization/includes;../../../core/src/c;../../../../libs/intl;../../../special_functions/includes;../../../api_scilab/includes;../../../system_env/includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
        <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;FORDLL;NDEBUG;_WINDOWS;_USRDLL;SPECIAL_FUNCTIONS_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
        <StringPooling>true</StringPooling>
        <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
@@@ -169,7 -169,7 +169,7 @@@ lib /DEF:"$(ProjectDir)slatec_f_Import.
      <ClCompile>
        <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
        <WholeProgramOptimization>false</WholeProgramOptimization>
-       <AdditionalIncludeDirectories>.;../../includes;../../../../libs/MALLOC/includes;../../../core/includes;../../../output_stream/includes;../../../dynamic_link/includes;../../../elementary_functions/includes;../../../dynamic_link/src/c;../../../localization/includes;../../../core/src/c;../../../../libs/intl;../../../special_functions/includes;../../../api_scilab/includes;../../../system_env/includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 -      <AdditionalIncludeDirectories>.;../../includes;../../sci_gateway/cpp;../cpp;../../../../libs/MALLOC/includes;../../../core/includes;../../../output_stream/includes;../../../dynamic_link/includes;../../../elementary_functions/includes;../../../dynamic_link/src/c;../../../localization/includes;../../../core/src/c;../../../../libs/intl;../../../special_functions/includes;../../../api_scilab/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
++      <AdditionalIncludeDirectories>.;../../includes;../cpp;../../sci_gateway/cpp;../../../../libs/MALLOC/includes;../../../core/includes;../../../output_stream/includes;../../../dynamic_link/includes;../../../elementary_functions/includes;../../../dynamic_link/src/c;../../../localization/includes;../../../core/src/c;../../../../libs/intl;../../../special_functions/includes;../../../api_scilab/includes;../../../system_env/includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
        <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;FORDLL;NDEBUG;_WINDOWS;_USRDLL;SPECIAL_FUNCTIONS_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
        <StringPooling>true</StringPooling>
        <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
index 0000000,f94f898..854e417
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,64 +1,64 @@@
+ /* Copyright (c) 2012 Massachusetts Institute of Technology
+  *
+  * Permission is hereby granted, free of charge, to any person obtaining
+  * a copy of this software and associated documentation files (the
+  * "Software"), to deal in the Software without restriction, including
+  * without limitation the rights to use, copy, modify, merge, publish,
+  * distribute, sublicense, and/or sell copies of the Software, and to
+  * permit persons to whom the Software is furnished to do so, subject to
+  * the following conditions:
+  *
+  * The above copyright notice and this permission notice shall be
+  * included in all copies or substantial portions of the Software.
+  *
+  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+  * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+  * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+  * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+  * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+  */
+ /* Available at: http://ab-initio.mit.edu/Faddeeva
+    Header file for Faddeeva.cc; see that file for more information. */
+ #ifndef FADDEEVA_HH
+ #define FADDEEVA_HH 1
+ #include <complex>
+ #include "dynlib_elementary_functions.h"
+ namespace Faddeeva
+ {
+ // compute w(z) = exp(-z^2) erfc(-iz) [ Faddeeva / scaled complex error func ]
 -ELEMENTARY_FUNCTIONS_IMPEXP std::complex<double> w(std::complex<double> z, double relerr = 0);
 -ELEMENTARY_FUNCTIONS_IMPEXP double w_im(double x); // special-case code for Im[w(x)] of real x
++std::complex<double> w(std::complex<double> z, double relerr = 0);
++double w_im(double x); // special-case code for Im[w(x)] of real x
+ // Various functions that we can compute with the help of w(z)
+ // compute erfcx(z) = exp(z^2) erfc(z)
 -ELEMENTARY_FUNCTIONS_IMPEXP std::complex<double> erfcx(std::complex<double> z, double relerr = 0);
 -ELEMENTARY_FUNCTIONS_IMPEXP double erfcx(double x); // special case for real x
++std::complex<double> erfcx(std::complex<double> z, double relerr = 0);
++double erfcx(double x); // special case for real x
+ // compute erf(z), the error function of complex arguments
 -ELEMENTARY_FUNCTIONS_IMPEXP std::complex<double> erf(std::complex<double> z, double relerr = 0);
 -ELEMENTARY_FUNCTIONS_IMPEXP double erf(double x); // special case for real x
++std::complex<double> erf(std::complex<double> z, double relerr = 0);
++double erf(double x); // special case for real x
+ // compute erfi(z) = -i erf(iz), the imaginary error function
 -ELEMENTARY_FUNCTIONS_IMPEXP std::complex<double> erfi(std::complex<double> z, double relerr = 0);
 -ELEMENTARY_FUNCTIONS_IMPEXP double erfi(double x); // special case for real x
++std::complex<double> erfi(std::complex<double> z, double relerr = 0);
++double erfi(double x); // special case for real x
+ // compute erfc(z) = 1 - erf(z), the complementary error function
 -ELEMENTARY_FUNCTIONS_IMPEXP std::complex<double> erfc(std::complex<double> z, double relerr = 0);
 -ELEMENTARY_FUNCTIONS_IMPEXP double erfc(double x); // special case for real x
++std::complex<double> erfc(std::complex<double> z, double relerr = 0);
++double erfc(double x); // special case for real x
+ // compute Dawson(z) = sqrt(pi)/2  *  exp(-z^2) * erfi(z)
 -ELEMENTARY_FUNCTIONS_IMPEXP std::complex<double> Dawson(std::complex<double> z, double relerr = 0);
 -ELEMENTARY_FUNCTIONS_IMPEXP double Dawson(double x); // special case for real x
++std::complex<double> Dawson(std::complex<double> z, double relerr = 0);
++double Dawson(double x); // special case for real x
+ } // namespace Faddeeva
+ #endif // FADDEEVA_HH
@@@ -4,9 -4,7 +4,9 @@@
  //
  //  This file is distributed under the same license as the Scilab package.
  // =============================================================================
 -deff('y=f(t)','y=exp(-t^2)');
 +function y=f(t)
 +    y=exp(-t^2);
 +endfunction
  r = calerf(1,0);
  ref = 2/sqrt(%pi)*intg(0,1,f);
- if abs(r - ref) > %eps then bugmes();quit;end
+ assert_checkalmostequal(r, ref);
@@@ -4,10 -4,8 +4,11 @@@
  //
  //  This file is distributed under the same license as the Scilab package.
  // =============================================================================
 -deff('y=f(t)','y=exp(-t^2)');
 +function y=f(t)
 +    y=exp(-t^2);
 +endfunction
 +
  r = calerf(1,0);
  ref = 2/sqrt(%pi)*intg(0,1,f);
- if abs(r - ref) > %eps then pause,end
+ assert_checkalmostequal(r, ref);
Simple merge