elementary_functions module. 51/6451/20
Cedric Delamarre [Mon, 27 Feb 2012 08:38:45 +0000 (09:38 +0100)]
Change-Id: I5290543100f70ba42e592afde987b446b7756f32

154 files changed:
scilab/Scilab.sln
scilab/modules/api_scilab/api_scilab.vcxproj
scilab/modules/api_scilab/api_scilab.vcxproj.filters
scilab/modules/compatibility_functions/macros/%b_cumprod.sci [deleted file]
scilab/modules/compatibility_functions/macros/%b_cumsum.sci [deleted file]
scilab/modules/core/core_yasp.vcxproj
scilab/modules/elementary_functions/Makefile.am
scilab/modules/elementary_functions/Makefile.in
scilab/modules/elementary_functions/help/en_US/searchandsort/gsort.xml
scilab/modules/elementary_functions/includes/abs.h
scilab/modules/elementary_functions/includes/cos.h
scilab/modules/elementary_functions/includes/elem_func_gw.hxx
scilab/modules/elementary_functions/includes/exp.h
scilab/modules/elementary_functions/includes/export_ef.h [deleted file]
scilab/modules/elementary_functions/includes/gw_elementary_functions.h
scilab/modules/elementary_functions/includes/log.h
scilab/modules/elementary_functions/includes/pythag.h
scilab/modules/elementary_functions/includes/sign.h
scilab/modules/elementary_functions/includes/sin.h
scilab/modules/elementary_functions/includes/sqrt.h
scilab/modules/elementary_functions/includes/tan.h
scilab/modules/elementary_functions/macros/%_gsort.sci [deleted file]
scilab/modules/elementary_functions/macros/%_kron.sci [new file with mode: 0644]
scilab/modules/elementary_functions/macros/%sp_cumprod.sci [moved from scilab/modules/overloading/macros/%sp_cumprod.sci with 100% similarity]
scilab/modules/elementary_functions/macros/%sp_cumsum.sci [moved from scilab/test/good/%sp_cumsum.sci with 94% similarity]
scilab/modules/elementary_functions/macros/%sp_diag.sci [moved from scilab/modules/overloading/macros/%sp_diag.sci with 100% similarity]
scilab/modules/elementary_functions/macros/%spb_cumprod.sci [moved from scilab/modules/overloading/macros/%spb_cumprod.sci with 100% similarity]
scilab/modules/elementary_functions/macros/%spb_cumsum.sci [moved from scilab/modules/overloading/macros/%spb_cumsum.sci with 100% similarity]
scilab/modules/elementary_functions/macros/%spb_diag.sci [moved from scilab/modules/overloading/macros/%spb_diag.sci with 100% similarity]
scilab/modules/elementary_functions/sci_gateway/cpp/elem_func_gw.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/elem_func_gw/elem_func_gw.vcxproj
scilab/modules/elementary_functions/sci_gateway/cpp/elem_func_gw/elem_func_gw.vcxproj.filters
scilab/modules/elementary_functions/sci_gateway/cpp/elem_func_gw/elementary_functions_f_Import.def
scilab/modules/elementary_functions/sci_gateway/cpp/elem_func_gw/sci_sin.cpp [deleted file]
scilab/modules/elementary_functions/sci_gateway/cpp/sci_abs.cpp [new file with mode: 0644]
scilab/modules/elementary_functions/sci_gateway/cpp/sci_acos.cpp [new file with mode: 0644]
scilab/modules/elementary_functions/sci_gateway/cpp/sci_asin.cpp [new file with mode: 0644]
scilab/modules/elementary_functions/sci_gateway/cpp/sci_atan.cpp [new file with mode: 0644]
scilab/modules/elementary_functions/sci_gateway/cpp/sci_ceil.cpp [new file with mode: 0644]
scilab/modules/elementary_functions/sci_gateway/cpp/sci_clean.cpp [new file with mode: 0644]
scilab/modules/elementary_functions/sci_gateway/cpp/sci_conj.cpp [new file with mode: 0644]
scilab/modules/elementary_functions/sci_gateway/cpp/sci_cos.cpp [new file with mode: 0644]
scilab/modules/elementary_functions/sci_gateway/cpp/sci_cumprod.cpp [new file with mode: 0644]
scilab/modules/elementary_functions/sci_gateway/cpp/sci_cumsum.cpp [new file with mode: 0644]
scilab/modules/elementary_functions/sci_gateway/cpp/sci_diag.cpp [new file with mode: 0644]
scilab/modules/elementary_functions/sci_gateway/cpp/sci_dsearch.cpp [new file with mode: 0644]
scilab/modules/elementary_functions/sci_gateway/cpp/sci_exp.cpp [new file with mode: 0644]
scilab/modules/elementary_functions/sci_gateway/cpp/sci_expm.cpp [new file with mode: 0644]
scilab/modules/elementary_functions/sci_gateway/cpp/sci_floor.cpp [new file with mode: 0644]
scilab/modules/elementary_functions/sci_gateway/cpp/sci_frexp.cpp [new file with mode: 0644]
scilab/modules/elementary_functions/sci_gateway/cpp/sci_gsort.cpp [new file with mode: 0644]
scilab/modules/elementary_functions/sci_gateway/cpp/sci_imag.cpp [new file with mode: 0644]
scilab/modules/elementary_functions/sci_gateway/cpp/sci_imult.cpp [new file with mode: 0644]
scilab/modules/elementary_functions/sci_gateway/cpp/sci_int.cpp [new file with mode: 0644]
scilab/modules/elementary_functions/sci_gateway/cpp/sci_isreal.cpp [new file with mode: 0644]
scilab/modules/elementary_functions/sci_gateway/cpp/sci_kron.cpp [new file with mode: 0644]
scilab/modules/elementary_functions/sci_gateway/cpp/sci_log.cpp [new file with mode: 0644]
scilab/modules/elementary_functions/sci_gateway/cpp/sci_log1p.cpp [new file with mode: 0644]
scilab/modules/elementary_functions/sci_gateway/cpp/sci_matrix.cpp [new file with mode: 0644]
scilab/modules/elementary_functions/sci_gateway/cpp/sci_max.cpp [new file with mode: 0644]
scilab/modules/elementary_functions/sci_gateway/cpp/sci_min.cpp [new file with mode: 0644]
scilab/modules/elementary_functions/sci_gateway/cpp/sci_rat.cpp [new file with mode: 0644]
scilab/modules/elementary_functions/sci_gateway/cpp/sci_sin.cpp [new file with mode: 0644]
scilab/modules/elementary_functions/sci_gateway/cpp/sci_sum.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_tan.cpp [new file with mode: 0644]
scilab/modules/elementary_functions/src/c/asin.c
scilab/modules/elementary_functions/src/c/cacsd_f_Import.def [moved from scilab/modules/elementary_functions/sci_gateway/cpp/elem_func_gw/cacsd_f_Import.def with 100% similarity]
scilab/modules/elementary_functions/src/c/dsearch.c
scilab/modules/elementary_functions/src/c/eispack_f_Import.def [moved from scilab/modules/elementary_functions/sci_gateway/cpp/elem_func_gw/eispack_f_Import.def with 100% similarity]
scilab/modules/elementary_functions/src/c/elementary_functions.vcxproj
scilab/modules/elementary_functions/src/c/elementary_functions.vcxproj.filters
scilab/modules/elementary_functions/src/c/elementary_functions_f_Import.def
scilab/modules/elementary_functions/src/c/expm.c
scilab/modules/elementary_functions/src/c/expm.h [new file with mode: 0644]
scilab/modules/elementary_functions/src/c/gsort.c [deleted file]
scilab/modules/elementary_functions/src/c/linpack_f_Import.def [moved from scilab/modules/elementary_functions/sci_gateway/cpp/elem_func_gw/linpack_f_Import.def with 100% similarity]
scilab/modules/elementary_functions/src/c/pythag.c
scilab/modules/elementary_functions/src/cpp/cumprod.cpp [new file with mode: 0644]
scilab/modules/elementary_functions/src/cpp/cumprod.hxx [new file with mode: 0644]
scilab/modules/elementary_functions/src/cpp/cumsum.cpp [new file with mode: 0644]
scilab/modules/elementary_functions/src/cpp/cumsum.hxx [new file with mode: 0644]
scilab/modules/elementary_functions/src/cpp/diag.cpp [new file with mode: 0644]
scilab/modules/elementary_functions/src/cpp/diag.hxx [new file with mode: 0644]
scilab/modules/elementary_functions/src/cpp/elem_func/ReadMe.txt [deleted file]
scilab/modules/elementary_functions/src/cpp/elem_func/elem_func.vcxproj [deleted file]
scilab/modules/elementary_functions/src/cpp/elem_func/elem_func.vcxproj.filters [deleted file]
scilab/modules/elementary_functions/src/cpp/elem_func/elementary_functions_f_Import.def [deleted file]
scilab/modules/elementary_functions/src/cpp/gsort.cpp [new file with mode: 0644]
scilab/modules/elementary_functions/src/cpp/gsort.hxx [new file with mode: 0644]
scilab/modules/elementary_functions/src/cpp/max.cpp [new file with mode: 0644]
scilab/modules/elementary_functions/src/cpp/max.hxx [new file with mode: 0644]
scilab/modules/elementary_functions/src/cpp/min.cpp [new file with mode: 0644]
scilab/modules/elementary_functions/src/cpp/min.hxx [new file with mode: 0644]
scilab/modules/elementary_functions/src/fortran/linpack/Elementary_functions_Import.def
scilab/modules/functions/sci_gateway/cpp/functions_gw.vcxproj
scilab/modules/functions_manager/functions_manager.vcxproj
scilab/modules/helptools/data/configuration/scilab_macros.txt
scilab/modules/integer/Makefile.am
scilab/modules/integer/Makefile.in
scilab/modules/integer/includes/gw_integer.h
scilab/modules/integer/sci_gateway/c/gw_integer.c
scilab/modules/linear_algebra/sci_gateway/cpp/linear_algebra_gw.vcxproj
scilab/modules/operations/elem_func_Import.def [deleted file]
scilab/modules/operations/elementary_functions_Import.def
scilab/modules/operations/includes/types_kronecker.hxx
scilab/modules/operations/operations.vcxproj
scilab/modules/operations/operations.vcxproj.filters
scilab/modules/overloading/macros/%b_diag.sci [deleted file]
scilab/modules/overloading/macros/%b_matrix.sci [deleted file]
scilab/modules/overloading/macros/%c_diag.sci [deleted file]
scilab/modules/overloading/macros/%c_matrix.sci [deleted file]
scilab/modules/overloading/macros/%hm_exp.sci [deleted file]
scilab/modules/overloading/macros/%hm_imag.sci [deleted file]
scilab/modules/overloading/macros/%hm_int.sci [deleted file]
scilab/modules/overloading/macros/%hm_isreal.sci [deleted file]
scilab/modules/overloading/macros/%hm_log.sci [deleted file]
scilab/modules/overloading/macros/%hm_sin.sci [deleted file]
scilab/modules/overloading/macros/%p_cumprod.sci [deleted file]
scilab/modules/overloading/macros/%p_cumsum.sci [deleted file]
scilab/modules/overloading/macros/%p_matrix.sci [deleted file]
scilab/modules/overloading/macros/%sp_ceil.sci [deleted file]
scilab/modules/overloading/macros/%sp_cos.sci [deleted file]
scilab/modules/overloading/macros/%sp_cumsum.sci [deleted file]
scilab/modules/overloading/macros/%sp_exp.sci [deleted file]
scilab/modules/overloading/macros/%sp_int.sci [deleted file]
scilab/modules/overloading/macros/%sp_sin.sci [deleted file]
scilab/modules/symbol/symbol.vcxproj
scilab/modules/types/includes/arrayof.hxx
scilab/modules/types/includes/polynom.hxx
scilab/modules/types/includes/sparse.hxx
scilab/modules/types/includes/types_tools.hxx
scilab/modules/types/src/cpp/polynom.cpp
scilab/modules/types/src/cpp/sparse.cpp
scilab/modules/types/src/cpp/types_tools.cpp
scilab/test/good/%_gsort.sci [deleted file]
scilab/test/good/%b_diag.sci [deleted file]
scilab/test/good/%b_matrix.sci [deleted file]
scilab/test/good/%c_diag.sci [deleted file]
scilab/test/good/%c_matrix.sci [deleted file]
scilab/test/good/%hm_exp.sci [deleted file]
scilab/test/good/%hm_imag.sci [deleted file]
scilab/test/good/%hm_int.sci [deleted file]
scilab/test/good/%hm_isreal.sci [deleted file]
scilab/test/good/%hm_log.sci [deleted file]
scilab/test/good/%hm_maxi.sci [deleted file]
scilab/test/good/%p_matrix.sci [deleted file]
scilab/test/good/%sp_cumprod.sci [deleted file]
scilab/test/good/%sp_diag.sci [deleted file]
scilab/test/good/%sp_exp.sci [deleted file]
scilab/test/good/%sp_gsort.sci [deleted file]
scilab/test/good/%sp_int.sci [deleted file]
scilab/test/good/%spb_cumprod.sci [deleted file]
scilab/test/good/%spb_cumsum.sci [deleted file]
scilab/test/good/%spb_diag.sci [deleted file]

index 29b45cd..635139a 100644 (file)
@@ -463,11 +463,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "operations", "modules\opera
                {3735EFF9-925B-45B1-82CF-762658E69E70} = {3735EFF9-925B-45B1-82CF-762658E69E70}
        EndProjectSection
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "elem_func", "modules\elementary_functions\src\cpp\elem_func\elem_func.vcxproj", "{E1284D3E-4B3F-446B-B541-F661A8A166A7}"
-       ProjectSection(ProjectDependencies) = postProject
-               {DBC45B0D-6E0A-4107-B284-5A3B0C5BB50D} = {DBC45B0D-6E0A-4107-B284-5A3B0C5BB50D}
-       EndProjectSection
-EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "elem_func_gw", "modules\elementary_functions\sci_gateway\cpp\elem_func_gw\elem_func_gw.vcxproj", "{9881F0CE-A1AC-4744-B709-7C1453A77B95}"
        ProjectSection(ProjectDependencies) = postProject
                {DBC45B0D-6E0A-4107-B284-5A3B0C5BB50D} = {DBC45B0D-6E0A-4107-B284-5A3B0C5BB50D}
@@ -1511,14 +1506,6 @@ Global
                {1BB396F7-CE61-4CFC-9C22-266B2CFB2E74}.Release|Win32.Build.0 = Release|Win32
                {1BB396F7-CE61-4CFC-9C22-266B2CFB2E74}.Release|x64.ActiveCfg = Release|x64
                {1BB396F7-CE61-4CFC-9C22-266B2CFB2E74}.Release|x64.Build.0 = Release|x64
-               {E1284D3E-4B3F-446B-B541-F661A8A166A7}.Debug|Win32.ActiveCfg = Debug|Win32
-               {E1284D3E-4B3F-446B-B541-F661A8A166A7}.Debug|Win32.Build.0 = Debug|Win32
-               {E1284D3E-4B3F-446B-B541-F661A8A166A7}.Debug|x64.ActiveCfg = Debug|x64
-               {E1284D3E-4B3F-446B-B541-F661A8A166A7}.Debug|x64.Build.0 = Debug|x64
-               {E1284D3E-4B3F-446B-B541-F661A8A166A7}.Release|Win32.ActiveCfg = Release|Win32
-               {E1284D3E-4B3F-446B-B541-F661A8A166A7}.Release|Win32.Build.0 = Release|Win32
-               {E1284D3E-4B3F-446B-B541-F661A8A166A7}.Release|x64.ActiveCfg = Release|x64
-               {E1284D3E-4B3F-446B-B541-F661A8A166A7}.Release|x64.Build.0 = Release|x64
                {9881F0CE-A1AC-4744-B709-7C1453A77B95}.Debug|Win32.ActiveCfg = Debug|Win32
                {9881F0CE-A1AC-4744-B709-7C1453A77B95}.Debug|Win32.Build.0 = Debug|Win32
                {9881F0CE-A1AC-4744-B709-7C1453A77B95}.Debug|x64.ActiveCfg = Debug|x64
@@ -1687,6 +1674,14 @@ Global
                {28305722-6486-481D-BD0F-B4398D8A09C5}.Release|Win32.Build.0 = Release|Win32
                {28305722-6486-481D-BD0F-B4398D8A09C5}.Release|x64.ActiveCfg = Release|x64
                {28305722-6486-481D-BD0F-B4398D8A09C5}.Release|x64.Build.0 = Release|x64
+               {AB7EBA0D-1B00-4B1B-BB00-62AB38E2309A}.Debug|Win32.ActiveCfg = Debug|Win32
+               {AB7EBA0D-1B00-4B1B-BB00-62AB38E2309A}.Debug|x64.ActiveCfg = Debug|x64
+               {AB7EBA0D-1B00-4B1B-BB00-62AB38E2309A}.Release|Win32.ActiveCfg = Release|Win32
+               {AB7EBA0D-1B00-4B1B-BB00-62AB38E2309A}.Release|x64.ActiveCfg = Release|x64
+               {DABDF840-2A2F-4B38-90B2-A4393E6DF38B}.Debug|Win32.ActiveCfg = Debug|Win32
+               {DABDF840-2A2F-4B38-90B2-A4393E6DF38B}.Debug|x64.ActiveCfg = Debug|x64
+               {DABDF840-2A2F-4B38-90B2-A4393E6DF38B}.Release|Win32.ActiveCfg = Release|Win32
+               {DABDF840-2A2F-4B38-90B2-A4393E6DF38B}.Release|x64.ActiveCfg = Release|x64
                {AEC1F7B5-28F2-4C1F-A436-98D0352FD3F5}.Debug|Win32.ActiveCfg = Debug|Win32
                {AEC1F7B5-28F2-4C1F-A436-98D0352FD3F5}.Debug|Win32.Build.0 = Debug|Win32
                {AEC1F7B5-28F2-4C1F-A436-98D0352FD3F5}.Debug|x64.ActiveCfg = Debug|x64
index b0dfbc9..7651ec6 100644 (file)
@@ -325,10 +325,6 @@ cd .. >nul
     <ProjectReference Include="..\ast\ast-tools\ast-tools.vcxproj">
       <Project>{1f4a0344-99ed-461b-bd53-1593788fb34d}</Project>
     </ProjectReference>
-    <ProjectReference Include="..\elementary_functions\src\cpp\elem_func\elem_func.vcxproj">
-      <Project>{e1284d3e-4b3f-446b-b541-f661a8a166a7}</Project>
-      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
-    </ProjectReference>
     <ProjectReference Include="..\operations\operations.vcxproj">
       <Project>{1bb396f7-ce61-4cfc-9c22-266b2cfb2e74}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
index e92919c..b1af498 100644 (file)
     <ClInclude Include="includes\overload.hxx">
       <Filter>Header Files</Filter>
     </ClInclude>
