summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorimushir2016-03-02 12:12:02 +0530
committerimushir2016-03-02 12:12:02 +0530
commitf3eef46401cbf9fe4e7f60d5b5648ace5906767c (patch)
treeb67cbe9c22e54645c576122850c0f41b0a1781f0
parentd988049e812ad39c81ec2d96dfd9c7be03aaae9b (diff)
downloadScilab2C-f3eef46401cbf9fe4e7f60d5b5648ace5906767c.tar.gz
Scilab2C-f3eef46401cbf9fe4e7f60d5b5648ace5906767c.tar.bz2
Scilab2C-f3eef46401cbf9fe4e7f60d5b5648ace5906767c.zip
added support of double datatype for logspace
-rw-r--r--2.3-1/includes/sci2clib.h4
-rw-r--r--2.3-1/macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci8
-rw-r--r--2.3-1/macros/findDeps/getAllHeaders.sci1
-rw-r--r--2.3-1/macros/findDeps/getAllInterfaces.sci3
-rw-r--r--2.3-1/macros/findDeps/getAllSources.sci2
-rw-r--r--2.3-1/src/c/elementaryFunctions/includes/logspace.h24
-rw-r--r--2.3-1/src/c/elementaryFunctions/interfaces/int_logspace.h10
-rw-r--r--2.3-1/src/c/elementaryFunctions/logspace/dlogspacea.c40
-rw-r--r--2.3-1/src/c/elementaryFunctions/logspace/dlogspaces.c26
9 files changed, 116 insertions, 2 deletions
diff --git a/2.3-1/includes/sci2clib.h b/2.3-1/includes/sci2clib.h
index 4cbcd003..803bc9fa 100644
--- a/2.3-1/includes/sci2clib.h
+++ b/2.3-1/includes/sci2clib.h
@@ -216,6 +216,10 @@
#include "linspace.h"
#include "int_linspace.h"
+/*interfacing logspace */
+#include "logspace.h"
+#include "int_logspace.h"
+
/* IMPLICIT LISTS */
/* interfacing implicitList/OpColon */
diff --git a/2.3-1/macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci b/2.3-1/macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci
index 2ad8b269..3fd2ae76 100644
--- a/2.3-1/macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci
+++ b/2.3-1/macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci
@@ -1075,7 +1075,7 @@ INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,Ex
// --------------------
-// --- Class linspace. ---
+// --- Class linspace & logspace ---
// --------------------
ClassName = 'linspace';
@@ -1106,6 +1106,11 @@ PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file',
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'logspace'; // BJ : Done AS : Float_Done
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
//---------------------
@@ -4509,6 +4514,7 @@ INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,Ex
//------------------------------------
//---- Class Sleep -------------------
+
//------------------------------------
ClassName = 'sleep';
diff --git a/2.3-1/macros/findDeps/getAllHeaders.sci b/2.3-1/macros/findDeps/getAllHeaders.sci
index 27a67376..f1d31afd 100644
--- a/2.3-1/macros/findDeps/getAllHeaders.sci
+++ b/2.3-1/macros/findDeps/getAllHeaders.sci
@@ -95,6 +95,7 @@ function allHeaders = getAllHeaders(Target)
"src/c/elementaryFunctions/includes/bitset.h"
"src/c/elementaryFunctions/includes/bitget.h"
"src/c/elementaryFunctions/includes/linspace.h"
+ "src/c/elementaryFunctions/includes/logspace.h"
"src/c/elementaryFunctions/includes/asinh.h"
"src/c/elementaryFunctions/includes/atan2.h"
"src/c/elementaryFunctions/includes/atanh.h"
diff --git a/2.3-1/macros/findDeps/getAllInterfaces.sci b/2.3-1/macros/findDeps/getAllInterfaces.sci
index 8b60d7c1..7d904887 100644
--- a/2.3-1/macros/findDeps/getAllInterfaces.sci
+++ b/2.3-1/macros/findDeps/getAllInterfaces.sci
@@ -84,7 +84,8 @@ function allInterfaces = getAllInterfaces(Target)
"src/c/elementaryFunctions/interfaces/int_bitcmp.h"
"src/c/elementaryFunctions/interfaces/int_bitset.h"
"src/c/elementaryFunctions/interfaces/int_bitget.h"
- "src/c/elementaryFunctions/interfaces/int_linspace.h"
+ "src/c/elementaryFunctions/interfaces/int_linspace.h"
+ "src/c/elementaryFunctions/interfaces/int_logspace.h"
"src/c/elementaryFunctions/interfaces/int_cosh.h"
"src/c/elementaryFunctions/interfaces/int_uint8.h"
"src/c/elementaryFunctions/interfaces/int_int8.h"
diff --git a/2.3-1/macros/findDeps/getAllSources.sci b/2.3-1/macros/findDeps/getAllSources.sci
index ab4f9a0e..fddb17fa 100644
--- a/2.3-1/macros/findDeps/getAllSources.sci
+++ b/2.3-1/macros/findDeps/getAllSources.sci
@@ -622,6 +622,8 @@ function allSources = getAllSources(Target)
"src/c/elementaryFunctions/bitget/u16bitgets.c"
"src/c/elementaryFunctions/linspace/dlinspaces.c"
"src/c/elementaryFunctions/linspace/dlinspacea.c"
+ "src/c/elementaryFunctions/logspace/dlogspaces.c"
+ "src/c/elementaryFunctions/logspace/dlogspacea.c"
"src/c/statisticsFunctions/max/dmaxa.c"
"src/c/statisticsFunctions/max/smaxa.c"
"src/c/statisticsFunctions/max/srowmaxa.c"
diff --git a/2.3-1/src/c/elementaryFunctions/includes/logspace.h b/2.3-1/src/c/elementaryFunctions/includes/logspace.h
new file mode 100644
index 00000000..1f73402b
--- /dev/null
+++ b/2.3-1/src/c/elementaryFunctions/includes/logspace.h
@@ -0,0 +1,24 @@
+/*
+SCilab2C FOSSEE IIT Bombay
+ */
+
+#ifndef __LOGSPACE_H__
+#define __LOGSPACE_H__
+
+#include "dynlib_elementaryfunctions.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+EXTERN_ELEMFUNCT void dlogspaces(double low_limit,double up_limit,double range_num, double* out);
+
+EXTERN_ELEMFUNCT void dlogspacea(double *low_limit,int row,double *up_limit,double range_num, double* out);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+
+#endif /* !__LOGSPACE_H__ */
+
diff --git a/2.3-1/src/c/elementaryFunctions/interfaces/int_logspace.h b/2.3-1/src/c/elementaryFunctions/interfaces/int_logspace.h
new file mode 100644
index 00000000..34e325ac
--- /dev/null
+++ b/2.3-1/src/c/elementaryFunctions/interfaces/int_logspace.h
@@ -0,0 +1,10 @@
+/* Scilab2C FOSSEE IITB */
+
+#ifndef __INT_LOGSPACE_H__
+#define __INT_LOGSPACE_H__
+
+#define d0d0d0logspaced2(in1,in2,in3,out) dlogspaces(in1,in2,in3,out)
+
+#define d2d2d0logspaced2(in1,size1,in2,size2,in3,out) dlogspacea(in1,size1[0],in2,in3,out)
+
+#endif
diff --git a/2.3-1/src/c/elementaryFunctions/logspace/dlogspacea.c b/2.3-1/src/c/elementaryFunctions/logspace/dlogspacea.c
new file mode 100644
index 00000000..f8b283c6
--- /dev/null
+++ b/2.3-1/src/c/elementaryFunctions/logspace/dlogspacea.c
@@ -0,0 +1,40 @@
+/*
+ Scilab2C FOSSEE IIT Bombay
+ */
+
+#include "logspace.h"
+#include<math.h>
+void dlogspacea(double *low_limit,int _row,double *up_limit,double range_num,double *out)
+{
+ int i,j,k;
+ double temp;
+ double step_iterate[_row]; // for each row the spacing between two values is different.
+ for(i=0;i<_row;i++)
+ {
+ step_iterate[i] = pow(10,((up_limit[i]-low_limit[i])/(range_num-1)));
+
+
+ }
+ for(j=0;j < _row;j++)
+ {
+ out[j] = pow(10,low_limit[j]); // For every row first element is equal to 10 raise to the first value of low_limit array
+ temp = out[j];
+ for(k=1;k < (double)range_num;k++ )
+ {
+ out[(_row*k)+j] = temp*step_iterate[j]; /* Output matrix positions for 3 X 5 matrix are [0 3 6 9 12;1 4 7 10 13;2 5 8 11 14] so (_row*k)+j) used*/
+ temp = out[(_row*k)+j];
+ if(k == (double)range_num-1 )
+ {
+ out[(_row*k)+j] = pow(10,((double)up_limit[j])); // For every row Last value of output is equal to 10 raise to first value of up_limit array
+ }
+
+ }
+
+
+ }
+
+
+
+
+}
+
diff --git a/2.3-1/src/c/elementaryFunctions/logspace/dlogspaces.c b/2.3-1/src/c/elementaryFunctions/logspace/dlogspaces.c
new file mode 100644
index 00000000..7970321b
--- /dev/null
+++ b/2.3-1/src/c/elementaryFunctions/logspace/dlogspaces.c
@@ -0,0 +1,26 @@
+/*
+ Scilab2C FOSSEE IIT Bombay
+ */
+
+#include "logspace.h"
+#include<math.h>
+void dlogspaces(double low_limit,double up_limit,double range_num,double *out)
+{
+ int j;
+ double temp = pow(10,low_limit);
+ double step_iterate = pow(10,((up_limit-low_limit)/(range_num-1)));
+ out[0] = pow(10,low_limit); //First value of output is equal to low_limit value
+ for(j=1; j<(double)range_num; j++)
+ {
+ out[j] = temp*step_iterate;
+ temp = out[j];
+ if(j == (double)range_num-1 )
+ {
+ out[j] = pow(10,((double)up_limit)); // Last value of output is equal to up_limit value
+ }
+ }
+
+
+
+}
+