+    <ClInclude Include="src\cpp\api_internal_boolean.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="src\cpp\api_internal_string.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <ResourceCompile Include="src\c\api_scilab.rc">
diff --git a/scilab/modules/compatibility_functions/macros/%b_cumprod.sci b/scilab/modules/compatibility_functions/macros/%b_cumprod.sci
deleted file mode 100644 (file)
index 1c17334..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2010 -  INRIA - Serge Steer 
-// 
-// This file must be used under the terms of the CeCILL.
-// This source file is licensed as described in the file COPYING, which
-// you should have received as part of this distribution.  The terms
-// are also available at    
-// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
-
-function a=%b_cumprod(varargin)
-  if varargin($)=='native' then
-    if size(varargin)==2 then
-      d='*'
-    elseif size(varargin)==3 then 
-      d=varargin(2)
-    end
-    if size(d,'*')<>1 then 
-      if type(d)==10 then
-        error(msprintf(_("%s: Wrong size for input argument #%d: A string expected.\n"),"cumprod",2))
-      else
-        error(msprintf(_("%s: Wrong size for input argument #%d: A scalar expected.\n"),"cumprod",2))
-      end
-    end
-    a=varargin(1)
-    if type(d)==10 then
-      d=find(d==['m','*','r','c'])
-      if d==[] then
-        error(msprintf(_("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"),..
-                       "cumprod",2,"""*"",""r"",""c"",""m"",1:"+string(ndims(a))))
-      end
-      d=d-2
-    end
-    dims=size(a);
-    
-    if d==-1 then //'m'
-      d=find(dims>1,1)
-      if d==[] then d=0,end
-    end
-    if d<0 then
-      error(msprintf(_("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"),..
-                     "cumprod",2,"""*"",""r"",""c"",""m"",1:"+string(ndims(a))))
-    end
-    select d
-    case 0 then
-      k=find(~a,1)
-      if k<>[] then a(k:$)=%f,end
-    case 1 then
-      for k=1:dims(2)
-        a(:,k)=cumprod(a(:,k),'native')
-      end
-    case 2 then
-      for k=1:dims(1)
-        a(k,:)=cumprod(a(k,:),'native')
-      end
-    else
-      a=a
-    end    
-  else
-    varargin(1)=bool2s(varargin(1))
-    a=cumprod(varargin(:))
-  end
-endfunction
diff --git a/scilab/modules/compatibility_functions/macros/%b_cumsum.sci b/scilab/modules/compatibility_functions/macros/%b_cumsum.sci
deleted file mode 100644 (file)
index 3c48b17..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2010 -  INRIA - Serge Steer 
-// 
-// This file must be used under the terms of the CeCILL.
-// This source file is licensed as described in the file COPYING, which
-// you should have received as part of this distribution.  The terms
-// are also available at    
-// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
-
-function a=%b_cumsum(varargin)
-  if varargin($)=='native' then
-    if size(varargin)==2 then
-      d='*'
-    elseif size(varargin)==3 then 
-      d=varargin(2)
-    end
-    if size(d,'*')<>1 then 
-      if type(d)==10 then
-        error(msprintf(_("%s: Wrong size for input argument #%d: A string expected.\n"),"cumsum",2))
-      else
-        error(msprintf(_("%s: Wrong size for input argument #%d: A scalar expected.\n"),"cumsum",2))
-      end
-    end
-    a=varargin(1)
-    if type(d)==10 then
-      d=find(d==['m','*','r','c'])
-      if d==[] then
-        error(msprintf(_("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"),..
-                       "cumsum",2,"""*"",""r"",""c"",""m"",1:"+string(ndims(a))))
-      end
-      d=d-2
-    end
-    dims=size(a);
-    
-    if d==-1 then //'m'
-      d=find(dims>1,1)
-      if d==[] then d=0,end
-    end
-    if d<0 then
-      error(msprintf(_("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"),..
-                     "cumsum",2,"""*"",""r"",""c"",""m"",1:"+string(ndims(a))))
-    end
-    select d
-    case 0 then
-      k=find(a,1)
-      if k<>[] then a(k:$)=%t,end
-    case 1 then
-      for k=1:dims(2)
-        a(:,k)=cumsum(a(:,k),'native')
-      end
-    case 2 then
-      for k=1:dims(1)
-        a(k,:)=cumsum(a(k,:),'native')
-      end
-    else
-      a=a
-    end
-  else
-    varargin(1)=bool2s(varargin(1))
-    a=cumsum(varargin(:))
-  end
-endfunction
index 1b2c779..1d63224 100644 (file)
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup Label="ProjectConfigurations">
     <ProjectConfiguration Include="Debug|Win32">
       <Project>{445d3b85-c9b1-498b-9c88-0a3c2390b1cc}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
-    <ProjectReference Include="..\elementary_functions\src\cpp\elem_func\elem_func.vcxproj">
-      <Project>{e1284d3e-4b3f-446b-b541-f661a8a166a7}</Project>
-      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
-    </ProjectReference>
     <ProjectReference Include="..\fileio\fileio.vcxproj">
       <Project>{4fc72d4a-80ee-4b1a-8724-0201c1a35621}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
index bd69656..84a83c4 100644 (file)
 #
 # This file is distributed under the same license as the Scilab package.
 
-
-ELEMENTARIES_FUNCTIONS_C_SOURCES = src/c/sci_tools.c \
-src/c/finite.c \
-src/c/vfinite.c \
-src/c/cmp.c \
-src/c/vceil.c \
-src/c/xerhlt.c \
-src/c/vfloor.c \
-src/c/vfrexp.c \
-src/c/scidcopy.c \
-src/c/int2db.c \
-src/c/rea2db.c \
-src/c/idmax.c \
-src/c/idmin.c \
-src/c/gsort.c \
-src/c/qsort.c \
-src/c/qsort-char.c \
-src/c/qsort-double.c \
-src/c/qsort-int.c \
-src/c/qsort-short.c \
-src/c/qsort-string.c \
-src/c/basic_functions.c \
-src/c/abs.c \
-src/c/acos.c \
-src/c/asin.c \
-src/c/atan.c \
-src/c/cos.c \
-src/c/cosh.c \
-src/c/sin.c \
-src/c/sinh.c \
-src/c/tan.c \
-src/c/exp.c \
-src/c/expm.c \
-src/c/log.c \
-src/c/sqrt.c \
-src/c/cupro.c \
-src/c/sign.c \
-src/c/ceil.c \
-src/c/eye.c \
-src/c/dmsum.c \
-src/c/dsearch.c \
-src/c/floor.c \
-src/c/mprod.c \
-src/c/pythag.c \
-src/c/matrix_generation.c \
-src/c/vmul.c \
-src/c/add_vector.c \
-src/c/sub_vector.c
+ELEMENTARIES_FUNCTIONS_C_SOURCES = \
+    src/c/sci_tools.c \
+    src/c/finite.c \
+    src/c/vfinite.c \
+    src/c/cmp.c \
+    src/c/vceil.c \
+    src/c/xerhlt.c \
+    src/c/vfloor.c \
+    src/c/vfrexp.c \
+    src/c/scidcopy.c \
+    src/c/int2db.c \
+    src/c/rea2db.c \
+    src/c/qsort.c \
+    src/c/qsort-char.c \
+    src/c/qsort-double.c \
+    src/c/qsort-int.c \
+    src/c/qsort-short.c \
+    src/c/qsort-string.c \
+    src/c/basic_functions.c \
+    src/c/abs.c \
+    src/c/acos.c \
+    src/c/asin.c \
+    src/c/atan.c \
+    src/c/cos.c \
+    src/c/cosh.c \
+    src/c/sin.c \
+    src/c/sinh.c \
+    src/c/tan.c \
+    src/c/exp.c \
+    src/c/expm.c \
+    src/c/log.c \
+    src/c/sqrt.c \
+    src/c/cupro.c \
+    src/c/sign.c \
+    src/c/ceil.c \
+    src/c/eye.c \
+    src/c/dmsum.c \
+    src/c/dsearch.c \
+    src/c/floor.c \
+    src/c/mprod.c \
+    src/c/pythag.c \
+    src/c/matrix_generation.c \
+    src/c/vmul.c \
+    src/c/add_vector.c \
+    src/c/sub_vector.c
 
 # List of the cpp files
-ELEMENTARIES_FUNCTIONS_CXX_SOURCES = src/cpp/getmode.cpp
-
-SLATEC_SOURCES = src/fortran/slatec/zwrsk.f \
-src/fortran/slatec/d9b0mp.f \
-src/fortran/slatec/d9b1mp.f \
-src/fortran/slatec/d9knus.f \
-src/fortran/slatec/d9lgmc.f \
-src/fortran/slatec/dasyik.f \
-src/fortran/slatec/dasyjy.f \
-src/fortran/slatec/dbdiff.f \
-src/fortran/slatec/dbesi0.f \
-src/fortran/slatec/dbesi1.f \
-src/fortran/slatec/dbesi.f \
-src/fortran/slatec/dbesj0.f \
-src/fortran/slatec/dbesj1.f \
-src/fortran/slatec/dbesj.f \
-src/fortran/slatec/dbesk0.f \
-src/fortran/slatec/dbesk1.f \
-src/fortran/slatec/dbesk.f \
-src/fortran/slatec/dbesy0.f \
-src/fortran/slatec/dbesy1.f \
-src/fortran/slatec/dbesy.f \
-src/fortran/slatec/dbkias.f \
-src/fortran/slatec/dbkisr.f \
-src/fortran/slatec/dbsi0e.f \
-src/fortran/slatec/dbsi1e.f \
-src/fortran/slatec/dbsk0e.f \
-src/fortran/slatec/dbsk1e.f \
-src/fortran/slatec/dbskes.f \
-src/fortran/slatec/dbskin.f \
-src/fortran/slatec/dbsknu.f \
-src/fortran/slatec/dbsynu.f \
-src/fortran/slatec/dcsevl.f \
-src/fortran/slatec/dexint.f \
-src/fortran/slatec/dgamlm.f \
-src/fortran/slatec/dgamln.f \
-src/fortran/slatec/dgamma.f \
-src/fortran/slatec/dgamrn.f \
-src/fortran/slatec/dhkseq.f \
-src/fortran/slatec/djairy.f \
-src/fortran/slatec/dpsixn.f \
-src/fortran/slatec/dxlegf.f \
-src/fortran/slatec/dyairy.f \
-src/fortran/slatec/fdump.f \
-src/fortran/slatec/gamma.f \
-src/fortran/slatec/initds.f \
-src/fortran/slatec/j4save.f \
-src/fortran/slatec/xercnt.f \
-src/fortran/slatec/xermsg.f \
-src/fortran/slatec/xerprn.f \
-src/fortran/slatec/xersve.f \
-src/fortran/slatec/xgetua.f \
-src/fortran/slatec/zabs.f \
-src/fortran/slatec/zacai.f \
-src/fortran/slatec/zacon.f \
-src/fortran/slatec/zairy.f \
-src/fortran/slatec/zasyi.f \
-src/fortran/slatec/zbesh.f \
-src/fortran/slatec/zbesi.f \
-src/fortran/slatec/zbesj.f \
-src/fortran/slatec/zbesk.f \
-src/fortran/slatec/zbesy.f \
-src/fortran/slatec/zbinu.f \
-src/fortran/slatec/zbknu.f \
-src/fortran/slatec/zbuni.f \
-src/fortran/slatec/zbunk.f \
-src/fortran/slatec/zdiv.f \
-src/fortran/slatec/zexp.f \
-src/fortran/slatec/zkscl.f \
-src/fortran/slatec/zlog.f \
-src/fortran/slatec/zmlri.f \
-src/fortran/slatec/zmlt.f \
-src/fortran/slatec/zrati.f \
-src/fortran/slatec/zs1s2.f \
-src/fortran/slatec/zseri.f \
-src/fortran/slatec/zshch.f \
-src/fortran/slatec/zsqrt.f \
-src/fortran/slatec/zuchk.f \
-src/fortran/slatec/zunhj.f \
-src/fortran/slatec/zuni1.f \
-src/fortran/slatec/zuni2.f \
-src/fortran/slatec/zunik.f \
-src/fortran/slatec/zunk1.f \
-src/fortran/slatec/zunk2.f \
-src/fortran/slatec/zuoik.f \
-src/fortran/slatec/dlngam.f \
-src/fortran/slatec/balanc.f \
-src/fortran/slatec/dtensbs.f \
-src/fortran/slatec/pchim.f
-
-LINPACK_SOURCES =    src/fortran/linpack/dgesl.f \
+ELEMENTARIES_FUNCTIONS_CXX_SOURCES = \
+    src/cpp/getmode.cpp \
+    src/cpp/cumsum.cpp \
+    src/cpp/cumprod.cpp \
+    src/cpp/diag.cpp \
+    src/cpp/gsort.cpp \
+    src/cpp/max.cpp \
+    src/cpp/min.cpp
+
+SLATEC_SOURCES = \
+    src/fortran/slatec/zwrsk.f \
+    src/fortran/slatec/d9b0mp.f \
+    src/fortran/slatec/d9b1mp.f \
+    src/fortran/slatec/d9knus.f \
+    src/fortran/slatec/d9lgmc.f \
+    src/fortran/slatec/dasyik.f \
+    src/fortran/slatec/dasyjy.f \
+    src/fortran/slatec/dbdiff.f \
+    src/fortran/slatec/dbesi0.f \
+    src/fortran/slatec/dbesi1.f \
+    src/fortran/slatec/dbesi.f \
+    src/fortran/slatec/dbesj0.f \
+    src/fortran/slatec/dbesj1.f \
+    src/fortran/slatec/dbesj.f \
+    src/fortran/slatec/dbesk0.f \
+    src/fortran/slatec/dbesk1.f \
+    src/fortran/slatec/dbesk.f \
+    src/fortran/slatec/dbesy0.f \
+    src/fortran/slatec/dbesy1.f \
+    src/fortran/slatec/dbesy.f \
+    src/fortran/slatec/dbkias.f \
+    src/fortran/slatec/dbkisr.f \
+    src/fortran/slatec/dbsi0e.f \
+    src/fortran/slatec/dbsi1e.f \
+    src/fortran/slatec/dbsk0e.f \
+    src/fortran/slatec/dbsk1e.f \
+    src/fortran/slatec/dbskes.f \
+    src/fortran/slatec/dbskin.f \
+    src/fortran/slatec/dbsknu.f \
+    src/fortran/slatec/dbsynu.f \
+    src/fortran/slatec/dcsevl.f \
+    src/fortran/slatec/dexint.f \
+    src/fortran/slatec/dgamlm.f \
+    src/fortran/slatec/dgamln.f \
+    src/fortran/slatec/dgamma.f \
+    src/fortran/slatec/dgamrn.f \
+    src/fortran/slatec/dhkseq.f \
+    src/fortran/slatec/djairy.f \
+    src/fortran/slatec/dpsixn.f \
+    src/fortran/slatec/dxlegf.f \
+    src/fortran/slatec/dyairy.f \
+    src/fortran/slatec/fdump.f \
+    src/fortran/slatec/gamma.f \
+    src/fortran/slatec/initds.f \
+    src/fortran/slatec/j4save.f \
+    src/fortran/slatec/xercnt.f \
+    src/fortran/slatec/xermsg.f \
+    src/fortran/slatec/xerprn.f \
+    src/fortran/slatec/xersve.f \
+    src/fortran/slatec/xgetua.f \
+    src/fortran/slatec/zabs.f \
+    src/fortran/slatec/zacai.f \
+    src/fortran/slatec/zacon.f \
+    src/fortran/slatec/zairy.f \
+    src/fortran/slatec/zasyi.f \
+    src/fortran/slatec/zbesh.f \
+    src/fortran/slatec/zbesi.f \
+    src/fortran/slatec/zbesj.f \
+    src/fortran/slatec/zbesk.f \
+    src/fortran/slatec/zbesy.f \
+    src/fortran/slatec/zbinu.f \
+    src/fortran/slatec/zbknu.f \
+    src/fortran/slatec/zbuni.f \
+    src/fortran/slatec/zbunk.f \
+    src/fortran/slatec/zdiv.f \
+    src/fortran/slatec/zexp.f \
+    src/fortran/slatec/zkscl.f \
+    src/fortran/slatec/zlog.f \
+    src/fortran/slatec/zmlri.f \
+    src/fortran/slatec/zmlt.f \
+    src/fortran/slatec/zrati.f \
+    src/fortran/slatec/zs1s2.f \
+    src/fortran/slatec/zseri.f \
+    src/fortran/slatec/zshch.f \
+    src/fortran/slatec/zsqrt.f \
+    src/fortran/slatec/zuchk.f \
+    src/fortran/slatec/zunhj.f \
+    src/fortran/slatec/zuni1.f \
+    src/fortran/slatec/zuni2.f \
+    src/fortran/slatec/zunik.f \
+    src/fortran/slatec/zunk1.f \
+    src/fortran/slatec/zunk2.f \
+    src/fortran/slatec/zuoik.f \
+    src/fortran/slatec/dlngam.f \
+    src/fortran/slatec/balanc.f \
+    src/fortran/slatec/dtensbs.f \
+    src/fortran/slatec/pchim.f
+
+LINPACK_SOURCES = \
+    src/fortran/linpack/dgesl.f \
        src/fortran/linpack/wpade.f \
        src/fortran/linpack/util.f \
        src/fortran/linpack/dgefa.f \
@@ -160,217 +166,203 @@ LINPACK_SOURCES =    src/fortran/linpack/dgesl.f \
        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/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/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
 
 GATEWAY_C_SOURCES = \
-sci_gateway/c/sci_matrix.c \
-sci_gateway/c/sci_prod.c \
-sci_gateway/c/sci_expm.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_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_acos.c \
-sci_gateway/c/sci_cos.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_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_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_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_prod.c \
+    sci_gateway/c/sci_tril.c \
+    sci_gateway/c/sci_triu.c \
+    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
 
 GATEWAY_FORTRAN_SOURCES =  \
-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_abs.f \
-sci_gateway/fortran/sci_f_spones.f \
-sci_gateway/fortran/sci_f_kron.f \
-sci_gateway/fortran/sci_f_cumsum.f \
-sci_gateway/fortran/sci_f_nearfloat.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
+    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_size.f \
+    sci_gateway/fortran/sci_f_tril.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_triu.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_sum.cpp \
-sci_gateway/cpp/sci_zeros.cpp \
-sci_gateway/cpp/sci_ones.cpp
+    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_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
 
 EISPACK_SOURCES = src/fortran/eispack/balbak.f
 
@@ -387,7 +379,7 @@ libdummy_elementary_functions_la_SOURCES = src/fortran/eispack/hqror2.f \
 libdummy_elementary_functions_la_CPPFLAGS = -I$(srcdir)/includes/ \
     -I$(top_srcdir)/modules/core/includes/ \
     $(AM_CPPFLAGS)
-       
+
 
 # Includes need for the compilation
 libscielementary_functions_la_CPPFLAGS = -I$(srcdir)/includes/ \
@@ -417,8 +409,6 @@ noinst_LTLIBRARIES += libscielementary_functions-algo.la libscielementary_functi
 endif
 
 
-
-
 libscielementary_functions_algo_la_SOURCES = $(SLATEC_SOURCES) $(LINPACK_SOURCES)  $(EISPACK_SOURCES) $(ELEMENTARIES_FUNCTIONS_C_SOURCES) $(ELEMENTARIES_FUNCTIONS_FORTRAN_SOURCES) $(ELEMENTARIES_FUNCTIONS_CXX_SOURCES)
 libscielementary_functions_la_SOURCES = $(GATEWAY_C_SOURCES) $(GATEWAY_FORTRAN_SOURCES) $(GATEWAY_CXX_SOURCES)
 libscielementary_functions_algo_la_CPPFLAGS = $(libscielementary_functions_la_CPPFLAGS)
index 08e5ea1..a5593a6 100644 (file)
@@ -169,9 +169,6 @@ am__objects_4 = libscielementary_functions_algo_la-sci_tools.lo \
        libscielementary_functions_algo_la-scidcopy.lo \
        libscielementary_functions_algo_la-int2db.lo \
        libscielementary_functions_algo_la-rea2db.lo \
-       libscielementary_functions_algo_la-idmax.lo \
-       libscielementary_functions_algo_la-idmin.lo \
-       libscielementary_functions_algo_la-gsort.lo \
        libscielementary_functions_algo_la-qsort.lo \
        libscielementary_functions_algo_la-qsort-char.lo \
        libscielementary_functions_algo_la-qsort-double.lo \
@@ -224,7 +221,13 @@ am__objects_5 = psi.lo wasum.lo dexpm1.lo wwdiv.lo wdotcr.lo iset.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
-am__objects_6 = libscielementary_functions_algo_la-getmode.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-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)
@@ -235,60 +238,27 @@ libscielementary_functions_algo_la_OBJECTS =  \
 libscielementary_functions_la_DEPENDENCIES =  \
        libdummy-elementary_functions.la \
        libscielementary_functions-algo.la
-am__objects_7 = libscielementary_functions_la-sci_matrix.lo \
-       libscielementary_functions_la-sci_prod.lo \
-       libscielementary_functions_la-sci_expm.lo \
+am__objects_7 = libscielementary_functions_la-sci_prod.lo \
        libscielementary_functions_la-sci_tril.lo \
-       libscielementary_functions_la-sci_ceil.lo \
-       libscielementary_functions_la-sci_imag.lo \
-       libscielementary_functions_la-sci_log.lo \
-       libscielementary_functions_la-sci_log1p.lo \
-       libscielementary_functions_la-sci_clean.lo \
-       libscielementary_functions_la-sci_tan.lo \
-       libscielementary_functions_la-sci_atan.lo \
        libscielementary_functions_la-sci_triu.lo \
-       libscielementary_functions_la-sci_frexp.lo \
-       libscielementary_functions_la-sci_acos.lo \
-       libscielementary_functions_la-sci_cos.lo \
-       libscielementary_functions_la-sci_sin.lo \
        libscielementary_functions_la-sci_sqrt.lo \
-       libscielementary_functions_la-sci_asin.lo \
        libscielementary_functions_la-sci_sign.lo \
-       libscielementary_functions_la-sci_rat.lo \
        libscielementary_functions_la-gw_elementary_functions.lo \
        libscielementary_functions_la-sci_number_properties.lo \
-       libscielementary_functions_la-sci_diag.lo \
        libscielementary_functions_la-sci_testmatrix.lo \
-       libscielementary_functions_la-sci_abs.lo \
        libscielementary_functions_la-sci_spones.lo \
-       libscielementary_functions_la-sci_kron.lo \
-       libscielementary_functions_la-sci_cumprod.lo \
-       libscielementary_functions_la-sci_cumsum.lo \
-       libscielementary_functions_la-sci_dsearch.lo \
        libscielementary_functions_la-sci_nearfloat.lo \
-       libscielementary_functions_la-sci_isreal.lo \
-       libscielementary_functions_la-sci_floor.lo \
        libscielementary_functions_la-sci_real.lo \
        libscielementary_functions_la-sci_round.lo \
-       libscielementary_functions_la-sci_conj.lo \
-       libscielementary_functions_la-sci_int.lo \
-       libscielementary_functions_la-sci_imult.lo \
-       libscielementary_functions_la-sci_exp.lo \
-       libscielementary_functions_la-sci_maxi.lo \
-       libscielementary_functions_la-sci_gsort.lo \
        libscielementary_functions_la-sci_isequalbitwise.lo
-am__objects_8 = sci_f_maxi.lo sci_f_testmatrix.lo sci_f_prod.lo \
-       sci_f_matrix.lo sci_f_expm.lo sci_f_size.lo sci_f_tril.lo \
-       sci_f_ceil.lo sci_f_rat.lo sci_f_imag.lo sci_f_log.lo \
-       sci_f_log1p.lo sci_f_clean.lo sci_f_eye.lo sci_f_tan.lo \
-       sci_f_atan.lo sci_f_triu.lo sci_f_frexp.lo sci_f_cos.lo \
-       sci_f_rand.lo sci_f_acos.lo sci_f_sin.lo sci_f_sqrt.lo \
-       sci_f_asin.lo sci_f_sign.lo sci_f_zeros.lo sci_f_ones.lo \
-       sci_f_diag.lo sci_f_number_properties.lo sci_f_abs.lo \
-       sci_f_spones.lo sci_f_kron.lo sci_f_cumsum.lo \
-       sci_f_nearfloat.lo sci_f_isreal.lo sci_f_floor.lo \
-       sci_f_real.lo sci_f_round.lo sci_f_conj.lo sci_f_int.lo \
-       sci_f_imult.lo sci_f_exp.lo
+am__objects_8 = sci_f_testmatrix.lo sci_f_prod.lo sci_f_matrix.lo \
+       sci_f_size.lo sci_f_tril.lo sci_f_ceil.lo sci_f_clean.lo \
+       sci_f_eye.lo sci_f_tan.lo sci_f_atan.lo sci_f_triu.lo \
+       sci_f_cos.lo sci_f_rand.lo sci_f_acos.lo sci_f_sin.lo \
+       sci_f_sqrt.lo sci_f_asin.lo sci_f_sign.lo sci_f_zeros.lo \
+       sci_f_ones.lo sci_f_diag.lo sci_f_number_properties.lo \
+       sci_f_spones.lo sci_f_nearfloat.lo sci_f_real.lo \
+       sci_f_round.lo sci_f_conj.lo
 am__objects_9 = libscielementary_functions_la-sci_isequal.lo \
        libscielementary_functions_la-elem_func_gw.lo \
        libscielementary_functions_la-sci_size.lo \
@@ -296,7 +266,37 @@ am__objects_9 = libscielementary_functions_la-sci_isequal.lo \
        libscielementary_functions_la-sci_rand.lo \
        libscielementary_functions_la-sci_sum.lo \
        libscielementary_functions_la-sci_zeros.lo \
-       libscielementary_functions_la-sci_ones.lo
+       libscielementary_functions_la-sci_ones.lo \
+       libscielementary_functions_la-sci_matrix.lo \
+       libscielementary_functions_la-sci_abs.lo \
+       libscielementary_functions_la-sci_acos.lo \
+       libscielementary_functions_la-sci_asin.lo \
+       libscielementary_functions_la-sci_atan.lo \
+       libscielementary_functions_la-sci_ceil.lo \
+       libscielementary_functions_la-sci_clean.lo \
+       libscielementary_functions_la-sci_conj.lo \
+       libscielementary_functions_la-sci_cos.lo \
+       libscielementary_functions_la-sci_sin.lo \
+       libscielementary_functions_la-sci_tan.lo \
+       libscielementary_functions_la-sci_cumsum.lo \
+       libscielementary_functions_la-sci_cumprod.lo \
+       libscielementary_functions_la-sci_diag.lo \
+       libscielementary_functions_la-sci_dsearch.lo \
+       libscielementary_functions_la-sci_exp.lo \
+       libscielementary_functions_la-sci_expm.lo \
+       libscielementary_functions_la-sci_floor.lo \
+       libscielementary_functions_la-sci_frexp.lo \
+       libscielementary_functions_la-sci_gsort.lo \
+       libscielementary_functions_la-sci_imag.lo \
+       libscielementary_functions_la-sci_imult.lo \
+       libscielementary_functions_la-sci_int.lo \
+       libscielementary_functions_la-sci_isreal.lo \
+       libscielementary_functions_la-sci_kron.lo \
+       libscielementary_functions_la-sci_log.lo \
+       libscielementary_functions_la-sci_log1p.lo \
+       libscielementary_functions_la-sci_max.lo \
+       libscielementary_functions_la-sci_min.lo \
+       libscielementary_functions_la-sci_rat.lo
 am_libscielementary_functions_la_OBJECTS = $(am__objects_7) \
        $(am__objects_8) $(am__objects_9)
 libscielementary_functions_la_OBJECTS =  \
@@ -609,146 +609,154 @@ top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 yacc_present = @yacc_present@
-ELEMENTARIES_FUNCTIONS_C_SOURCES = src/c/sci_tools.c \
-src/c/finite.c \
-src/c/vfinite.c \
-src/c/cmp.c \
-src/c/vceil.c \
-src/c/xerhlt.c \
-src/c/vfloor.c \
-src/c/vfrexp.c \
-src/c/scidcopy.c \
-src/c/int2db.c \
-src/c/rea2db.c \
-src/c/idmax.c \
-src/c/idmin.c \
-src/c/gsort.c \
-src/c/qsort.c \
-src/c/qsort-char.c \
-src/c/qsort-double.c \
-src/c/qsort-int.c \
-src/c/qsort-short.c \
-src/c/qsort-string.c \
-src/c/basic_functions.c \
-src/c/abs.c \
-src/c/acos.c \
-src/c/asin.c \
-src/c/atan.c \
-src/c/cos.c \
-src/c/cosh.c \
-src/c/sin.c \
-src/c/sinh.c \
-src/c/tan.c \
-src/c/exp.c \
-src/c/expm.c \
-src/c/log.c \
-src/c/sqrt.c \
-src/c/cupro.c \
-src/c/sign.c \
-src/c/ceil.c \
-src/c/eye.c \
-src/c/dmsum.c \
-src/c/dsearch.c \
-src/c/floor.c \
-src/c/mprod.c \
-src/c/pythag.c \
-src/c/matrix_generation.c \
-src/c/vmul.c \
-src/c/add_vector.c \
-src/c/sub_vector.c
+ELEMENTARIES_FUNCTIONS_C_SOURCES = \
+    src/c/sci_tools.c \
+    src/c/finite.c \
+    src/c/vfinite.c \
+    src/c/cmp.c \
+    src/c/vceil.c \
+    src/c/xerhlt.c \
+    src/c/vfloor.c \
+    src/c/vfrexp.c \
+    src/c/scidcopy.c \
+    src/c/int2db.c \
+    src/c/rea2db.c \
+    src/c/qsort.c \
+    src/c/qsort-char.c \
+    src/c/qsort-double.c \
+    src/c/qsort-int.c \
+    src/c/qsort-short.c \
+    src/c/qsort-string.c \
+    src/c/basic_functions.c \
+    src/c/abs.c \
+    src/c/acos.c \
+    src/c/asin.c \
+    src/c/atan.c \
+    src/c/cos.c \
+    src/c/cosh.c \
+    src/c/sin.c \
+    src/c/sinh.c \
+    src/c/tan.c \
+    src/c/exp.c \
+    src/c/expm.c \
+    src/c/log.c \
+    src/c/sqrt.c \
+    src/c/cupro.c \
+    src/c/sign.c \
+    src/c/ceil.c \
+    src/c/eye.c \
+    src/c/dmsum.c \
+    src/c/dsearch.c \
+    src/c/floor.c \
+    src/c/mprod.c \
+    src/c/pythag.c \
+    src/c/matrix_generation.c \
+    src/c/vmul.c \
+    src/c/add_vector.c \
+    src/c/sub_vector.c
 
 
 # List of the cpp files
-ELEMENTARIES_FUNCTIONS_CXX_SOURCES = src/cpp/getmode.cpp
-SLATEC_SOURCES = src/fortran/slatec/zwrsk.f \
-src/fortran/slatec/d9b0mp.f \
-src/fortran/slatec/d9b1mp.f \
-src/fortran/slatec/d9knus.f \
-src/fortran/slatec/d9lgmc.f \
-src/fortran/slatec/dasyik.f \
-src/fortran/slatec/dasyjy.f \
-src/fortran/slatec/dbdiff.f \
-src/fortran/slatec/dbesi0.f \
-src/fortran/slatec/dbesi1.f \
-src/fortran/slatec/dbesi.f \
-src/fortran/slatec/dbesj0.f \
-src/fortran/slatec/dbesj1.f \
-src/fortran/slatec/dbesj.f \
-src/fortran/slatec/dbesk0.f \
-src/fortran/slatec/dbesk1.f \
-src/fortran/slatec/dbesk.f \
-src/fortran/slatec/dbesy0.f \
-src/fortran/slatec/dbesy1.f \
-src/fortran/slatec/dbesy.f \
-src/fortran/slatec/dbkias.f \
-src/fortran/slatec/dbkisr.f \
-src/fortran/slatec/dbsi0e.f \
-src/fortran/slatec/dbsi1e.f \
-src/fortran/slatec/dbsk0e.f \
-src/fortran/slatec/dbsk1e.f \
-src/fortran/slatec/dbskes.f \
-src/fortran/slatec/dbskin.f \
-src/fortran/slatec/dbsknu.f \
-src/fortran/slatec/dbsynu.f \
-src/fortran/slatec/dcsevl.f \
-src/fortran/slatec/dexint.f \
-src/fortran/slatec/dgamlm.f \
-src/fortran/slatec/dgamln.f \
-src/fortran/slatec/dgamma.f \
-src/fortran/slatec/dgamrn.f \
-src/fortran/slatec/dhkseq.f \
-src/fortran/slatec/djairy.f \
-src/fortran/slatec/dpsixn.f \
-src/fortran/slatec/dxlegf.f \
-src/fortran/slatec/dyairy.f \
-src/fortran/slatec/fdump.f \
-src/fortran/slatec/gamma.f \
-src/fortran/slatec/initds.f \
-src/fortran/slatec/j4save.f \
-src/fortran/slatec/xercnt.f \
-src/fortran/slatec/xermsg.f \
-src/fortran/slatec/xerprn.f \
-src/fortran/slatec/xersve.f \
-src/fortran/slatec/xgetua.f \
-src/fortran/slatec/zabs.f \
-src/fortran/slatec/zacai.f \
-src/fortran/slatec/zacon.f \
-src/fortran/slatec/zairy.f \
-src/fortran/slatec/zasyi.f \
-src/fortran/slatec/zbesh.f \
-src/fortran/slatec/zbesi.f \
-src/fortran/slatec/zbesj.f \
-src/fortran/slatec/zbesk.f \
-src/fortran/slatec/zbesy.f \
-src/fortran/slatec/zbinu.f \
-src/fortran/slatec/zbknu.f \
-src/fortran/slatec/zbuni.f \
-src/fortran/slatec/zbunk.f \
-src/fortran/slatec/zdiv.f \
-src/fortran/slatec/zexp.f \
-src/fortran/slatec/zkscl.f \
-src/fortran/slatec/zlog.f \
-src/fortran/slatec/zmlri.f \
-src/fortran/slatec/zmlt.f \
-src/fortran/slatec/zrati.f \
-src/fortran/slatec/zs1s2.f \
-src/fortran/slatec/zseri.f \
-src/fortran/slatec/zshch.f \
-src/fortran/slatec/zsqrt.f \
-src/fortran/slatec/zuchk.f \
-src/fortran/slatec/zunhj.f \
-src/fortran/slatec/zuni1.f \
-src/fortran/slatec/zuni2.f \
-src/fortran/slatec/zunik.f \
-src/fortran/slatec/zunk1.f \
-src/fortran/slatec/zunk2.f \
-src/fortran/slatec/zuoik.f \
-src/fortran/slatec/dlngam.f \
-src/fortran/slatec/balanc.f \
-src/fortran/slatec/dtensbs.f \
-src/fortran/slatec/pchim.f
-
-LINPACK_SOURCES = src/fortran/linpack/dgesl.f \
+ELEMENTARIES_FUNCTIONS_CXX_SOURCES = \
+    src/cpp/getmode.cpp \
+    src/cpp/cumsum.cpp \
+    src/cpp/cumprod.cpp \
+    src/cpp/diag.cpp \
+    src/cpp/gsort.cpp \
+    src/cpp/max.cpp \
+    src/cpp/min.cpp
+
+SLATEC_SOURCES = \
+    src/fortran/slatec/zwrsk.f \
+    src/fortran/slatec/d9b0mp.f \
+    src/fortran/slatec/d9b1mp.f \
+    src/fortran/slatec/d9knus.f \
+    src/fortran/slatec/d9lgmc.f \
+    src/fortran/slatec/dasyik.f \
+    src/fortran/slatec/dasyjy.f \
+    src/fortran/slatec/dbdiff.f \
+    src/fortran/slatec/dbesi0.f \
+    src/fortran/slatec/dbesi1.f \
+    src/fortran/slatec/dbesi.f \
+    src/fortran/slatec/dbesj0.f \
+    src/fortran/slatec/dbesj1.f \
+    src/fortran/slatec/dbesj.f \
+    src/fortran/slatec/dbesk0.f \
+    src/fortran/slatec/dbesk1.f \
+    src/fortran/slatec/dbesk.f \
+    src/fortran/slatec/dbesy0.f \
+    src/fortran/slatec/dbesy1.f \
+    src/fortran/slatec/dbesy.f \
+    src/fortran/slatec/dbkias.f \
+    src/fortran/slatec/dbkisr.f \
+    src/fortran/slatec/dbsi0e.f \
+    src/fortran/slatec/dbsi1e.f \
+    src/fortran/slatec/dbsk0e.f \
+    src/fortran/slatec/dbsk1e.f \
+    src/fortran/slatec/dbskes.f \
+    src/fortran/slatec/dbskin.f \
+    src/fortran/slatec/dbsknu.f \
+    src/fortran/slatec/dbsynu.f \
+    src/fortran/slatec/dcsevl.f \
+    src/fortran/slatec/dexint.f \
+    src/fortran/slatec/dgamlm.f \
+    src/fortran/slatec/dgamln.f \
+    src/fortran/slatec/dgamma.f \
+    src/fortran/slatec/dgamrn.f \
+    src/fortran/slatec/dhkseq.f \
+    src/fortran/slatec/djairy.f \
+    src/fortran/slatec/dpsixn.f \
+    src/fortran/slatec/dxlegf.f \
+    src/fortran/slatec/dyairy.f \
+    src/fortran/slatec/fdump.f \
+    src/fortran/slatec/gamma.f \
+    src/fortran/slatec/initds.f \
+    src/fortran/slatec/j4save.f \
+    src/fortran/slatec/xercnt.f \
+    src/fortran/slatec/xermsg.f \
+    src/fortran/slatec/xerprn.f \
+    src/fortran/slatec/xersve.f \
+    src/fortran/slatec/xgetua.f \
+    src/fortran/slatec/zabs.f \
+    src/fortran/slatec/zacai.f \
+    src/fortran/slatec/zacon.f \
+    src/fortran/slatec/zairy.f \
+    src/fortran/slatec/zasyi.f \
+    src/fortran/slatec/zbesh.f \
+    src/fortran/slatec/zbesi.f \
+    src/fortran/slatec/zbesj.f \
+    src/fortran/slatec/zbesk.f \
+    src/fortran/slatec/zbesy.f \
+    src/fortran/slatec/zbinu.f \
+    src/fortran/slatec/zbknu.f \
+    src/fortran/slatec/zbuni.f \
+    src/fortran/slatec/zbunk.f \
+    src/fortran/slatec/zdiv.f \
+    src/fortran/slatec/zexp.f \
+    src/fortran/slatec/zkscl.f \
+    src/fortran/slatec/zlog.f \
+    src/fortran/slatec/zmlri.f \
+    src/fortran/slatec/zmlt.f \
+    src/fortran/slatec/zrati.f \
+    src/fortran/slatec/zs1s2.f \
+    src/fortran/slatec/zseri.f \
+    src/fortran/slatec/zshch.f \
+    src/fortran/slatec/zsqrt.f \
+    src/fortran/slatec/zuchk.f \
+    src/fortran/slatec/zunhj.f \
+    src/fortran/slatec/zuni1.f \
+    src/fortran/slatec/zuni2.f \
+    src/fortran/slatec/zunik.f \
+    src/fortran/slatec/zunk1.f \
+    src/fortran/slatec/zunk2.f \
+    src/fortran/slatec/zuoik.f \
+    src/fortran/slatec/dlngam.f \
+    src/fortran/slatec/balanc.f \
+    src/fortran/slatec/dtensbs.f \
+    src/fortran/slatec/pchim.f
+
+LINPACK_SOURCES = \
+    src/fortran/linpack/dgesl.f \
        src/fortran/linpack/wpade.f \
        src/fortran/linpack/util.f \
        src/fortran/linpack/dgefa.f \
@@ -765,217 +773,203 @@ LINPACK_SOURCES = src/fortran/linpack/dgesl.f \
        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/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/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
 
 GATEWAY_C_SOURCES = \
-sci_gateway/c/sci_matrix.c \
-sci_gateway/c/sci_prod.c \
-sci_gateway/c/sci_expm.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_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_acos.c \
-sci_gateway/c/sci_cos.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_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_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_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_prod.c \
+    sci_gateway/c/sci_tril.c \
+    sci_gateway/c/sci_triu.c \
+    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
 
 GATEWAY_FORTRAN_SOURCES = \
-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_abs.f \
-sci_gateway/fortran/sci_f_spones.f \
-sci_gateway/fortran/sci_f_kron.f \
-sci_gateway/fortran/sci_f_cumsum.f \
-sci_gateway/fortran/sci_f_nearfloat.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
+    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_size.f \
+    sci_gateway/fortran/sci_f_tril.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_triu.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_sum.cpp \
-sci_gateway/cpp/sci_zeros.cpp \
-sci_gateway/cpp/sci_ones.cpp
+    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_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
 
 EISPACK_SOURCES = src/fortran/eispack/balbak.f
 
@@ -1211,7 +1205,10 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscielementary_functions_algo_la-cmp.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscielementary_functions_algo_la-cos.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscielementary_functions_algo_la-cosh.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscielementary_functions_algo_la-cumprod.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscielementary_functions_algo_la-cumsum.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscielementary_functions_algo_la-cupro.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscielementary_functions_algo_la-diag.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscielementary_functions_algo_la-dmsum.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscielementary_functions_algo_la-dsearch.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscielementary_functions_algo_la-exp.Plo@am__quote@
@@ -1221,11 +1218,11 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscielementary_functions_algo_la-floor.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscielementary_functions_algo_la-getmode.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscielementary_functions_algo_la-gsort.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscielementary_functions_algo_la-idmax.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscielementary_functions_algo_la-idmin.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscielementary_functions_algo_la-int2db.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscielementary_functions_algo_la-log.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscielementary_functions_algo_la-matrix_generation.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscielementary_functions_algo_la-max.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscielementary_functions_algo_la-min.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscielementary_functions_algo_la-mprod.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscielementary_functions_algo_la-pythag.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscielementary_functions_algo_la-qsort-char.Plo@am__quote@
@@ -1279,7 +1276,8 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscielementary_functions_la-sci_log.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscielementary_functions_la-sci_log1p.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscielementary_functions_la-sci_matrix.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscielementary_functions_la-sci_maxi.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscielementary_functions_la-sci_max.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscielementary_functions_la-sci_min.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscielementary_functions_la-sci_nearfloat.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscielementary_functions_la-sci_number_properties.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscielementary_functions_la-sci_ones.Plo@am__quote@
@@ -1398,27 +1396,6 @@ libscielementary_functions_algo_la-rea2db.lo: src/c/rea2db.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscielementary_functions_algo_la-rea2db.lo `test -f 'src/c/rea2db.c' || echo '$(srcdir)/'`src/c/rea2db.c
 
-libscielementary_functions_algo_la-idmax.lo: src/c/idmax.c
-@am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscielementary_functions_algo_la-idmax.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_algo_la-idmax.Tpo -c -o libscielementary_functions_algo_la-idmax.lo `test -f 'src/c/idmax.c' || echo '$(srcdir)/'`src/c/idmax.c
-@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/libscielementary_functions_algo_la-idmax.Tpo $(DEPDIR)/libscielementary_functions_algo_la-idmax.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='src/c/idmax.c' object='libscielementary_functions_algo_la-idmax.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscielementary_functions_algo_la-idmax.lo `test -f 'src/c/idmax.c' || echo '$(srcdir)/'`src/c/idmax.c
-
-libscielementary_functions_algo_la-idmin.lo: src/c/idmin.c
-@am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscielementary_functions_algo_la-idmin.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_algo_la-idmin.Tpo -c -o libscielementary_functions_algo_la-idmin.lo `test -f 'src/c/idmin.c' || echo '$(srcdir)/'`src/c/idmin.c
-@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/libscielementary_functions_algo_la-idmin.Tpo $(DEPDIR)/libscielementary_functions_algo_la-idmin.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='src/c/idmin.c' object='libscielementary_functions_algo_la-idmin.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscielementary_functions_algo_la-idmin.lo `test -f 'src/c/idmin.c' || echo '$(srcdir)/'`src/c/idmin.c
-
-libscielementary_functions_algo_la-gsort.lo: src/c/gsort.c
-@am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscielementary_functions_algo_la-gsort.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_algo_la-gsort.Tpo -c -o libscielementary_functions_algo_la-gsort.lo `test -f 'src/c/gsort.c' || echo '$(srcdir)/'`src/c/gsort.c
-@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/libscielementary_functions_algo_la-gsort.Tpo $(DEPDIR)/libscielementary_functions_algo_la-gsort.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='src/c/gsort.c' object='libscielementary_functions_algo_la-gsort.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscielementary_functions_algo_la-gsort.lo `test -f 'src/c/gsort.c' || echo '$(srcdir)/'`src/c/gsort.c
-
 libscielementary_functions_algo_la-qsort.lo: src/c/qsort.c
 @am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscielementary_functions_algo_la-qsort.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_algo_la-qsort.Tpo -c -o libscielementary_functions_algo_la-qsort.lo `test -f 'src/c/qsort.c' || echo '$(srcdir)/'`src/c/qsort.c
 @am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/libscielementary_functions_algo_la-qsort.Tpo $(DEPDIR)/libscielementary_functions_algo_la-qsort.Plo
@@ -1650,13 +1627,6 @@ libscielementary_functions_algo_la-sub_vector.lo: src/c/sub_vector.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscielementary_functions_algo_la-sub_vector.lo `test -f 'src/c/sub_vector.c' || echo '$(srcdir)/'`src/c/sub_vector.c
 
-libscielementary_functions_la-sci_matrix.lo: sci_gateway/c/sci_matrix.c
-@am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscielementary_functions_la-sci_matrix.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_matrix.Tpo -c -o libscielementary_functions_la-sci_matrix.lo `test -f 'sci_gateway/c/sci_matrix.c' || echo '$(srcdir)/'`sci_gateway/c/sci_matrix.c
-@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_matrix.Tpo $(DEPDIR)/libscielementary_functions_la-sci_matrix.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='sci_gateway/c/sci_matrix.c' object='libscielementary_functions_la-sci_matrix.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscielementary_functions_la-sci_matrix.lo `test -f 'sci_gateway/c/sci_matrix.c' || echo '$(srcdir)/'`sci_gateway/c/sci_matrix.c
-
 libscielementary_functions_la-sci_prod.lo: sci_gateway/c/sci_prod.c
 @am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscielementary_functions_la-sci_prod.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_prod.Tpo -c -o libscielementary_functions_la-sci_prod.lo `test -f 'sci_gateway/c/sci_prod.c' || echo '$(srcdir)/'`sci_gateway/c/sci_prod.c
 @am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_prod.Tpo $(DEPDIR)/libscielementary_functions_la-sci_prod.Plo
@@ -1664,13 +1634,6 @@ libscielementary_functions_la-sci_prod.lo: sci_gateway/c/sci_prod.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscielementary_functions_la-sci_prod.lo `test -f 'sci_gateway/c/sci_prod.c' || echo '$(srcdir)/'`sci_gateway/c/sci_prod.c
 
-libscielementary_functions_la-sci_expm.lo: sci_gateway/c/sci_expm.c
-@am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscielementary_functions_la-sci_expm.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_expm.Tpo -c -o libscielementary_functions_la-sci_expm.lo `test -f 'sci_gateway/c/sci_expm.c' || echo '$(srcdir)/'`sci_gateway/c/sci_expm.c
-@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_expm.Tpo $(DEPDIR)/libscielementary_functions_la-sci_expm.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='sci_gateway/c/sci_expm.c' object='libscielementary_functions_la-sci_expm.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscielementary_functions_la-sci_expm.lo `test -f 'sci_gateway/c/sci_expm.c' || echo '$(srcdir)/'`sci_gateway/c/sci_expm.c
-
 libscielementary_functions_la-sci_tril.lo: sci_gateway/c/sci_tril.c
 @am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscielementary_functions_la-sci_tril.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_tril.Tpo -c -o libscielementary_functions_la-sci_tril.lo `test -f 'sci_gateway/c/sci_tril.c' || echo '$(srcdir)/'`sci_gateway/c/sci_tril.c
 @am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_tril.Tpo $(DEPDIR)/libscielementary_functions_la-sci_tril.Plo
@@ -1678,55 +1641,6 @@ libscielementary_functions_la-sci_tril.lo: sci_gateway/c/sci_tril.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscielementary_functions_la-sci_tril.lo `test -f 'sci_gateway/c/sci_tril.c' || echo '$(srcdir)/'`sci_gateway/c/sci_tril.c
 
-libscielementary_functions_la-sci_ceil.lo: sci_gateway/c/sci_ceil.c
-@am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscielementary_functions_la-sci_ceil.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_ceil.Tpo -c -o libscielementary_functions_la-sci_ceil.lo `test -f 'sci_gateway/c/sci_ceil.c' || echo '$(srcdir)/'`sci_gateway/c/sci_ceil.c
-@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_ceil.Tpo $(DEPDIR)/libscielementary_functions_la-sci_ceil.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='sci_gateway/c/sci_ceil.c' object='libscielementary_functions_la-sci_ceil.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscielementary_functions_la-sci_ceil.lo `test -f 'sci_gateway/c/sci_ceil.c' || echo '$(srcdir)/'`sci_gateway/c/sci_ceil.c
-
-libscielementary_functions_la-sci_imag.lo: sci_gateway/c/sci_imag.c
-@am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscielementary_functions_la-sci_imag.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_imag.Tpo -c -o libscielementary_functions_la-sci_imag.lo `test -f 'sci_gateway/c/sci_imag.c' || echo '$(srcdir)/'`sci_gateway/c/sci_imag.c
-@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_imag.Tpo $(DEPDIR)/libscielementary_functions_la-sci_imag.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='sci_gateway/c/sci_imag.c' object='libscielementary_functions_la-sci_imag.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscielementary_functions_la-sci_imag.lo `test -f 'sci_gateway/c/sci_imag.c' || echo '$(srcdir)/'`sci_gateway/c/sci_imag.c
-
-libscielementary_functions_la-sci_log.lo: sci_gateway/c/sci_log.c
-@am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscielementary_functions_la-sci_log.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_log.Tpo -c -o libscielementary_functions_la-sci_log.lo `test -f 'sci_gateway/c/sci_log.c' || echo '$(srcdir)/'`sci_gateway/c/sci_log.c
-@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_log.Tpo $(DEPDIR)/libscielementary_functions_la-sci_log.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='sci_gateway/c/sci_log.c' object='libscielementary_functions_la-sci_log.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscielementary_functions_la-sci_log.lo `test -f 'sci_gateway/c/sci_log.c' || echo '$(srcdir)/'`sci_gateway/c/sci_log.c
-
-libscielementary_functions_la-sci_log1p.lo: sci_gateway/c/sci_log1p.c
-@am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscielementary_functions_la-sci_log1p.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_log1p.Tpo -c -o libscielementary_functions_la-sci_log1p.lo `test -f 'sci_gateway/c/sci_log1p.c' || echo '$(srcdir)/'`sci_gateway/c/sci_log1p.c
-@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_log1p.Tpo $(DEPDIR)/libscielementary_functions_la-sci_log1p.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='sci_gateway/c/sci_log1p.c' object='libscielementary_functions_la-sci_log1p.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscielementary_functions_la-sci_log1p.lo `test -f 'sci_gateway/c/sci_log1p.c' || echo '$(srcdir)/'`sci_gateway/c/sci_log1p.c
-
-libscielementary_functions_la-sci_clean.lo: sci_gateway/c/sci_clean.c
-@am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscielementary_functions_la-sci_clean.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_clean.Tpo -c -o libscielementary_functions_la-sci_clean.lo `test -f 'sci_gateway/c/sci_clean.c' || echo '$(srcdir)/'`sci_gateway/c/sci_clean.c
-@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_clean.Tpo $(DEPDIR)/libscielementary_functions_la-sci_clean.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='sci_gateway/c/sci_clean.c' object='libscielementary_functions_la-sci_clean.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscielementary_functions_la-sci_clean.lo `test -f 'sci_gateway/c/sci_clean.c' || echo '$(srcdir)/'`sci_gateway/c/sci_clean.c
-
-libscielementary_functions_la-sci_tan.lo: sci_gateway/c/sci_tan.c
-@am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscielementary_functions_la-sci_tan.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_tan.Tpo -c -o libscielementary_functions_la-sci_tan.lo `test -f 'sci_gateway/c/sci_tan.c' || echo '$(srcdir)/'`sci_gateway/c/sci_tan.c
-@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_tan.Tpo $(DEPDIR)/libscielementary_functions_la-sci_tan.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='sci_gateway/c/sci_tan.c' object='libscielementary_functions_la-sci_tan.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscielementary_functions_la-sci_tan.lo `test -f 'sci_gateway/c/sci_tan.c' || echo '$(srcdir)/'`sci_gateway/c/sci_tan.c
-
-libscielementary_functions_la-sci_atan.lo: sci_gateway/c/sci_atan.c
-@am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscielementary_functions_la-sci_atan.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_atan.Tpo -c -o libscielementary_functions_la-sci_atan.lo `test -f 'sci_gateway/c/sci_atan.c' || echo '$(srcdir)/'`sci_gateway/c/sci_atan.c
-@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_atan.Tpo $(DEPDIR)/libscielementary_functions_la-sci_atan.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='sci_gateway/c/sci_atan.c' object='libscielementary_functions_la-sci_atan.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscielementary_functions_la-sci_atan.lo `test -f 'sci_gateway/c/sci_atan.c' || echo '$(srcdir)/'`sci_gateway/c/sci_atan.c
-
 libscielementary_functions_la-sci_triu.lo: sci_gateway/c/sci_triu.c
 @am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscielementary_functions_la-sci_triu.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_triu.Tpo -c -o libscielementary_functions_la-sci_triu.lo `test -f 'sci_gateway/c/sci_triu.c' || echo '$(srcdir)/'`sci_gateway/c/sci_triu.c
 @am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_triu.Tpo $(DEPDIR)/libscielementary_functions_la-sci_triu.Plo
@@ -1734,34 +1648,6 @@ libscielementary_functions_la-sci_triu.lo: sci_gateway/c/sci_triu.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscielementary_functions_la-sci_triu.lo `test -f 'sci_gateway/c/sci_triu.c' || echo '$(srcdir)/'`sci_gateway/c/sci_triu.c
 
-libscielementary_functions_la-sci_frexp.lo: sci_gateway/c/sci_frexp.c
-@am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscielementary_functions_la-sci_frexp.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_frexp.Tpo -c -o libscielementary_functions_la-sci_frexp.lo `test -f 'sci_gateway/c/sci_frexp.c' || echo '$(srcdir)/'`sci_gateway/c/sci_frexp.c
-@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_frexp.Tpo $(DEPDIR)/libscielementary_functions_la-sci_frexp.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='sci_gateway/c/sci_frexp.c' object='libscielementary_functions_la-sci_frexp.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscielementary_functions_la-sci_frexp.lo `test -f 'sci_gateway/c/sci_frexp.c' || echo '$(srcdir)/'`sci_gateway/c/sci_frexp.c
-
-libscielementary_functions_la-sci_acos.lo: sci_gateway/c/sci_acos.c
-@am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscielementary_functions_la-sci_acos.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_acos.Tpo -c -o libscielementary_functions_la-sci_acos.lo `test -f 'sci_gateway/c/sci_acos.c' || echo '$(srcdir)/'`sci_gateway/c/sci_acos.c
-@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_acos.Tpo $(DEPDIR)/libscielementary_functions_la-sci_acos.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='sci_gateway/c/sci_acos.c' object='libscielementary_functions_la-sci_acos.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscielementary_functions_la-sci_acos.lo `test -f 'sci_gateway/c/sci_acos.c' || echo '$(srcdir)/'`sci_gateway/c/sci_acos.c
-
-libscielementary_functions_la-sci_cos.lo: sci_gateway/c/sci_cos.c
-@am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscielementary_functions_la-sci_cos.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_cos.Tpo -c -o libscielementary_functions_la-sci_cos.lo `test -f 'sci_gateway/c/sci_cos.c' || echo '$(srcdir)/'`sci_gateway/c/sci_cos.c
-@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_cos.Tpo $(DEPDIR)/libscielementary_functions_la-sci_cos.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='sci_gateway/c/sci_cos.c' object='libscielementary_functions_la-sci_cos.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscielementary_functions_la-sci_cos.lo `test -f 'sci_gateway/c/sci_cos.c' || echo '$(srcdir)/'`sci_gateway/c/sci_cos.c
-
-libscielementary_functions_la-sci_sin.lo: sci_gateway/c/sci_sin.c
-@am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscielementary_functions_la-sci_sin.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_sin.Tpo -c -o libscielementary_functions_la-sci_sin.lo `test -f 'sci_gateway/c/sci_sin.c' || echo '$(srcdir)/'`sci_gateway/c/sci_sin.c
-@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_sin.Tpo $(DEPDIR)/libscielementary_functions_la-sci_sin.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='sci_gateway/c/sci_sin.c' object='libscielementary_functions_la-sci_sin.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscielementary_functions_la-sci_sin.lo `test -f 'sci_gateway/c/sci_sin.c' || echo '$(srcdir)/'`sci_gateway/c/sci_sin.c
-
 libscielementary_functions_la-sci_sqrt.lo: sci_gateway/c/sci_sqrt.c
 @am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscielementary_functions_la-sci_sqrt.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_sqrt.Tpo -c -o libscielementary_functions_la-sci_sqrt.lo `test -f 'sci_gateway/c/sci_sqrt.c' || echo '$(srcdir)/'`sci_gateway/c/sci_sqrt.c
 @am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_sqrt.Tpo $(DEPDIR)/libscielementary_functions_la-sci_sqrt.Plo
@@ -1769,13 +1655,6 @@ libscielementary_functions_la-sci_sqrt.lo: sci_gateway/c/sci_sqrt.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscielementary_functions_la-sci_sqrt.lo `test -f 'sci_gateway/c/sci_sqrt.c' || echo '$(srcdir)/'`sci_gateway/c/sci_sqrt.c
 
-libscielementary_functions_la-sci_asin.lo: sci_gateway/c/sci_asin.c
-@am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscielementary_functions_la-sci_asin.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_asin.Tpo -c -o libscielementary_functions_la-sci_asin.lo `test -f 'sci_gateway/c/sci_asin.c' || echo '$(srcdir)/'`sci_gateway/c/sci_asin.c
-@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_asin.Tpo $(DEPDIR)/libscielementary_functions_la-sci_asin.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='sci_gateway/c/sci_asin.c' object='libscielementary_functions_la-sci_asin.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscielementary_functions_la-sci_asin.lo `test -f 'sci_gateway/c/sci_asin.c' || echo '$(srcdir)/'`sci_gateway/c/sci_asin.c
-
 libscielementary_functions_la-sci_sign.lo: sci_gateway/c/sci_sign.c
 @am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscielementary_functions_la-sci_sign.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_sign.Tpo -c -o libscielementary_functions_la-sci_sign.lo `test -f 'sci_gateway/c/sci_sign.c' || echo '$(srcdir)/'`sci_gateway/c/sci_sign.c
 @am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_sign.Tpo $(DEPDIR)/libscielementary_functions_la-sci_sign.Plo
@@ -1783,13 +1662,6 @@ libscielementary_functions_la-sci_sign.lo: sci_gateway/c/sci_sign.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscielementary_functions_la-sci_sign.lo `test -f 'sci_gateway/c/sci_sign.c' || echo '$(srcdir)/'`sci_gateway/c/sci_sign.c
 
-libscielementary_functions_la-sci_rat.lo: sci_gateway/c/sci_rat.c
-@am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscielementary_functions_la-sci_rat.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_rat.Tpo -c -o libscielementary_functions_la-sci_rat.lo `test -f 'sci_gateway/c/sci_rat.c' || echo '$(srcdir)/'`sci_gateway/c/sci_rat.c
-@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_rat.Tpo $(DEPDIR)/libscielementary_functions_la-sci_rat.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='sci_gateway/c/sci_rat.c' object='libscielementary_functions_la-sci_rat.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscielementary_functions_la-sci_rat.lo `test -f 'sci_gateway/c/sci_rat.c' || echo '$(srcdir)/'`sci_gateway/c/sci_rat.c
-
 libscielementary_functions_la-gw_elementary_functions.lo: sci_gateway/c/gw_elementary_functions.c
 @am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscielementary_functions_la-gw_elementary_functions.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-gw_elementary_functions.Tpo -c -o libscielementary_functions_la-gw_elementary_functions.lo `test -f 'sci_gateway/c/gw_elementary_functions.c' || echo '$(srcdir)/'`sci_gateway/c/gw_elementary_functions.c
 @am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/libscielementary_functions_la-gw_elementary_functions.Tpo $(DEPDIR)/libscielementary_functions_la-gw_elementary_functions.Plo
@@ -1804,13 +1676,6 @@ libscielementary_functions_la-sci_number_properties.lo: sci_gateway/c/sci_number
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscielementary_functions_la-sci_number_properties.lo `test -f 'sci_gateway/c/sci_number_properties.c' || echo '$(srcdir)/'`sci_gateway/c/sci_number_properties.c
 
-libscielementary_functions_la-sci_diag.lo: sci_gateway/c/sci_diag.c
-@am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscielementary_functions_la-sci_diag.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_diag.Tpo -c -o libscielementary_functions_la-sci_diag.lo `test -f 'sci_gateway/c/sci_diag.c' || echo '$(srcdir)/'`sci_gateway/c/sci_diag.c
-@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_diag.Tpo $(DEPDIR)/libscielementary_functions_la-sci_diag.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='sci_gateway/c/sci_diag.c' object='libscielementary_functions_la-sci_diag.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscielementary_functions_la-sci_diag.lo `test -f 'sci_gateway/c/sci_diag.c' || echo '$(srcdir)/'`sci_gateway/c/sci_diag.c
-
 libscielementary_functions_la-sci_testmatrix.lo: sci_gateway/c/sci_testmatrix.c
 @am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscielementary_functions_la-sci_testmatrix.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_testmatrix.Tpo -c -o libscielementary_functions_la-sci_testmatrix.lo `test -f 'sci_gateway/c/sci_testmatrix.c' || echo '$(srcdir)/'`sci_gateway/c/sci_testmatrix.c
 @am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_testmatrix.Tpo $(DEPDIR)/libscielementary_functions_la-sci_testmatrix.Plo
@@ -1818,13 +1683,6 @@ libscielementary_functions_la-sci_testmatrix.lo: sci_gateway/c/sci_testmatrix.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscielementary_functions_la-sci_testmatrix.lo `test -f 'sci_gateway/c/sci_testmatrix.c' || echo '$(srcdir)/'`sci_gateway/c/sci_testmatrix.c
 
-libscielementary_functions_la-sci_abs.lo: sci_gateway/c/sci_abs.c
-@am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscielementary_functions_la-sci_abs.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_abs.Tpo -c -o libscielementary_functions_la-sci_abs.lo `test -f 'sci_gateway/c/sci_abs.c' || echo '$(srcdir)/'`sci_gateway/c/sci_abs.c
-@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_abs.Tpo $(DEPDIR)/libscielementary_functions_la-sci_abs.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='sci_gateway/c/sci_abs.c' object='libscielementary_functions_la-sci_abs.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscielementary_functions_la-sci_abs.lo `test -f 'sci_gateway/c/sci_abs.c' || echo '$(srcdir)/'`sci_gateway/c/sci_abs.c
-
 libscielementary_functions_la-sci_spones.lo: sci_gateway/c/sci_spones.c
 @am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscielementary_functions_la-sci_spones.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_spones.Tpo -c -o libscielementary_functions_la-sci_spones.lo `test -f 'sci_gateway/c/sci_spones.c' || echo '$(srcdir)/'`sci_gateway/c/sci_spones.c
 @am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_spones.Tpo $(DEPDIR)/libscielementary_functions_la-sci_spones.Plo
@@ -1832,34 +1690,6 @@ libscielementary_functions_la-sci_spones.lo: sci_gateway/c/sci_spones.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscielementary_functions_la-sci_spones.lo `test -f 'sci_gateway/c/sci_spones.c' || echo '$(srcdir)/'`sci_gateway/c/sci_spones.c
 
-libscielementary_functions_la-sci_kron.lo: sci_gateway/c/sci_kron.c
-@am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscielementary_functions_la-sci_kron.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_kron.Tpo -c -o libscielementary_functions_la-sci_kron.lo `test -f 'sci_gateway/c/sci_kron.c' || echo '$(srcdir)/'`sci_gateway/c/sci_kron.c
-@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_kron.Tpo $(DEPDIR)/libscielementary_functions_la-sci_kron.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='sci_gateway/c/sci_kron.c' object='libscielementary_functions_la-sci_kron.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscielementary_functions_la-sci_kron.lo `test -f 'sci_gateway/c/sci_kron.c' || echo '$(srcdir)/'`sci_gateway/c/sci_kron.c
-
-libscielementary_functions_la-sci_cumprod.lo: sci_gateway/c/sci_cumprod.c
-@am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscielementary_functions_la-sci_cumprod.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_cumprod.Tpo -c -o libscielementary_functions_la-sci_cumprod.lo `test -f 'sci_gateway/c/sci_cumprod.c' || echo '$(srcdir)/'`sci_gateway/c/sci_cumprod.c
-@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_cumprod.Tpo $(DEPDIR)/libscielementary_functions_la-sci_cumprod.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='sci_gateway/c/sci_cumprod.c' object='libscielementary_functions_la-sci_cumprod.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscielementary_functions_la-sci_cumprod.lo `test -f 'sci_gateway/c/sci_cumprod.c' || echo '$(srcdir)/'`sci_gateway/c/sci_cumprod.c
-
-libscielementary_functions_la-sci_cumsum.lo: sci_gateway/c/sci_cumsum.c
-@am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscielementary_functions_la-sci_cumsum.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_cumsum.Tpo -c -o libscielementary_functions_la-sci_cumsum.lo `test -f 'sci_gateway/c/sci_cumsum.c' || echo '$(srcdir)/'`sci_gateway/c/sci_cumsum.c
-@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_cumsum.Tpo $(DEPDIR)/libscielementary_functions_la-sci_cumsum.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='sci_gateway/c/sci_cumsum.c' object='libscielementary_functions_la-sci_cumsum.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscielementary_functions_la-sci_cumsum.lo `test -f 'sci_gateway/c/sci_cumsum.c' || echo '$(srcdir)/'`sci_gateway/c/sci_cumsum.c
-
-libscielementary_functions_la-sci_dsearch.lo: sci_gateway/c/sci_dsearch.c
-@am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscielementary_functions_la-sci_dsearch.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_dsearch.Tpo -c -o libscielementary_functions_la-sci_dsearch.lo `test -f 'sci_gateway/c/sci_dsearch.c' || echo '$(srcdir)/'`sci_gateway/c/sci_dsearch.c
-@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_dsearch.Tpo $(DEPDIR)/libscielementary_functions_la-sci_dsearch.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='sci_gateway/c/sci_dsearch.c' object='libscielementary_functions_la-sci_dsearch.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscielementary_functions_la-sci_dsearch.lo `test -f 'sci_gateway/c/sci_dsearch.c' || echo '$(srcdir)/'`sci_gateway/c/sci_dsearch.c
-
 libscielementary_functions_la-sci_nearfloat.lo: sci_gateway/c/sci_nearfloat.c
 @am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscielementary_functions_la-sci_nearfloat.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_nearfloat.Tpo -c -o libscielementary_functions_la-sci_nearfloat.lo `test -f 'sci_gateway/c/sci_nearfloat.c' || echo '$(srcdir)/'`sci_gateway/c/sci_nearfloat.c
 @am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_nearfloat.Tpo $(DEPDIR)/libscielementary_functions_la-sci_nearfloat.Plo
@@ -1867,20 +1697,6 @@ libscielementary_functions_la-sci_nearfloat.lo: sci_gateway/c/sci_nearfloat.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscielementary_functions_la-sci_nearfloat.lo `test -f 'sci_gateway/c/sci_nearfloat.c' || echo '$(srcdir)/'`sci_gateway/c/sci_nearfloat.c
 
-libscielementary_functions_la-sci_isreal.lo: sci_gateway/c/sci_isreal.c
-@am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscielementary_functions_la-sci_isreal.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_isreal.Tpo -c -o libscielementary_functions_la-sci_isreal.lo `test -f 'sci_gateway/c/sci_isreal.c' || echo '$(srcdir)/'`sci_gateway/c/sci_isreal.c
-@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_isreal.Tpo $(DEPDIR)/libscielementary_functions_la-sci_isreal.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='sci_gateway/c/sci_isreal.c' object='libscielementary_functions_la-sci_isreal.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscielementary_functions_la-sci_isreal.lo `test -f 'sci_gateway/c/sci_isreal.c' || echo '$(srcdir)/'`sci_gateway/c/sci_isreal.c
-
-libscielementary_functions_la-sci_floor.lo: sci_gateway/c/sci_floor.c
-@am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscielementary_functions_la-sci_floor.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_floor.Tpo -c -o libscielementary_functions_la-sci_floor.lo `test -f 'sci_gateway/c/sci_floor.c' || echo '$(srcdir)/'`sci_gateway/c/sci_floor.c
-@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_floor.Tpo $(DEPDIR)/libscielementary_functions_la-sci_floor.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='sci_gateway/c/sci_floor.c' object='libscielementary_functions_la-sci_floor.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscielementary_functions_la-sci_floor.lo `test -f 'sci_gateway/c/sci_floor.c' || echo '$(srcdir)/'`sci_gateway/c/sci_floor.c
-
 libscielementary_functions_la-sci_real.lo: sci_gateway/c/sci_real.c
 @am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscielementary_functions_la-sci_real.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_real.Tpo -c -o libscielementary_functions_la-sci_real.lo `test -f 'sci_gateway/c/sci_real.c' || echo '$(srcdir)/'`sci_gateway/c/sci_real.c
 @am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_real.Tpo $(DEPDIR)/libscielementary_functions_la-sci_real.Plo
@@ -1895,48 +1711,6 @@ libscielementary_functions_la-sci_round.lo: sci_gateway/c/sci_round.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscielementary_functions_la-sci_round.lo `test -f 'sci_gateway/c/sci_round.c' || echo '$(srcdir)/'`sci_gateway/c/sci_round.c
 
-libscielementary_functions_la-sci_conj.lo: sci_gateway/c/sci_conj.c
-@am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscielementary_functions_la-sci_conj.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_conj.Tpo -c -o libscielementary_functions_la-sci_conj.lo `test -f 'sci_gateway/c/sci_conj.c' || echo '$(srcdir)/'`sci_gateway/c/sci_conj.c
-@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_conj.Tpo $(DEPDIR)/libscielementary_functions_la-sci_conj.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='sci_gateway/c/sci_conj.c' object='libscielementary_functions_la-sci_conj.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscielementary_functions_la-sci_conj.lo `test -f 'sci_gateway/c/sci_conj.c' || echo '$(srcdir)/'`sci_gateway/c/sci_conj.c
-
-libscielementary_functions_la-sci_int.lo: sci_gateway/c/sci_int.c
-@am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscielementary_functions_la-sci_int.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_int.Tpo -c -o libscielementary_functions_la-sci_int.lo `test -f 'sci_gateway/c/sci_int.c' || echo '$(srcdir)/'`sci_gateway/c/sci_int.c
-@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_int.Tpo $(DEPDIR)/libscielementary_functions_la-sci_int.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='sci_gateway/c/sci_int.c' object='libscielementary_functions_la-sci_int.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscielementary_functions_la-sci_int.lo `test -f 'sci_gateway/c/sci_int.c' || echo '$(srcdir)/'`sci_gateway/c/sci_int.c
-
-libscielementary_functions_la-sci_imult.lo: sci_gateway/c/sci_imult.c
-@am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscielementary_functions_la-sci_imult.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_imult.Tpo -c -o libscielementary_functions_la-sci_imult.lo `test -f 'sci_gateway/c/sci_imult.c' || echo '$(srcdir)/'`sci_gateway/c/sci_imult.c
-@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_imult.Tpo $(DEPDIR)/libscielementary_functions_la-sci_imult.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='sci_gateway/c/sci_imult.c' object='libscielementary_functions_la-sci_imult.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscielementary_functions_la-sci_imult.lo `test -f 'sci_gateway/c/sci_imult.c' || echo '$(srcdir)/'`sci_gateway/c/sci_imult.c
-
-libscielementary_functions_la-sci_exp.lo: sci_gateway/c/sci_exp.c
-@am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscielementary_functions_la-sci_exp.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_exp.Tpo -c -o libscielementary_functions_la-sci_exp.lo `test -f 'sci_gateway/c/sci_exp.c' || echo '$(srcdir)/'`sci_gateway/c/sci_exp.c
-@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_exp.Tpo $(DEPDIR)/libscielementary_functions_la-sci_exp.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='sci_gateway/c/sci_exp.c' object='libscielementary_functions_la-sci_exp.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscielementary_functions_la-sci_exp.lo `test -f 'sci_gateway/c/sci_exp.c' || echo '$(srcdir)/'`sci_gateway/c/sci_exp.c
-
-libscielementary_functions_la-sci_maxi.lo: sci_gateway/c/sci_maxi.c
-@am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscielementary_functions_la-sci_maxi.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_maxi.Tpo -c -o libscielementary_functions_la-sci_maxi.lo `test -f 'sci_gateway/c/sci_maxi.c' || echo '$(srcdir)/'`sci_gateway/c/sci_maxi.c
-@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_maxi.Tpo $(DEPDIR)/libscielementary_functions_la-sci_maxi.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='sci_gateway/c/sci_maxi.c' object='libscielementary_functions_la-sci_maxi.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscielementary_functions_la-sci_maxi.lo `test -f 'sci_gateway/c/sci_maxi.c' || echo '$(srcdir)/'`sci_gateway/c/sci_maxi.c
-
-libscielementary_functions_la-sci_gsort.lo: sci_gateway/c/sci_gsort.c
-@am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscielementary_functions_la-sci_gsort.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_gsort.Tpo -c -o libscielementary_functions_la-sci_gsort.lo `test -f 'sci_gateway/c/sci_gsort.c' || echo '$(srcdir)/'`sci_gateway/c/sci_gsort.c
-@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_gsort.Tpo $(DEPDIR)/libscielementary_functions_la-sci_gsort.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='sci_gateway/c/sci_gsort.c' object='libscielementary_functions_la-sci_gsort.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libscielementary_functions_la-sci_gsort.lo `test -f 'sci_gateway/c/sci_gsort.c' || echo '$(srcdir)/'`sci_gateway/c/sci_gsort.c
-
 libscielementary_functions_la-sci_isequalbitwise.lo: sci_gateway/c/sci_isequalbitwise.c
 @am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libscielementary_functions_la-sci_isequalbitwise.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_isequalbitwise.Tpo -c -o libscielementary_functions_la-sci_isequalbitwise.lo `test -f 'sci_gateway/c/sci_isequalbitwise.c' || echo '$(srcdir)/'`sci_gateway/c/sci_isequalbitwise.c
 @am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_isequalbitwise.Tpo $(DEPDIR)/libscielementary_functions_la-sci_isequalbitwise.Plo
@@ -1972,6 +1746,48 @@ libscielementary_functions_algo_la-getmode.lo: src/cpp/getmode.cpp
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscielementary_functions_algo_la-getmode.lo `test -f 'src/cpp/getmode.cpp' || echo '$(srcdir)/'`src/cpp/getmode.cpp
 
+libscielementary_functions_algo_la-cumsum.lo: src/cpp/cumsum.cpp
+@am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscielementary_functions_algo_la-cumsum.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_algo_la-cumsum.Tpo -c -o libscielementary_functions_algo_la-cumsum.lo `test -f 'src/cpp/cumsum.cpp' || echo '$(srcdir)/'`src/cpp/cumsum.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libscielementary_functions_algo_la-cumsum.Tpo $(DEPDIR)/libscielementary_functions_algo_la-cumsum.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='src/cpp/cumsum.cpp' object='libscielementary_functions_algo_la-cumsum.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscielementary_functions_algo_la-cumsum.lo `test -f 'src/cpp/cumsum.cpp' || echo '$(srcdir)/'`src/cpp/cumsum.cpp
+
+libscielementary_functions_algo_la-cumprod.lo: src/cpp/cumprod.cpp
+@am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscielementary_functions_algo_la-cumprod.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_algo_la-cumprod.Tpo -c -o libscielementary_functions_algo_la-cumprod.lo `test -f 'src/cpp/cumprod.cpp' || echo '$(srcdir)/'`src/cpp/cumprod.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libscielementary_functions_algo_la-cumprod.Tpo $(DEPDIR)/libscielementary_functions_algo_la-cumprod.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='src/cpp/cumprod.cpp' object='libscielementary_functions_algo_la-cumprod.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscielementary_functions_algo_la-cumprod.lo `test -f 'src/cpp/cumprod.cpp' || echo '$(srcdir)/'`src/cpp/cumprod.cpp
+
+libscielementary_functions_algo_la-diag.lo: src/cpp/diag.cpp
+@am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscielementary_functions_algo_la-diag.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_algo_la-diag.Tpo -c -o libscielementary_functions_algo_la-diag.lo `test -f 'src/cpp/diag.cpp' || echo '$(srcdir)/'`src/cpp/diag.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libscielementary_functions_algo_la-diag.Tpo $(DEPDIR)/libscielementary_functions_algo_la-diag.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='src/cpp/diag.cpp' object='libscielementary_functions_algo_la-diag.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscielementary_functions_algo_la-diag.lo `test -f 'src/cpp/diag.cpp' || echo '$(srcdir)/'`src/cpp/diag.cpp
+
+libscielementary_functions_algo_la-gsort.lo: src/cpp/gsort.cpp
+@am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscielementary_functions_algo_la-gsort.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_algo_la-gsort.Tpo -c -o libscielementary_functions_algo_la-gsort.lo `test -f 'src/cpp/gsort.cpp' || echo '$(srcdir)/'`src/cpp/gsort.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libscielementary_functions_algo_la-gsort.Tpo $(DEPDIR)/libscielementary_functions_algo_la-gsort.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='src/cpp/gsort.cpp' object='libscielementary_functions_algo_la-gsort.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscielementary_functions_algo_la-gsort.lo `test -f 'src/cpp/gsort.cpp' || echo '$(srcdir)/'`src/cpp/gsort.cpp
+
+libscielementary_functions_algo_la-max.lo: src/cpp/max.cpp
+@am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscielementary_functions_algo_la-max.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_algo_la-max.Tpo -c -o libscielementary_functions_algo_la-max.lo `test -f 'src/cpp/max.cpp' || echo '$(srcdir)/'`src/cpp/max.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libscielementary_functions_algo_la-max.Tpo $(DEPDIR)/libscielementary_functions_algo_la-max.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='src/cpp/max.cpp' object='libscielementary_functions_algo_la-max.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscielementary_functions_algo_la-max.lo `test -f 'src/cpp/max.cpp' || echo '$(srcdir)/'`src/cpp/max.cpp
+
+libscielementary_functions_algo_la-min.lo: src/cpp/min.cpp
+@am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscielementary_functions_algo_la-min.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_algo_la-min.Tpo -c -o libscielementary_functions_algo_la-min.lo `test -f 'src/cpp/min.cpp' || echo '$(srcdir)/'`src/cpp/min.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libscielementary_functions_algo_la-min.Tpo $(DEPDIR)/libscielementary_functions_algo_la-min.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='src/cpp/min.cpp' object='libscielementary_functions_algo_la-min.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscielementary_functions_algo_la-min.lo `test -f 'src/cpp/min.cpp' || echo '$(srcdir)/'`src/cpp/min.cpp
+
 libscielementary_functions_la-sci_isequal.lo: sci_gateway/cpp/sci_isequal.cpp
 @am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscielementary_functions_la-sci_isequal.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_isequal.Tpo -c -o libscielementary_functions_la-sci_isequal.lo `test -f 'sci_gateway/cpp/sci_isequal.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_isequal.cpp
 @am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_isequal.Tpo $(DEPDIR)/libscielementary_functions_la-sci_isequal.Plo
@@ -2028,6 +1844,216 @@ libscielementary_functions_la-sci_ones.lo: sci_gateway/cpp/sci_ones.cpp
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscielementary_functions_la-sci_ones.lo `test -f 'sci_gateway/cpp/sci_ones.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_ones.cpp
 
+libscielementary_functions_la-sci_matrix.lo: sci_gateway/cpp/sci_matrix.cpp
+@am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscielementary_functions_la-sci_matrix.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_matrix.Tpo -c -o libscielementary_functions_la-sci_matrix.lo `test -f 'sci_gateway/cpp/sci_matrix.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_matrix.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_matrix.Tpo $(DEPDIR)/libscielementary_functions_la-sci_matrix.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='sci_gateway/cpp/sci_matrix.cpp' object='libscielementary_functions_la-sci_matrix.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscielementary_functions_la-sci_matrix.lo `test -f 'sci_gateway/cpp/sci_matrix.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_matrix.cpp
+
+libscielementary_functions_la-sci_abs.lo: sci_gateway/cpp/sci_abs.cpp
+@am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscielementary_functions_la-sci_abs.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_abs.Tpo -c -o libscielementary_functions_la-sci_abs.lo `test -f 'sci_gateway/cpp/sci_abs.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_abs.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_abs.Tpo $(DEPDIR)/libscielementary_functions_la-sci_abs.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='sci_gateway/cpp/sci_abs.cpp' object='libscielementary_functions_la-sci_abs.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscielementary_functions_la-sci_abs.lo `test -f 'sci_gateway/cpp/sci_abs.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_abs.cpp
+
+libscielementary_functions_la-sci_acos.lo: sci_gateway/cpp/sci_acos.cpp
+@am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscielementary_functions_la-sci_acos.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_acos.Tpo -c -o libscielementary_functions_la-sci_acos.lo `test -f 'sci_gateway/cpp/sci_acos.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_acos.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_acos.Tpo $(DEPDIR)/libscielementary_functions_la-sci_acos.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='sci_gateway/cpp/sci_acos.cpp' object='libscielementary_functions_la-sci_acos.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscielementary_functions_la-sci_acos.lo `test -f 'sci_gateway/cpp/sci_acos.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_acos.cpp
+
+libscielementary_functions_la-sci_asin.lo: sci_gateway/cpp/sci_asin.cpp
+@am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscielementary_functions_la-sci_asin.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_asin.Tpo -c -o libscielementary_functions_la-sci_asin.lo `test -f 'sci_gateway/cpp/sci_asin.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_asin.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_asin.Tpo $(DEPDIR)/libscielementary_functions_la-sci_asin.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='sci_gateway/cpp/sci_asin.cpp' object='libscielementary_functions_la-sci_asin.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscielementary_functions_la-sci_asin.lo `test -f 'sci_gateway/cpp/sci_asin.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_asin.cpp
+
+libscielementary_functions_la-sci_atan.lo: sci_gateway/cpp/sci_atan.cpp
+@am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscielementary_functions_la-sci_atan.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_atan.Tpo -c -o libscielementary_functions_la-sci_atan.lo `test -f 'sci_gateway/cpp/sci_atan.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_atan.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_atan.Tpo $(DEPDIR)/libscielementary_functions_la-sci_atan.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='sci_gateway/cpp/sci_atan.cpp' object='libscielementary_functions_la-sci_atan.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscielementary_functions_la-sci_atan.lo `test -f 'sci_gateway/cpp/sci_atan.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_atan.cpp
+
+libscielementary_functions_la-sci_ceil.lo: sci_gateway/cpp/sci_ceil.cpp
+@am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscielementary_functions_la-sci_ceil.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_ceil.Tpo -c -o libscielementary_functions_la-sci_ceil.lo `test -f 'sci_gateway/cpp/sci_ceil.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_ceil.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_ceil.Tpo $(DEPDIR)/libscielementary_functions_la-sci_ceil.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='sci_gateway/cpp/sci_ceil.cpp' object='libscielementary_functions_la-sci_ceil.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscielementary_functions_la-sci_ceil.lo `test -f 'sci_gateway/cpp/sci_ceil.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_ceil.cpp
+
+libscielementary_functions_la-sci_clean.lo: sci_gateway/cpp/sci_clean.cpp
+@am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscielementary_functions_la-sci_clean.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_clean.Tpo -c -o libscielementary_functions_la-sci_clean.lo `test -f 'sci_gateway/cpp/sci_clean.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_clean.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_clean.Tpo $(DEPDIR)/libscielementary_functions_la-sci_clean.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='sci_gateway/cpp/sci_clean.cpp' object='libscielementary_functions_la-sci_clean.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscielementary_functions_la-sci_clean.lo `test -f 'sci_gateway/cpp/sci_clean.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_clean.cpp
+
+libscielementary_functions_la-sci_conj.lo: sci_gateway/cpp/sci_conj.cpp
+@am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscielementary_functions_la-sci_conj.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_conj.Tpo -c -o libscielementary_functions_la-sci_conj.lo `test -f 'sci_gateway/cpp/sci_conj.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_conj.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_conj.Tpo $(DEPDIR)/libscielementary_functions_la-sci_conj.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='sci_gateway/cpp/sci_conj.cpp' object='libscielementary_functions_la-sci_conj.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscielementary_functions_la-sci_conj.lo `test -f 'sci_gateway/cpp/sci_conj.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_conj.cpp
+
+libscielementary_functions_la-sci_cos.lo: sci_gateway/cpp/sci_cos.cpp
+@am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscielementary_functions_la-sci_cos.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_cos.Tpo -c -o libscielementary_functions_la-sci_cos.lo `test -f 'sci_gateway/cpp/sci_cos.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_cos.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_cos.Tpo $(DEPDIR)/libscielementary_functions_la-sci_cos.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='sci_gateway/cpp/sci_cos.cpp' object='libscielementary_functions_la-sci_cos.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscielementary_functions_la-sci_cos.lo `test -f 'sci_gateway/cpp/sci_cos.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_cos.cpp
+
+libscielementary_functions_la-sci_sin.lo: sci_gateway/cpp/sci_sin.cpp
+@am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscielementary_functions_la-sci_sin.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_sin.Tpo -c -o libscielementary_functions_la-sci_sin.lo `test -f 'sci_gateway/cpp/sci_sin.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_sin.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_sin.Tpo $(DEPDIR)/libscielementary_functions_la-sci_sin.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='sci_gateway/cpp/sci_sin.cpp' object='libscielementary_functions_la-sci_sin.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscielementary_functions_la-sci_sin.lo `test -f 'sci_gateway/cpp/sci_sin.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_sin.cpp
+
+libscielementary_functions_la-sci_tan.lo: sci_gateway/cpp/sci_tan.cpp
+@am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscielementary_functions_la-sci_tan.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_tan.Tpo -c -o libscielementary_functions_la-sci_tan.lo `test -f 'sci_gateway/cpp/sci_tan.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_tan.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_tan.Tpo $(DEPDIR)/libscielementary_functions_la-sci_tan.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='sci_gateway/cpp/sci_tan.cpp' object='libscielementary_functions_la-sci_tan.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscielementary_functions_la-sci_tan.lo `test -f 'sci_gateway/cpp/sci_tan.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_tan.cpp
+
+libscielementary_functions_la-sci_cumsum.lo: sci_gateway/cpp/sci_cumsum.cpp
+@am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscielementary_functions_la-sci_cumsum.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_cumsum.Tpo -c -o libscielementary_functions_la-sci_cumsum.lo `test -f 'sci_gateway/cpp/sci_cumsum.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_cumsum.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_cumsum.Tpo $(DEPDIR)/libscielementary_functions_la-sci_cumsum.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='sci_gateway/cpp/sci_cumsum.cpp' object='libscielementary_functions_la-sci_cumsum.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscielementary_functions_la-sci_cumsum.lo `test -f 'sci_gateway/cpp/sci_cumsum.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_cumsum.cpp
+
+libscielementary_functions_la-sci_cumprod.lo: sci_gateway/cpp/sci_cumprod.cpp
+@am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscielementary_functions_la-sci_cumprod.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_cumprod.Tpo -c -o libscielementary_functions_la-sci_cumprod.lo `test -f 'sci_gateway/cpp/sci_cumprod.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_cumprod.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_cumprod.Tpo $(DEPDIR)/libscielementary_functions_la-sci_cumprod.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='sci_gateway/cpp/sci_cumprod.cpp' object='libscielementary_functions_la-sci_cumprod.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscielementary_functions_la-sci_cumprod.lo `test -f 'sci_gateway/cpp/sci_cumprod.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_cumprod.cpp
+
+libscielementary_functions_la-sci_diag.lo: sci_gateway/cpp/sci_diag.cpp
+@am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscielementary_functions_la-sci_diag.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_diag.Tpo -c -o libscielementary_functions_la-sci_diag.lo `test -f 'sci_gateway/cpp/sci_diag.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_diag.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_diag.Tpo $(DEPDIR)/libscielementary_functions_la-sci_diag.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='sci_gateway/cpp/sci_diag.cpp' object='libscielementary_functions_la-sci_diag.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscielementary_functions_la-sci_diag.lo `test -f 'sci_gateway/cpp/sci_diag.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_diag.cpp
+
+libscielementary_functions_la-sci_dsearch.lo: sci_gateway/cpp/sci_dsearch.cpp
+@am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscielementary_functions_la-sci_dsearch.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_dsearch.Tpo -c -o libscielementary_functions_la-sci_dsearch.lo `test -f 'sci_gateway/cpp/sci_dsearch.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_dsearch.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_dsearch.Tpo $(DEPDIR)/libscielementary_functions_la-sci_dsearch.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='sci_gateway/cpp/sci_dsearch.cpp' object='libscielementary_functions_la-sci_dsearch.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscielementary_functions_la-sci_dsearch.lo `test -f 'sci_gateway/cpp/sci_dsearch.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_dsearch.cpp
+
+libscielementary_functions_la-sci_exp.lo: sci_gateway/cpp/sci_exp.cpp
+@am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscielementary_functions_la-sci_exp.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_exp.Tpo -c -o libscielementary_functions_la-sci_exp.lo `test -f 'sci_gateway/cpp/sci_exp.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_exp.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_exp.Tpo $(DEPDIR)/libscielementary_functions_la-sci_exp.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='sci_gateway/cpp/sci_exp.cpp' object='libscielementary_functions_la-sci_exp.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscielementary_functions_la-sci_exp.lo `test -f 'sci_gateway/cpp/sci_exp.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_exp.cpp
+
+libscielementary_functions_la-sci_expm.lo: sci_gateway/cpp/sci_expm.cpp
+@am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscielementary_functions_la-sci_expm.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_expm.Tpo -c -o libscielementary_functions_la-sci_expm.lo `test -f 'sci_gateway/cpp/sci_expm.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_expm.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_expm.Tpo $(DEPDIR)/libscielementary_functions_la-sci_expm.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='sci_gateway/cpp/sci_expm.cpp' object='libscielementary_functions_la-sci_expm.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscielementary_functions_la-sci_expm.lo `test -f 'sci_gateway/cpp/sci_expm.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_expm.cpp
+
+libscielementary_functions_la-sci_floor.lo: sci_gateway/cpp/sci_floor.cpp
+@am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscielementary_functions_la-sci_floor.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_floor.Tpo -c -o libscielementary_functions_la-sci_floor.lo `test -f 'sci_gateway/cpp/sci_floor.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_floor.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_floor.Tpo $(DEPDIR)/libscielementary_functions_la-sci_floor.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='sci_gateway/cpp/sci_floor.cpp' object='libscielementary_functions_la-sci_floor.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscielementary_functions_la-sci_floor.lo `test -f 'sci_gateway/cpp/sci_floor.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_floor.cpp
+
+libscielementary_functions_la-sci_frexp.lo: sci_gateway/cpp/sci_frexp.cpp
+@am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscielementary_functions_la-sci_frexp.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_frexp.Tpo -c -o libscielementary_functions_la-sci_frexp.lo `test -f 'sci_gateway/cpp/sci_frexp.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_frexp.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_frexp.Tpo $(DEPDIR)/libscielementary_functions_la-sci_frexp.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='sci_gateway/cpp/sci_frexp.cpp' object='libscielementary_functions_la-sci_frexp.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscielementary_functions_la-sci_frexp.lo `test -f 'sci_gateway/cpp/sci_frexp.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_frexp.cpp
+
+libscielementary_functions_la-sci_gsort.lo: sci_gateway/cpp/sci_gsort.cpp
+@am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscielementary_functions_la-sci_gsort.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_gsort.Tpo -c -o libscielementary_functions_la-sci_gsort.lo `test -f 'sci_gateway/cpp/sci_gsort.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_gsort.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_gsort.Tpo $(DEPDIR)/libscielementary_functions_la-sci_gsort.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='sci_gateway/cpp/sci_gsort.cpp' object='libscielementary_functions_la-sci_gsort.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscielementary_functions_la-sci_gsort.lo `test -f 'sci_gateway/cpp/sci_gsort.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_gsort.cpp
+
+libscielementary_functions_la-sci_imag.lo: sci_gateway/cpp/sci_imag.cpp
+@am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscielementary_functions_la-sci_imag.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_imag.Tpo -c -o libscielementary_functions_la-sci_imag.lo `test -f 'sci_gateway/cpp/sci_imag.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_imag.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_imag.Tpo $(DEPDIR)/libscielementary_functions_la-sci_imag.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='sci_gateway/cpp/sci_imag.cpp' object='libscielementary_functions_la-sci_imag.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscielementary_functions_la-sci_imag.lo `test -f 'sci_gateway/cpp/sci_imag.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_imag.cpp
+
+libscielementary_functions_la-sci_imult.lo: sci_gateway/cpp/sci_imult.cpp
+@am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscielementary_functions_la-sci_imult.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_imult.Tpo -c -o libscielementary_functions_la-sci_imult.lo `test -f 'sci_gateway/cpp/sci_imult.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_imult.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_imult.Tpo $(DEPDIR)/libscielementary_functions_la-sci_imult.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='sci_gateway/cpp/sci_imult.cpp' object='libscielementary_functions_la-sci_imult.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscielementary_functions_la-sci_imult.lo `test -f 'sci_gateway/cpp/sci_imult.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_imult.cpp
+
+libscielementary_functions_la-sci_int.lo: sci_gateway/cpp/sci_int.cpp
+@am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscielementary_functions_la-sci_int.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_int.Tpo -c -o libscielementary_functions_la-sci_int.lo `test -f 'sci_gateway/cpp/sci_int.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_int.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_int.Tpo $(DEPDIR)/libscielementary_functions_la-sci_int.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='sci_gateway/cpp/sci_int.cpp' object='libscielementary_functions_la-sci_int.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscielementary_functions_la-sci_int.lo `test -f 'sci_gateway/cpp/sci_int.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_int.cpp
+
+libscielementary_functions_la-sci_isreal.lo: sci_gateway/cpp/sci_isreal.cpp
+@am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscielementary_functions_la-sci_isreal.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_isreal.Tpo -c -o libscielementary_functions_la-sci_isreal.lo `test -f 'sci_gateway/cpp/sci_isreal.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_isreal.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_isreal.Tpo $(DEPDIR)/libscielementary_functions_la-sci_isreal.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='sci_gateway/cpp/sci_isreal.cpp' object='libscielementary_functions_la-sci_isreal.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscielementary_functions_la-sci_isreal.lo `test -f 'sci_gateway/cpp/sci_isreal.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_isreal.cpp
+
+libscielementary_functions_la-sci_kron.lo: sci_gateway/cpp/sci_kron.cpp
+@am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscielementary_functions_la-sci_kron.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_kron.Tpo -c -o libscielementary_functions_la-sci_kron.lo `test -f 'sci_gateway/cpp/sci_kron.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_kron.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_kron.Tpo $(DEPDIR)/libscielementary_functions_la-sci_kron.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='sci_gateway/cpp/sci_kron.cpp' object='libscielementary_functions_la-sci_kron.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscielementary_functions_la-sci_kron.lo `test -f 'sci_gateway/cpp/sci_kron.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_kron.cpp
+
+libscielementary_functions_la-sci_log.lo: sci_gateway/cpp/sci_log.cpp
+@am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscielementary_functions_la-sci_log.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_log.Tpo -c -o libscielementary_functions_la-sci_log.lo `test -f 'sci_gateway/cpp/sci_log.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_log.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_log.Tpo $(DEPDIR)/libscielementary_functions_la-sci_log.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='sci_gateway/cpp/sci_log.cpp' object='libscielementary_functions_la-sci_log.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscielementary_functions_la-sci_log.lo `test -f 'sci_gateway/cpp/sci_log.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_log.cpp
+
+libscielementary_functions_la-sci_log1p.lo: sci_gateway/cpp/sci_log1p.cpp
+@am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscielementary_functions_la-sci_log1p.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_log1p.Tpo -c -o libscielementary_functions_la-sci_log1p.lo `test -f 'sci_gateway/cpp/sci_log1p.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_log1p.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_log1p.Tpo $(DEPDIR)/libscielementary_functions_la-sci_log1p.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='sci_gateway/cpp/sci_log1p.cpp' object='libscielementary_functions_la-sci_log1p.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscielementary_functions_la-sci_log1p.lo `test -f 'sci_gateway/cpp/sci_log1p.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_log1p.cpp
+
+libscielementary_functions_la-sci_max.lo: sci_gateway/cpp/sci_max.cpp
+@am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscielementary_functions_la-sci_max.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_max.Tpo -c -o libscielementary_functions_la-sci_max.lo `test -f 'sci_gateway/cpp/sci_max.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_max.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_max.Tpo $(DEPDIR)/libscielementary_functions_la-sci_max.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='sci_gateway/cpp/sci_max.cpp' object='libscielementary_functions_la-sci_max.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscielementary_functions_la-sci_max.lo `test -f 'sci_gateway/cpp/sci_max.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_max.cpp
+
+libscielementary_functions_la-sci_min.lo: sci_gateway/cpp/sci_min.cpp
+@am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscielementary_functions_la-sci_min.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_min.Tpo -c -o libscielementary_functions_la-sci_min.lo `test -f 'sci_gateway/cpp/sci_min.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_min.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_min.Tpo $(DEPDIR)/libscielementary_functions_la-sci_min.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='sci_gateway/cpp/sci_min.cpp' object='libscielementary_functions_la-sci_min.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscielementary_functions_la-sci_min.lo `test -f 'sci_gateway/cpp/sci_min.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_min.cpp
+
+libscielementary_functions_la-sci_rat.lo: sci_gateway/cpp/sci_rat.cpp
+@am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscielementary_functions_la-sci_rat.lo -MD -MP -MF $(DEPDIR)/libscielementary_functions_la-sci_rat.Tpo -c -o libscielementary_functions_la-sci_rat.lo `test -f 'sci_gateway/cpp/sci_rat.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_rat.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libscielementary_functions_la-sci_rat.Tpo $(DEPDIR)/libscielementary_functions_la-sci_rat.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='sci_gateway/cpp/sci_rat.cpp' object='libscielementary_functions_la-sci_rat.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscielementary_functions_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscielementary_functions_la-sci_rat.lo `test -f 'sci_gateway/cpp/sci_rat.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_rat.cpp
+
 .f.o:
        $(F77COMPILE) -c -o $@ $<
 
@@ -2697,9 +2723,6 @@ rat.lo: src/fortran/rat.f
 old_pythag.lo: src/fortran/old_pythag.f
        $(LIBTOOL)  --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(AM_FFLAGS) $(FFLAGS) -c -o old_pythag.lo `test -f 'src/fortran/old_pythag.f' || echo '$(srcdir)/'`src/fortran/old_pythag.f
 
-sci_f_maxi.lo: sci_gateway/fortran/sci_f_maxi.f
-       $(LIBTOOL)  --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sci_f_maxi.lo `test -f 'sci_gateway/fortran/sci_f_maxi.f' || echo '$(srcdir)/'`sci_gateway/fortran/sci_f_maxi.f
-
 sci_f_testmatrix.lo: sci_gateway/fortran/sci_f_testmatrix.f
        $(LIBTOOL)  --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sci_f_testmatrix.lo `test -f 'sci_gateway/fortran/sci_f_testmatrix.f' || echo '$(srcdir)/'`sci_gateway/fortran/sci_f_testmatrix.f
 
@@ -2709,9 +2732,6 @@ sci_f_prod.lo: sci_gateway/fortran/sci_f_prod.f
 sci_f_matrix.lo: sci_gateway/fortran/sci_f_matrix.f
        $(LIBTOOL)  --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sci_f_matrix.lo `test -f 'sci_gateway/fortran/sci_f_matrix.f' || echo '$(srcdir)/'`sci_gateway/fortran/sci_f_matrix.f
 
-sci_f_expm.lo: sci_gateway/fortran/sci_f_expm.f
-       $(LIBTOOL)  --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sci_f_expm.lo `test -f 'sci_gateway/fortran/sci_f_expm.f' || echo '$(srcdir)/'`sci_gateway/fortran/sci_f_expm.f
-
 sci_f_size.lo: sci_gateway/fortran/sci_f_size.f
        $(LIBTOOL)  --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sci_f_size.lo `test -f 'sci_gateway/fortran/sci_f_size.f' || echo '$(srcdir)/'`sci_gateway/fortran/sci_f_size.f
 
@@ -2721,18 +2741,6 @@ sci_f_tril.lo: sci_gateway/fortran/sci_f_tril.f
 sci_f_ceil.lo: sci_gateway/fortran/sci_f_ceil.f
        $(LIBTOOL)  --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sci_f_ceil.lo `test -f 'sci_gateway/fortran/sci_f_ceil.f' || echo '$(srcdir)/'`sci_gateway/fortran/sci_f_ceil.f
 
-sci_f_rat.lo: sci_gateway/fortran/sci_f_rat.f
-       $(LIBTOOL)  --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sci_f_rat.lo `test -f 'sci_gateway/fortran/sci_f_rat.f' || echo '$(srcdir)/'`sci_gateway/fortran/sci_f_rat.f
-
-sci_f_imag.lo: sci_gateway/fortran/sci_f_imag.f
-       $(LIBTOOL)  --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sci_f_imag.lo `test -f 'sci_gateway/fortran/sci_f_imag.f' || echo '$(srcdir)/'`sci_gateway/fortran/sci_f_imag.f
-
-sci_f_log.lo: sci_gateway/fortran/sci_f_log.f
-       $(LIBTOOL)  --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sci_f_log.lo `test -f 'sci_gateway/fortran/sci_f_log.f' || echo '$(srcdir)/'`sci_gateway/fortran/sci_f_log.f
-
-sci_f_log1p.lo: sci_gateway/fortran/sci_f_log1p.f
-       $(LIBTOOL)  --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sci_f_log1p.lo `test -f 'sci_gateway/fortran/sci_f_log1p.f' || echo '$(srcdir)/'`sci_gateway/fortran/sci_f_log1p.f
-
 sci_f_clean.lo: sci_gateway/fortran/sci_f_clean.f
        $(LIBTOOL)  --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sci_f_clean.lo `test -f 'sci_gateway/fortran/sci_f_clean.f' || echo '$(srcdir)/'`sci_gateway/fortran/sci_f_clean.f
 
@@ -2748,9 +2756,6 @@ sci_f_atan.lo: sci_gateway/fortran/sci_f_atan.f
 sci_f_triu.lo: sci_gateway/fortran/sci_f_triu.f
        $(LIBTOOL)  --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sci_f_triu.lo `test -f 'sci_gateway/fortran/sci_f_triu.f' || echo '$(srcdir)/'`sci_gateway/fortran/sci_f_triu.f
 
-sci_f_frexp.lo: sci_gateway/fortran/sci_f_frexp.f
-       $(LIBTOOL)  --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sci_f_frexp.lo `test -f 'sci_gateway/fortran/sci_f_frexp.f' || echo '$(srcdir)/'`sci_gateway/fortran/sci_f_frexp.f
-
 sci_f_cos.lo: sci_gateway/fortran/sci_f_cos.f
        $(LIBTOOL)  --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sci_f_cos.lo `test -f 'sci_gateway/fortran/sci_f_cos.f' || echo '$(srcdir)/'`sci_gateway/fortran/sci_f_cos.f
 
@@ -2784,27 +2789,12 @@ sci_f_diag.lo: sci_gateway/fortran/sci_f_diag.f
 sci_f_number_properties.lo: sci_gateway/fortran/sci_f_number_properties.f
        $(LIBTOOL)  --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sci_f_number_properties.lo `test -f 'sci_gateway/fortran/sci_f_number_properties.f' || echo '$(srcdir)/'`sci_gateway/fortran/sci_f_number_properties.f
 
-sci_f_abs.lo: sci_gateway/fortran/sci_f_abs.f
-       $(LIBTOOL)  --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sci_f_abs.lo `test -f 'sci_gateway/fortran/sci_f_abs.f' || echo '$(srcdir)/'`sci_gateway/fortran/sci_f_abs.f
-
 sci_f_spones.lo: sci_gateway/fortran/sci_f_spones.f
        $(LIBTOOL)  --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sci_f_spones.lo `test -f 'sci_gateway/fortran/sci_f_spones.f' || echo '$(srcdir)/'`sci_gateway/fortran/sci_f_spones.f
 
-sci_f_kron.lo: sci_gateway/fortran/sci_f_kron.f
-       $(LIBTOOL)  --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sci_f_kron.lo `test -f 'sci_gateway/fortran/sci_f_kron.f' || echo '$(srcdir)/'`sci_gateway/fortran/sci_f_kron.f
-
-sci_f_cumsum.lo: sci_gateway/fortran/sci_f_cumsum.f
-       $(LIBTOOL)  --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sci_f_cumsum.lo `test -f 'sci_gateway/fortran/sci_f_cumsum.f' || echo '$(srcdir)/'`sci_gateway/fortran/sci_f_cumsum.f
-
 sci_f_nearfloat.lo: sci_gateway/fortran/sci_f_nearfloat.f
        $(LIBTOOL)  --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sci_f_nearfloat.lo `test -f 'sci_gateway/fortran/sci_f_nearfloat.f' || echo '$(srcdir)/'`sci_gateway/fortran/sci_f_nearfloat.f
 
-sci_f_isreal.lo: sci_gateway/fortran/sci_f_isreal.f
-       $(LIBTOOL)  --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sci_f_isreal.lo `test -f 'sci_gateway/fortran/sci_f_isreal.f' || echo '$(srcdir)/'`sci_gateway/fortran/sci_f_isreal.f
-
-sci_f_floor.lo: sci_gateway/fortran/sci_f_floor.f
-       $(LIBTOOL)  --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sci_f_floor.lo `test -f 'sci_gateway/fortran/sci_f_floor.f' || echo '$(srcdir)/'`sci_gateway/fortran/sci_f_floor.f
-
 sci_f_real.lo: sci_gateway/fortran/sci_f_real.f
        $(LIBTOOL)  --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sci_f_real.lo `test -f 'sci_gateway/fortran/sci_f_real.f' || echo '$(srcdir)/'`sci_gateway/fortran/sci_f_real.f
 
@@ -2814,15 +2804,6 @@ sci_f_round.lo: sci_gateway/fortran/sci_f_round.f
 sci_f_conj.lo: sci_gateway/fortran/sci_f_conj.f
        $(LIBTOOL)  --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sci_f_conj.lo `test -f 'sci_gateway/fortran/sci_f_conj.f' || echo '$(srcdir)/'`sci_gateway/fortran/sci_f_conj.f
 
-sci_f_int.lo: sci_gateway/fortran/sci_f_int.f
-       $(LIBTOOL)  --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sci_f_int.lo `test -f 'sci_gateway/fortran/sci_f_int.f' || echo '$(srcdir)/'`sci_gateway/fortran/sci_f_int.f
-
-sci_f_imult.lo: sci_gateway/fortran/sci_f_imult.f
-       $(LIBTOOL)  --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sci_f_imult.lo `test -f 'sci_gateway/fortran/sci_f_imult.f' || echo '$(srcdir)/'`sci_gateway/fortran/sci_f_imult.f
-
-sci_f_exp.lo: sci_gateway/fortran/sci_f_exp.f
-       $(LIBTOOL)  --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sci_f_exp.lo `test -f 'sci_gateway/fortran/sci_f_exp.f' || echo '$(srcdir)/'`sci_gateway/fortran/sci_f_exp.f
-
 mostlyclean-libtool:
        -rm -f *.lo
 
index c31acaa..cd66743 100644 (file)
         </para>
         <para>
             When <literal>v</literal> is complex, the elements are sorted by
-            magnitude, i.e., abs(<literal>v</literal>) . Only <literal>'g'</literal>
-            as second argument is managed with complex.
+            magnitude, i.e., abs(<literal>v</literal>) .
         </para>
         <para>
             With complex numbers, <literal>gsort</literal> can be overloaded
         </para>
-        <para>see macro:
+        <para>Create macro:
             SCI/modules/elementary_functions/macros/%_gsort.sci
         </para>
         <para>Overloading for not managed type (others than a real, an integer or a character
index 4b34a53..6738714 100644 (file)
@@ -13,9 +13,9 @@
 #ifndef __ABS_H__
 #define __ABS_H__
 
-#include "export_ef.h"
+#include "dynlib_elementary_functions.h"
 
-EXTERN_EF double dabss(double _dblVal);
-EXTERN_EF double dabsz(double _dblRealVal, double _dblImgVal);
+ELEMENTARY_FUNCTIONS_IMPEXP double dabss(double _dblVal);
+ELEMENTARY_FUNCTIONS_IMPEXP double dabsz(double _dblRealVal, double _dblImgVal);
 
 #endif /* __ABS_H__ */
\ No newline at end of file
index 66bfe42..77314b9 100644 (file)
 #define __COS_H__
 
 #include <math.h>
-#include "export_ef.h"
+#include "dynlib_elementary_functions.h"
 
-EXTERN_EF double dcoss(double _dblVal);
-EXTERN_EF void zcoss(double _dblRealIn, double _dblImgIn, double* _dblRealOut, double* _dblImgOut);
+ELEMENTARY_FUNCTIONS_IMPEXP double dcoss(double _dblVal);
+ELEMENTARY_FUNCTIONS_IMPEXP void zcoss(double _dblRealIn, double _dblImgIn, double* _dblRealOut, double* _dblImgOut);
 
-EXTERN_EF double dacoss(double _dblVal);
-EXTERN_EF void wacos(double _dblReal, double _dblImg, double *_pdblReal, double *_pdblImg);
+ELEMENTARY_FUNCTIONS_IMPEXP double dacoss(double _dblVal);
+ELEMENTARY_FUNCTIONS_IMPEXP void wacos(double _dblReal, double _dblImg, double *_pdblReal, double *_pdblImg);
 
-EXTERN_EF double dcoshs(double _dblVal);
+ELEMENTARY_FUNCTIONS_IMPEXP double dcoshs(double _dblVal);
 
 #endif /* __COS_H__ */
\ No newline at end of file
index 63f0c41..d485582 100644 (file)
@@ -33,5 +33,35 @@ CPP_GATEWAY_PROTOTYPE(sci_zeros);
 CPP_GATEWAY_PROTOTYPE(sci_ones);
 CPP_GATEWAY_PROTOTYPE(sci_rand);
 CPP_GATEWAY_PROTOTYPE(sci_sum);
+CPP_GATEWAY_PROTOTYPE(sci_matrix);
+CPP_GATEWAY_PROTOTYPE(sci_abs);
+CPP_GATEWAY_PROTOTYPE(sci_acos);
+CPP_GATEWAY_PROTOTYPE(sci_asin);
+CPP_GATEWAY_PROTOTYPE(sci_atan);
+CPP_GATEWAY_PROTOTYPE(sci_ceil);
+CPP_GATEWAY_PROTOTYPE(sci_clean);
+CPP_GATEWAY_PROTOTYPE(sci_conj);
+CPP_GATEWAY_PROTOTYPE(sci_cos);
+CPP_GATEWAY_PROTOTYPE(sci_sin);
+CPP_GATEWAY_PROTOTYPE(sci_tan);
+CPP_GATEWAY_PROTOTYPE(sci_cumprod);
+CPP_GATEWAY_PROTOTYPE(sci_cumsum);
+CPP_GATEWAY_PROTOTYPE(sci_diag);
+CPP_GATEWAY_PROTOTYPE(sci_dsearch);
+CPP_GATEWAY_PROTOTYPE(sci_exp);
+CPP_GATEWAY_PROTOTYPE(sci_expm);
+CPP_GATEWAY_PROTOTYPE(sci_floor);
+CPP_GATEWAY_PROTOTYPE(sci_frexp);
+CPP_GATEWAY_PROTOTYPE(sci_gsort);
+CPP_GATEWAY_PROTOTYPE(sci_imag);
+CPP_GATEWAY_PROTOTYPE(sci_imult);
+CPP_GATEWAY_PROTOTYPE(sci_int);
+CPP_GATEWAY_PROTOTYPE(sci_isreal);
+CPP_GATEWAY_PROTOTYPE(sci_kron);
+CPP_GATEWAY_PROTOTYPE(sci_log);
+CPP_GATEWAY_PROTOTYPE(sci_log1p);
+CPP_GATEWAY_PROTOTYPE(sci_max); // Old name sci_maxi
+CPP_GATEWAY_PROTOTYPE(sci_min); // Old name sci_mini
+CPP_GATEWAY_PROTOTYPE(sci_rat);
 
 #endif /* __ELEM_FUNC_GW_HXX__ */
index 2d6e379..4186339 100644 (file)
 #ifndef __EXP_H__
 #define __EXP_H__
 
-#include "export_ef.h"
+#include "dynlib_elementary_functions.h"
 
-EXTERN_EF double dexps(double _dblVal);
-EXTERN_EF void zexps(double _dblRealIn, double _dblImgIn, double *_pdblRealOut, double *_pdblImgOut);
+
+ELEMENTARY_FUNCTIONS_IMPEXP double dexps(double _dblVal);
+ELEMENTARY_FUNCTIONS_IMPEXP void zexps(double _dblRealIn, double _dblImgIn, double *_pdblRealOut, double *_pdblImgOut);
 
 #endif /* __EXP_H__ */
\ No newline at end of file
diff --git a/scilab/modules/elementary_functions/includes/export_ef.h b/scilab/modules/elementary_functions/includes/export_ef.h
deleted file mode 100644 (file)
index a897d0b..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
-*  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-*  Copyright (C) 2008-2008 - DIGITEO - Antoine ELIAS
-*
-*  This file must be used under the terms of the CeCILL.
-*  This source file is licensed as described in the file COPYING, 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
-*
-*/
-
-#ifndef __EXPORT_EF_H__
-#define __EXPORT_EF_H__
-
-#ifdef _MSC_VER
-       #if __ELEM_FUNC__
-               #define EXTERN_EF __declspec (dllexport)
-       #else
-               #define EXTERN_EF __declspec (dllimport)
-       #endif
-#else
-       #define EXTERN_EF 
-#endif
-
-#endif /* __EXPORT_EF_H__ */
\ No newline at end of file
index 243b7c3..95c5126 100644 (file)
@@ -24,42 +24,42 @@ int sci_spones(char *fname,unsigned long fname_len);
 int sci_isequalbitwise(char *fname, unsigned long fname_len);
 
 // YaSp
-C_GATEWAY_PROTOTYPE(sci_abs);
-C_GATEWAY_PROTOTYPE(sci_acos);
-C_GATEWAY_PROTOTYPE(sci_asin);
-C_GATEWAY_PROTOTYPE(sci_atan);
-C_GATEWAY_PROTOTYPE(sci_ceil);
-C_GATEWAY_PROTOTYPE(sci_clean);
-C_GATEWAY_PROTOTYPE(sci_conj);
-C_GATEWAY_PROTOTYPE(sci_cos);
-C_GATEWAY_PROTOTYPE(sci_cumprod);
-C_GATEWAY_PROTOTYPE(sci_cumsum);
-C_GATEWAY_PROTOTYPE(sci_diag);
-C_GATEWAY_PROTOTYPE(sci_dsearch);
-C_GATEWAY_PROTOTYPE(sci_exp);
-C_GATEWAY_PROTOTYPE(sci_expm);
-C_GATEWAY_PROTOTYPE(sci_floor);
-C_GATEWAY_PROTOTYPE(sci_frexp);
-C_GATEWAY_PROTOTYPE(sci_gsort);
-C_GATEWAY_PROTOTYPE(sci_imag);
-C_GATEWAY_PROTOTYPE(sci_imult);
-C_GATEWAY_PROTOTYPE(sci_int);
-C_GATEWAY_PROTOTYPE(sci_isreal);
-C_GATEWAY_PROTOTYPE(sci_kron);
-C_GATEWAY_PROTOTYPE(sci_log);
-C_GATEWAY_PROTOTYPE(sci_log1p);
-C_GATEWAY_PROTOTYPE(sci_scimatrix);
-C_GATEWAY_PROTOTYPE(sci_maxi);
-C_GATEWAY_PROTOTYPE(sci_mini);
+//C_GATEWAY_PROTOTYPE(sci_abs);
+//C_GATEWAY_PROTOTYPE(sci_acos);
+//C_GATEWAY_PROTOTYPE(sci_asin);
+//C_GATEWAY_PROTOTYPE(sci_atan);
+//C_GATEWAY_PROTOTYPE(sci_ceil);
+//C_GATEWAY_PROTOTYPE(sci_clean);
+//C_GATEWAY_PROTOTYPE(sci_conj);
+//C_GATEWAY_PROTOTYPE(sci_cos);
+//C_GATEWAY_PROTOTYPE(sci_cumprod);
+//C_GATEWAY_PROTOTYPE(sci_cumsum);
+//C_GATEWAY_PROTOTYPE(sci_diag);
+//C_GATEWAY_PROTOTYPE(sci_dsearch);
+//C_GATEWAY_PROTOTYPE(sci_exp);
+//C_GATEWAY_PROTOTYPE(sci_expm);
+//C_GATEWAY_PROTOTYPE(sci_floor);
+//C_GATEWAY_PROTOTYPE(sci_frexp);
+//C_GATEWAY_PROTOTYPE(sci_gsort);
+//C_GATEWAY_PROTOTYPE(sci_imag);
+//C_GATEWAY_PROTOTYPE(sci_imult);
+//C_GATEWAY_PROTOTYPE(sci_int);
+//C_GATEWAY_PROTOTYPE(sci_isreal);
+//C_GATEWAY_PROTOTYPE(sci_kron);
+//C_GATEWAY_PROTOTYPE(sci_log);
+//C_GATEWAY_PROTOTYPE(sci_log1p);
+//C_GATEWAY_PROTOTYPE(sci_scimatrix);
+//C_GATEWAY_PROTOTYPE(sci_maxi);
+//C_GATEWAY_PROTOTYPE(sci_mini);
 C_GATEWAY_PROTOTYPE(sci_nearfloat);
 C_GATEWAY_PROTOTYPE(sci_number_properties);
 C_GATEWAY_PROTOTYPE(sci_prod);
 C_GATEWAY_PROTOTYPE(sci_real);
 C_GATEWAY_PROTOTYPE(sci_round);
 C_GATEWAY_PROTOTYPE(sci_sign);
-C_GATEWAY_PROTOTYPE(sci_sin);
+//C_GATEWAY_PROTOTYPE(sci_sin);
 C_GATEWAY_PROTOTYPE(sci_sqrt);
-C_GATEWAY_PROTOTYPE(sci_tan);
+//C_GATEWAY_PROTOTYPE(sci_tan);
 C_GATEWAY_PROTOTYPE(sci_testmatrix);
 C_GATEWAY_PROTOTYPE(sci_tril);
 C_GATEWAY_PROTOTYPE(sci_triu);
index a96e9fa..ff3d26f 100644 (file)
 #ifndef __LOG_H__
 #define __LOG_H__
 
-#include "export_ef.h"
+#include "dynlib_elementary_functions.h"
 
-EXTERN_EF double dlogs(double _dblVal);
-EXTERN_EF void wlog(double _dblRealIn, double _dblImgIn, double* _pdblRealOut, double* _pdblImgOut);
-EXTERN_EF double dlog1ps(double _dblVal);
-EXTERN_EF double lnp1m1(double _dblVar);
+ELEMENTARY_FUNCTIONS_IMPEXP double dlogs(double _dblVal);
+ELEMENTARY_FUNCTIONS_IMPEXP void wlog(double _dblRealIn, double _dblImgIn, double* _pdblRealOut, double* _pdblImgOut);
+ELEMENTARY_FUNCTIONS_IMPEXP double dlog1ps(double _dblVal);
+ELEMENTARY_FUNCTIONS_IMPEXP double lnp1m1(double _dblVar);
 
 
 #endif /* __LOG_H__ */
\ No newline at end of file
index c9a59e3..c756eb1 100644 (file)
@@ -12,8 +12,8 @@
 #ifndef __PYTHAG_H__
 #define __PYTHAG_H__
 
-#include "export_ef.h"
+#include "dynlib_elementary_functions.h"
 
-EXTERN_EF double dpythags(double _dblVal1, double _dblVal2);
+ELEMENTARY_FUNCTIONS_IMPEXP double dpythags(double _dblVal1, double _dblVal2);
 
 #endif /* __PYTHAG_H__ */
\ No newline at end of file
index c5bd727..8a3fdac 100644 (file)
@@ -13,9 +13,9 @@
 #ifndef __SIGN_H__
 #define __SIGN_H__
 
-#include "export_ef.h"
+#include "dynlib_elementary_functions.h"
 
-EXTERN_EF double dsigns(double _dblRef, double _dblVal);
-EXTERN_EF double dsignsEx(double _dblVal);
+ELEMENTARY_FUNCTIONS_IMPEXP double dsigns(double _dblRef, double _dblVal);
+ELEMENTARY_FUNCTIONS_IMPEXP double dsignsEx(double _dblVal);
 
 #endif /* __SIGN_H__ */
\ No newline at end of file
index d8c28a5..abddcdd 100644 (file)
 
 #include <math.h>
 
-#include "export_ef.h"
+#include "dynlib_elementary_functions.h"
 
-EXTERN_EF double dsins(double _dblVal);
-EXTERN_EF void zsins(double _dblRealIn, double _dblImgIn, double* _dblRealOut, double* _dblImgOut);
+ELEMENTARY_FUNCTIONS_IMPEXP double dsins(double _dblVal);
+ELEMENTARY_FUNCTIONS_IMPEXP void zsins(double _dblRealIn, double _dblImgIn, double* _dblRealOut, double* _dblImgOut);
 
-EXTERN_EF double dasins(double _dblVal);
-EXTERN_EF void wasin(double _dblReal, double _dblImg, double *_pdblReal, double *_pdblImg);
-EXTERN_EF double dsinhs(double _dblVal);
+ELEMENTARY_FUNCTIONS_IMPEXP double dasins(double _dblVal);
+ELEMENTARY_FUNCTIONS_IMPEXP void wasin(double _dblReal, double _dblImg, double *_pdblReal, double *_pdblImg);
+ELEMENTARY_FUNCTIONS_IMPEXP double dsinhs(double _dblVal);
 
 #endif /* __SIN_H__ */
\ No newline at end of file
index e696d2d..960a25e 100644 (file)
@@ -12,9 +12,9 @@
 #ifndef __SQRT_H__
 #define __SQRT_H__
 
-#include "export_ef.h"
+#include "dynlib_elementary_functions.h"
 
-EXTERN_EF double dsqrts(double _dblVal);
-EXTERN_EF void zsqrts(double _dblRealIn, double _dblImgIn, double* _pdblRealOut, double *_pdblImgOut);
+ELEMENTARY_FUNCTIONS_IMPEXP double dsqrts(double _dblVal);
+ELEMENTARY_FUNCTIONS_IMPEXP void zsqrts(double _dblRealIn, double _dblImgIn, double* _pdblRealOut, double *_pdblImgOut);
 
 #endif
\ No newline at end of file
index 6fc46d2..42d4c4f 100644 (file)
 #ifndef __TAN_H__
 #define __TAN_H__
 
-#include "export_ef.h"
+#include "dynlib_elementary_functions.h"
 
-EXTERN_EF double dtans(double _dblVal);
-EXTERN_EF void ztans(double _dblRealIn, double _dblImgIn, double* _dblRealOut, double* _dblImgOut);
+ELEMENTARY_FUNCTIONS_IMPEXP double dtans(double _dblVal);
+ELEMENTARY_FUNCTIONS_IMPEXP void ztans(double _dblRealIn, double _dblImgIn, double* _dblRealOut, double* _dblImgOut);
 
-EXTERN_EF double datans(double _dblVal);
-EXTERN_EF double datan2s(double _dblValX, double _dblValY);
-EXTERN_EF void watan(double _dblReal, double _dblImg, double *_pdblReal, double *_pdblImg);
+ELEMENTARY_FUNCTIONS_IMPEXP double datans(double _dblVal);
+ELEMENTARY_FUNCTIONS_IMPEXP double datan2s(double _dblValX, double _dblValY);
+ELEMENTARY_FUNCTIONS_IMPEXP void watan(double _dblReal, double _dblImg, double *_pdblReal, double *_pdblImg);
 
 #endif /* __TAN_H__ */
\ No newline at end of file
diff --git a/scilab/modules/elementary_functions/macros/%_gsort.sci b/scilab/modules/elementary_functions/macros/%_gsort.sci
deleted file mode 100644 (file)
index 5b50338..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) DIGITEO - 2009 - Allan CORNET
-//
-// This file must be used under the terms of the CeCILL.
-// This source file is licensed as described in the file COPYING, which
-// you should have received as part of this distribution.  The terms
-// are also available at
-// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
-
-function [matrix_sorted, origin_indices] = %_gsort(matrix_to_sort, sort_type, sort_direction)
-
-  if ~isdef('matrix_to_sort') then
-    matrix_to_sort = [];
-    return
-  end
-
-  if type(matrix_to_sort) <> 1 then 
-    error(999,msprintf(_("%s: Wrong type for input argument #%d: A matrix expected.\n"),'gsort',1));
-  end
-
-  if ~isdef('sort_type') then
-    sort_type = 'g';
-  end
-
-  if ~isdef('sort_direction') then
-    sort_direction = 'd';
-  end
-
-  if type(sort_type) <> 10 then 
-    error(999,msprintf(_("%s: Wrong type for input argument #%d: A string expected.\n"),'gsort',2));
-  end
-  
-  if type(sort_direction) <> 10 then 
-    error(999,msprintf(_("%s: Wrong type for input argument #%d: A string expected.\n"),'gsort',3));
-  end
-  
-  if size(sort_type,'*') <> 1 then
-    error(999,msprintf(_("%s: Wrong size for input argument #%d: A string expected.\n"),'gsort',2));
-  end 
-
-  if size(sort_direction,'*') <> 1 then
-    error(999,msprintf(_("%s: Wrong size for input argument #%d: A string expected.\n"),'gsort',3));
-  end 
-
-  if ~or(sort_type == ['g' 'r' 'c' 'lc' 'lr']) then
-    error(999,msprintf(_("%s: Wrong value for input argument #%d: [''g'' ''r'' ''c'' ''lc'' ''lr''] expected.\n"),'gsort',2));
-  end
-
-  if ~or(sort_direction == ['d' 'i']) then
-    error(999,msprintf(_("%s: Wrong value for input argument #%d: [''d'' ''i''] expected.\n"),'gsort',3));
-  end
-  
-  magnitude_matrix = abs(matrix_to_sort);
-  
-  
-  matrix_sorted = [];
-  origin_indices = [];
-  
-  [magnitude_sorted, origin_indices] = gsort(magnitude_matrix, sort_type, sort_direction);
-
-  if (sort_type == 'g') then
-    dimIn = size(matrix_to_sort);
-    matrix_sorted = matrix(matrix_to_sort(origin_indices), dimIn(1), dimIn(2));
-  end
-
-  if (sort_type == 'r') then
-    nr = size(matrix_to_sort, 'r');
-    nc = size(matrix_to_sort, 'c');
-    matrix_sorted = [];
-    for i = 1:nc ; 
-      matrix_sorted = [matrix_sorted, matrix(matrix_to_sort(origin_indices(:,i),i),nr,1)];
-    end 
-  end
-
-  if (sort_type == 'c') then
-    nr = size(matrix_to_sort, 'r');
-    nc = size(matrix_to_sort, 'c');
-    matrix_sorted = [];
-    for i=1:nr ; 
-      matrix_sorted = [matrix_sorted; matrix(matrix_to_sort(i,origin_indices(i,:)),1,nc)];
-    end 
-  end
-  
-  if (sort_type == 'lr') then
-    matrix_sorted = matrix_to_sort(origin_indices, :);
-  end
-  
-  if (sort_type == 'lc') then
-    matrix_sorted = matrix_to_sort(:, origin_indices);
-  end
-
-endfunction
diff --git a/scilab/modules/elementary_functions/macros/%_kron.sci b/scilab/modules/elementary_functions/macros/%_kron.sci
new file mode 100644 (file)
index 0000000..80309be
--- /dev/null
@@ -0,0 +1,25 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) DIGITEO - 2012 - 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
+
+function x = %_kron(a, b)
+
+    rhs = argn(2)
+    lhs = argn(1)
+
+    if rhs <> 2 then
+        error(999,msprintf(_("%s: Wrong number of output argument(s): %d expected.\n"), "kron", 2));
+    end
+
+    if lhs <> 1 then
+        error(999,msprintf(_("%s: Wrong number of input argument(s): %d expected.\n"), "kron", 1));
+    end
+
+    x = a .*. b;
+
+endfunction
similarity index 94%
rename from scilab/test/good/%sp_cumsum.sci
rename to scilab/modules/elementary_functions/macros/%sp_cumsum.sci
index f1bcf7b..9e381de 100644 (file)
@@ -1,22 +1,22 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 // Copyright (C) 2010 -  INRIA - Serge Steer
-// 
+//
 // This file must be used under the terms of the CeCILL.
 // This source file is licensed as described in the file COPYING, which
 // you should have received as part of this distribution.  The terms
-// are also available at    
+// are also available at
 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
 
 function r=%sp_cumsum(a,d,typ)
   rhs=argn(2)
   if rhs==1 then
     d='*'
-  elseif rhs==2 then 
+  elseif rhs==2 then
     if argn(2)==2& or(d==['native','double']) then
       d='*'
     end
   end
-  if size(d,'*')<>1 then 
+  if size(d,'*')<>1 then
     if type(d)==10 then
       error(msprintf(_("%s: Wrong size for input argument #%d: A string expected.\n"),"cumsum",2))
     else
@@ -31,10 +31,10 @@ function r=%sp_cumsum(a,d,typ)
     end
     d=d-2
   end
-  
+
   dims=size(a)
 
-  if d==-1 then 
+  if d==-1 then
     //sum(x,'m'), determine the summation direction
     d=find(dims>1,1)
     if d==[] then d=0,end
@@ -43,7 +43,7 @@ function r=%sp_cumsum(a,d,typ)
     error(msprintf(_("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"),..
                      "cumsum",2,"""*"",""r"",""c"",""m"",1:"+string(ndims(a))))
   end
-  
+
   select d
   case 0 then
     ij=spget(a)
@@ -64,5 +64,5 @@ function r=%sp_cumsum(a,d,typ)
   else
     r=a
   end
+
 endfunction
index 4debef6..a1ff844 100644 (file)
@@ -48,9 +48,9 @@ int ElemFuncModule::Load()
        symbol::Context::getInstance()->AddFunction(types::Function::createFunction(L"kron", &sci_kron, MODULE_NAME));
        symbol::Context::getInstance()->AddFunction(types::Function::createFunction(L"log", &sci_log, MODULE_NAME));
        symbol::Context::getInstance()->AddFunction(types::Function::createFunction(L"log1p", &sci_log1p, MODULE_NAME));
-       symbol::Context::getInstance()->AddFunction(types::Function::createFunction(L"matrix", &sci_scimatrix, MODULE_NAME));
-       symbol::Context::getInstance()->AddFunction(types::Function::createFunction(L"max", &sci_maxi, MODULE_NAME));
-       symbol::Context::getInstance()->AddFunction(types::Function::createFunction(L"min", &sci_mini, MODULE_NAME));
+       symbol::Context::getInstance()->AddFunction(types::Function::createFunction(L"matrix", &sci_matrix, MODULE_NAME));
+       symbol::Context::getInstance()->AddFunction(types::Function::createFunction(L"max", &sci_max, MODULE_NAME));
+       symbol::Context::getInstance()->AddFunction(types::Function::createFunction(L"min", &sci_min, MODULE_NAME));
        symbol::Context::getInstance()->AddFunction(types::Function::createFunction(L"nearfloat", &sci_nearfloat, MODULE_NAME));
        symbol::Context::getInstance()->AddFunction(types::Function::createFunction(L"number_properties", &sci_number_properties, MODULE_NAME));
        symbol::Context::getInstance()->AddFunction(types::Function::createFunction(L"ones", &sci_ones, MODULE_NAME));
@@ -68,5 +68,6 @@ int ElemFuncModule::Load()
        symbol::Context::getInstance()->AddFunction(types::Function::createFunction(L"tril", &sci_tril, MODULE_NAME));
        symbol::Context::getInstance()->AddFunction(types::Function::createFunction(L"triu", &sci_triu, MODULE_NAME));
        symbol::Context::getInstance()->AddFunction(types::Function::createFunction(L"zeros", &sci_zeros, MODULE_NAME));
+       symbol::Context::getInstance()->AddFunction(types::Function::createFunction(L"rat", &sci_rat, MODULE_NAME));
        return 1;
 }
index a0b6883..ba68b62 100644 (file)
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup Label="ProjectConfigurations">
     <ProjectConfiguration Include="Debug|Win32">
@@ -76,7 +76,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>..\..\..\includes;..\..\..\..\functions_manager\includes;..\..\..\..\symbol\includes;..\..\..\..\types\includes;..\..\..\..\operations\includes;..\..\..\..\core\includes;../../../../ast/includes;../../../../api_scilab/includes;../../../../output_stream/includes;../../../../localization/includes;../../../../../libs/intl/;../../../../threads/includes;../../../../system_env/includes;../../../../string/includes;../../../../../libs/dynamiclibrary/includes;../../../../double/includes;..\..\..\src\c;../../../../../libs/MALLOC/includes;../../../../../libs/Eigen/includes;../../../../console/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\..\..\includes;..\..\..\src\c;..\..\..\src\cpp;..\..\..\..\functions_manager\includes;..\..\..\..\symbol\includes;..\..\..\..\types\includes;..\..\..\..\operations\includes;..\..\..\..\core\includes;../../../../ast/includes;../../../../api_scilab/includes;../../../../output_stream/includes;../../../../localization/includes;../../../../../libs/intl/;../../../../threads/includes;../../../../system_env/includes;../../../../string/includes;../../../../../libs/dynamiclibrary/includes;../../../../double/includes;../../../../../libs/MALLOC/includes;../../../../../libs/Eigen/includes;../../../../console/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;ELEM_FUNC_GW_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
     </ClCompile>
     <PreLinkEvent>
       <Command>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)eispack_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)eispack_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
-lib /DEF:"$(ProjectDir)cacsd_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)cacsd_f.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
 </Command>
     </PreLinkEvent>
     <Link>
-      <AdditionalDependencies>core_f.lib;cacsd_f.lib;eispack_f.lib;linpack_f.lib;elementary_functions_f.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalDependencies>core_f.lib;linpack_f.lib;elementary_functions_f.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
@@ -110,7 +107,7 @@ lib /DEF:"$(ProjectDir)core_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform
     </Midl>
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>..\..\..\includes;..\..\..\..\functions_manager\includes;..\..\..\..\symbol\includes;..\..\..\..\types\includes;..\..\..\..\operations\includes;..\..\..\..\core\includes;../../../../ast/includes;../../../../api_scilab/includes;../../../../output_stream/includes;../../../../localization/includes;../../../../../libs/intl/;../../../../threads/includes;../../../../system_env/includes;../../../../string/includes;../../../../../libs/dynamiclibrary/includes;../../../../double/includes;..\..\..\src\c;../../../../../libs/MALLOC/includes;../../../../../libs/Eigen/includes;../../../../console/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\..\..\includes;..\..\..\src\c;..\..\..\src\cpp;..\..\..\..\functions_manager\includes;..\..\..\..\symbol\includes;..\..\..\..\types\includes;..\..\..\..\operations\includes;..\..\..\..\core\includes;../../../../ast/includes;../../../../api_scilab/includes;../../../../output_stream/includes;../../../../localization/includes;../../../../../libs/intl/;../../../../threads/includes;../../../../system_env/includes;../../../../string/includes;../../../../../libs/dynamiclibrary/includes;../../../../double/includes;../../../../../libs/MALLOC/includes;../../../../../libs/Eigen/includes;../../../../console/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;ELEM_FUNC_GW_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -122,14 +119,11 @@ lib /DEF:"$(ProjectDir)core_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform
     </ClCompile>
     <PreLinkEvent>
       <Command>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)eispack_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)eispack_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
-lib /DEF:"$(ProjectDir)cacsd_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)cacsd_f.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
 </Command>
     </PreLinkEvent>
     <Link>
-      <AdditionalDependencies>core_f.lib;cacsd_f.lib;eispack_f.lib;linpack_f.lib;elementary_functions_f.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalDependencies>core_f.lib;elementary_functions_f.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
@@ -142,7 +136,7 @@ lib /DEF:"$(ProjectDir)core_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform
     <ClCompile>
       <Optimization>MaxSpeed</Optimization>
       <IntrinsicFunctions>true</IntrinsicFunctions>
-      <AdditionalIncludeDirectories>..\..\..\includes;..\..\..\..\functions_manager\includes;..\..\..\..\symbol\includes;..\..\..\..\types\includes;..\..\..\..\operations\includes;..\..\..\..\core\includes;../../../../ast/includes;../../../../api_scilab/includes;../../../../output_stream/includes;../../../../localization/includes;../../../../../libs/intl/;../../../../threads/includes;../../../../system_env/includes;../../../../string/includes;../../../../../libs/dynamiclibrary/includes;../../../../double/includes;..\..\..\src\c;../../../../../libs/MALLOC/includes;../../../../../libs/Eigen/includes;../../../../console/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\..\..\includes;..\..\..\src\c;..\..\..\src\cpp;..\..\..\..\functions_manager\includes;..\..\..\..\symbol\includes;..\..\..\..\types\includes;..\..\..\..\operations\includes;..\..\..\..\core\includes;../../../../ast/includes;../../../../api_scilab/includes;../../../../output_stream/includes;../../../../localization/includes;../../../../../libs/intl/;../../../../threads/includes;../../../../system_env/includes;../../../../string/includes;../../../../../libs/dynamiclibrary/includes;../../../../double/includes;../../../../../libs/MALLOC/includes;../../../../../libs/Eigen/includes;../../../../console/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;ELEM_FUNC_GW_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <FunctionLevelLinking>true</FunctionLevelLinking>
@@ -154,14 +148,11 @@ lib /DEF:"$(ProjectDir)core_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform
     </ClCompile>
     <PreLinkEvent>
       <Command>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)eispack_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)eispack_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
-lib /DEF:"$(ProjectDir)cacsd_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)cacsd_f.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
 </Command>
     </PreLinkEvent>
     <Link>
-      <AdditionalDependencies>core_f.lib;cacsd_f.lib;eispack_f.lib;linpack_f.lib;elementary_functions_f.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalDependencies>core_f.lib;linpack_f.lib;elementary_functions_f.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
@@ -179,7 +170,7 @@ lib /DEF:"$(ProjectDir)core_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform
     <ClCompile>
       <Optimization>MaxSpeed</Optimization>
       <IntrinsicFunctions>true</IntrinsicFunctions>
-      <AdditionalIncludeDirectories>..\..\..\includes;..\..\..\..\functions_manager\includes;..\..\..\..\symbol\includes;..\..\..\..\types\includes;..\..\..\..\operations\includes;..\..\..\..\core\includes;../../../../ast/includes;../../../../api_scilab/includes;../../../../output_stream/includes;../../../../localization/includes;../../../../../libs/intl/;../../../../threads/includes;../../../../system_env/includes;../../../../string/includes;../../../../../libs/dynamiclibrary/includes;../../../../double/includes;..\..\..\src\c;../../../../../libs/MALLOC/includes;../../../../../libs/Eigen/includes;../../../../console/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\..\..\includes;..\..\..\src\c;..\..\..\src\cpp;..\..\..\..\functions_manager\includes;..\..\..\..\symbol\includes;..\..\..\..\types\includes;..\..\..\..\operations\includes;..\..\..\..\core\includes;../../../../ast/includes;../../../../api_scilab/includes;../../../../output_stream/includes;../../../../localization/includes;../../../../../libs/intl/;../../../../threads/includes;../../../../system_env/includes;../../../../string/includes;../../../../../libs/dynamiclibrary/includes;../../../../double/includes;../../../../../libs/MALLOC/includes;../../../../../libs/Eigen/includes;../../../../console/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;ELEM_FUNC_GW_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <FunctionLevelLinking>true</FunctionLevelLinking>
@@ -191,14 +182,11 @@ lib /DEF:"$(ProjectDir)core_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform
     </ClCompile>
     <PreLinkEvent>
       <Command>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)eispack_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)eispack_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
-lib /DEF:"$(ProjectDir)cacsd_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)cacsd_f.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
 </Command>
     </PreLinkEvent>
     <Link>
-      <AdditionalDependencies>core_f.lib;cacsd_f.lib;eispack_f.lib;linpack_f.lib;elementary_functions_f.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalDependencies>core_f.lib;linpack_f.lib;elementary_functions_f.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
@@ -211,67 +199,64 @@ lib /DEF:"$(ProjectDir)core_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform
   </ItemDefinitionGroup>
   <ItemGroup>
     <ClCompile Include="..\..\..\src\cpp\getmode.cpp" />
-    <ClCompile Include="..\..\c\sci_abs.c" />
-    <ClCompile Include="..\..\c\sci_acos.c" />
-    <ClCompile Include="..\..\c\sci_asin.c" />
-    <ClCompile Include="..\..\c\sci_atan.c" />
-    <ClCompile Include="..\..\c\sci_ceil.c" />
-    <ClCompile Include="..\..\c\sci_clean.c" />
-    <ClCompile Include="..\..\c\sci_conj.c" />
-    <ClCompile Include="..\..\c\sci_cos.c" />
-    <ClCompile Include="..\..\c\sci_cumprod.c" />
-    <ClCompile Include="..\..\c\sci_cumsum.c" />
-    <ClCompile Include="..\..\c\sci_diag.c" />
-    <ClCompile Include="..\..\c\sci_dsearch.c" />
-    <ClCompile Include="..\..\c\sci_exp.c" />
-    <ClCompile Include="..\..\c\sci_expm.c" />
-    <ClCompile Include="..\..\c\sci_floor.c" />
-    <ClCompile Include="..\..\c\sci_frexp.c" />
-    <ClCompile Include="..\..\c\sci_gsort.c" />
-    <ClCompile Include="..\..\c\sci_imag.c" />
-    <ClCompile Include="..\..\c\sci_imult.c" />
-    <ClCompile Include="..\..\c\sci_int.c" />
     <ClCompile Include="..\..\c\sci_isequalbitwise.c" />
-    <ClCompile Include="..\..\c\sci_isreal.c" />
-    <ClCompile Include="..\..\c\sci_kron.c" />
-    <ClCompile Include="..\..\c\sci_log.c" />
-    <ClCompile Include="..\..\c\sci_log1p.c" />
-    <ClCompile Include="..\..\c\sci_matrix.c" />
-    <ClCompile Include="..\..\c\sci_maxi.c" />
     <ClCompile Include="..\..\c\sci_nearfloat.c" />
     <ClCompile Include="..\..\c\sci_number_properties.c" />
     <ClCompile Include="..\..\c\sci_prod.c" />
-    <ClCompile Include="..\..\c\sci_rat.c" />
     <ClCompile Include="..\..\c\sci_real.c" />
     <ClCompile Include="..\..\c\sci_round.c" />
     <ClCompile Include="..\..\c\sci_sign.c" />
-    <ClCompile Include="..\..\c\sci_sin.c" />
     <ClCompile Include="..\..\c\sci_sqrt.c" />
-    <ClCompile Include="..\..\c\sci_tan.c" />
     <ClCompile Include="..\..\c\sci_testmatrix.c" />
     <ClCompile Include="..\..\c\sci_tril.c" />
     <ClCompile Include="..\..\c\sci_triu.c" />
     <ClCompile Include="..\elem_func_gw.cpp" />
+    <ClCompile Include="..\sci_abs.cpp" />
+    <ClCompile Include="..\sci_acos.cpp" />
+    <ClCompile Include="..\sci_asin.cpp" />
+    <ClCompile Include="..\sci_atan.cpp" />
+    <ClCompile Include="..\sci_ceil.cpp" />
+    <ClCompile Include="..\sci_clean.cpp" />
+    <ClCompile Include="..\sci_conj.cpp" />
+    <ClCompile Include="..\sci_cos.cpp" />
+    <ClCompile Include="..\sci_cumprod.cpp" />
+    <ClCompile Include="..\sci_cumsum.cpp" />
+    <ClCompile Include="..\sci_diag.cpp" />
+    <ClCompile Include="..\sci_dsearch.cpp" />
+    <ClCompile Include="..\sci_exp.cpp" />
+    <ClCompile Include="..\sci_expm.cpp" />
     <ClCompile Include="..\sci_eye.cpp" />
+    <ClCompile Include="..\sci_floor.cpp" />
+    <ClCompile Include="..\sci_frexp.cpp" />
+    <ClCompile Include="..\sci_gsort.cpp" />
+    <ClCompile Include="..\sci_imag.cpp" />
+    <ClCompile Include="..\sci_imult.cpp" />
+    <ClCompile Include="..\sci_int.cpp" />
     <ClCompile Include="..\sci_isequal.cpp" />
+    <ClCompile Include="..\sci_isreal.cpp" />
+    <ClCompile Include="..\sci_kron.cpp" />
+    <ClCompile Include="..\sci_log.cpp" />
+    <ClCompile Include="..\sci_log1p.cpp" />
+    <ClCompile Include="..\sci_matrix.cpp" />
+    <ClCompile Include="..\sci_max.cpp" />
+    <ClCompile Include="..\sci_min.cpp" />
     <ClCompile Include="..\sci_ones.cpp">
       <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
     </ClCompile>
     <ClCompile Include="..\sci_rand.cpp" />
+    <ClCompile Include="..\sci_rat.cpp" />
+    <ClCompile Include="..\sci_sin.cpp" />
     <ClCompile Include="..\sci_size.cpp" />
     <ClCompile Include="..\sci_sum.cpp" />
+    <ClCompile Include="..\sci_tan.cpp" />
     <ClCompile Include="..\sci_zeros.cpp" />
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="..\..\..\includes\dynlib_elementary_functions_gw.h" />
     <ClInclude Include="..\..\..\includes\elem_func_gw.hxx" />
-    <ClInclude Include="..\..\..\includes\getmode.hxx" />
   </ItemGroup>
   <ItemGroup>
-    <None Include="cacsd_f_Import.def" />
-    <None Include="eispack_f_Import.def" />
     <None Include="elementary_functions_f_Import.def" />
-    <None Include="linpack_f_Import.def" />
   </ItemGroup>
   <ItemGroup>
     <Library Include="..\..\..\..\..\bin\blasplus.lib" />
@@ -341,10 +326,6 @@ lib /DEF:"$(ProjectDir)core_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform
     <ProjectReference Include="..\..\..\..\types\typesmacro\typesmacro.vcxproj">
       <Project>{9252a034-7f22-4cb1-a634-4577da69f2d0}</Project>
     </ProjectReference>
-    <ProjectReference Include="..\..\..\src\cpp\elem_func\elem_func.vcxproj">
-      <Project>{e1284d3e-4b3f-446b-b541-f661a8a166a7}</Project>
-      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
-    </ProjectReference>
     <ProjectReference Include="..\..\..\src\c\elementary_functions.vcxproj">
       <Project>{5b110267-7c18-437c-b87d-dba2b50729e9}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
index f71f994..4d2a6b5 100644 (file)
@@ -24,9 +24,6 @@
     <ClCompile Include="..\sci_eye.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\sci_isequal.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
     <ClCompile Include="..\sci_ones.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
     <ClCompile Include="..\sci_rand.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\c\sci_abs.c">
+    <ClCompile Include="..\..\c\sci_isequalbitwise.c">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\c\sci_log1p.c">
+    <ClCompile Include="..\..\c\sci_nearfloat.c">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\c\sci_acos.c">
+    <ClCompile Include="..\..\c\sci_number_properties.c">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\c\sci_asin.c">
+    <ClCompile Include="..\..\c\sci_prod.c">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\c\sci_atan.c">
+    <ClCompile Include="..\..\c\sci_real.c">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\c\sci_ceil.c">
+    <ClCompile Include="..\..\c\sci_round.c">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\c\sci_clean.c">
+    <ClCompile Include="..\..\c\sci_sign.c">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\c\sci_conj.c">
+    <ClCompile Include="..\..\c\sci_sqrt.c">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\c\sci_cos.c">
+    <ClCompile Include="..\..\c\sci_testmatrix.c">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\c\sci_cumprod.c">
+    <ClCompile Include="..\..\c\sci_tril.c">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\c\sci_cumsum.c">
+    <ClCompile Include="..\..\c\sci_triu.c">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\c\sci_diag.c">
+    <ClCompile Include="..\sci_abs.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\c\sci_dsearch.c">
+    <ClCompile Include="..\sci_acos.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\c\sci_exp.c">
+    <ClCompile Include="..\sci_asin.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\c\sci_expm.c">
+    <ClCompile Include="..\sci_atan.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\c\sci_floor.c">
+    <ClCompile Include="..\sci_ceil.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\c\sci_frexp.c">
+    <ClCompile Include="..\sci_clean.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\c\sci_gsort.c">
+    <ClCompile Include="..\sci_conj.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\c\sci_imag.c">
+    <ClCompile Include="..\sci_cos.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\c\sci_imult.c">
+    <ClCompile Include="..\sci_cumprod.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\c\sci_int.c">
+    <ClCompile Include="..\sci_cumsum.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\c\sci_isequalbitwise.c">
+    <ClCompile Include="..\sci_diag.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\c\sci_isreal.c">
+    <ClCompile Include="..\sci_dsearch.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\c\sci_kron.c">
+    <ClCompile Include="..\sci_exp.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\c\sci_log.c">
+    <ClCompile Include="..\sci_expm.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\c\sci_matrix.c">
+    <ClCompile Include="..\sci_floor.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\c\sci_maxi.c">
+    <ClCompile Include="..\sci_frexp.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\c\sci_nearfloat.c">
+    <ClCompile Include="..\sci_gsort.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\c\sci_number_properties.c">
+    <ClCompile Include="..\sci_imag.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\c\sci_prod.c">
+    <ClCompile Include="..\sci_imult.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\c\sci_rat.c">
+    <ClCompile Include="..\sci_int.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\c\sci_real.c">
+    <ClCompile Include="..\sci_isreal.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\c\sci_round.c">
+    <ClCompile Include="..\sci_kron.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\c\sci_sign.c">
+    <ClCompile Include="..\sci_log.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\c\sci_sin.c">
+    <ClCompile Include="..\sci_log1p.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\c\sci_sqrt.c">
+    <ClCompile Include="..\sci_matrix.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\c\sci_tan.c">
+    <ClCompile Include="..\sci_max.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\c\sci_testmatrix.c">
+    <ClCompile Include="..\sci_min.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\c\sci_tril.c">
+    <ClCompile Include="..\sci_rat.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\c\sci_triu.c">
+    <ClCompile Include="..\sci_sin.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\sci_tan.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\sci_isequal.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
   </ItemGroup>
     <ClInclude Include="..\..\..\includes\elem_func_gw.hxx">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\includes\getmode.hxx">
-      <Filter>Header Files</Filter>
-    </ClInclude>
     <ClInclude Include="..\..\..\includes\dynlib_elementary_functions_gw.h">
       <Filter>Header Files</Filter>
     </ClInclude>
     <None Include="elementary_functions_f_Import.def">
       <Filter>Libraries Dependencies</Filter>
     </None>
-    <None Include="eispack_f_Import.def">
-      <Filter>Libraries Dependencies</Filter>
-    </None>
-    <None Include="cacsd_f_Import.def">
-      <Filter>Libraries Dependencies</Filter>
-    </None>
-    <None Include="linpack_f_Import.def">
-      <Filter>Libraries Dependencies</Filter>
-    </None>
   </ItemGroup>
   <ItemGroup>
     <Library Include="..\..\..\..\..\bin\blasplus.lib" />
diff --git a/scilab/modules/elementary_functions/sci_gateway/cpp/elem_func_gw/sci_sin.cpp b/scilab/modules/elementary_functions/sci_gateway/cpp/elem_func_gw/sci_sin.cpp
deleted file mode 100644 (file)
index 6bfee6a..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
-*  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-*  Copyright (C) 2008-2008 - DIGITEO - Antoine ELIAS
-*
-*  This file must be used under the terms of the CeCILL.
-*  This source file is licensed as described in the file COPYING, which
-*  you should have received as part of this distribution.  The terms
-*  are also available at
-*  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
-*
-*/
-
-#include "elem_func.hxx"
-
-extern "C"
-{
-       #include "sin.h"
-}
-
-using namespace types;
-
-Function::ReturnValue sci_sin(types::typed_list *in, int* _piRetCount, types::typed_list *out)
-{
-       double *pDataInR        = NULL;
-       double *pDataInI        = NULL;
-       double *pDataOutR = NULL;
-       double *pDataOutI = NULL;
-       Double *pRetVal         = NULL;
-
-       if(in->size() != 1)
-       {
-               return Function::WrongParamNumber;
-       }
-
-       if((*in)[0]->getType() != types::InternalType::RealDouble)
-       {
-               return Function::WrongParamType;
-       }
-
-
-       Double *pIn                             = (*in)[0]->getAsDouble();
-       if(pIn->isComplex())
-       {
-               pDataInR        =       pIn->real_get();
-               pDataInI        =       pIn->img_get();
-
-               pRetVal = new Double(pIn->rows_get(), pIn->cols_get(), &pDataOutR, &pDataOutI);
-
-               for(int i = 0 ; i < pIn->size_get() ; i++)
-               {
-                       zsins(pDataInR[i], pDataInI[i], &pDataOutR[i], &pDataOutI[i]);
-               }
-       }
-       else
-       {
-               pDataInR        =       pIn->real_get();
-               pRetVal = new Double(pIn->rows_get(), pIn->cols_get(), &pDataOutR);
-               for(int i = 0 ; i < pIn->size_get() ; i++)
-               {
-                       pDataOutR[i] = dsins(pDataInR[i]);
-               }
-       }
-
-       out->push_back(pRetVal);
-       *_piRetCount = 1;
-       return Function::AllGood;
-}
-
diff --git a/scilab/modules/elementary_functions/sci_gateway/cpp/sci_abs.cpp b/scilab/modules/elementary_functions/sci_gateway/cpp/sci_abs.cpp
new file mode 100644 (file)
index 0000000..781ea04
--- /dev/null
@@ -0,0 +1,212 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2011 - DIGITEO - Antoine ELIAS
+ * Copyright (C) 2012 - DIGITEO - 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
+ *
+ */
+/*--------------------------------------------------------------------------*/
+#include "elem_func_gw.hxx"
+#include "function.hxx"
+#include "double.hxx"
+#include "overload.hxx"
+#include "execvisitor.hxx"
+
+
+extern "C"
+{
+#include "Scierror.h"
+#include "localization.h"
+#include "abs.h"
+}
+
+/*--------------------------------------------------------------------------*/
+types::Function::ReturnValue sci_abs(types::typed_list &in, int _iRetCount, types::typed_list &out)
+{
+    if (in.size() != 1)
+    {
+        ScierrorW(77, _W("%ls: Wrong number of input argument(s): %d expected.\n"), L"abs", 1);
+        return types::Function::Error;
+    }
+
+    if (_iRetCount > 1)
+    {
+        ScierrorW(78, _W("%ls: Wrong number of output argument(s): %d expected.\n"), L"abs", 1);
+        return types::Function::Error;
+    }
+
+    if (in[0]->isDouble())
+    {
+        types::Double* pDblIn = in[0]->getAs<types::Double>();
+        types::Double* pDblOut = new types::Double(pDblIn->getDims(), pDblIn->getDimsArray());
+
+        if (pDblIn->isComplex())
+        {
+            for (int i = 0 ; i < pDblIn->getSize() ; i++)
+            {
+                pDblOut->set(i, dabsz(pDblIn->get(i), pDblIn->getImg(i)));
+            }
+        }
+        else
+        {
+            for (int i = 0 ; i < pDblIn->getSize() ; i++)
+            {
+                pDblOut->set(i, dabss(pDblIn->get(i)));
+            }
+        }
+
+        out.push_back(pDblOut);
+    }
+    else if (in[0]->isPoly())
+    {
+        types::Polynom* pPolyIn = in[0]->getAs<types::Polynom>();
+        types::Polynom* pPolyOut = new types::Polynom(pPolyIn->getVariableName(), pPolyIn->getDims(), pPolyIn->getDimsArray());
+        double* data = NULL;
+
+        if (pPolyIn->isComplex())
+        {
+            for (int i = 0; i < pPolyIn->getSize(); i++)
+            {
+                int rank = pPolyIn->get(i)->getRank();
+                types::SinglePoly* pSP = new types::SinglePoly(&data, rank);
+
+                for (int j = 0; j < rank; j++)
+                {
+                    data[j] = dabsz(pPolyIn->get(i)->getCoefReal()[j], pPolyIn->get(i)->getCoefImg()[j]);
+                }
+
+                pPolyOut->set(i, pSP);
+                delete pSP;
+                pSP = NULL;
+            }
+        }
+        else
+        {
+            for (int i = 0; i < pPolyIn->getSize(); i++)
+            {
+                int rank = pPolyIn->get(i)->getRank();
+                types::SinglePoly* pSP = new types::SinglePoly(&data, rank);
+
+                for (int j = 0; j < rank; j++)
+                {
+                    data[j] = dabss(pPolyIn->get(i)->getCoefReal()[j]);
+                }
+
+                pPolyOut->set(i, pSP);
+                delete pSP;
+                pSP = NULL;
+            }
+        }
+
+        out.push_back(pPolyOut);
+    }
+    else if (in[0]->isSparse())
+    {
+        types::Sparse* pSparseIn = in[0]->getAs<types::Sparse>();
+        types::Sparse* pSparseOut = new types::Sparse(pSparseIn->getRows(), pSparseIn->getCols());
+
+        int const nonZeros = static_cast<int>(pSparseIn->nonZeros());
+        double* pRows = new double[nonZeros * 2];
+        pSparseIn->outputRowCol(pRows);
+        double* pCols = pRows + nonZeros;
+
+        double* pNonZeroR = new double[nonZeros];
+        double* pNonZeroI = new double[nonZeros];
+        pSparseIn->outputValues(pNonZeroR, pNonZeroI);
+
+        if (pSparseIn->isComplex())
+        {
+            for (int i = 0 ; i < nonZeros ; i++)
+            {
+                pSparseOut->set(pRows[i] - 1, pCols[i] - 1, dabsz(pNonZeroR[i], pNonZeroI[i]));
+            }
+        }
+        else
+        {
+            for (int i = 0 ; i < nonZeros ; i++)
+            {
+                pSparseOut->set(pRows[i] - 1, pCols[i] - 1, dabss(pNonZeroR[i]));
+            }
+        }
+
+        delete[] pRows;
+        delete[] pNonZeroR;
+        delete[] pNonZeroI;
+
+        out.push_back(pSparseOut);
+    }
+    else if (in[0]->isInt8())
+    {
+        types::Int8* pIntIn = in[0]->getAs<types::Int8>();
+        types::Int8* pIntOut = new types::Int8(pIntIn->getDims(), pIntIn->getDimsArray());
+
+        for (int i = 0 ; i < pIntIn->getSize() ; i++)
+        {
+            char cInput = pIntIn->get(i);
+            pIntOut->set(i, cInput < 0 ? -cInput : cInput);
+        }
+        out.push_back(pIntOut);
+    }
+    else if (in[0]->isInt16())
+    {
+        types::Int16* pIntIn = in[0]->getAs<types::Int16>();
+        types::Int16* pIntOut = new types::Int16(pIntIn->getDims(), pIntIn->getDimsArray());
+
+        for (int i = 0 ; i < pIntIn->getSize() ; i++)
+        {
+            pIntOut->set(i, abs(pIntIn->get(i)));
+        }
+        out.push_back(pIntOut);
+    }
+    else if (in[0]->isInt32())
+    {
+        types::Int32* pIntIn = in[0]->getAs<types::Int32>();
+        types::Int32* pIntOut = new types::Int32(pIntIn->getDims(), pIntIn->getDimsArray());
+
+        for (int i = 0 ; i < pIntIn->getSize() ; i++)
+        {
+            pIntOut->set(i, abs(pIntIn->get(i)));
+        }
+        out.push_back(pIntOut);
+    }
+    else if (in[0]->isInt64())
+    {
+        types::Int64* pIntIn = in[0]->getAs<types::Int64>();
+        types::Int64* pIntOut = new types::Int64(pIntIn->getDims(), pIntIn->getDimsArray());
+
+        for (int i = 0 ; i < pIntIn->getSize() ; i++)
+        {
+            pIntOut->set(i, llabs(pIntIn->get(i)));
+        }
+        out.push_back(pIntOut);
+    }
+    else if (in[0]->isUInt8())
+    {
+        out.push_back(in[0]->getAs<types::UInt8>()->clone());
+    }
+    else if (in[0]->isUInt16())
+    {
+        out.push_back(in[0]->getAs<types::UInt16>()->clone());
+    }
+    else if (in[0]->isUInt32())
+    {
+        out.push_back(in[0]->getAs<types::UInt32>()->clone());
+    }
+    else if (in[0]->isUInt64())
+    {
+        out.push_back(in[0]->getAs<types::UInt64>()->clone());
+    }
+    else
+    {
+        std::wstring wstFuncName = L"%"  + in[0]->getShortTypeStr() + L"_abs";
+        return Overload::call(wstFuncName, in, _iRetCount, out, new ExecVisitor());
+    }
+
+    return types::Function::OK;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/scilab/modules/elementary_functions/sci_gateway/cpp/sci_acos.cpp b/scilab/modules/elementary_functions/sci_gateway/cpp/sci_acos.cpp
new file mode 100644 (file)
index 0000000..1914f41
--- /dev/null
@@ -0,0 +1,95 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2012 - DIGITEO - 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
+ *
+ */
+/*--------------------------------------------------------------------------*/
+#include "elem_func_gw.hxx"
+#include "function.hxx"
+#include "double.hxx"
+#include "overload.hxx"
+#include "execvisitor.hxx"
+
+
+extern "C"
+{
+#include "Scierror.h"
+#include "localization.h"
+#include "cos.h"
+}
+
+/*--------------------------------------------------------------------------*/
+types::Function::ReturnValue sci_acos(types::typed_list &in, int _iRetCount, types::typed_list &out)
+{
+    types::Double* pDblIn   = NULL;
+    types::Double* pDblOut  = NULL;
+
+    if (in.size() != 1)
+    {
+        ScierrorW(77, _W("%ls: Wrong number of input argument(s): %d expected.\n"), L"acos", 1);
+        return types::Function::Error;
+    }
+
+    if (_iRetCount > 1)
+    {
+        ScierrorW(78, _W("%ls: Wrong number of output argument(s): %d expected.\n"), L"acos", 1);
+        return types::Function::Error;
+    }
+
+    if (in[0]->isDouble() == false)
+    {
+        std::wstring wstFuncName = L"%"  + in[0]->getShortTypeStr() + L"_acos";
+        return Overload::call(wstFuncName, in, _iRetCount, out, new ExecVisitor());
+    }
+
+    pDblIn = in[0]->getAs<types::Double>();
+
+    if (pDblIn->isComplex())
+    {
+        pDblOut = new types::Double(pDblIn->getDims(), pDblIn->getDimsArray(), true);
+        for (int i = 0 ; i < pDblIn->getSize() ; i++)
+        {
+            wacos(pDblIn->get(i), pDblIn->getImg(i), pDblOut->get() + i, pDblOut->getImg() + i);
+        }
+    }
+    else
+    {
+        bool bOutSide = 0;
+        //check if all variables are between [-1,1]
+        for (int i = 0 ; i < pDblIn->getSize() ; i++)
+        {
+            if (fabs(pDblIn->get(i)) > 1)
+            {
+                bOutSide = 1;
+                break;
+            }
+        }
+
+        if (bOutSide) // Values outside [-1,1]
+        {
+            pDblOut = new types::Double(pDblIn->getDims(), pDblIn->getDimsArray(), true);
+            for (int i = 0 ; i < pDblIn->getSize() ; i++)
+            {
+                wacos(pDblIn->get(i), 0, pDblOut->get() + i, pDblOut->getImg() + i);
+            }
+        }
+        else //all values are in [-1,1]
+        {
+            pDblOut = new types::Double(pDblIn->getDims(), pDblIn->getDimsArray(), false);
+            for (int i = 0 ; i < pDblIn->getSize() ; i++)
+            {
+                pDblOut->set(i, dacoss(pDblIn->get(i)));
+            }
+        }
+    }
+
+    out.push_back(pDblOut);
+    return types::Function::OK;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/scilab/modules/elementary_functions/sci_gateway/cpp/sci_asin.cpp b/scilab/modules/elementary_functions/sci_gateway/cpp/sci_asin.cpp
new file mode 100644 (file)
index 0000000..b987d5b
--- /dev/null
@@ -0,0 +1,95 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2012 - DIGITEO - 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
+ *
+ */
+/*--------------------------------------------------------------------------*/
+#include "elem_func_gw.hxx"
+#include "function.hxx"
+#include "double.hxx"
+#include "overload.hxx"
+#include "execvisitor.hxx"
+
+
+extern "C"
+{
+#include "Scierror.h"
+#include "localization.h"
+#include "sin.h"
+}
+
+/*--------------------------------------------------------------------------*/
+types::Function::ReturnValue sci_asin(types::typed_list &in, int _iRetCount, types::typed_list &out)
+{
+    types::Double* pDblIn   = NULL;
+    types::Double* pDblOut  = NULL;
+
+    if (in.size() != 1)
+    {
+        ScierrorW(77, _W("%ls: Wrong number of input argument(s): %d expected.\n"), L"asin", 1);
+        return types::Function::Error;
+    }
+
+    if (_iRetCount > 1)
+    {
+        ScierrorW(78, _W("%ls: Wrong number of output argument(s): %d expected.\n"), L"asin", 1);
+        return types::Function::Error;
+    }
+
+    if (in[0]->isDouble() == false)
+    {
+        std::wstring wstFuncName = L"%"  + in[0]->getShortTypeStr() + L"_asin";
+        return Overload::call(wstFuncName, in, _iRetCount, out, new ExecVisitor());
+    }
+
+    pDblIn = in[0]->getAs<types::Double>();
+
+    if (pDblIn->isComplex())
+    {
+        pDblOut = new types::Double(pDblIn->getDims(), pDblIn->getDimsArray(), true);
+        for (int i = 0 ; i < pDblIn->getSize() ; i++)
+        {
+            wasin(pDblIn->get(i), pDblIn->getImg(i), pDblOut->get() + i, pDblOut->getImg() + i);
+        }
+    }
+    else
+    {
+        bool bOutSide = 0;
+        //check if all variables are between [-1,1]
+        for (int i = 0 ; i < pDblIn->getSize() ; i++)
+        {
+            if (fabs(pDblIn->get(i)) > 1)
+            {
+                bOutSide = 1;
+                break;
+            }
+        }
+
+        if (bOutSide) // Values outside [-1,1]
+        {
+            pDblOut = new types::Double(pDblIn->getDims(), pDblIn->getDimsArray(), true);
+            for (int i = 0 ; i < pDblIn->getSize() ; i++)
+            {
+                wasin(pDblIn->get(i), 0, pDblOut->get() + i, pDblOut->getImg() + i);
+            }
+        }
+        else //all values are in [-1,1]
+        {
+            pDblOut = new types::Double(pDblIn->getDims(), pDblIn->getDimsArray(), false);
+            for (int i = 0 ; i < pDblIn->getSize() ; i++)
+            {
+                pDblOut->set(i, dasins(pDblIn->get(i)));
+            }
+        }
+    }
+
+    out.push_back(pDblOut);
+    return types::Function::OK;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/scilab/modules/elementary_functions/sci_gateway/cpp/sci_atan.cpp b/scilab/modules/elementary_functions/sci_gateway/cpp/sci_atan.cpp
new file mode 100644 (file)
index 0000000..bae97ca
--- /dev/null
@@ -0,0 +1,106 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2012 - DIGITEO - 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
+ *
+ */
+/*--------------------------------------------------------------------------*/
+#include "elem_func_gw.hxx"
+#include "function.hxx"
+#include "double.hxx"
+#include "overload.hxx"
+#include "execvisitor.hxx"
+
+
+extern "C"
+{
+#include "Scierror.h"
+#include "localization.h"
+#include "tan.h"
+#include "abs.h"
+}
+
+/*--------------------------------------------------------------------------*/
+types::Function::ReturnValue sci_atan(types::typed_list &in, int _iRetCount, types::typed_list &out)
+{
+    types::Double* pDblX   = NULL;
+    types::Double* pDblY   = NULL;
+    types::Double* pDblOut = NULL;
+
+    if (in.size() < 1 || in.size() > 2)
+    {
+        ScierrorW(77, _W("%ls: Wrong number of input argument(s): %d to %d expected.\n"), L"atan", 1, 2);
+        return types::Function::Error;
+    }
+
+    if (_iRetCount > 1)
+    {
+        ScierrorW(78, _W("%ls: Wrong number of output argument(s): %d expected.\n"), L"atan", 1);
+        return types::Function::Error;
+    }
+
+    if (in[0]->isDouble() == false)
+    {
+        std::wstring wstFuncName = L"%"  + in[0]->getShortTypeStr() + L"_atan";
+        return Overload::call(wstFuncName, in, _iRetCount, out, new ExecVisitor());
+    }
+
+    pDblX = in[0]->getAs<types::Double>();
+
+    if (in.size() == 1)
+    {
+        if (pDblX->isComplex())
+        {
+            pDblOut = new types::Double(pDblX->getDims(), pDblX->getDimsArray(), true);
+            for (int i = 0 ; i < pDblX->getSize() ; i++)
+            {
+                if (pDblX->get(i) == 0 && dabss(pDblX->getImg(i)) == 1)
+                {
+                    ScierrorW(999, _W("%ls: Wrong value for input argument #%d : Singularity of the fonction.\n"), L"atan", 1);
+                    return types::Function::Error;
+                }
+
+                watan(pDblX->get(i), pDblX->getImg(i), pDblOut->get() + i, pDblOut->getImg() + i);
+            }
+        }
+        else
+        {
+            pDblOut = new types::Double(pDblX->getDims(), pDblX->getDimsArray(), false);
+            for (int i = 0 ; i < pDblX->getSize() ; i++)
+            {
+                pDblOut->set(i, datans(pDblX->get(i)));
+            }
+        }
+    }
+    else // in.size() == 2
+    {
+        pDblY = in[1]->getAs<types::Double>();
+
+        if (pDblX->isComplex() || pDblY->isComplex())
+        {
+            ScierrorW(999, _W("%ls: Wrong type for input argument #%d : A real matrix expected.\n"), L"atan", 2);
+            return types::Function::Error;
+        }
+
+        if (pDblX->getSize() != pDblY->getSize())
+        {
+            ScierrorW(999, _W("%ls: Wrong size for input argument #%d and #%d: Same size expected.\n"), L"atan", 1, 2);
+            return types::Function::Error;
+        }
+
+        pDblOut = new types::Double(pDblX->getDims(), pDblX->getDimsArray(), false);
+        for (int i = 0 ; i < pDblX->getSize() ; i++)
+        {
+            pDblOut->set(i, datan2s(pDblX->get(i), pDblY->get(i)));
+        }
+    }
+
+    out.push_back(pDblOut);
+    return types::Function::OK;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/scilab/modules/elementary_functions/sci_gateway/cpp/sci_ceil.cpp b/scilab/modules/elementary_functions/sci_gateway/cpp/sci_ceil.cpp
new file mode 100644 (file)
index 0000000..6d0ae90
--- /dev/null
@@ -0,0 +1,158 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2012 - DIGITEO - 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
+ *
+ */
+/*--------------------------------------------------------------------------*/
+#include "elem_func_gw.hxx"
+#include "function.hxx"
+#include "double.hxx"
+#include "overload.hxx"
+#include "execvisitor.hxx"
+
+
+extern "C"
+{
+#include "Scierror.h"
+#include "localization.h"
+#include "basic_functions.h"
+}
+
+/*--------------------------------------------------------------------------*/
+types::Function::ReturnValue sci_ceil(types::typed_list &in, int _iRetCount, types::typed_list &out)
+{
+    if (in.size() != 1)
+    {
+        ScierrorW(77, _W("%ls: Wrong number of input argument(s): %d expected.\n"), L"ceil", 1);
+        return types::Function::Error;
+    }
+
+    if (_iRetCount > 1)
+    {
+        ScierrorW(78, _W("%ls: Wrong number of output argument(s): %d expected.\n"), L"ceil", 1);
+        return types::Function::Error;
+    }
+
+    if (in[0]->isDouble())
+    {
+        types::Double* pDblIn = in[0]->getAs<types::Double>();
+        types::Double* pDblOut = new types::Double(pDblIn->getDims(), pDblIn->getDimsArray(), pDblIn->isComplex());
+
+        if (pDblIn->isComplex())
+        {
+            for (int i = 0 ; i < pDblIn->getSize() ; i++)
+            {
+                pDblOut->setImg(i, dceils(pDblIn->getImg(i)));
+            }
+        }
+
+        for (int i = 0 ; i < pDblIn->getSize() ; i++)
+        {
+            pDblOut->set(i, dceils(pDblIn->get(i)));
+        }
+
+        out.push_back(pDblOut);
+    }
+    else if (in[0]->isSparse())
+    {
+        types::Sparse* pSparseIn = in[0]->getAs<types::Sparse>();
+        types::Sparse* pSparseOut = new types::Sparse(pSparseIn->getRows(), pSparseIn->getCols(), pSparseIn->isComplex());
+
+        int const nonZeros = static_cast<int>(pSparseIn->nonZeros());
+        double* pRows = new double[nonZeros * 2];
+        pSparseIn->outputRowCol(pRows);
+        double* pCols = pRows + nonZeros;
+
+        double* pNonZeroR = new double[nonZeros];
+        double* pNonZeroI = new double[nonZeros];
+        pSparseIn->outputValues(pNonZeroR, pNonZeroI);
+
+        if (pSparseIn->isComplex())
+        {
+            for (int i = 0; i < nonZeros; i++)
+            {
+                std::complex<double> cplx(dceils(pNonZeroR[i]), dceils(pNonZeroI[i]));
+                pSparseOut->set(pRows[i] - 1, pCols[i] - 1, cplx);
+            }
+        }
+        else
+        {
+            for (int i = 0; i < nonZeros; i++)
+            {
+                pSparseOut->set(pRows[i] - 1, pCols[i] - 1, dceils(pNonZeroR[i]));
+            }
+        }
+
+        delete[] pRows;
+        delete[] pNonZeroR;
+        delete[] pNonZeroI;
+
+        out.push_back(pSparseOut);
+    }
+    else if (in[0]->isPoly())
+    {
+        types::Polynom* pPolyIn = in[0]->getAs<types::Polynom>();
+        types::Polynom* pPolyOut = new types::Polynom(pPolyIn->getVariableName(), pPolyIn->getDims(), pPolyIn->getDimsArray());
+        pPolyOut->setComplex(pPolyIn->isComplex());
+
+        double* dataImg  = NULL;
+        double* dataReal = NULL;
+
+        if (pPolyIn->isComplex())
+        {
+            for (int i = 0; i < pPolyIn->getSize(); i++)
+            {
+                int rank = pPolyIn->get(i)->getRank();
+                types::SinglePoly* pSP = new types::SinglePoly(&dataReal, &dataImg, rank);
+
+                for (int j = 0; j < rank; j++)
+                {
+                    dataReal[j] = dceils(pPolyIn->get(i)->getCoefReal()[j]);
+                    dataImg[j]  = dceils(pPolyIn->get(i)->getCoefImg()[j]);
+                }
+
+                pPolyOut->set(i, pSP);
+                delete pSP;
+                pSP = NULL;
+            }
+        }
+        else
+        {
+            for (int i = 0; i < pPolyIn->getSize(); i++)
+            {
+                int rank = pPolyIn->get(i)->getRank();
+                types::SinglePoly* pSP = new types::SinglePoly(&dataReal, rank);
+
+                for (int j = 0; j < rank; j++)
+                {
+                    dataReal[j] = dceils(pPolyIn->get(i)->getCoefReal()[j]);
+                }
+
+                pPolyOut->set(i, pSP);
+                delete pSP;
+                pSP = NULL;
+            }
+        }
+
+        out.push_back(pPolyOut);
+    }
+    else if (in[0]->isInt())
+    {
+        out.push_back(in[0]->getAs<types::InternalType>()->clone());
+        return types::Function::OK;
+    }
+    else
+    {
+        std::wstring wstFuncName = L"%"  + in[0]->getShortTypeStr() + L"_ceil";
+        return Overload::call(wstFuncName, in, _iRetCount, out, new ExecVisitor());
+    }
+
+    return types::Function::OK;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/scilab/modules/elementary_functions/sci_gateway/cpp/sci_clean.cpp b/scilab/modules/elementary_functions/sci_gateway/cpp/sci_clean.cpp
new file mode 100644 (file)
index 0000000..181c8c9
--- /dev/null
@@ -0,0 +1,223 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2012 - DIGITEO - 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
+ *
+ */
+/*--------------------------------------------------------------------------*/
+#include "elem_func_gw.hxx"
+#include "function.hxx"
+#include "double.hxx"
+#include "overload.hxx"
+#include "execvisitor.hxx"
+
+
+extern "C"
+{
+#include "Scierror.h"
+#include "localization.h"
+#include "basic_functions.h"
+}
+
+/*--------------------------------------------------------------------------*/
+types::Function::ReturnValue sci_clean(types::typed_list &in, int _iRetCount, types::typed_list &out)
+{
+    types::Double* pDblOut      = NULL;
+    types::Polynom* pPolyOut    = NULL;
+    types::Sparse* pSparseOut   = NULL;
+
+    double* pdReal  = NULL;
+    double* pdImg   = NULL;
+
+    double dNorm    = 0;
+    double dEps     = 0;
+    double dEpsR    = 1E-10;
+    double dEpsA    = 1E-10;
+
+    bool bComplex   = false;
+    int iSize       = 0;
+
+    //Only for types::Sparse case
+    double* pRows = NULL;
+    double* pCols = NULL;
+
+    if (in.size() < 1 || in.size() > 3)
+    {
+        ScierrorW(77, _W("%ls: Wrong number of input argument(s): %d to %d expected.\n"), L"clean", 1, 3);
+        return types::Function::Error;
+    }
+
+    if (_iRetCount > 1)
+    {
+        ScierrorW(78, _W("%ls: Wrong number of output argument(s): %d expected.\n"), L"clean", 1);
+        return types::Function::Error;
+    }
+
+    /***** get data *****/
+    if (in[0]->isDouble())
+    {
+        pDblOut = in[0]->getAs<types::Double>()->clone()->getAs<types::Double>();
+
+        iSize = pDblOut->getSize();
+        pdReal = pDblOut->get();
+        if (pDblOut->isComplex())
+        {
+            bComplex = true;
+            pdImg = pDblOut->getImg();
+        }
+    }
+    else if (in[0]->isPoly())
+    {
+        types::Polynom* pPolyIn = in[0]->getAs<types::Polynom>();
+        int* piRanks = new int[pPolyIn->getSize()];
+        pPolyIn->getRank(piRanks);
+        pPolyOut = new types::Polynom(pPolyIn->getVariableName(), pPolyIn->getDims(), pPolyIn->getDimsArray(), piRanks);
+
+        pDblOut = pPolyIn->getCoef();
+        iSize = pDblOut->getSize();
+        pdReal = pDblOut->get();
+        if (pDblOut->isComplex())
+        {
+            bComplex = true;
+            pdImg = pDblOut->getImg();
+        }
+
+        delete[] piRanks;
+    }
+    else if (in[0]->isSparse())
+    {
+        types::Sparse* pSparseIn = in[0]->getAs<types::Sparse>();
+        pSparseOut = new types::Sparse(pSparseIn->getRows(), pSparseIn->getCols());
+
+        iSize = static_cast<int>(pSparseIn->nonZeros());
+        pRows = new double[iSize * 2];
+        pSparseIn->outputRowCol(pRows);
+        pCols = pRows + iSize;
+
+        pdReal = new double[iSize];
+        pdImg  = new double[iSize];
+        pSparseIn->outputValues(pdReal, pdImg);
+
+        if (pSparseIn->isComplex())
+        {
+            bComplex = true;
+        }
+    }
+    else
+    {
+        std::wstring wstFuncName = L"%"  + in[0]->getShortTypeStr() + L"_clean";
+        return Overload::call(wstFuncName, in, _iRetCount, out, new ExecVisitor());
+    }
+
+
+    if (in.size() == 3)
+    {
+        if (in[2]->isDouble() == false)
+        {
+            ScierrorW(999, _W("%ls: Wrong type for input argument #%d : A real scalar expected.\n"), L"clean", 3);
+            return types::Function::Error;
+        }
+
+        types::Double* pDbl = in[2]->getAs<types::Double>();
+
+        if (pDbl->isScalar() == false || pDbl->isComplex())
+        {
+            ScierrorW(999, _W("%ls: Wrong type for input argument #%d : A real scalar expected.\n"), L"clean", 3);
+            return types::Function::Error;
+        }
+
+        dEpsR = pDbl->get(0);
+    }
+
+    if (in.size() >= 2)
+    {
+        if (in[1]->isDouble() == false)
+        {
+            ScierrorW(999, _W("%ls: Wrong type for input argument #%d : A real scalar expected.\n"), L"clean", 2);
+            return types::Function::Error;
+        }
+
+        types::Double* pDbl = in[1]->getAs<types::Double>();
+
+        if (pDbl->isScalar() == false || pDbl->isComplex())
+        {
+            ScierrorW(999, _W("%ls: Wrong type for input argument #%d : A real scalar expected.\n"), L"clean", 2);
+            return types::Function::Error;
+        }
+
+        dEpsA = pDbl->get(0);
+    }
+
+    /***** perform operation *****/
+    if (bComplex)
+    {
+        dNorm = wasums(iSize, pdReal, pdImg);
+        dEps = Max(dEpsA, dEpsR * dNorm);
+
+        for (int i = 0 ; i < iSize ; i++)
+        {
+            if (dabss(pdImg[i]) <= dEps)
+            {
+                pdImg[i] = 0;
+            }
+        }
+    }
+    else
+    {
+        int iOne = 1;
+        dNorm = C2F(dasum)(&iSize, pdReal, &iOne);
+        dEps = Max(dEpsA, dEpsR * dNorm);
+    }
+
+    for (int i = 0 ; i < iSize ; i++)
+    {
+        if (dabss(pdReal[i]) <= dEps)
+        {
+            pdReal[i] = 0;
+        }
+    }
+
+    /***** set result *****/
+    if (in[0]->isDouble())
+    {
+        out.push_back(pDblOut);
+    }
+    else if (in[0]->isPoly())
+    {
+        pPolyOut->setCoef(pDblOut);
+        delete pDblOut;
+        pDblOut = NULL;
+        out.push_back(pPolyOut);
+    }
+    else if (in[0]->isSparse())
+    {
+        if (bComplex)
+        {
+            for (int i = 0 ; i < iSize ; i++)
+            {
+                std::complex<double> cplx = complex<double>(pdReal[i], pdImg[i]);
+                pSparseOut->set(pRows[i] - 1, pCols[i] - 1, cplx);
+            }
+        }
+        else
+        {
+            for (int i = 0 ; i < iSize ; i++)
+            {
+                pSparseOut->set(pRows[i] - 1, pCols[i] - 1, pdReal[i]);
+            }
+        }
+
+        delete[] pdReal;
+        delete[] pdImg;
+        delete[] pRows;
+        out.push_back(pSparseOut);
+    }
+
+    return types::Function::OK;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/scilab/modules/elementary_functions/sci_gateway/cpp/sci_conj.cpp b/scilab/modules/elementary_functions/sci_gateway/cpp/sci_conj.cpp
new file mode 100644 (file)
index 0000000..68b1f86
--- /dev/null
@@ -0,0 +1,81 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2012 - DIGITEO - 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
+ *
+ */
+/*--------------------------------------------------------------------------*/
+#include "elem_func_gw.hxx"
+#include "function.hxx"
+#include "double.hxx"
+#include "overload.hxx"
+#include "execvisitor.hxx"
+
+
+extern "C"
+{
+#include "Scierror.h"
+#include "localization.h"
+#include "basic_functions.h"
+}
+
+/*--------------------------------------------------------------------------*/
+types::Function::ReturnValue sci_conj(types::typed_list &in, int _iRetCount, types::typed_list &out)
+{
+    types::Double* pDblOut      = NULL;
+    types::Polynom* pPolyOut    = NULL;
+
+    double dLeatOne = -1;
+    int iOne        = 1;
+    int iSize       = pDblOut->getSize();
+
+    if (in.size() != 1)
+    {
+        ScierrorW(77, _W("%ls: Wrong number of input argument(s): %d to %d expected.\n"), L"conj", 1);
+        return types::Function::Error;
+    }
+
+    if (_iRetCount > 1)
+    {
+        ScierrorW(78, _W("%ls: Wrong number of output argument(s): %d expected.\n"), L"conj", 1);
+        return types::Function::Error;
+    }
+
+    if (in[0]->isDouble())
+    {
+        pDblOut = in[0]->getAs<types::Double>()->clone()->getAs<types::Double>();
+    }
+    else if (in[0]->isPoly())
+    {
+        pPolyOut = in[0]->getAs<types::Polynom>()->clone()->getAs<types::Polynom>();
+        pDblOut = pPolyOut->getCoef();
+    }
+    else
+    {
+        std::wstring wstFuncName = L"%"  + in[0]->getShortTypeStr() + L"_conj";
+        return Overload::call(wstFuncName, in, _iRetCount, out, new ExecVisitor());
+    }
+
+    if (pDblOut->isComplex())
+    {
+        C2F(dscal)(&iSize, &dLeatOne, pDblOut->getImg(), &iOne);
+    }
+
+    if (in[0]->isDouble())
+    {
+        out.push_back(pDblOut);
+    }
+    else if (in[0]->isPoly())
+    {
+        pPolyOut->setCoef(pDblOut);
+        out.push_back(pPolyOut);
+    }
+
+    return types::Function::OK;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/scilab/modules/elementary_functions/sci_gateway/cpp/sci_cos.cpp b/scilab/modules/elementary_functions/sci_gateway/cpp/sci_cos.cpp
new file mode 100644 (file)
index 0000000..b21b2f0
--- /dev/null
@@ -0,0 +1,120 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2012 - DIGITEO - 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
+ *
+ */
+/*--------------------------------------------------------------------------*/
+#include "elem_func_gw.hxx"
+#include "function.hxx"
+#include "double.hxx"
+#include "overload.hxx"
+#include "execvisitor.hxx"
+
+
+extern "C"
+{
+#include "Scierror.h"
+#include "localization.h"
+#include "elem_common.h"
+#include "cos.h"
+}
+
+/*--------------------------------------------------------------------------*/
+types::Function::ReturnValue sci_cos(types::typed_list &in, int _iRetCount, types::typed_list &out)
+{
+    types::Double* pDblIn   = NULL;
+    types::Double* pDblOut  = NULL;
+
+    if (in.size() != 1)
+    {
+        ScierrorW(77, _W("%ls: Wrong number of input argument(s): %d expected.\n"), L"cos", 1);
+        return types::Function::Error;
+    }
+
+    if (_iRetCount > 1)
+    {
+        ScierrorW(78, _W("%ls: Wrong number of output argument(s): %d expected.\n"), L"cos", 1);
+        return types::Function::Error;
+    }
+
+    if (in[0]->isDouble())
+    {
+        pDblIn = in[0]->getAs<types::Double>();
+        pDblOut = new types::Double(pDblIn->getDims(), pDblIn->getDimsArray(), pDblIn->isComplex());
+
+        if (pDblIn->isComplex())
+        {
+            for (int i = 0 ; i < pDblIn->getSize() ; i++)
+            {
+                zcoss(pDblIn->get(i), pDblIn->getImg(i), pDblOut->get() + i, pDblOut->getImg() + i);
+            }
+        }
+        else
+        {
+            for (int i = 0 ; i < pDblIn->getSize() ; i++)
+            {
+                pDblOut->set(i, dcoss(pDblIn->get(i)));
+            }
+        }
+
+        out.push_back(pDblOut);
+    }
+    else if (in[0]->isSparse())
+    {
+        types::Sparse* pSparseIn = in[0]->getAs<types::Sparse>();
+        types::Double* pDblOut = new types::Double(pSparseIn->getRows(), pSparseIn->getCols(), pSparseIn->isComplex());
+
+        int const nonZeros = static_cast<int>(pSparseIn->nonZeros());
+        double* pRows = new double[nonZeros * 2];
+        pSparseIn->outputRowCol(pRows);
+        double* pCols = pRows + nonZeros;
+
+        double* pNonZeroR = new double[nonZeros];
+        double* pNonZeroI = new double[nonZeros];
+        pSparseIn->outputValues(pNonZeroR, pNonZeroI);
+
+        int iSize = pSparseIn->getSize();
+        int iOne    = 1;
+        double dOne = 1;
+        int iZero   = 0;
+
+        C2F(dcopy)(&iSize, &dOne, &iZero, pDblOut->get(), &iOne);
+
+        if (pSparseIn->isComplex())
+        {
+            for (int i = 0 ; i < nonZeros ; i++)
+            {
+                int iPos = (pCols[i] - 1) * pSparseIn->getRows() + (pRows[i] - 1);
+                zcoss(pNonZeroR[i], pNonZeroI[i], pDblOut->get() + iPos, pDblOut->getImg() + iPos);
+            }
+        }
+        else
+        {
+            for (int i = 0 ; i < nonZeros ; i++)
+            {
+                int iPos = (pCols[i] - 1) * pSparseIn->getRows() + (pRows[i] - 1);
+                pDblOut->set(iPos, dcoss(pNonZeroR[i]));
+            }
+        }
+
+        delete[] pRows;
+        delete[] pNonZeroR;
+        delete[] pNonZeroI;
+
+        out.push_back(pDblOut);
+    }
+    else
+    {
+        std::wstring wstFuncName = L"%"  + in[0]->getShortTypeStr() + L"_cos";
+        return Overload::call(wstFuncName, in, _iRetCount, out, new ExecVisitor());
+    }
+
+    return types::Function::OK;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/scilab/modules/elementary_functions/sci_gateway/cpp/sci_cumprod.cpp b/scilab/modules/elementary_functions/sci_gateway/cpp/sci_cumprod.cpp
new file mode 100644 (file)
index 0000000..9847158
--- /dev/null
@@ -0,0 +1,405 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2012 - DIGITEO - 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
+ *
+ */
+/*--------------------------------------------------------------------------*/
+#include "elem_func_gw.hxx"
+#include "function.hxx"
+#include "double.hxx"
+#include "string.hxx"
+#include "overload.hxx"
+#include "execvisitor.hxx"
+#include "cumprod.hxx"
+
+extern "C"
+{
+#include "Scierror.h"
+#include "localization.h"
+#include "basic_functions.h"
+}
+
+/*--------------------------------------------------------------------------*/
+types::Function::ReturnValue sci_cumprod(types::typed_list &in, int _iRetCount, types::typed_list &out)
+{
+    types::Double* pDblIn       = NULL;
+    types::Double* pDblOut      = NULL;
+    types::Polynom* pPolyIn     = NULL;
+    types::Polynom* pPolyOut    = NULL;
+
+    int iOrientation    = 0;
+    int iOuttype        = 1; // 1 = native | 2 = double (type of output value)
+
+    if (in.size() < 1 || in.size() > 3)
+    {
+        ScierrorW(77, _W("%ls: Wrong number of input argument(s): %d to %d expected.\n"), L"cumprod", 1, 3);
+        return types::Function::Error;
+    }
+
+    if (_iRetCount > 1)
+    {
+        ScierrorW(78, _W("%ls: Wrong number of output argument(s): %d expected.\n"), L"cumprod", 1);
+        return types::Function::Error;
+    }
+
+    /***** get data *****/
+    if (in[0]->isDouble()) // double
+    {
+        pDblIn = in[0]->getAs<types::Double>();
+    }
+    else if (in[0]->isBool()) // bool
+    {
+        types::Bool* pBIn = in[0]->getAs<types::Bool>();
+        pDblIn = new types::Double(pBIn->getDims(), pBIn->getDimsArray());
+        for (int i = 0; i < pBIn->getSize(); i++)
+        {
+            pBIn->get(i) ? pDblIn->set(i, 1) : pDblIn->set(i, 0);
+        }
+        iOuttype = 2;
+    }
+    else if (in[0]->isPoly()) // polynom
+    {
+        pPolyIn = in[0]->getAs<types::Polynom>();
+    }
+    else if (in[0]->isInt8()) // int
+    {
+        types::Int8* pIIn = in[0]->getAs<types::Int8>();
+        pDblIn = new types::Double(pIIn->getDims(), pIIn->getDimsArray());
+        for (int i = 0; i < pIIn->getSize(); i++)
+        {
+            pDblIn->set(i, static_cast<double>(pIIn->get(i)));
+        }
+    }
+    else if (in[0]->isInt16())
+    {
+        types::Int16* pIIn = in[0]->getAs<types::Int16>();
+        pDblIn = new types::Double(pIIn->getDims(), pIIn->getDimsArray());
+        for (int i = 0; i < pIIn->getSize(); i++)
+        {
+            pDblIn->set(i, static_cast<double>(pIIn->get(i)));
+        }
+    }
+    else if (in[0]->isInt32())
+    {
+        types::Int32* pIIn = in[0]->getAs<types::Int32>();
+        pDblIn = new types::Double(pIIn->getDims(), pIIn->getDimsArray());
+        for (int i = 0; i < pIIn->getSize(); i++)
+        {
+            pDblIn->set(i, static_cast<double>(pIIn->get(i)));
+        }
+    }
+    else if (in[0]->isInt64()) // uint
+    {
+        types::Int64* pIIn = in[0]->getAs<types::Int64>();
+        pDblIn = new types::Double(pIIn->getDims(), pIIn->getDimsArray());
+        for (int i = 0; i < pIIn->getSize(); i++)
+        {
+            pDblIn->set(i, static_cast<double>(pIIn->get(i)));
+        }
+    }
+    else if (in[0]->isUInt8())
+    {
+        types::UInt8* pIIn = in[0]->getAs<types::UInt8>();
+        pDblIn = new types::Double(pIIn->getDims(), pIIn->getDimsArray());
+        for (int i = 0; i < pIIn->getSize(); i++)
+        {
+            pDblIn->set(i, static_cast<double>(pIIn->get(i)));
+        }
+    }
+    else if (in[0]->isUInt16())
+    {
+        types::UInt16* pIIn = in[0]->getAs<types::UInt16>();
+        pDblIn = new types::Double(pIIn->getDims(), pIIn->getDimsArray());
+        for (int i = 0; i < pIIn->getSize(); i++)
+        {
+            pDblIn->set(i, static_cast<double>(pIIn->get(i)));
+        }
+    }
+    else if (in[0]->isUInt32())
+    {
+        types::UInt32* pIIn = in[0]->getAs<types::UInt32>();
+        pDblIn = new types::Double(pIIn->getDims(), pIIn->getDimsArray());
+        for (int i = 0; i < pIIn->getSize(); i++)
+        {
+            pDblIn->set(i, static_cast<double>(pIIn->get(i)));
+        }
+    }
+    else if (in[0]->isUInt64())
+    {
+        types::UInt64* pIIn = in[0]->getAs<types::UInt64>();
+        pDblIn = new types::Double(pIIn->getDims(), pIIn->getDimsArray());
+        for (int i = 0; i < pIIn->getSize(); i++)
+        {
+            pDblIn->set(i, static_cast<double>(pIIn->get(i)));
+        }
+    }
+    else
+    {
+        std::wstring wstFuncName = L"%"  + in[0]->getShortTypeStr() + L"_cumprod";
+        return Overload::call(wstFuncName, in, _iRetCount, out, new ExecVisitor());
+    }
+
+    if (in.size() == 3)
+    {
+        if (in[2]->isString() == false)
+        {
+            ScierrorW(999, _W("%ls: Wrong type for input argument #%d : A string expected.\n"), L"cumprod", 3);
+            return types::Function::Error;
+        }
+
+        wchar_t* wcsString = in[2]->getAs<types::String>()->get(0);
+
+        if (wcscmp(wcsString, L"native") == 0)
+        {
+            iOuttype = 1;
+        }
+        else if (wcscmp(wcsString, L"double") == 0)
+        {
+            iOuttype = 2;
+        }
+        else
+        {
+            ScierrorW(999, _W("%ls: Wrong value for input argument #%d : It must be one of the following strings : native or double.\n"), L"cumprod", 3);
+            return types::Function::Error;
+        }
+    }
+
+    if (in.size() >= 2)
+    {
+        if (in[1]->isDouble())
+        {
+            types::Double* pDbl = in[1]->getAs<types::Double>();
+
+            if (pDbl->isScalar() == false)
+            {
+                ScierrorW(999, _W("%ls: Wrong value for input argument #%d : A positive scalar expected.\n"), L"cumprod", 2);
+                return types::Function::Error;
+            }
+
+            iOrientation = static_cast<int>(pDbl->get(0));
+
+            if (iOrientation <= 0)
+            {
+                ScierrorW(999, _W("%ls: Wrong value for input argument #%d : A positive scalar expected.\n"), L"cumprod", 2);
+                return types::Function::Error;
+            }
+        }
+        else if (in[1]->isString())
+        {
+            wchar_t* wcsString = in[1]->getAs<types::String>()->get(0);
+
+            if (wcscmp(wcsString, L"*") == 0)
+            {
+                iOrientation = 0;
+            }
+            else if (wcscmp(wcsString, L"r") == 0)
+            {
+                iOrientation = 1;
+            }
+            else if (wcscmp(wcsString, L"c") == 0)
+            {
+                iOrientation = 2;
+            }
+            else if (wcscmp(wcsString, L"m") == 0)
+            {
+                int iDims = 0;
+                int* piDimsArray = NULL;
+
+                if (pDblIn)
+                {
+                    iDims = pDblIn->getDims();
+                    piDimsArray = pDblIn->getDimsArray();
+                }
+                else
+                {
+                    iDims = pPolyIn->getDims();
+                    piDimsArray = pPolyIn->getDimsArray();
+                }
+
+                // old function was "mtlsel"
+                for (int i = 0; i < iDims; i++)
+                {
+                    if (piDimsArray[i] > 1)
+                    {
+                        iOrientation = i + 1;
+                        break;
+                    }
+                }
+            }
+            else if ((wcscmp(wcsString, L"native") == 0) && (in.size() == 2))
+            {
+                iOuttype = 1;
+            }
+            else if ((wcscmp(wcsString, L"double") == 0) && (in.size() == 2))
+            {
+                iOuttype = 2;
+            }
+            else
+            {
+                if (in.size() == 2)
+                {
+                    ScierrorW(999, _W("%ls: Wrong value for input argument #%d : It must be one of the following strings : *, r, c, m, native or double.\n"), L"cumprod", 2);
+                }
+                else
+                {
+                    ScierrorW(999, _W("%ls: Wrong value for input argument #%d : It must be one of the following strings : *, r, c or m.\n"), L"cumprod", 2);
+                }
+
+                return types::Function::Error;
+            }
+        }
+        else
+        {
+            ScierrorW(999, _W("%ls: Wrong type for input argument #%d : A real matrix or a string expected.\n"), L"cumprod", 2);
+            return types::Function::Error;
+        }
+    }
+
+    /***** perform operation *****/
+    if (pDblIn)
+    {
+        if (iOrientation > pDblIn->getDims())
+        {
+            if (in[0]->isDouble())
+            {
+                pDblOut = pDblIn->clone()->getAs<types::Double>();
+            }
+            else
+            {
+                pDblOut = pDblIn;
+            }
+
+            if (in[0]->isBool() == false)
+            {
+                iOuttype = 2;
+            }
+        }
+        else
+        {
+            pDblOut = new types::Double(pDblIn->getDims(), pDblIn->getDimsArray(), pDblIn->isComplex());
+            cumprod(pDblIn, iOrientation, pDblOut);
+            if (in[0]->isDouble() == false)
+            {
+                delete pDblIn;
+                pDblIn = NULL;
+            }
+        }
+    }
+    else if (pPolyIn)
+    {
+        iOuttype = 1;
+        if (iOrientation > pPolyIn->getDims())
+        {
+            pPolyOut = pPolyIn->clone()->getAs<types::Polynom>();
+        }
+        else
+        {
+            pPolyOut = new types::Polynom(pPolyIn->getVariableName(), pPolyIn->getDims(), pPolyIn->getDimsArray());
+            pPolyOut->setComplex(pPolyIn->isComplex());
+            cumprod(pPolyIn, iOrientation, pPolyOut);
+        }
+    }
+
+    /***** set result *****/
+    if ((iOuttype == 1) && (in[0]->isDouble() == false))
+    {
+        if (in[0]->isBool())
+        {
+            types::Bool* pBOut = new types::Bool(pDblOut->getDims(), pDblOut->getDimsArray());
+            for (int i = 0; i < pDblOut->getSize(); i++)
+            {
+                pDblOut->get(i) ? pBOut->set(i, 1) : pBOut->set(i, 0);
+            }
+            out.push_back(pBOut);
+        }
+        else if (in[0]->isPoly())
+        {
+            out.push_back(pPolyOut);
+        }
+        else if (in[0]->isInt8())
+        {
+            types::Int8* pIOut = new types::Int8(pDblOut->getDims(), pDblOut->getDimsArray());
+            for (int i = 0; i < pIOut->getSize(); i++)
+            {
+                pIOut->set(i, static_cast<char>(pDblOut->get(i)));
+            }
+            out.push_back(pIOut);
+        }
+        else if (in[0]->isInt16())
+        {
+            types::Int16* pIOut = new types::Int16(pDblOut->getDims(), pDblOut->getDimsArray());
+            for (int i = 0; i < pIOut->getSize(); i++)
+            {
+                pIOut->set(i, static_cast<short int>(pDblOut->get(i)));
+            }
+            out.push_back(pIOut);
+        }
+        else if (in[0]->isInt32())
+        {
+            types::Int32* pIOut = new types::Int32(pDblOut->getDims(), pDblOut->getDimsArray());
+            for (int i = 0; i < pIOut->getSize(); i++)
+            {
+                pIOut->set(i, static_cast<int>(pDblOut->get(i)));
+            }
+            out.push_back(pIOut);
+        }
+        else if (in[0]->isInt64())
+        {
+            types::Int64* pIOut = new types::Int64(pDblOut->getDims(), pDblOut->getDimsArray());
+            for (int i = 0; i < pIOut->getSize(); i++)
+            {
+                pIOut->set(i, static_cast<long long int>(pDblOut->get(i)));
+            }
+            out.push_back(pIOut);
+        }
+        else if (in[0]->isUInt8())
+        {
+            types::UInt8* pIOut = new types::UInt8(pDblOut->getDims(), pDblOut->getDimsArray());
+            for (int i = 0; i < pIOut->getSize(); i++)
+            {
+                pIOut->set(i, static_cast<unsigned char>(pDblOut->get(i)));
+            }
+            out.push_back(pIOut);
+        }
+        else if (in[0]->isUInt16())
+        {
+            types::UInt16* pIOut = new types::UInt16(pDblOut->getDims(), pDblOut->getDimsArray());
+            for (int i = 0; i < pIOut->getSize(); i++)
+            {
+                pIOut->set(i, static_cast<unsigned short int>(pDblOut->get(i)));
+            }
+            out.push_back(pIOut);
+        }
+        else if (in[0]->isUInt32())
+        {
+            types::UInt32* pIOut = new types::UInt32(pDblOut->getDims(), pDblOut->getDimsArray());
+            for (int i = 0; i < pIOut->getSize(); i++)
+            {
+                pIOut->set(i, static_cast<unsigned int>(pDblOut->get(i)));
+            }
+            out.push_back(pIOut);
+        }
+        else if (in[0]->isUInt64())
+        {
+            types::UInt64* pIOut = new types::UInt64(pDblOut->getDims(), pDblOut->getDimsArray());
+            for (int i = 0; i < pIOut->getSize(); i++)
+            {
+                pIOut->set(i, static_cast<unsigned long long int>(pDblOut->get(i)));
+            }
+            out.push_back(pIOut);
+        }
+    }
+    else
+    {
+        out.push_back(pDblOut);
+    }
+
+    return types::Function::OK;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/scilab/modules/elementary_functions/sci_gateway/cpp/sci_cumsum.cpp b/scilab/modules/elementary_functions/sci_gateway/cpp/sci_cumsum.cpp
new file mode 100644 (file)
index 0000000..85e1a00
--- /dev/null
@@ -0,0 +1,407 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2012 - DIGITEO - 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
+ *
+ */
+/*--------------------------------------------------------------------------*/
+#include "elem_func_gw.hxx"
+#include "function.hxx"
+#include "double.hxx"
+#include "string.hxx"
+#include "overload.hxx"
+#include "execvisitor.hxx"
+#include "cumsum.hxx"
+
+extern "C"
+{
+#include "Scierror.h"
+#include "localization.h"
+#include "basic_functions.h"
+}
+
+/*--------------------------------------------------------------------------*/
+types::Function::ReturnValue sci_cumsum(types::typed_list &in, int _iRetCount, types::typed_list &out)
+{
+    types::Double* pDblIn       = NULL;
+    types::Double* pDblOut      = NULL;
+    types::Polynom* pPolyIn     = NULL;
+    types::Polynom* pPolyOut    = NULL;
+
+    int iOrientation    = 0;
+    int iOuttype        = 1; // 1 = native | 2 = double (type of output value)
+
+    if (in.size() < 1 || in.size() > 3)
+    {
+        ScierrorW(77, _W("%ls: Wrong number of input argument(s): %d to %d expected.\n"), L"cumsum", 1, 3);
+        return types::Function::Error;
+    }
+
+    if (_iRetCount > 1)
+    {
+        ScierrorW(78, _W("%ls: Wrong number of output argument(s): %d expected.\n"), L"cumsum", 1);
+        return types::Function::Error;
+    }
+
+    /***** get data *****/
+    if (in[0]->isDouble()) // double
+    {
+        pDblIn = in[0]->getAs<types::Double>();
+    }
+    else if (in[0]->isBool()) // bool
+    {
+        types::Bool* pBIn = in[0]->getAs<types::Bool>();
+        pDblIn = new types::Double(pBIn->getDims(), pBIn->getDimsArray());
+        for (int i = 0; i < pBIn->getSize(); i++)
+        {
+            pBIn->get(i) ? pDblIn->set(i, 1) : pDblIn->set(i, 0);
+        }
+        iOuttype = 2;
+    }
+    else if (in[0]->isPoly()) // polynom
+    {
+        pPolyIn = in[0]->getAs<types::Polynom>();
+    }
+    else if (in[0]->isInt8()) // int
+    {
+        types::Int8* pIIn = in[0]->getAs<types::Int8>();
+        pDblIn = new types::Double(pIIn->getDims(), pIIn->getDimsArray());
+        for (int i = 0; i < pIIn->getSize(); i++)
+        {
+            pDblIn->set(i, static_cast<double>(pIIn->get(i)));
+        }
+    }
+    else if (in[0]->isInt16())
+    {
+        types::Int16* pIIn = in[0]->getAs<types::Int16>();
+        pDblIn = new types::Double(pIIn->getDims(), pIIn->getDimsArray());
+        for (int i = 0; i < pIIn->getSize(); i++)
+        {
+            pDblIn->set(i, static_cast<double>(pIIn->get(i)));
+        }
+    }
+    else if (in[0]->isInt32())
+    {
+        types::Int32* pIIn = in[0]->getAs<types::Int32>();
+        pDblIn = new types::Double(pIIn->getDims(), pIIn->getDimsArray());
+        for (int i = 0; i < pIIn->getSize(); i++)
+        {
+            pDblIn->set(i, static_cast<double>(pIIn->get(i)));
+        }
+    }
+    else if (in[0]->isInt64()) // uint
+    {
+        types::Int64* pIIn = in[0]->getAs<types::Int64>();
+        pDblIn = new types::Double(pIIn->getDims(), pIIn->getDimsArray());
+        for (int i = 0; i < pIIn->getSize(); i++)
+        {
+            pDblIn->set(i, static_cast<double>(pIIn->get(i)));
+        }
+    }
+    else if (in[0]->isUInt8())
+    {
+        types::UInt8* pIIn = in[0]->getAs<types::UInt8>();
+        pDblIn = new types::Double(pIIn->getDims(), pIIn->getDimsArray());
+        for (int i = 0; i < pIIn->getSize(); i++)
+        {
+            pDblIn->set(i, static_cast<double>(pIIn->get(i)));
+        }
+    }
+    else if (in[0]->isUInt16())
+    {
+        types::UInt16* pIIn = in[0]->getAs<types::UInt16>();
+        pDblIn = new types::Double(pIIn->getDims(), pIIn->getDimsArray());
+        for (int i = 0; i < pIIn->getSize(); i++)
+        {
+            pDblIn->set(i, static_cast<double>(pIIn->get(i)));
+        }
+    }
+    else if (in[0]->isUInt32())
+    {
+        types::UInt32* pIIn = in[0]->getAs<types::UInt32>();
+        pDblIn = new types::Double(pIIn->getDims(), pIIn->getDimsArray());
+        for (int i = 0; i < pIIn->getSize(); i++)
+        {
+            pDblIn->set(i, static_cast<double>(pIIn->get(i)));
+        }
+    }
+    else if (in[0]->isUInt64())
+    {
+        types::UInt64* pIIn = in[0]->getAs<types::UInt64>();
+        pDblIn = new types::Double(pIIn->getDims(), pIIn->getDimsArray());
+        for (int i = 0; i < pIIn->getSize(); i++)
+        {
+            pDblIn->set(i, static_cast<double>(pIIn->get(i)));
+        }
+    }
+    else
+    {
+        std::wstring wstFuncName = L"%"  + in[0]->getShortTypeStr() + L"_cumsum";
+        return Overload::call(wstFuncName, in, _iRetCount, out, new ExecVisitor());
+    }
+
+    if (in.size() == 3)
+    {
+        if (in[2]->isString() == false)
+        {
+            ScierrorW(999, _W("%ls: Wrong type for input argument #%d : A string expected.\n"), L"cumsum", 3);
+            return types::Function::Error;
+        }
+
+        wchar_t* wcsString = in[2]->getAs<types::String>()->get(0);
+
+        if (wcscmp(wcsString, L"native") == 0)
+        {
+            iOuttype = 1;
+        }
+        else if (wcscmp(wcsString, L"double") == 0)
+        {
+            iOuttype = 2;
+        }
+        else
+        {
+            ScierrorW(999, _W("%ls: Wrong value for input argument #%d : It must be one of the following strings : native or double.\n"), L"cumsum", 3);
+            return types::Function::Error;
+        }
+    }
+
+    if (in.size() >= 2)
+    {
+        if (in[1]->isDouble())
+        {
+            types::Double* pDbl = in[1]->getAs<types::Double>();
+
+            if (pDbl->isScalar() == false)
+            {
+                ScierrorW(999, _W("%ls: Wrong value for input argument #%d : A positive scalar expected.\n"), L"cumsum", 2);
+                return types::Function::Error;
+            }
+
+            iOrientation = static_cast<int>(pDbl->get(0));
+
+            if (iOrientation <= 0)
+            {
+                ScierrorW(999, _W("%ls: Wrong value for input argument #%d : A positive scalar expected.\n"), L"cumsum", 2);
+                return types::Function::Error;
+            }
+        }
+        else if (in[1]->isString())
+        {
+            wchar_t* wcsString = in[1]->getAs<types::String>()->get(0);
+
+            if (wcscmp(wcsString, L"*") == 0)
+            {
+                iOrientation = 0;
+            }
+            else if (wcscmp(wcsString, L"r") == 0)
+            {
+                iOrientation = 1;
+            }
+            else if (wcscmp(wcsString, L"c") == 0)
+            {
+                iOrientation = 2;
+            }
+            else if (wcscmp(wcsString, L"m") == 0)
+            {
+                int iDims = 0;
+                int* piDimsArray = NULL;
+
+                if (pDblIn)
+                {
+                    iDims = pDblIn->getDims();
+                    piDimsArray = pDblIn->getDimsArray();
+                }
+                else
+                {
+                    iDims = pPolyIn->getDims();
+                    piDimsArray = pPolyIn->getDimsArray();
+                }
+
+                // old function was "mtlsel"
+                for (int i = 0; i < iDims; i++)
+                {
+                    if (piDimsArray[i] > 1)
+                    {
+                        iOrientation = i + 1;
+                        break;
+                    }
+                }
+            }
+            else if ((wcscmp(wcsString, L"native") == 0) && (in.size() == 2))
+            {
+                iOuttype = 1;
+            }
+            else if ((wcscmp(wcsString, L"double") == 0) && (in.size() == 2))
+            {
+                iOuttype = 2;
+            }
+            else
+            {
+                if (in.size() == 2)
+                {
+                    ScierrorW(999, _W("%ls: Wrong value for input argument #%d : It must be one of the following strings : *, r, c, m, native or double.\n"), L"cumsum", 2);
+                }
+                else
+                {
+                    ScierrorW(999, _W("%ls: Wrong value for input argument #%d : It must be one of the following strings : *, r, c or m.\n"), L"cumsum", 2);
+                }
+
+                return types::Function::Error;
+            }
+        }
+        else
+        {
+            ScierrorW(999, _W("%ls: Wrong type for input argument #%d : A real matrix or a string expected.\n"), L"cumsum", 2);
+            return types::Function::Error;
+        }
+    }
+
+    /***** perform operation *****/
+    if (pDblIn)
+    {
+        if (iOrientation > pDblIn->getDims())
+        {
+            if (in[0]->isDouble())
+            {
+                pDblOut = pDblIn->clone()->getAs<types::Double>();
+            }
+            else
+            {
+                pDblOut = pDblIn;
+            }
+
+            if (in[0]->isBool() == false)
+            {
+                iOuttype = 2;
+            }
+        }
+        else
+        {
+            pDblOut = new types::Double(pDblIn->getDims(), pDblIn->getDimsArray(), pDblIn->isComplex());
+            cumsum(pDblIn, iOrientation, pDblOut);
+            if (in[0]->isDouble() == false)
+            {
+                delete pDblIn;
+                pDblIn = NULL;
+            }
+        }
+    }
+    else if (pPolyIn)
+    {
+        iOuttype = 1;
+        if (iOrientation > pPolyIn->getDims())
+        {
+            pPolyOut = pPolyIn->clone()->getAs<types::Polynom>();
+        }
+        else
+        {
+            int* piRanks = (int*)malloc(pPolyIn->getSize() * sizeof(int));
+            pPolyIn->getRank(piRanks);
+            pPolyOut = new types::Polynom(pPolyIn->getVariableName(), pPolyIn->getDims(), pPolyIn->getDimsArray(), piRanks);
+            pPolyOut->setComplex(pPolyIn->isComplex());
+            cumsum(pPolyIn, iOrientation, pPolyOut);
+        }
+    }
+
+    /***** set result *****/
+    if ((iOuttype == 1) && (in[0]->isDouble() == false))
+    {
+        if (in[0]->isBool())
+        {
+            types::Bool* pBOut = new types::Bool(pDblOut->getDims(), pDblOut->getDimsArray());
+            for (int i = 0; i < pDblOut->getSize(); i++)
+            {
+                pDblOut->get(i) ? pBOut->set(i, 1) : pBOut->set(i, 0);
+            }
+            out.push_back(pBOut);
+        }
+        else if (in[0]->isPoly())
+        {
+            out.push_back(pPolyOut);
+        }
+        else if (in[0]->isInt8())
+        {
+            types::Int8* pIOut = new types::Int8(pDblOut->getDims(), pDblOut->getDimsArray());
+            for (int i = 0; i < pIOut->getSize(); i++)
+            {
+                pIOut->set(i, static_cast<char>(pDblOut->get(i)));
+            }
+            out.push_back(pIOut);
+        }
+        else if (in[0]->isInt16())
+        {
+            types::Int16* pIOut = new types::Int16(pDblOut->getDims(), pDblOut->getDimsArray());
+            for (int i = 0; i < pIOut->getSize(); i++)
+            {
+                pIOut->set(i, static_cast<short int>(pDblOut->get(i)));
+            }
+            out.push_back(pIOut);
+        }
+        else if (in[0]->isInt32())
+        {
+            types::Int32* pIOut = new types::Int32(pDblOut->getDims(), pDblOut->getDimsArray());
+            for (int i = 0; i < pIOut->getSize(); i++)
+            {
+                pIOut->set(i, static_cast<int>(pDblOut->get(i)));
+            }
+            out.push_back(pIOut);
+        }
+        else if (in[0]->isInt64())
+        {
+            types::Int64* pIOut = new types::Int64(pDblOut->getDims(), pDblOut->getDimsArray());
+            for (int i = 0; i < pIOut->getSize(); i++)
+            {
+                pIOut->set(i, static_cast<long long int>(pDblOut->get(i)));
+            }
+            out.push_back(pIOut);
+        }
+        else if (in[0]->isUInt8())
+        {
+            types::UInt8* pIOut = new types::UInt8(pDblOut->getDims(), pDblOut->getDimsArray());
+            for (int i = 0; i < pIOut->getSize(); i++)
+            {
+                pIOut->set(i, static_cast<unsigned char>(pDblOut->get(i)));
+            }
+            out.push_back(pIOut);
+        }
+        else if (in[0]->isUInt16())
+        {
+            types::UInt16* pIOut = new types::UInt16(pDblOut->getDims(), pDblOut->getDimsArray());
+            for (int i = 0; i < pIOut->getSize(); i++)
+            {
+                pIOut->set(i, static_cast<unsigned short int>(pDblOut->get(i)));
+            }
+            out.push_back(pIOut);
+        }
+        else if (in[0]->isUInt32())
+        {
+            types::UInt32* pIOut = new types::UInt32(pDblOut->getDims(), pDblOut->getDimsArray());
+            for (int i = 0; i < pIOut->getSize(); i++)
+            {
+                pIOut->set(i, static_cast<unsigned int>(pDblOut->get(i)));
+            }
+            out.push_back(pIOut);
+        }
+        else if (in[0]->isUInt64())
+        {
+            types::UInt64* pIOut = new types::UInt64(pDblOut->getDims(), pDblOut->getDimsArray());
+            for (int i = 0; i < pIOut->getSize(); i++)
+            {
+                pIOut->set(i, static_cast<unsigned long long int>(pDblOut->get(i)));
+            }
+            out.push_back(pIOut);
+        }
+    }
+    else
+    {
+        out.push_back(pDblOut);
+    }
+
+    return types::Function::OK;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/scilab/modules/elementary_functions/sci_gateway/cpp/sci_diag.cpp b/scilab/modules/elementary_functions/sci_gateway/cpp/sci_diag.cpp
new file mode 100644 (file)
index 0000000..95ad55c
--- /dev/null
@@ -0,0 +1,317 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2012 - DIGITEO - 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
+ *
+ */
+/*--------------------------------------------------------------------------*/
+#include "elem_func_gw.hxx"
+#include "function.hxx"
+#include "double.hxx"
+#include "overload.hxx"
+#include "execvisitor.hxx"
+#include "diag.hxx"
+
+extern "C"
+{
+#include "Scierror.h"
+#include "localization.h"
+}
+
+/*--------------------------------------------------------------------------*/
+types::Function::ReturnValue sci_diag(types::typed_list &in, int _iRetCount, types::typed_list &out)
+{
+    types::Double* pDblIn       = NULL;
+    types::Polynom* pPolyIn     = NULL;
+    types::String* pStrIn       = NULL;
+
+    types::Double* pDblOut      = NULL;
+    types::Polynom* pPolyOut    = NULL;
+    types::String* pStrOut      = NULL;
+
+    int iStartPos = 0;
+
+    if (in.size() < 1 || in.size() > 2)
+    {
+        ScierrorW(77, _W("%ls: Wrong number of input argument(s): %d to %d expected.\n"), L"diag", 1, 2);
+        return types::Function::Error;
+    }
+
+    if (_iRetCount > 1)
+    {
+        ScierrorW(78, _W("%ls: Wrong number of output argument(s): %d expected.\n"), L"diag", 1);
+        return types::Function::Error;
+    }
+
+    /***** get data *****/
+    if (in[0]->isDouble())
+    {
+        pDblIn = in[0]->getAs<types::Double>();
+
+        if (pDblIn->getDims() > 2)
+        {
+            std::wstring wstFuncName = L"%hm_diag";
+            return Overload::call(wstFuncName, in, _iRetCount, out, new ExecVisitor());
+        }
+    }
+    else if (in[0]->isString())
+    {
+        pStrIn = in[0]->getAs<types::String>();
+
+        if (pStrIn->getDims() > 2)
+        {
+            std::wstring wstFuncName = L"%hm_diag";
+            return Overload::call(wstFuncName, in, _iRetCount, out, new ExecVisitor());
+        }
+    }
+    else if (in[0]->isBool()) // bool
+    {
+        types::Bool* pBIn = in[0]->getAs<types::Bool>();
+        pDblIn = new types::Double(pBIn->getDims(), pBIn->getDimsArray());
+        for (int i = 0; i < pBIn->getSize(); i++)
+        {
+            pBIn->get(i) ? pDblIn->set(i, 1) : pDblIn->set(i, 0);
+        }
+    }
+    else if (in[0]->isPoly())
+    {
+        pPolyIn = in[0]->getAs<types::Polynom>();
+        if (pPolyIn->getDims() > 2)
+        {
+            std::wstring wstFuncName = L"%hm_diag";
+            return Overload::call(wstFuncName, in, _iRetCount, out, new ExecVisitor());
+        }
+    }
+    else if (in[0]->isInt8()) // int
+    {
+        types::Int8* pIIn = in[0]->getAs<types::Int8>();
+        pDblIn = new types::Double(pIIn->getDims(), pIIn->getDimsArray());
+        for (int i = 0; i < pIIn->getSize(); i++)
+        {
+            pDblIn->set(i, static_cast<double>(pIIn->get(i)));
+        }
+    }
+    else if (in[0]->isInt16())
+    {
+        types::Int16* pIIn = in[0]->getAs<types::Int16>();
+        pDblIn = new types::Double(pIIn->getDims(), pIIn->getDimsArray());
+        for (int i = 0; i < pIIn->getSize(); i++)
+        {
+            pDblIn->set(i, static_cast<double>(pIIn->get(i)));
+        }
+    }
+    else if (in[0]->isInt32())
+    {
+        types::Int32* pIIn = in[0]->getAs<types::Int32>();
+        pDblIn = new types::Double(pIIn->getDims(), pIIn->getDimsArray());
+        for (int i = 0; i < pIIn->getSize(); i++)
+        {
+            pDblIn->set(i, static_cast<double>(pIIn->get(i)));
+        }
+    }
+    else if (in[0]->isInt64()) // uint
+    {
+        types::Int64* pIIn = in[0]->getAs<types::Int64>();
+        pDblIn = new types::Double(pIIn->getDims(), pIIn->getDimsArray());
+        for (int i = 0; i < pIIn->getSize(); i++)
+        {
+            pDblIn->set(i, static_cast<double>(pIIn->get(i)));
+        }
+    }
+    else if (in[0]->isUInt8())
+    {
+        types::Int8* pIIn = in[0]->getAs<types::Int8>();
+        pDblIn = new types::Double(pIIn->getDims(), pIIn->getDimsArray());
+        for (int i = 0; i < pIIn->getSize(); i++)
+        {
+            pDblIn->set(i, static_cast<double>(pIIn->get(i)));
+        }
+    }
+    else if (in[0]->isUInt16())
+    {
+        types::Int16* pIIn = in[0]->getAs<types::Int16>();
+        pDblIn = new types::Double(pIIn->getDims(), pIIn->getDimsArray());
+        for (int i = 0; i < pIIn->getSize(); i++)
+        {
+            pDblIn->set(i, static_cast<double>(pIIn->get(i)));
+        }
+    }
+    else if (in[0]->isUInt32())
+    {
+        types::Int32* pIIn = in[0]->getAs<types::Int32>();
+        pDblIn = new types::Double(pIIn->getDims(), pIIn->getDimsArray());
+        for (int i = 0; i < pIIn->getSize(); i++)
+        {
+            pDblIn->set(i, static_cast<double>(pIIn->get(i)));
+        }
+    }
+    else if (in[0]->isUInt64())
+    {
+        types::Int64* pIIn = in[0]->getAs<types::Int64>();
+        pDblIn = new types::Double(pIIn->getDims(), pIIn->getDimsArray());
+        for (int i = 0; i < pIIn->getSize(); i++)
+        {
+            pDblIn->set(i, static_cast<double>(pIIn->get(i)));
+        }
+    }
+    else
+    {
+        std::wstring wstFuncName = L"%"  + in[0]->getShortTypeStr() + L"_diag";
+        return Overload::call(wstFuncName, in, _iRetCount, out, new ExecVisitor());
+    }
+
+    if (in.size() == 2)
+    {
+        if (in[1]->isDouble() == false)
+        {
+            ScierrorW(999, _W("%ls: Wrong type for input argument #%d : A real scalar expected.\n"), L"diag", 2);
+            return types::Function::Error;
+        }
+
+        types::Double* pDbl = in[1]->getAs<types::Double>();
+
+        if (pDbl->isScalar() == false || pDbl->isComplex())
+        {
+            ScierrorW(999, _W("%ls: Wrong type for input argument #%d : A real scalar expected.\n"), L"diag", 2);
+            return types::Function::Error;
+        }
+
+        iStartPos = static_cast<int>(pDbl->get(0));
+    }
+
+    /***** perform operation *****/
+    if (pDblIn)
+    {
+        pDblOut = diag(pDblIn, iStartPos);
+    }
+    else if (pPolyIn)
+    {
+        pPolyOut = diag(pPolyIn, iStartPos);
+        if (pPolyOut == NULL)
+        {
+            out.push_back(types::Double::Empty());
+            return types::Function::OK;
+        }
+    }
+    else if (pStrIn)
+    {
+        pStrOut = diag(pStrIn, iStartPos);
+        if (pStrOut == NULL)
+        {
+            out.push_back(types::Double::Empty());
+            return types::Function::OK;
+        }
+    }
+
+    /***** set result *****/
+    if (in[0]->isDouble())
+    {
+        out.push_back(pDblOut);
+    }
+    else if (in[0]->isBool())
+    {
+        types::Bool* pBOut = new types::Bool(pDblOut->getDims(), pDblOut->getDimsArray());
+        for (int i = 0; i < pDblOut->getSize(); i++)
+        {
+            pDblOut->get(i) ? pBOut->set(i, 1) : pBOut->set(i, 0);
+        }
+        out.push_back(pBOut);
+        delete pDblOut;
+    }
+    else if (in[0]->isPoly())
+    {
+        out.push_back(pPolyOut);
+    }
+    else if (in[0]->isString())
+    {
+        out.push_back(pStrOut);
+    }
+    else if (in[0]->isInt8())
+    {
+        types::Int8* pIOut = new types::Int8(pDblOut->getDims(), pDblOut->getDimsArray());
+        for (int i = 0; i < pIOut->getSize(); i++)
+        {
+            pIOut->set(i, static_cast<char>(pDblOut->get(i)));
+        }
+        out.push_back(pIOut);
+        delete pDblOut;
+    }
+    else if (in[0]->isInt16())
+    {
+        types::Int16* pIOut = new types::Int16(pDblOut->getDims(), pDblOut->getDimsArray());
+        for (int i = 0; i < pIOut->getSize(); i++)
+        {
+            pIOut->set(i, static_cast<short int>(pDblOut->get(i)));
+        }
+        out.push_back(pIOut);
+        delete pDblOut;
+    }
+    else if (in[0]->isInt32())
+    {
+        types::Int32* pIOut = new types::Int32(pDblOut->getDims(), pDblOut->getDimsArray());
+        for (int i = 0; i < pIOut->getSize(); i++)
+        {
+            pIOut->set(i, static_cast<int>(pDblOut->get(i)));
+        }
+        out.push_back(pIOut);
+        delete pDblOut;
+    }
+    else if (in[0]->isInt64())
+    {
+        types::Int64* pIOut = new types::Int64(pDblOut->getDims(), pDblOut->getDimsArray());
+        for (int i = 0; i < pIOut->getSize(); i++)
+        {
+            pIOut->set(i, static_cast<long long int>(pDblOut->get(i)));
+        }
+        out.push_back(pIOut);
+        delete pDblOut;
+    }
+    else if (in[0]->isUInt8())
+    {
+        types::UInt8* pIOut = new types::UInt8(pDblOut->getDims(), pDblOut->getDimsArray());
+        for (int i = 0; i < pIOut->getSize(); i++)
+        {
+            pIOut->set(i, static_cast<unsigned char>(pDblOut->get(i)));
+        }
+        out.push_back(pIOut);
+        delete pDblOut;
+    }
+    else if (in[0]->isUInt16())
+    {
+        types::UInt16* pIOut = new types::UInt16(pDblOut->getDims(), pDblOut->getDimsArray());
+        for (int i = 0; i < pIOut->getSize(); i++)
+        {
+            pIOut->set(i, static_cast<unsigned short int>(pDblOut->get(i)));
+        }
+        out.push_back(pIOut);
+        delete pDblOut;
+    }
+    else if (in[0]->isUInt32())
+    {
+        types::UInt32* pIOut = new types::UInt32(pDblOut->getDims(), pDblOut->getDimsArray());
+        for (int i = 0; i < pIOut->getSize(); i++)
+        {
+            pIOut->set(i, static_cast<unsigned int>(pDblOut->get(i)));
+        }
+        out.push_back(pIOut);
+        delete pDblOut;
+    }
+    else if (in[0]->isUInt64())
+    {
+        types::UInt64* pIOut = new types::UInt64(pDblOut->getDims(), pDblOut->getDimsArray());
+        for (int i = 0; i < pIOut->getSize(); i++)
+        {
+            pIOut->set(i, static_cast<unsigned long long int>(pDblOut->get(i)));
+        }
+        out.push_back(pIOut);
+        delete pDblOut;
+    }
+
+    return types::Function::OK;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/scilab/modules/elementary_functions/sci_gateway/cpp/sci_dsearch.cpp b/scilab/modules/elementary_functions/sci_gateway/cpp/sci_dsearch.cpp
new file mode 100644 (file)
index 0000000..0ba6488
--- /dev/null
@@ -0,0 +1,175 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2012 - DIGITEO - 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
+ *
+ */
+/*--------------------------------------------------------------------------*/
+#include "elem_func_gw.hxx"
+#include "function.hxx"
+#include "double.hxx"
+#include "string.hxx"
+
+
+extern "C"
+{
+#include "Scierror.h"
+#include "localization.h"
+#include "basic_functions.h"
+}
+
+/*--------------------------------------------------------------------------*/
+types::Function::ReturnValue sci_dsearch(types::typed_list &in, int _iRetCount, types::typed_list &out)
+{
+    // input
+    types::Double* pDblIn       = NULL;
+    types::Double* pDblSearch   = NULL;
+
+    // output
+    types::Double* pDblInd      = NULL;
+    types::Double* pDblOcc      = NULL;
+
+    double* pdOcc               = NULL;
+    double dInfo                = 0;
+
+    int iTypeSearch = 1; // 1 = 'c' || 0 = 'd'
+
+    if (in.size() < 2 || in.size() > 3)
+    {
+        ScierrorW(77, _W("%ls: Wrong number of input argument(s): %d to %d expected.\n"), L"dsearch", 2, 3);
+        return types::Function::Error;
+    }
+
+    if (_iRetCount > 3)
+    {
+        ScierrorW(78, _W("%ls: Wrong number of output argument(s): At most %d expected.\n"), L"dsearch", 3);
+        return types::Function::Error;
+    }
+
+    /***** get data *****/
+    // input data
+    if (in[0]->isDouble() == false)
+    {
+        ScierrorW(999, _W("%ls: Wrong type for input argument #%d : A matrix expected.\n"), L"dsearch", 1);
+        return types::Function::Error;
+    }
+
+    pDblIn = in[0]->getAs<types::Double>();
+
+    if (pDblIn->isComplex())
+    {
+        ScierrorW(999, _W("%ls: Wrong type for input argument #%d : A real matrix expected.\n"), L"dsearch", 1);
+        return types::Function::Error;
+    }
+
+    // what to look for in input data
+    if (in[1]->isDouble() == false)
+    {
+        ScierrorW(999, _W("%ls: Wrong type for input argument #%d : A real vector expected.\n"), L"dsearch", 2);
+        return types::Function::Error;
+    }
+
+    pDblSearch = in[1]->getAs<types::Double>();
+
+    if ((pDblSearch->getCols() != 1 && pDblSearch->getRows() != 1) || pDblSearch->isComplex())
+    {
+        ScierrorW(999, _W("%ls: Wrong type for input argument #%d : A real vector expected.\n"), L"dsearch", 2);
+        return types::Function::Error;
+    }
+
+    for (int i = 1; i < pDblSearch->getSize(); i++)
+    {
+        if (pDblSearch->get(i - 1) >= pDblSearch->get(i))
+        {
+            ScierrorW(999, _W("%ls: Wrong value for input argument #%d : A strictly increasing order expected.\n"), L"dsearch", 2);
+            return types::Function::Error;
+        }
+    }
+
+    // search type
+    if (in.size() == 3)
+    {
+        if (in[2]->isString() == false)
+        {
+            ScierrorW(999, _W("%ls: Wrong type for input argument #%d : A string expected.\n"), L"dsearch", 3);
+            return types::Function::Error;
+        }
+
+        wchar_t* wcsString = in[2]->getAs<types::String>()->get(0);
+
+        if (wcscmp(wcsString, L"c") == 0)
+        {
+            iTypeSearch = 1;
+        }
+        else if (wcscmp(wcsString, L"d") == 0)
+        {
+            iTypeSearch = 0;
+        }
+        else
+        {
+            ScierrorW(999, _W("%ls: Wrong value for input argument #%d : It must be 'c' or 'd'.\n"), L"dsearch", 3);
+            return types::Function::Error;
+        }
+    }
+
+    /***** perform operation *****/
+    int iRowsOcc = pDblSearch->getRows();
+    int iColsOcc = pDblSearch->getCols();
+
+    // If iTypeSearch= 1 ("c") , a (n-1)-by-1 or 1-by-(n-1) of doubles. If iTypeSearch=0 ("d") (0), a n-by-1 or 1-by-n of doubles.
+    if (iTypeSearch)
+    {
+        if (pDblSearch->getCols() == 1)
+        {
+            iRowsOcc--;
+        }
+        else
+        {
+            iColsOcc--;
+        }
+    }
+
+    if ((iRowsOcc * iColsOcc) < 1)
+    {
+        ScierrorW(999, _W("%ls: Wrong size for input argument #%d : A vector of length > %d expected.\n"), L"dsearch", 2, iTypeSearch);
+        return types::Function::Error;
+    }
+
+    pDblInd = new types::Double(pDblIn->getDims(), pDblIn->getDimsArray());
+
+    if (_iRetCount > 1)
+    {
+        pDblOcc = new types::Double(iRowsOcc, iColsOcc);
+        pdOcc = pDblOcc->get();
+    }
+
+    if (iTypeSearch) // c
+    {
+        vDsearchC(pDblIn->get(), pDblIn->getSize(), pDblSearch->get(), pDblSearch->getSize() - 1, pDblInd->get(), pdOcc, &dInfo);
+    }
+    else
+    {
+        vDsearchD(pDblIn->get(), pDblIn->getSize(), pDblSearch->get(), pDblSearch->getSize(), pDblInd->get(), pdOcc, &dInfo);
+    }
+
+    /***** set result *****/
+    out.push_back(pDblInd);
+
+    if (_iRetCount > 1)
+    {
+        out.push_back(pDblOcc);
+    }
+
+    if (_iRetCount > 2)
+    {
+        out.push_back(new types::Double(dInfo));
+    }
+
+    return types::Function::OK;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/scilab/modules/elementary_functions/sci_gateway/cpp/sci_exp.cpp b/scilab/modules/elementary_functions/sci_gateway/cpp/sci_exp.cpp
new file mode 100644 (file)
index 0000000..557726e
--- /dev/null
@@ -0,0 +1,111 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2012 - DIGITEO - 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
+ *
+ */
+/*--------------------------------------------------------------------------*/
+#include "elem_func_gw.hxx"
+#include "function.hxx"
+#include "double.hxx"
+#include "overload.hxx"
+#include "execvisitor.hxx"
+
+
+extern "C"
+{
+#include "Scierror.h"
+#include "localization.h"
+#include "exp.h"
+}
+
+/*--------------------------------------------------------------------------*/
+types::Function::ReturnValue sci_exp(types::typed_list &in, int _iRetCount, types::typed_list &out)
+{
+    if (in.size() != 1)
+    {
+        ScierrorW(77, _W("%ls: Wrong number of input argument(s): %d to %d expected.\n"), L"exp", 1);
+        return types::Function::Error;
+    }
+
+    if (_iRetCount > 1)
+    {
+        ScierrorW(78, _W("%ls: Wrong number of output argument(s): %d expected.\n"), L"exp", 1);
+        return types::Function::Error;
+    }
+
+    if (in[0]->isDouble())
+    {
+        types::Double* pDblIn = in[0]->getAs<types::Double>();
+        types::Double* pDblOut = new types::Double(pDblIn->getDims(), pDblIn->getDimsArray(), pDblIn->isComplex());
+
+        if (pDblIn->isComplex())
+        {
+            for (int i = 0; i < pDblIn->getSize(); i++)
+            {
+                zexps(pDblIn->get(i), pDblIn->getImg(i), pDblOut->get() + i, pDblOut->getImg() + i);
+            }
+        }
+        else
+        {
+            for (int i = 0; i < pDblIn->getSize(); i++)
+            {
+                pDblOut->set(i, dexps(pDblIn->get(i)));
+            }
+        }
+
+        out.push_back(pDblOut);
+    }
+    else if (in[0]->isSparse())
+    {
+        types::Sparse* pSparseIn = in[0]->getAs<types::Sparse>();
+        types::Sparse* pSparseOut = new types::Sparse(pSparseIn->getRows(), pSparseIn->getCols(), pSparseIn->isComplex());
+
+        int const nonZeros = static_cast<int>(pSparseIn->nonZeros());
+        double* pRows = new double[nonZeros * 2];
+        pSparseIn->outputRowCol(pRows);
+        double* pCols = pRows + nonZeros;
+
+        double* pNonZeroR = new double[nonZeros];
+        double* pNonZeroI = new double[nonZeros];
+        pSparseIn->outputValues(pNonZeroR, pNonZeroI);
+
+        if (pSparseIn->isComplex())
+        {
+            for (int i = 0; i < nonZeros; i++)
+            {
+                std::complex<double> complex;
+                double dblReal = complex.real();
+                double dblImg = complex.imag();
+                zexps(pNonZeroR[i], pNonZeroI[i], &dblReal, &dblImg);
+                pSparseOut->set(pRows[i] - 1, pCols[i] - 1, complex);
+            }
+        }
+        else
+        {
+            for (int i = 0; i < nonZeros; i++)
+            {
+                pSparseOut->set(pRows[i] - 1, pCols[i] - 1, dexps(pNonZeroR[i]));
+            }
+        }
+
+        delete[] pRows;
+        delete[] pNonZeroR;
+        delete[] pNonZeroI;
+
+        out.push_back(pSparseOut);
+    }
+    else
+    {
+        std::wstring wstFuncName = L"%"  + in[0]->getShortTypeStr() + L"_exp";
+        return Overload::call(wstFuncName, in, _iRetCount, out, new ExecVisitor());
+    }
+
+    return types::Function::OK;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/scilab/modules/elementary_functions/sci_gateway/cpp/sci_expm.cpp b/scilab/modules/elementary_functions/sci_gateway/cpp/sci_expm.cpp
new file mode 100644 (file)
index 0000000..cc52cf3
--- /dev/null
@@ -0,0 +1,85 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2012 - DIGITEO - 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
+ *
+ */
+/*--------------------------------------------------------------------------*/
+#include "elem_func_gw.hxx"
+#include "function.hxx"
+#include "double.hxx"
+#include "overload.hxx"
+#include "execvisitor.hxx"
+
+
+extern "C"
+{
+#include "Scierror.h"
+#include "localization.h"
+#include "expm.h"
+}
+
+/*--------------------------------------------------------------------------*/
+types::Function::ReturnValue sci_expm(types::typed_list &in, int _iRetCount, types::typed_list &out)
+{
+    types::Double* pDblIn = NULL;
+    types::Double* pDblOut = NULL;
+
+    if (in.size() != 1)
+    {
+        ScierrorW(77, _W("%ls: Wrong number of input argument(s): %d to %d expmected.\n"), L"expm", 1);
+        return types::Function::Error;
+    }
+
+    if (_iRetCount > 1)
+    {
+        ScierrorW(78, _W("%ls: Wrong number of output argument(s): %d expmected.\n"), L"expm", 1);
+        return types::Function::Error;
+    }
+
+    if (in[0]->isDouble() == false)
+    {
+        std::wstring wstFuncName = L"%"  + in[0]->getShortTypeStr() + L"_expm";
+        return Overload::call(wstFuncName, in, _iRetCount, out, new ExecVisitor());
+    }
+
+    pDblIn = in[0]->getAs<types::Double>();
+
+    if (pDblIn->getDims() > 2)
+    {
+        std::wstring wstFuncName = L"%hm_expm";
+        return Overload::call(wstFuncName, in, _iRetCount, out, new ExecVisitor());
+    }
+
+    if (pDblIn->getSize() == 0)
+    {
+        out.push_back(types::Double::Empty());
+        return types::Function::OK;
+    }
+
+    if (pDblIn->getCols() != pDblIn->getRows())
+    {
+        ScierrorW(999, _W("%ls: Wrong size for input argument #%d : A square matrix expected.\n"), L"expm", 1);
+        return types::Function::Error;
+    }
+
+    pDblOut = new types::Double(pDblIn->getDims(), pDblIn->getDimsArray(), pDblIn->isComplex());
+
+    if (pDblIn->isComplex())
+    {
+        zexpms2(pDblIn->get(), pDblIn->getImg(), pDblOut->get(), pDblOut->getImg(), pDblIn->getCols());
+    }
+    else
+    {
+        dexpms2(pDblIn->get(), pDblOut->get(), pDblIn->getCols());
+    }
+
+    out.push_back(pDblOut);
+    return types::Function::OK;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/scilab/modules/elementary_functions/sci_gateway/cpp/sci_floor.cpp b/scilab/modules/elementary_functions/sci_gateway/cpp/sci_floor.cpp
new file mode 100644 (file)
index 0000000..f80fbe8
--- /dev/null
@@ -0,0 +1,158 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2012 - DIGITEO - 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
+ *
+ */
+/*--------------------------------------------------------------------------*/
+#include "elem_func_gw.hxx"
+#include "function.hxx"
+#include "double.hxx"
+#include "overload.hxx"
+#include "execvisitor.hxx"
+
+
+extern "C"
+{
+#include "Scierror.h"
+#include "localization.h"
+#include "basic_functions.h"
+}
+
+/*--------------------------------------------------------------------------*/
+types::Function::ReturnValue sci_floor(types::typed_list &in, int _iRetCount, types::typed_list &out)
+{
+    if (in.size() != 1)
+    {
+        ScierrorW(77, _W("%ls: Wrong number of input argument(s): %d expected.\n"), L"floor", 1);
+        return types::Function::Error;
+    }
+
+    if (_iRetCount > 1)
+    {
+        ScierrorW(78, _W("%ls: Wrong number of output argument(s): %d expected.\n"), L"floor", 1);
+        return types::Function::Error;
+    }
+
+    if (in[0]->isDouble())
+    {
+        types::Double* pDblIn = in[0]->getAs<types::Double>();
+        types::Double* pDblOut = new types::Double(pDblIn->getDims(), pDblIn->getDimsArray(), pDblIn->isComplex());
+
+        if (pDblIn->isComplex())
+        {
+            for (int i = 0 ; i < pDblIn->getSize() ; i++)
+            {
+                pDblOut->setImg(i, dfloors(pDblIn->getImg(i)));
+            }
+        }
+
+        for (int i = 0 ; i < pDblIn->getSize() ; i++)
+        {
+            pDblOut->set(i, dfloors(pDblIn->get(i)));
+        }
+
+        out.push_back(pDblOut);
+    }
+    else if (in[0]->isSparse())
+    {
+        types::Sparse* pSparseIn = in[0]->getAs<types::Sparse>();
+        types::Sparse* pSparseOut = new types::Sparse(pSparseIn->getRows(), pSparseIn->getCols(), pSparseIn->isComplex());
+
+        int const nonZeros = static_cast<int>(pSparseIn->nonZeros());
+        double* pRows = new double[nonZeros * 2];
+        pSparseIn->outputRowCol(pRows);
+        double* pCols = pRows + nonZeros;
+
+        double* pNonZeroR = new double[nonZeros];
+        double* pNonZeroI = new double[nonZeros];
+        pSparseIn->outputValues(pNonZeroR, pNonZeroI);
+
+        if (pSparseIn->isComplex())
+        {
+            for (int i = 0; i < nonZeros; i++)
+            {
+                std::complex<double> cplx(dfloors(pNonZeroR[i]), dfloors(pNonZeroI[i]));
+                pSparseOut->set(pRows[i] - 1, pCols[i] - 1, cplx);
+            }
+        }
+        else
+        {
+            for (int i = 0; i < nonZeros; i++)
+            {
+                pSparseOut->set(pRows[i] - 1, pCols[i] - 1, dfloors(pNonZeroR[i]));
+            }
+        }
+
+        delete[] pRows;
+        delete[] pNonZeroR;
+        delete[] pNonZeroI;
+
+        out.push_back(pSparseOut);
+    }
+    else if (in[0]->isPoly())
+    {
+        types::Polynom* pPolyIn = in[0]->getAs<types::Polynom>();
+        types::Polynom* pPolyOut = new types::Polynom(pPolyIn->getVariableName(), pPolyIn->getDims(), pPolyIn->getDimsArray());
+        pPolyOut->setComplex(pPolyIn->isComplex());
+
+        double* dataImg  = NULL;
+        double* dataReal = NULL;
+
+        if (pPolyIn->isComplex())
+        {
+            for (int i = 0; i < pPolyIn->getSize(); i++)
+            {
+                int rank = pPolyIn->get(i)->getRank();
+                types::SinglePoly* pSP = new types::SinglePoly(&dataReal, &dataImg, rank);
+
+                for (int j = 0; j < rank; j++)
+                {
+                    dataReal[j] = dfloors(pPolyIn->get(i)->getCoefReal()[j]);
+                    dataImg[j]  = dfloors(pPolyIn->get(i)->getCoefImg()[j]);
+                }
+
+                pPolyOut->set(i, pSP);
+                delete pSP;
+                pSP = NULL;
+            }
+        }
+        else
+        {
+            for (int i = 0; i < pPolyIn->getSize(); i++)
+            {
+                int rank = pPolyIn->get(i)->getRank();
+                types::SinglePoly* pSP = new types::SinglePoly(&dataReal, rank);
+
+                for (int j = 0; j < rank; j++)
+                {
+                    dataReal[j] = dfloors(pPolyIn->get(i)->getCoefReal()[j]);
+                }
+
+                pPolyOut->set(i, pSP);
+                delete pSP;
+                pSP = NULL;
+            }
+        }
+
+        out.push_back(pPolyOut);
+    }
+    else if (in[0]->isInt())
+    {
+        out.push_back(in[0]->getAs<types::InternalType>()->clone());
+        return types::Function::OK;
+    }
+    else
+    {
+        std::wstring wstFuncName = L"%"  + in[0]->getShortTypeStr() + L"_floor";
+        return Overload::call(wstFuncName, in, _iRetCount, out, new ExecVisitor());
+    }
+
+    return types::Function::OK;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/scilab/modules/elementary_functions/sci_gateway/cpp/sci_frexp.cpp b/scilab/modules/elementary_functions/sci_gateway/cpp/sci_frexp.cpp
new file mode 100644 (file)
index 0000000..2f2618a
--- /dev/null
@@ -0,0 +1,75 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2012 - DIGITEO - 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
+ *
+ */
+/*--------------------------------------------------------------------------*/
+#include "elem_func_gw.hxx"
+#include "function.hxx"
+#include "double.hxx"
+#include "overload.hxx"
+#include "execvisitor.hxx"
+
+
+extern "C"
+{
+#include "Scierror.h"
+#include "localization.h"
+#include "basic_functions.h"
+}
+
+/*--------------------------------------------------------------------------*/
+types::Function::ReturnValue sci_frexp(types::typed_list &in, int _iRetCount, types::typed_list &out)
+{
+    if (in.size() != 1)
+    {
+        ScierrorW(77, _W("%ls: Wrong number of input argument(s): %d expected.\n"), L"frexp", 1);
+        return types::Function::Error;
+    }
+
+    if (_iRetCount != 2)
+    {
+        ScierrorW(78, _W("%ls: Wrong number of output argument(s): %d expected.\n"), L"frexp", 2);
+        return types::Function::Error;
+    }
+
+    if (in[0]->isDouble() == false)
+    {
+        std::wstring wstFuncName = L"%"  + in[0]->getShortTypeStr() + L"_frexp";
+        return Overload::call(wstFuncName, in, _iRetCount, out, new ExecVisitor());
+    }
+
+    types::Double* pDblIn = in[0]->getAs<types::Double>();
+
+    if (pDblIn->getDims() > 2)
+    {
+        std::wstring wstFuncName = L"%hm_frexp";
+        return Overload::call(wstFuncName, in, _iRetCount, out, new ExecVisitor());
+    }
+
+    if (pDblIn->isComplex())
+    {
+        ScierrorW(999, _W("%ls: Wrong type for input argument #%d : A real matrix expected.\n"), L"frexp", 1);
+        return types::Function::Error;
+    }
+
+    types::Double* pDblCoef = new types::Double(pDblIn->getDims(), pDblIn->getDimsArray());
+    types::Double* pDblExp  = new types::Double(pDblIn->getDims(), pDblIn->getDimsArray());
+
+    for (int i = 0 ; i < pDblIn->getSize() ; i++)
+    {
+        pDblCoef->set(i, dfrexps(pDblIn->get(i), pDblExp->get() + i));
+    }
+
+    out.push_back(pDblCoef);
+    out.push_back(pDblExp);
+
+    return types::Function::OK;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/scilab/modules/elementary_functions/sci_gateway/cpp/sci_gsort.cpp b/scilab/modules/elementary_functions/sci_gateway/cpp/sci_gsort.cpp
new file mode 100644 (file)
index 0000000..903e23a
--- /dev/null
@@ -0,0 +1,211 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2012 - DIGITEO - 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
+ *
+ */
+/*--------------------------------------------------------------------------*/
+#include "elem_func_gw.hxx"
+#include "function.hxx"
+#include "double.hxx"
+#include "string.hxx"
+#include "overload.hxx"
+#include "execvisitor.hxx"
+#include "gsort.hxx"
+
+
+extern "C"
+{
+#include "Scierror.h"
+#include "localization.h"
+}
+
+/*--------------------------------------------------------------------------*/
+types::Function::ReturnValue sci_gsort(types::typed_list &in, int _iRetCount, types::typed_list &out)
+{
+    types::Double* pDblInd = NULL;
+
+    std::wstring wstrWay     = L"d";
+    std::wstring wstrProcess = L"g";
+
+    if (in.size() < 1 || in.size() > 3)
+    {
+        ScierrorW(77, _W("%ls: Wrong number of input argument(s): %d to %d expected.\n"), L"gsort", 1, 3);
+        return types::Function::Error;
+    }
+
+    if (_iRetCount > 1 && in[0]->isSparse())
+    {
+        ScierrorW(78, _W("%ls: Wrong number of output argument(s): %d expected.\n"), L"gsort", 1, 1);
+        return types::Function::Error;
+    }
+    else if (_iRetCount > 2)
+    {
+        ScierrorW(78, _W("%ls: Wrong number of output argument(s): %d to %d expected.\n"), L"gsort", 1, 2);
+        return types::Function::Error;
+    }
+
+    /***** get data and perform operation *****/
+    if (in.size() == 3) // get Direction
+    {
+        if (in[2]->isString() == false)
+        {
+            ScierrorW(999, _W("%ls: Wrong type for input argument #%d : A string expected.\n"), L"gsort", 3);
+            return types::Function::Error;
+        }
+
+        wstrWay = in[2]->getAs<types::String>()->get(0);
+
+        if (wstrWay != L"i" && wstrWay != L"d")
+        {
+            ScierrorW(999, _W("%ls: Wrong value for input argument #%d : It must be one of the following strings : i or d.\n"), L"gsort", 3);
+            return types::Function::Error;
+        }
+    }
+
+    if (in.size() >= 2) // get Option
+    {
+        if (in[1]->isString() == false)
+        {
+            ScierrorW(999, _W("%ls: Wrong type for input argument #%d : A string expected.\n"), L"gsort", 2);
+            return types::Function::Error;
+        }
+
+        wstrProcess = in[1]->getAs<types::String>()->get(0);
+
+        if ( wstrProcess != L"c"  &&
+                wstrProcess != L"r"  &&
+                wstrProcess != L"g"  &&
+                wstrProcess != L"lc" &&
+                wstrProcess != L"lr")
+        {
+            ScierrorW(999, _W("%ls: Wrong value for input argument #%d : It must be one of the following strings : r, c, g, lr or lc.\n"), L"gsort", 2);
+
+            return types::Function::Error;
+        }
+    }
+
+    // get data and perform operation for each types::
+    if (in[0]->isGenericType() == false)
+    {
+        std::wstring wstFuncName = L"%"  + in[0]->getShortTypeStr() + L"_gsort";
+        return Overload::call(wstFuncName, in, _iRetCount, out, new ExecVisitor());
+    }
+
+    types::GenericType* pGTOut = in[0]->getAs<types::GenericType>();
+
+    if (pGTOut->getDims() > 2)
+    {
+        std::wstring wstFuncName = L"%hm_gsort";
+        return Overload::call(wstFuncName, in, _iRetCount, out, new ExecVisitor());
+    }
+
+    if (_iRetCount == 2)
+    {
+        int iRowsInd = (wstrProcess == L"lc") ? 1 : pGTOut->getRows();
+        int iColsInd = (wstrProcess == L"lr") ? 1 : pGTOut->getCols();
+
+        pDblInd = new types::Double(iRowsInd, iColsInd);
+    }
+
+    if (in[0]->isDouble()) // double
+    {
+        types::Double* pDblIn = in[0]->getAs<types::Double>();
+        // doc says : "With complex numbers, gsort can be overloaded"
+        if (pDblIn->isComplex() && symbol::Context::getInstance()->get_fun(symbol::Symbol(L"%_gsort")))
+        {
+            if (_iRetCount == 2)
+            {
+                delete pDblInd;
+            }
+
+            return Overload::call(L"%_gsort", in, _iRetCount, out, new ExecVisitor());
+        }
+
+        types::Double* pDblOut = gsort(pDblIn, pDblInd, wstrWay, wstrProcess);
+        out.push_back(pDblOut);
+    }
+    else if (in[0]->isSparse()) // sparse
+    {
+        if (_iRetCount == 2)
+        {
+            delete pDblInd;
+        }
+
+        std::wstring wstFuncName = L"%"  + in[0]->getShortTypeStr() + L"_gsort";
+        return Overload::call(wstFuncName, in, _iRetCount, out, new ExecVisitor());
+    }
+    else if (in[0]->isString()) // string
+    {
+        types::String* pStringIn = in[0]->getAs<types::String>();
+        types::String* pStringOut = gsort(pStringIn, pDblInd, wstrWay, wstrProcess);
+        out.push_back(pStringOut);
+    }
+    else if (in[0]->isInt8()) // int
+    {
+        types::Int8* pIIn = in[0]->getAs<types::Int8>();
+        types::Int8* pIOut = gsort(pIIn, pDblInd, wstrWay, wstrProcess);
+        out.push_back(pIOut);
+    }
+    else if (in[0]->isInt16())
+    {
+        types::Int16* pIIn = in[0]->getAs<types::Int16>();
+        types::Int16* pIOut = gsort(pIIn, pDblInd, wstrWay, wstrProcess);
+        out.push_back(pIOut);
+    }
+    else if (in[0]->isInt32())
+    {
+        types::Int32* pIIn = in[0]->getAs<types::Int32>();
+        types::Int32* pIOut = gsort(pIIn, pDblInd, wstrWay, wstrProcess);
+        out.push_back(pIOut);
+    }
+    else if (in[0]->isInt64())
+    {
+        types::Int64* pIIn = in[0]->getAs<types::Int64>();
+        types::Int64* pIOut = gsort(pIIn, pDblInd, wstrWay, wstrProcess);
+        out.push_back(pIOut);
+    }
+    else if (in[0]->isUInt8()) // uint
+    {
+        types::UInt8* pIIn = in[0]->getAs<types::UInt8>();
+        types::UInt8* pIOut = gsort(pIIn, pDblInd, wstrWay, wstrProcess);
+        out.push_back(pIOut);
+    }
+    else if (in[0]->isUInt16())
+    {
+        types::UInt16* pIIn = in[0]->getAs<types::UInt16>();
+        types::UInt16* pIOut = gsort(pIIn, pDblInd, wstrWay, wstrProcess);
+        out.push_back(pIOut);
+    }
+    else if (in[0]->isUInt32())
+    {
+        types::UInt32* pIIn = in[0]->getAs<types::UInt32>();
+        types::UInt32* pIOut = gsort(pIIn, pDblInd, wstrWay, wstrProcess);
+        out.push_back(pIOut);
+    }
+    else if (in[0]->isUInt64())
+    {
+        types::UInt64* pIIn = in[0]->getAs<types::UInt64>();
+        types::UInt64* pIOut = gsort(pIIn, pDblInd, wstrWay, wstrProcess);
+        out.push_back(pIOut);
+    }
+    else
+    {
+        std::wstring wstFuncName = L"%"  + in[0]->getShortTypeStr() + L"_gsort";
+        return Overload::call(wstFuncName, in, _iRetCount, out, new ExecVisitor());
+    }
+
+    /***** set result *****/
+    if (_iRetCount == 2)
+    {
+        out.push_back(pDblInd);
+    }
+
+    return types::Function::OK;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/scilab/modules/elementary_functions/sci_gateway/cpp/sci_imag.cpp b/scilab/modules/elementary_functions/sci_gateway/cpp/sci_imag.cpp
new file mode 100644 (file)
index 0000000..f5284e4
--- /dev/null
@@ -0,0 +1,125 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2012 - DIGITEO - 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
+ *
+ */
+/*--------------------------------------------------------------------------*/
+#include "elem_func_gw.hxx"
+#include "function.hxx"
+#include "double.hxx"
+#include "overload.hxx"
+#include "execvisitor.hxx"
+
+
+extern "C"
+{
+#include "Scierror.h"
+#include "localization.h"
+#include "elem_common.h"
+}
+
+/*--------------------------------------------------------------------------*/
+types::Function::ReturnValue sci_imag(types::typed_list &in, int _iRetCount, types::typed_list &out)
+{
+    if (in.size() != 1)
+    {
+        ScierrorW(77, _W("%ls: Wrong number of input argument(s): %d expected.\n"), L"imag", 1);
+        return types::Function::Error;
+    }
+
+    if (_iRetCount > 1)
+    {
+        ScierrorW(78, _W("%ls: Wrong number of output argument(s): %d expected.\n"), L"imag", 1);
+        return types::Function::Error;
+    }
+
+    if (in[0]->isDouble())
+    {
+        types::Double* pDblIn = in[0]->getAs<types::Double>();
+
+        if (pDblIn->isComplex() == false)
+        {
+            out.push_back(types::Double::Empty());
+            return types::Function::OK;
+        }
+
+        int iSize = pDblIn->getSize();
+        int iOne = 1;
+
+        types::Double* pDblOut = new types::Double(pDblIn->getDims(), pDblIn->getDimsArray());
+
+        C2F(dcopy)(&iSize, pDblIn->getImg(), &iOne, pDblOut->getReal(), &iOne);
+
+        out.push_back(pDblOut);
+    }
+    else if (in[0]->isSparse())
+    {
+        types::Sparse* pSparseIn = in[0]->getAs<types::Sparse>();
+        types::Sparse* pSparseOut = new types::Sparse(pSparseIn->getRows(), pSparseIn->getCols());
+
+        if (pSparseIn->isComplex() == false)
+        {
+            out.push_back(pSparseOut);
+            return types::Function::OK;
+        }
+
+        int const nonZeros = static_cast<int>(pSparseIn->nonZeros());
+        double* pRows = new double[nonZeros * 2];
+        pSparseIn->outputRowCol(pRows);
+        double* pCols = pRows + nonZeros;
+
+        for (int i = 0 ; i < nonZeros ; i++)
+        {
+            std::complex<double> cplx = pSparseIn->getImg(pRows[i] - 1, pCols[i] - 1);
+            pSparseOut->set(pRows[i] - 1, pCols[i] - 1, cplx.imag());
+        }
+
+        delete[] pRows;
+
+        out.push_back(pSparseOut);
+    }
+    else if (in[0]->isPoly())
+    {
+        types::Polynom* pPolyIn = in[0]->getAs<types::Polynom>();
+        types::Polynom* pPolyOut = new types::Polynom(pPolyIn->getVariableName(), pPolyIn->getDims(), pPolyIn->getDimsArray());
+
+        if (pPolyIn->isComplex() == false)
+        {
+            out.push_back(pPolyOut);
+            return types::Function::OK;
+        }
+
+        double* dataReal = NULL;
+
+        for (int i = 0; i < pPolyIn->getSize(); i++)
+        {
+            int rank = pPolyIn->get(i)->getRank();
+            types::SinglePoly* pSP = new types::SinglePoly(&dataReal, rank);
+
+            for (int j = 0; j < rank; j++)
+            {
+                dataReal[j]  = pPolyIn->get(i)->getCoefImg()[j];
+            }
+
+            pPolyOut->set(i, pSP);
+            delete pSP;
+            pSP = NULL;
+        }
+
+        out.push_back(pPolyOut);
+    }
+    else
+    {
+        std::wstring wstFuncName = L"%"  + in[0]->getShortTypeStr() + L"_imag";
+        return Overload::call(wstFuncName, in, _iRetCount, out, new ExecVisitor());
+    }
+
+    return types::Function::OK;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/scilab/modules/elementary_functions/sci_gateway/cpp/sci_imult.cpp b/scilab/modules/elementary_functions/sci_gateway/cpp/sci_imult.cpp
new file mode 100644 (file)
index 0000000..1bdc4d1
--- /dev/null
@@ -0,0 +1,145 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2012 - DIGITEO - 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
+ *
+ */
+/*--------------------------------------------------------------------------*/
+#include "elem_func_gw.hxx"
+#include "function.hxx"
+#include "double.hxx"
+#include "overload.hxx"
+#include "execvisitor.hxx"
+
+
+extern "C"
+{
+#include "Scierror.h"
+#include "localization.h"
+#include "elem_common.h"
+}
+
+/*--------------------------------------------------------------------------*/
+types::Function::ReturnValue sci_imult(types::typed_list &in, int _iRetCount, types::typed_list &out)
+{
+    if (in.size() != 1)
+    {
+        ScierrorW(77, _W("%ls: Wrong number of input argument(s): %d expected.\n"), L"imult", 1);
+        return types::Function::Error;
+    }
+
+    if (_iRetCount > 1)
+    {
+        ScierrorW(78, _W("%ls: Wrong number of output argument(s): %d expected.\n"), L"imult", 1);
+        return types::Function::Error;
+    }
+
+    if (in[0]->isDouble())
+    {
+        types::Double* pDblIn = in[0]->getAs<types::Double>();
+        types::Double* pDblOut = new types::Double(pDblIn->getDims(), pDblIn->getDimsArray(), true);
+
+        int iSize = pDblIn->getSize();
+        int iOne = 1;
+
+        if (pDblIn->isComplex())
+        {
+            for (int i = 0; i < iSize; i++)
+            {
+                pDblOut->set(i, pDblIn->getImg(i) * -1);
+            }
+        }
+        else
+        {
+            memset(pDblOut->getReal(), 0x00, iSize * sizeof(double));
+        }
+
+        C2F(dcopy)(&iSize, pDblIn->getReal(), &iOne, pDblOut->getImg(), &iOne);
+
+        out.push_back(pDblOut);
+    }
+    else if (in[0]->isSparse())
+    {
+        types::Sparse* pSparseIn = in[0]->getAs<types::Sparse>();
+        types::Sparse* pSparseOut = new types::Sparse(pSparseIn->getRows(), pSparseIn->getCols(), true);
+
+        int const nonZeros = static_cast<int>(pSparseIn->nonZeros());
+        double* pRows = new double[nonZeros * 2];
+        pSparseIn->outputRowCol(pRows);
+        double* pCols = pRows + nonZeros;
+
+        if (pSparseIn->isComplex())
+        {
+            for (int i = 0 ; i < nonZeros ; i++)
+            {
+                std::complex<double> cplxIn = pSparseIn->getImg(pRows[i] - 1, pCols[i] - 1);
+                std::complex<double> cplxOut(cplxIn.imag() * -1, cplxIn.real());
+                pSparseOut->set(pRows[i] - 1, pCols[i] - 1, cplxOut);
+            }
+        }
+        else
+        {
+            for (int i = 0 ; i < nonZeros ; i++)
+            {
+                double dReal = pSparseIn->get(pRows[i] - 1, pCols[i] - 1);
+                std::complex<double> cplxOut(0, dReal);
+                pSparseOut->set(pRows[i] - 1, pCols[i] - 1, cplxOut);
+            }
+        }
+
+        delete[] pRows;
+
+        out.push_back(pSparseOut);
+    }
+    else if (in[0]->isPoly())
+    {
+        types::Polynom* pPolyIn = in[0]->getAs<types::Polynom>();
+        types::Polynom* pPolyOut = new types::Polynom(pPolyIn->getVariableName(), pPolyIn->getDims(), pPolyIn->getDimsArray());
+        pPolyOut->setComplex(true);
+
+        double* dataImg  = NULL;
+        double* dataReal = NULL;
+
+        for (int i = 0; i < pPolyIn->getSize(); i++)
+        {
+            int rank = pPolyIn->get(i)->getRank();
+            types::SinglePoly* pSP = new types::SinglePoly(&dataReal, &dataImg, rank);
+
+            if (pPolyIn->isComplex())
+            {
+                for (int j = 0; j < rank; j++)
+                {
+                    dataReal[j] = pPolyIn->get(i)->getCoefImg()[j] * -1;
+                    dataImg[j]  = pPolyIn->get(i)->getCoefReal()[j];
+                }
+            }
+            else
+            {
+                for (int j = 0; j < rank; j++)
+                {
+                    dataReal[j] = 0;
+                    dataImg[j]  = pPolyIn->get(i)->getCoefReal()[j];
+                }
+            }
+
+            pPolyOut->set(i, pSP);
+            delete pSP;
+            pSP = NULL;
+        }
+
+        out.push_back(pPolyOut);
+    }
+    else
+    {
+        std::wstring wstFuncName = L"%"  + in[0]->getShortTypeStr() + L"_imult";
+        return Overload::call(wstFuncName, in, _iRetCount, out, new ExecVisitor());
+    }
+
+    return types::Function::OK;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/scilab/modules/elementary_functions/sci_gateway/cpp/sci_int.cpp b/scilab/modules/elementary_functions/sci_gateway/cpp/sci_int.cpp
new file mode 100644 (file)
index 0000000..e898a2f
--- /dev/null
@@ -0,0 +1,204 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2012 - DIGITEO - 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
+ *
+ */
+/*--------------------------------------------------------------------------*/
+#include "elem_func_gw.hxx"
+#include "function.hxx"
+#include "double.hxx"
+#include "overload.hxx"
+#include "execvisitor.hxx"
+
+
+extern "C"
+{
+#include "Scierror.h"
+#include "localization.h"
+#include "core_math.h"
+}
+
+/*--------------------------------------------------------------------------*/
+types::Function::ReturnValue sci_int(types::typed_list &in, int _iRetCount, types::typed_list &out)
+{
+    if (in.size() != 1)
+    {
+        ScierrorW(77, _W("%ls: Wrong number of input argument(s): %d expected.\n"), L"int", 1);
+        return types::Function::Error;
+    }
+
+    if (_iRetCount > 1)
+    {
+        ScierrorW(78, _W("%ls: Wrong number of output argument(s): %d expected.\n"), L"int", 1);
+        return types::Function::Error;
+    }
+
+    if (in[0]->isDouble())
+    {
+        types::Double* pDblIn = in[0]->getAs<types::Double>();
+        types::Double* pDblOut = new types::Double(pDblIn->getDims(), pDblIn->getDimsArray(), pDblIn->isComplex());
+
+        if (pDblIn->isComplex())
+        {
+            for (int i = 0 ; i < pDblIn->getSize() ; i++)
+            {
+                if (finite(pDblIn->getImg(i)))
+                {
+                    pDblOut->setImg(i, (double)(long long int)pDblIn->getImg(i));
+                }
+                else
+                {
+                    pDblOut->setImg(i, pDblIn->getImg(i));
+                }
+            }
+        }
+
+        for (int i = 0 ; i < pDblIn->getSize() ; i++)
+        {
+            if (finite(pDblIn->get(i)))
+            {
+                pDblOut->set(i, (double)(long long int)pDblIn->get(i));
+            }
+            else
+            {
+                pDblOut->set(i, pDblIn->get(i));
+            }
+        }
+
+        out.push_back(pDblOut);
+    }
+    else if (in[0]->isSparse())
+    {
+        types::Sparse* pSparseIn = in[0]->getAs<types::Sparse>();
+        types::Sparse* pSparseOut = new types::Sparse(pSparseIn->getRows(), pSparseIn->getCols(), pSparseIn->isComplex());
+
+        int const nonZeros = static_cast<int>(pSparseIn->nonZeros());
+        double* pRows = new double[nonZeros * 2];
+        pSparseIn->outputRowCol(pRows);
+        double* pCols = pRows + nonZeros;
+
+        double* pNonZeroR = new double[nonZeros];
+        double* pNonZeroI = new double[nonZeros];
+        pSparseIn->outputValues(pNonZeroR, pNonZeroI);
+
+        if (pSparseIn->isComplex())
+        {
+            for (int i = 0; i < nonZeros; i++)
+            {
+                if (finite(pNonZeroR[i]))
+                {
+                    pNonZeroR[i] = (double)(long long int)pNonZeroR[i];
+                }
+
+                if (finite(pNonZeroI[i]))
+                {
+                    pNonZeroI[i] = (double)(long long int)pNonZeroI[i];
+                }
+
+                std::complex<double> cplx(pNonZeroR[i], pNonZeroI[i]);
+                pSparseOut->set(pRows[i] - 1, pCols[i] - 1, cplx);
+            }
+        }
+        else
+        {
+            for (int i = 0; i < nonZeros; i++)
+            {
+                if (finite(pNonZeroR[i]))
+                {
+                    pNonZeroR[i] = (double)(long long int)pNonZeroR[i];
+                }
+
+                pSparseOut->set(pRows[i] - 1, pCols[i] - 1, pNonZeroR[i]);
+            }
+        }
+
+        delete[] pRows;
+        delete[] pNonZeroR;
+        delete[] pNonZeroI;
+
+        out.push_back(pSparseOut);
+    }
+    else if (in[0]->isPoly())
+    {
+        types::Polynom* pPolyIn = in[0]->getAs<types::Polynom>();
+        types::Polynom* pPolyOut = new types::Polynom(pPolyIn->getVariableName(), pPolyIn->getDims(), pPolyIn->getDimsArray());
+        pPolyOut->setComplex(pPolyIn->isComplex());
+
+        double* dataImg  = NULL;
+        double* dataReal = NULL;
+
+        if (pPolyIn->isComplex())
+        {
+            for (int i = 0; i < pPolyIn->getSize(); i++)
+            {
+                int rank = pPolyIn->get(i)->getRank();
+                types::SinglePoly* pSP = new types::SinglePoly(&dataReal, &dataImg, rank);
+
+                for (int j = 0; j < rank; j++)
+                {
+                    if (finite(pPolyIn->get(i)->getCoefReal()[j]))
+                    {
+                        dataReal[j] = (double)(long long int)pPolyIn->get(i)->getCoefReal()[j];
+                    }
+                    else
+                    {
+                        dataReal[j] = pPolyIn->get(i)->getCoefReal()[j];
+                    }
+
+                    if (finite(pPolyIn->get(i)->getCoefImg()[j]))
+                    {
+                        dataImg[j]  = (double)(long long int)pPolyIn->get(i)->getCoefImg()[j];
+                    }
+                    else
+                    {
+                        dataImg[j] = pPolyIn->get(i)->getCoefImg()[j];
+                    }
+                }
+
+                pPolyOut->set(i, pSP);
+                delete pSP;
+                pSP = NULL;
+            }
+        }
+        else
+        {
+            for (int i = 0; i < pPolyIn->getSize(); i++)
+            {
+                int rank = pPolyIn->get(i)->getRank();
+                types::SinglePoly* pSP = new types::SinglePoly(&dataReal, rank);
+
+                for (int j = 0; j < rank; j++)
+                {
+                    if (finite(pPolyIn->get(i)->getCoefReal()[j]))
+                    {
+                        dataReal[i] = (double)(long long int)pPolyIn->get(i)->getCoefReal()[j];
+                    }
+                    else
+                    {
+                        dataReal[j] = pPolyIn->get(i)->getCoefReal()[j];
+                    }
+                }
+
+                pPolyOut->set(i, pSP);
+                delete pSP;
+                pSP = NULL;
+            }
+        }
+
+        out.push_back(pPolyOut);
+    }
+    else
+    {
+        std::wstring wstFuncName = L"%"  + in[0]->getShortTypeStr() + L"_int";
+        return Overload::call(wstFuncName, in, _iRetCount, out, new ExecVisitor());
+    }
+
+    return types::Function::OK;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/scilab/modules/elementary_functions/sci_gateway/cpp/sci_isreal.cpp b/scilab/modules/elementary_functions/sci_gateway/cpp/sci_isreal.cpp
new file mode 100644 (file)
index 0000000..83ea3fd
--- /dev/null
@@ -0,0 +1,164 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2012 - DIGITEO - 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
+ *
+ */
+/*--------------------------------------------------------------------------*/
+#include "elem_func_gw.hxx"
+#include "function.hxx"
+#include "double.hxx"
+#include "overload.hxx"
+#include "execvisitor.hxx"
+
+
+extern "C"
+{
+#include "Scierror.h"
+#include "localization.h"
+}
+
+/*--------------------------------------------------------------------------*/
+types::Function::ReturnValue sci_isreal(types::typed_list &in, int _iRetCount, types::typed_list &out)
+{
+    double dEps = 0;
+    bool bIsComplex = false;
+
+    if (in.size() < 1 || in.size() > 2)
+    {
+        ScierrorW(77, _W("%ls: Wrong number of input argument(s): %d to %d expected.\n"), L"isreal", 1, 2);
+        return types::Function::Error;
+    }
+
+    if (_iRetCount > 1)
+    {
+        ScierrorW(78, _W("%ls: Wrong number of output argument(s): %d expected.\n"), L"isreal", 1);
+        return types::Function::Error;
+    }
+
+    if (in.size() == 2)
+    {
+        if (in[1]->isDouble() == false)
+        {
+            ScierrorW(999, _W("%ls: Wrong type for input argument #%d: A real scalar expected.\n"), L"isreal", 2);
+            return types::Function::Error;
+        }
+
+        types::Double* pDblEps = in[1]->getAs<types::Double>();
+
+        if ((pDblEps->isScalar() == false) || pDblEps->isComplex())
+        {
+            ScierrorW(999, _W("%ls: Wrong type for input argument #%d: A real scalar expected.\n"), L"isreal", 2);
+            return types::Function::Error;
+        }
+
+        dEps = pDblEps->get(0);
+    }
+
+    if (in[0]->isDouble())
+    {
+        types::Double* pDblIn = in[0]->getAs<types::Double>();
+
+        if (pDblIn->isComplex() == false)
+        {
+            out.push_back(new types::Bool(true));
+            return types::Function::OK;
+        }
+        else if (pDblIn->isComplex() && in.size() == 1)
+        {
+            out.push_back(new types::Bool(false));
+            return types::Function::OK;
+        }
+
+        for (int i = 0; i < pDblIn->getSize(); i++)
+        {
+            if (fabs(pDblIn->getImg(i)) > dEps)
+            {
+                out.push_back(new types::Bool(false));
+                return types::Function::OK;
+            }
+        }
+
+        out.push_back(new types::Bool(true));
+        return types::Function::OK;
+    }
+    else if (in[0]->isSparse())
+    {
+        types::Sparse* pSparseIn = in[0]->getAs<types::Sparse>();
+
+        if (pSparseIn->isComplex() == false)
+        {
+            out.push_back(new types::Bool(true));
+            return types::Function::OK;
+        }
+        else if (pSparseIn->isComplex() && in.size() == 1)
+        {
+            out.push_back(new types::Bool(false));
+            return types::Function::OK;
+        }
+
+        int const nonZeros = static_cast<int>(pSparseIn->nonZeros());
+        double* pRows = new double[nonZeros * 2];
+        pSparseIn->outputRowCol(pRows);
+        double* pCols = pRows + nonZeros;
+
+        for (int i = 0 ; i < nonZeros ; i++)
+        {
+            std::complex<double> cplxIn = pSparseIn->getImg(pRows[i] - 1, pCols[i] - 1);
+            if (fabs(cplxIn.imag()) > dEps)
+            {
+                delete[] pRows;
+                out.push_back(new types::Bool(false));
+                return types::Function::OK;
+            }
+        }
+
+        delete[] pRows;
+        out.push_back(new types::Bool(true));
+        return types::Function::OK;
+    }
+    else if (in[0]->isPoly())
+    {
+        types::Polynom* pPolyIn = in[0]->getAs<types::Polynom>();
+
+        if (pPolyIn->isComplex() == false)
+        {
+            out.push_back(new types::Bool(true));
+            return types::Function::OK;
+        }
+        else if (pPolyIn->isComplex() && in.size() == 1)
+        {
+            out.push_back(new types::Bool(false));
+            return types::Function::OK;
+        }
+
+        for (int i = 0; i < pPolyIn->getSize(); i++)
+        {
+            int rank = pPolyIn->get(i)->getRank();
+            for (int j = 0; j < rank; j++)
+            {
+                if (fabs(pPolyIn->get(i)->getCoefImg()[j]) > dEps)
+                {
+                    out.push_back(new types::Bool(false));
+                    return types::Function::OK;
+                }
+            }
+        }
+
+        out.push_back(new types::Bool(true));
+        return types::Function::OK;
+    }
+    else
+    {
+        std::wstring wstFuncName = L"%"  + in[0]->getShortTypeStr() + L"_isreal";
+        return Overload::call(wstFuncName, in, _iRetCount, out, new ExecVisitor());
+    }
+
+    return types::Function::OK;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/scilab/modules/elementary_functions/sci_gateway/cpp/sci_kron.cpp b/scilab/modules/elementary_functions/sci_gateway/cpp/sci_kron.cpp
new file mode 100644 (file)
index 0000000..4803a04
--- /dev/null
@@ -0,0 +1,68 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2012 - DIGITEO - 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
+ *
+ */
+/*--------------------------------------------------------------------------*/
+#include "elem_func_gw.hxx"
+#include "function.hxx"
+#include "double.hxx"
+#include "overload.hxx"
+#include "execvisitor.hxx"
+#include "types_kronecker.hxx"
+
+
+extern "C"
+{
+#include "Scierror.h"
+#include "localization.h"
+}
+
+/*--------------------------------------------------------------------------*/
+types::Function::ReturnValue sci_kron(types::typed_list &in, int _iRetCount, types::typed_list &out)
+{
+    types::Double* pDblA    = NULL;
+    types::Double* pDblB    = NULL;
+    types::Double* pDblOut  = NULL;
+
+    if (in.size() != 2)
+    {
+        ScierrorW(77, _W("%ls: Wrong number of input argument(s): %d expected.\n"), L"kron", 2);
+        return types::Function::Error;
+    }
+
+    if (_iRetCount > 1)
+    {
+        ScierrorW(78, _W("%ls: Wrong number of output argument(s): %d expected.\n"), L"kron", 1);
+        return types::Function::Error;
+    }
+
+    if (in[0]->isDouble() && in[1]->isDouble()) // double .*. double
+    {
+        pDblA = in[0]->getAs<types::Double>();
+        pDblB = in[1]->getAs<types::Double>();
+
+        KroneckerMultiplyDoubleByDouble(pDblA, pDblB, &pDblOut);
+    }
+    else if (in[0]->isInt() || in[1]->isInt())
+    {
+        // int .*. double || double .*. int || int .*. int
+        std::wstring wstFuncName = L"%_kron";
+        return Overload::call(wstFuncName, in, _iRetCount, out, new ExecVisitor());
+    }
+    else
+    {
+        std::wstring wstFuncName = L"%"  + in[0]->getShortTypeStr() + L"_kron";
+        return Overload::call(wstFuncName, in, _iRetCount, out, new ExecVisitor());
+    }
+
+    out.push_back(pDblOut);
+    return types::Function::OK;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/scilab/modules/elementary_functions/sci_gateway/cpp/sci_log.cpp b/scilab/modules/elementary_functions/sci_gateway/cpp/sci_log.cpp
new file mode 100644 (file)
index 0000000..00d7356
--- /dev/null
@@ -0,0 +1,106 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2012 - DIGITEO - 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
+ *
+ */
+/*--------------------------------------------------------------------------*/
+#include "elem_func_gw.hxx"
+#include "function.hxx"
+#include "double.hxx"
+#include "overload.hxx"
+#include "execvisitor.hxx"
+
+
+extern "C"
+{
+#include "Scierror.h"
+#include "localization.h"
+#include "elem_common.h"
+#include "log.h"
+}
+
+/*--------------------------------------------------------------------------*/
+types::Function::ReturnValue sci_log(types::typed_list &in, int _iRetCount, types::typed_list &out)
+{
+    int iAlert = 1;
+
+    if (in.size() != 1)
+    {
+        ScierrorW(77, _W("%ls: Wrong number of input argument(s): %d to %d expected.\n"), L"log", 1);
+        return types::Function::Error;
+    }
+
+    if (_iRetCount > 1)
+    {
+        ScierrorW(78, _W("%ls: Wrong number of output argument(s): %d expected.\n"), L"log", 1);
+        return types::Function::Error;
+    }
+
+    if (in[0]->isDouble() == false)
+    {
+        std::wstring wstFuncName = L"%"  + in[0]->getShortTypeStr() + L"_log";
+        return Overload::call(wstFuncName, in, _iRetCount, out, new ExecVisitor());
+    }
+
+    types::Double* pDblIn = in[0]->getAs<types::Double>();
+    types::Double* pDblOut = new types::Double(pDblIn->getDims(), pDblIn->getDimsArray(), pDblIn->isComplex());
+
+    if (pDblIn->isComplex())
+    {
+        for (int i = 0; i < pDblIn->getSize(); i++)
+        {
+            //If the value is less than precision (eps).
+            if (iAlert && pDblIn->get(i) == 0 && pDblIn->getImg(i) == 0)
+            {
+                // if ieee == 0 => error && return
+                // else if ieee == 1 => warning
+                iAlert = 0;
+            }
+
+            wlog(pDblIn->get(i), pDblIn->getImg(i), pDblOut->get() + i, pDblOut->getImg() + i);
+        }
+    }
+    else
+    {
+        bool bIsLessZero = false;
+        for (int i = 0; i < pDblIn->getSize(); i++)
+        {
+            if (iAlert && pDblIn->get(i) == 0)
+            {
+                iAlert = 0;
+                // if ieee == 0 => error && return
+                // else if ieee == 1 => warning
+            }
+            else if (pDblIn->get(i) < 0)
+            {
+                bIsLessZero = true;
+            }
+        }
+
+        if (bIsLessZero)
+        {
+            pDblOut->setComplex(true);
+            for (int i = 0; i < pDblIn->getSize(); i++)
+            {
+                wlog(pDblIn->get(i), 0, pDblOut->get() + i, pDblOut->getImg() + i);
+            }
+        }
+        else
+        {
+            for (int i = 0; i < pDblIn->getSize(); i++)
+            {
+                pDblOut->set(i, dlogs(pDblIn->get(i)));
+            }
+        }
+    }
+
+    out.push_back(pDblOut);
+    return types::Function::OK;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/scilab/modules/elementary_functions/sci_gateway/cpp/sci_log1p.cpp b/scilab/modules/elementary_functions/sci_gateway/cpp/sci_log1p.cpp
new file mode 100644 (file)
index 0000000..32b2aee
--- /dev/null
@@ -0,0 +1,77 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2012 - DIGITEO - 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
+ *
+ */
+/*--------------------------------------------------------------------------*/
+#include "elem_func_gw.hxx"
+#include "function.hxx"
+#include "double.hxx"
+#include "overload.hxx"
+#include "execvisitor.hxx"
+
+
+extern "C"
+{
+#include "Scierror.h"
+#include "localization.h"
+#include "elem_common.h"
+#include "log.h"
+}
+
+/*--------------------------------------------------------------------------*/
+types::Function::ReturnValue sci_log1p(types::typed_list &in, int _iRetCount, types::typed_list &out)
+{
+    int iAlert = 1;
+
+    if (in.size() != 1)
+    {
+        ScierrorW(77, _W("%ls: Wrong number of input argument(s): %d to %d expected.\n"), L"log1p", 1);
+        return types::Function::Error;
+    }
+
+    if (_iRetCount > 1)
+    {
+        ScierrorW(78, _W("%ls: Wrong number of output argument(s): %d expected.\n"), L"log1p", 1);