summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrijeshcr2017-08-18 16:34:37 +0530
committerBrijeshcr2017-08-18 16:34:37 +0530
commit3aa26bd48e9d42e4f97fcafee4c761f36ea766bc (patch)
treee14e5e271ae83f02dbd834b290660303dc2a59bf
parenta210606cd1e59d66c621b0444d6c14927c71b381 (diff)
parent5b728d8239b1a1f4467e2485d54c7ed7db1d4f11 (diff)
downloadScilab2C_fossee_old-3aa26bd48e9d42e4f97fcafee4c761f36ea766bc.tar.gz
Scilab2C_fossee_old-3aa26bd48e9d42e4f97fcafee4c761f36ea766bc.tar.bz2
Scilab2C_fossee_old-3aa26bd48e9d42e4f97fcafee4c761f36ea766bc.zip
Added Log2 and Scaling
-rw-r--r--demos/Abhinav_Demos/test_gsort.sci81
-rw-r--r--demos/Abhinav_Demos/test_pertrans.sci31
-rw-r--r--demos/Abhinav_Demos/test_rank.sci20
-rw-r--r--includes/sci2clib.h9
-rw-r--r--jar/scilab_en_US_help.jarbin11210 -> 20554 bytes
-rw-r--r--macros/ASTManagement/libbin2008 -> 0 bytes
-rw-r--r--macros/CCodeGeneration/libbin1056 -> 0 bytes
-rw-r--r--macros/ErrorMessages/libbin520 -> 0 bytes
-rw-r--r--macros/FunctionAnnotation/libbin2412 -> 0 bytes
-rw-r--r--macros/FunctionList/libbin588 -> 0 bytes
-rw-r--r--macros/GeneralFunctions/libbin1132 -> 0 bytes
-rw-r--r--macros/Hardware/AVR/libbin972 -> 0 bytes
-rw-r--r--macros/Hardware/RasberryPi/Digital/libbin600 -> 0 bytes
-rw-r--r--macros/Hardware/RasberryPi/I2C/libbin704 -> 0 bytes
-rw-r--r--macros/Hardware/RasberryPi/Interrupt/libbin536 -> 0 bytes
-rw-r--r--macros/Hardware/RasberryPi/Misc/libbin564 -> 0 bytes
-rw-r--r--macros/Hardware/RasberryPi/SPI/libbin584 -> 0 bytes
-rw-r--r--macros/Hardware/RasberryPi/Serial/libbin692 -> 0 bytes
-rw-r--r--macros/Hardware/RasberryPi/Setup/libbin616 -> 0 bytes
-rw-r--r--macros/Hardware/RasberryPi/Shift/libbin568 -> 0 bytes
-rw-r--r--macros/Hardware/RasberryPi/Soft/libbin636 -> 0 bytes
-rw-r--r--macros/Hardware/RasberryPi/Timing/libbin596 -> 0 bytes
-rw-r--r--macros/Hardware/RasberryPi/gertBoard/libbin656 -> 0 bytes
-rw-r--r--macros/Hardware/RasberryPi/lcd/libbin776 -> 0 bytes
-rw-r--r--macros/Hardware/RasberryPi/lcd128x64/libbin800 -> 0 bytes
-rw-r--r--macros/Hardware/RasberryPi/libbin592 -> 0 bytes
-rw-r--r--macros/Hardware/RasberryPi/mcp/libbin608 -> 0 bytes
-rw-r--r--macros/Hardware/RasberryPi/pcf/libbin536 -> 0 bytes
-rw-r--r--macros/Hardware/RasberryPi/piGlow/libbin596 -> 0 bytes
-rw-r--r--macros/Hardware/RasberryPi/pinMap/libbin548 -> 0 bytes
-rw-r--r--macros/Hardware/RasberryPi/pwm/libbin608 -> 0 bytes
-rw-r--r--macros/ImageProcessing/core/libbin524 -> 0 bytes
-rw-r--r--macros/ImageProcessing/highgui/libbin584 -> 0 bytes
-rw-r--r--macros/ImageProcessing/imgproc/libbin752 -> 0 bytes
-rw-r--r--macros/Scilab-Arduino/libbin716 -> 0 bytes
-rw-r--r--macros/SymbolTable/libbin752 -> 0 bytes
-rw-r--r--macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci112
-rw-r--r--macros/ToolInitialization/libbin804 -> 0 bytes
-rw-r--r--macros/findDeps/getAllHeaders.sci3
-rw-r--r--macros/findDeps/getAllInterfaces.sci3
-rw-r--r--macros/findDeps/getAllSources.sci21
-rw-r--r--macros/findDeps/libbin620 -> 0 bytes
-rw-r--r--macros/libbin536 -> 0 bytes
-rw-r--r--src/c/linearAlgebra/includes/rank.h29
-rw-r--r--src/c/linearAlgebra/interfaces/int_rank.h28
-rw-r--r--src/c/linearAlgebra/rank/dranka.c34
-rw-r--r--src/c/linearAlgebra/rank/zranka.c82
-rw-r--r--src/c/matrixOperations/includes/pertrans.h38
-rw-r--r--src/c/matrixOperations/interfaces/int_pertrans.h34
-rw-r--r--src/c/matrixOperations/pertrans/dpertransa.c36
-rw-r--r--src/c/matrixOperations/pertrans/dpertranss.c23
-rw-r--r--src/c/matrixOperations/pertrans/spertransa.c36
-rw-r--r--src/c/matrixOperations/pertrans/spertranss.c23
-rw-r--r--src/c/matrixOperations/pertrans/zpertransa.c37
-rw-r--r--src/c/matrixOperations/pertrans/zpertranss.c24
-rw-r--r--src/c/signalProcessing/hank/dhanka.c6
-rw-r--r--src/c/statisticsFunctions/gsort/dgsorta.c94
-rw-r--r--src/c/statisticsFunctions/gsort/dgsortcola.c44
-rw-r--r--src/c/statisticsFunctions/gsort/dgsortrowa.c42
-rw-r--r--src/c/statisticsFunctions/gsort/sgsorta.c94
-rw-r--r--src/c/statisticsFunctions/gsort/sgsortcola.c42
-rw-r--r--src/c/statisticsFunctions/gsort/sgsortrowa.c42
-rw-r--r--src/c/statisticsFunctions/gsort/u16gsorta.c94
-rw-r--r--src/c/statisticsFunctions/gsort/u16gsortcola.c42
-rw-r--r--src/c/statisticsFunctions/gsort/u16gsortrowa.c42
-rw-r--r--src/c/statisticsFunctions/gsort/zgsorta.c96
-rw-r--r--src/c/statisticsFunctions/gsort/zgsortcola.c43
-rw-r--r--src/c/statisticsFunctions/gsort/zgsortrowa.c42
-rw-r--r--src/c/statisticsFunctions/includes/gsort.h46
-rw-r--r--src/c/statisticsFunctions/interfaces/int_gsort.h43
-rw-r--r--src/c/statisticsFunctions/median/dmediana.c16
-rw-r--r--src/c/statisticsFunctions/median/smediana.c16
-rw-r--r--src/c/statisticsFunctions/median/u16mediana.c16
-rw-r--r--src/c/statisticsFunctions/median/zmediana.c16
74 files changed, 1551 insertions, 29 deletions
diff --git a/demos/Abhinav_Demos/test_gsort.sci b/demos/Abhinav_Demos/test_gsort.sci
new file mode 100644
index 0000000..bd51c69
--- /dev/null
+++ b/demos/Abhinav_Demos/test_gsort.sci
@@ -0,0 +1,81 @@
+// Test file for "Column" function for the data types double, float, double complex, string , uint16.
+// All the below statements are added to initialize variables in different data types
+//The function written doesn't work for string or character scalar as of now.
+
+
+function test_gsort()
+ seq= [1 21 4; 10 5 98; 3.21 8.921 1000]
+ disp(seq)
+ disp('')
+ a= gsort(seq);
+ b= gsort(seq, 'r');
+ c= gsort(seq, 'c');
+ d= gsort(seq, 'r', 'i');
+ e= gsort(seq, 'c', 'd');
+ disp('Double')
+ disp(a)
+ disp('')
+ disp(b)
+ disp('')
+ disp(c)
+ disp('')
+ disp(d)
+ disp('')
+ disp(e)
+ disp('')
+ seq1= float(seq);
+ disp('')
+ f= gsort(seq1);
+ g= gsort(seq1, 'r');
+ h= gsort(seq1, 'c');
+ i= gsort(seq1, 'r', 'i');
+ j= gsort(seq1, 'c', 'd');
+ disp('Float')
+ disp(f)
+ disp('')
+ disp(g)
+ disp('')
+ disp(h)
+ disp('')
+ disp(i)
+ disp('')
+ disp(j)
+ disp('')
+ seq2= uint16(seq);
+ disp('')
+ k= gsort(seq2);
+ l= gsort(seq2, 'r');
+ m= gsort(seq2, 'c');
+ n= gsort(seq2, 'r', 'i');
+ o= gsort(seq2, 'c', 'd');
+ disp('Uint16')
+ disp(k)
+ disp('')
+ disp(l)
+ disp('')
+ disp(m)
+ disp('')
+ disp(n)
+ disp('')
+ disp(o)
+ disp('')
+ seq3= [%i*21, 65+%i*7, %i*121, 56; %i*6112, 12 ,3, 0]
+ disp('')
+ p= gsort(seq3);
+ q= gsort(seq3, 'r');
+ r1= gsort(seq3, 'c');
+ s= gsort(seq3, 'r', 'i');
+ t= gsort(seq3, 'c', 'd');
+ disp('Double Complex')
+ disp(p)
+ disp('')
+ disp(q)
+ disp('')
+ disp(r1)
+ disp('')
+ disp(s)
+ disp('')
+ disp(t)
+ disp('')
+
+endfunction
diff --git a/demos/Abhinav_Demos/test_pertrans.sci b/demos/Abhinav_Demos/test_pertrans.sci
new file mode 100644
index 0000000..a84f725
--- /dev/null
+++ b/demos/Abhinav_Demos/test_pertrans.sci
@@ -0,0 +1,31 @@
+// Test file for "Column" function for the data types double, float, double complex, string , uint16.
+// All the below statements are added to initialize variables in different data types
+//The function written doesn't work for string or character scalar as of now.
+
+
+function test_pertrans()
+ a= [1 2 3; 4 5 6; 7 8 9]
+ b= pertrans(a)
+ disp('Double')
+ disp(b)
+ disp('')
+ disp(pertrans(6))
+ disp('')
+ c= float(a)
+ d=pertrans(c)
+ e= float(2)
+ disp('Float')
+ disp(d)
+ disp('')
+ disp(pertrans(e))
+ disp('')
+ f=[%i*121+12; 4+%i*7;1]
+ g= pertrans(f)
+ disp('Double Complex')
+ disp(g)
+ disp('')
+ disp(pertrans(%i*8712+12))
+ disp('')
+
+
+endfunction
diff --git a/demos/Abhinav_Demos/test_rank.sci b/demos/Abhinav_Demos/test_rank.sci
new file mode 100644
index 0000000..95f4a7d
--- /dev/null
+++ b/demos/Abhinav_Demos/test_rank.sci
@@ -0,0 +1,20 @@
+// Test file for "Column" function for the data types double, float, double complex, string , uint16.
+// All the below statements are added to initialize variables in different data types
+//The function written doesn't work for string or character scalar as of now.
+
+
+function test_rank()
+ disp(" ** RANK ** ")
+ disp('Double')
+ A = [1,2,3,11;4,5,0.1,2.12;7,0,0,16.11] // Matrix - A
+ s = rank(A) // Calling Function Sequence
+ disp(s)
+ disp('')
+
+ disp('Double Complex')
+ B= [%i*12, 12 , 12; 98*%i , 24*%i, 0; 12, %i*12, 0];
+ t= rank(B)
+ disp(t)
+ disp('')
+
+endfunction
diff --git a/includes/sci2clib.h b/includes/sci2clib.h
index 06b8e4a..0597e63 100644
--- a/includes/sci2clib.h
+++ b/includes/sci2clib.h
@@ -529,6 +529,9 @@ extern "C" {
/*interfacing nnz*/
#include "int_nnz.h"
#include "nnz.h"
+/*interfacing pertrans*/
+#include "int_pertrans.h"
+#include "pertrans.h"
/*interfacing cumprod*/
#include "int_cumprod.h"
#include "cumprod.h"
@@ -672,6 +675,9 @@ extern "C" {
/* interfacing median */
#include "median.h"
#include "int_median.h"
+/* interfacing gsort */
+#include "gsort.h"
+#include "int_gsort.h"
/* interfacing moment */
#include "moment.h"
#include "int_moment.h"
@@ -804,6 +810,9 @@ extern "C" {
#include "svd.h" /*Linear Alegbra - Singular value decompostion */
#include "int_svd.h"
+#include "rank.h" /*Linear Alegbra - Rank Using Singular value decompostion */
+#include "int_rank.h"
+
#include "rcond.h"
#include "int_rcond.h"
diff --git a/jar/scilab_en_US_help.jar b/jar/scilab_en_US_help.jar
index 63e3362..7abb680 100644
--- a/jar/scilab_en_US_help.jar
+++ b/jar/scilab_en_US_help.jar
Binary files differ
diff --git a/macros/ASTManagement/lib b/macros/ASTManagement/lib
deleted file mode 100644
index dee4362..0000000
--- a/macros/ASTManagement/lib
+++ /dev/null
Binary files differ
diff --git a/macros/CCodeGeneration/lib b/macros/CCodeGeneration/lib
deleted file mode 100644
index 3d4fed1..0000000
--- a/macros/CCodeGeneration/lib
+++ /dev/null
Binary files differ
diff --git a/macros/ErrorMessages/lib b/macros/ErrorMessages/lib
deleted file mode 100644
index ba3b9a5..0000000
--- a/macros/ErrorMessages/lib
+++ /dev/null
Binary files differ
diff --git a/macros/FunctionAnnotation/lib b/macros/FunctionAnnotation/lib
deleted file mode 100644
index 239105c..0000000
--- a/macros/FunctionAnnotation/lib
+++ /dev/null
Binary files differ
diff --git a/macros/FunctionList/lib b/macros/FunctionList/lib
deleted file mode 100644
index 1c722dd..0000000
--- a/macros/FunctionList/lib
+++ /dev/null
Binary files differ
diff --git a/macros/GeneralFunctions/lib b/macros/GeneralFunctions/lib
deleted file mode 100644
index 7586a91..0000000
--- a/macros/GeneralFunctions/lib
+++ /dev/null
Binary files differ
diff --git a/macros/Hardware/AVR/lib b/macros/Hardware/AVR/lib
deleted file mode 100644
index ed4c52b..0000000
--- a/macros/Hardware/AVR/lib
+++ /dev/null
Binary files differ
diff --git a/macros/Hardware/RasberryPi/Digital/lib b/macros/Hardware/RasberryPi/Digital/lib
deleted file mode 100644
index ba42ba7..0000000
--- a/macros/Hardware/RasberryPi/Digital/lib
+++ /dev/null
Binary files differ
diff --git a/macros/Hardware/RasberryPi/I2C/lib b/macros/Hardware/RasberryPi/I2C/lib
deleted file mode 100644
index 561476c..0000000
--- a/macros/Hardware/RasberryPi/I2C/lib
+++ /dev/null
Binary files differ
diff --git a/macros/Hardware/RasberryPi/Interrupt/lib b/macros/Hardware/RasberryPi/Interrupt/lib
deleted file mode 100644
index 97a61ac..0000000
--- a/macros/Hardware/RasberryPi/Interrupt/lib
+++ /dev/null
Binary files differ
diff --git a/macros/Hardware/RasberryPi/Misc/lib b/macros/Hardware/RasberryPi/Misc/lib
deleted file mode 100644
index c718615..0000000
--- a/macros/Hardware/RasberryPi/Misc/lib
+++ /dev/null
Binary files differ
diff --git a/macros/Hardware/RasberryPi/SPI/lib b/macros/Hardware/RasberryPi/SPI/lib
deleted file mode 100644
index a16d474..0000000
--- a/macros/Hardware/RasberryPi/SPI/lib
+++ /dev/null
Binary files differ
diff --git a/macros/Hardware/RasberryPi/Serial/lib b/macros/Hardware/RasberryPi/Serial/lib
deleted file mode 100644
index a007f00..0000000
--- a/macros/Hardware/RasberryPi/Serial/lib
+++ /dev/null
Binary files differ
diff --git a/macros/Hardware/RasberryPi/Setup/lib b/macros/Hardware/RasberryPi/Setup/lib
deleted file mode 100644
index 83655c9..0000000
--- a/macros/Hardware/RasberryPi/Setup/lib
+++ /dev/null
Binary files differ
diff --git a/macros/Hardware/RasberryPi/Shift/lib b/macros/Hardware/RasberryPi/Shift/lib
deleted file mode 100644
index 2b12025..0000000
--- a/macros/Hardware/RasberryPi/Shift/lib
+++ /dev/null
Binary files differ
diff --git a/macros/Hardware/RasberryPi/Soft/lib b/macros/Hardware/RasberryPi/Soft/lib
deleted file mode 100644
index 09ecede..0000000
--- a/macros/Hardware/RasberryPi/Soft/lib
+++ /dev/null
Binary files differ
diff --git a/macros/Hardware/RasberryPi/Timing/lib b/macros/Hardware/RasberryPi/Timing/lib
deleted file mode 100644
index d271c90..0000000
--- a/macros/Hardware/RasberryPi/Timing/lib
+++ /dev/null
Binary files differ
diff --git a/macros/Hardware/RasberryPi/gertBoard/lib b/macros/Hardware/RasberryPi/gertBoard/lib
deleted file mode 100644
index e8db080..0000000
--- a/macros/Hardware/RasberryPi/gertBoard/lib
+++ /dev/null
Binary files differ
diff --git a/macros/Hardware/RasberryPi/lcd/lib b/macros/Hardware/RasberryPi/lcd/lib
deleted file mode 100644
index c2b693f..0000000
--- a/macros/Hardware/RasberryPi/lcd/lib
+++ /dev/null
Binary files differ
diff --git a/macros/Hardware/RasberryPi/lcd128x64/lib b/macros/Hardware/RasberryPi/lcd128x64/lib
deleted file mode 100644
index 94dfda8..0000000
--- a/macros/Hardware/RasberryPi/lcd128x64/lib
+++ /dev/null
Binary files differ
diff --git a/macros/Hardware/RasberryPi/lib b/macros/Hardware/RasberryPi/lib
deleted file mode 100644
index 49ed811..0000000
--- a/macros/Hardware/RasberryPi/lib
+++ /dev/null
Binary files differ
diff --git a/macros/Hardware/RasberryPi/mcp/lib b/macros/Hardware/RasberryPi/mcp/lib
deleted file mode 100644
index d411aad..0000000
--- a/macros/Hardware/RasberryPi/mcp/lib
+++ /dev/null
Binary files differ
diff --git a/macros/Hardware/RasberryPi/pcf/lib b/macros/Hardware/RasberryPi/pcf/lib
deleted file mode 100644
index da6a8da..0000000
--- a/macros/Hardware/RasberryPi/pcf/lib
+++ /dev/null
Binary files differ
diff --git a/macros/Hardware/RasberryPi/piGlow/lib b/macros/Hardware/RasberryPi/piGlow/lib
deleted file mode 100644
index 3f30f85..0000000
--- a/macros/Hardware/RasberryPi/piGlow/lib
+++ /dev/null
Binary files differ
diff --git a/macros/Hardware/RasberryPi/pinMap/lib b/macros/Hardware/RasberryPi/pinMap/lib
deleted file mode 100644
index 133363e..0000000
--- a/macros/Hardware/RasberryPi/pinMap/lib
+++ /dev/null
Binary files differ
diff --git a/macros/Hardware/RasberryPi/pwm/lib b/macros/Hardware/RasberryPi/pwm/lib
deleted file mode 100644
index 8711baf..0000000
--- a/macros/Hardware/RasberryPi/pwm/lib
+++ /dev/null
Binary files differ
diff --git a/macros/ImageProcessing/core/lib b/macros/ImageProcessing/core/lib
deleted file mode 100644
index 40b7b0a..0000000
--- a/macros/ImageProcessing/core/lib
+++ /dev/null
Binary files differ
diff --git a/macros/ImageProcessing/highgui/lib b/macros/ImageProcessing/highgui/lib
deleted file mode 100644
index 0d7f88a..0000000
--- a/macros/ImageProcessing/highgui/lib
+++ /dev/null
Binary files differ
diff --git a/macros/ImageProcessing/imgproc/lib b/macros/ImageProcessing/imgproc/lib
deleted file mode 100644
index 63b5e7e..0000000
--- a/macros/ImageProcessing/imgproc/lib
+++ /dev/null
Binary files differ
diff --git a/macros/Scilab-Arduino/lib b/macros/Scilab-Arduino/lib
deleted file mode 100644
index a62fd4e..0000000
--- a/macros/Scilab-Arduino/lib
+++ /dev/null
Binary files differ
diff --git a/macros/SymbolTable/lib b/macros/SymbolTable/lib
deleted file mode 100644
index 4379c83..0000000
--- a/macros/SymbolTable/lib
+++ /dev/null
Binary files differ
diff --git a/macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci b/macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci
index 3e63403..59ad956 100644
--- a/macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci
+++ b/macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci
@@ -2557,6 +2557,57 @@ PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file',
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+// --------------------
+// --- Class Gsort. ---
+// --------------------
+ClassName = 'Gsort';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y');
+
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y');
+
+PrintStringInfo('NIN= 3',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y');
+
+
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('d2g2'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('d2g2g2'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('s2g2'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('s2g2g2'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('u162'+ArgSeparator+'u162',ClassFileName,'file','y');
+PrintStringInfo('u162g2'+ArgSeparator+'u162',ClassFileName,'file','y');
+PrintStringInfo('u162g2g2'+ArgSeparator+'u162',ClassFileName,'file','y');
+PrintStringInfo('z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('z2g2'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('z2g2g2'+ArgSeparator+'z2',ClassFileName,'file','y');
+
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'gsort'; // 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);
+
// ------------------------
// --- Class OpDotStar. ---
// ------------------------
@@ -7979,6 +8030,39 @@ PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file',
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+//------------------------------------
+//---- Class PERTRANS---------------------
+//------------------------------------
+ClassName = 'PERTRANS';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+
+//Arguements specified: initial value, start time, time vector, ode function
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(2)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= IN(1).SZ(1)',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('z0'+ArgSeparator+'z0',ClassFileName,'file','y');
+PrintStringInfo('z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'pertrans';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
//------------------------------------
//---- Class TRIU ---------------------
//------------------------------------
@@ -9553,6 +9637,34 @@ INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,Ex
//------------------------------------
+//---- Class RANK ---------------------
+//------------------------------------
+ClassName = 'RANK';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('d2'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('z2'+ArgSeparator+'z0',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'rank';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+
+
+//------------------------------------
//---- Class SVA ---------------------
//------------------------------------
ClassName = 'SVA';
diff --git a/macros/ToolInitialization/lib b/macros/ToolInitialization/lib
deleted file mode 100644
index 670a52e..0000000
--- a/macros/ToolInitialization/lib
+++ /dev/null
Binary files differ
diff --git a/macros/findDeps/getAllHeaders.sci b/macros/findDeps/getAllHeaders.sci
index aba0ec0..6ffc9aa 100644
--- a/macros/findDeps/getAllHeaders.sci
+++ b/macros/findDeps/getAllHeaders.sci
@@ -67,6 +67,7 @@ function allHeaders = getAllHeaders(SharedInfo)
"src/c/matrixOperations/includes/cumsum.h"
"src/c/matrixOperations/includes/matrix.h"
"src/c/matrixOperations/includes/nnz.h"
+ "src/c/matrixOperations/includes/pertrans.h"
"src/c/matrixOperations/includes/cumprod.h"
"src/c/matrixOperations/includes/triu.h"
"src/c/matrixOperations/includes/tril.h"
@@ -157,6 +158,7 @@ function allHeaders = getAllHeaders(SharedInfo)
"src/c/statisticsFunctions/includes/mean.h"
"src/c/statisticsFunctions/includes/median.h"
"src/c/statisticsFunctions/includes/nanmedian.h"
+ "src/c/statisticsFunctions/includes/gsort.h"
"src/c/statisticsFunctions/includes/nanstdev.h"
"src/c/statisticsFunctions/includes/mad.h"
"src/c/statisticsFunctions/includes/meanf.h"
@@ -266,6 +268,7 @@ function allHeaders = getAllHeaders(SharedInfo)
"src/c/linearAlgebra/includes/balanc.h"
"src/c/linearAlgebra/includes/svd.h"
"src/c/linearAlgebra/includes/lu.h"
+ "src/c/linearAlgebra/includes/rank.h"
"src/c/linearAlgebra/includes/hess.h"
"src/c/linearAlgebra/includes/sva.h"
"src/c/linearAlgebra/includes/sqroot.h"
diff --git a/macros/findDeps/getAllInterfaces.sci b/macros/findDeps/getAllInterfaces.sci
index f57f33b..633365c 100644
--- a/macros/findDeps/getAllInterfaces.sci
+++ b/macros/findDeps/getAllInterfaces.sci
@@ -55,6 +55,7 @@ function allInterfaces = getAllInterfaces(SharedInfo)
"src/c/matrixOperations/interfaces/int_cumsum.h"
"src/c/matrixOperations/interfaces/int_matrix.h"
"src/c/matrixOperations/interfaces/int_nnz.h"
+ "src/c/matrixOperations/interfaces/int_pertrans.h"
"src/c/matrixOperations/interfaces/int_cumprod.h"
"src/c/matrixOperations/interfaces/int_triu.h"
"src/c/matrixOperations/interfaces/int_tril.h"
@@ -146,6 +147,7 @@ function allInterfaces = getAllInterfaces(SharedInfo)
"src/c/statisticsFunctions/interfaces/int_mean.h"
"src/c/statisticsFunctions/interfaces/int_median.h"
"src/c/statisticsFunctions/interfaces/int_nanmedian.h"
+ "src/c/statisticsFunctions/interfaces/int_gsort.h"
"src/c/statisticsFunctions/interfaces/int_nanstdev.h"
"src/c/statisticsFunctions/interfaces/int_mad.h"
"src/c/statisticsFunctions/interfaces/int_meanf.h"
@@ -262,6 +264,7 @@ function allInterfaces = getAllInterfaces(SharedInfo)
"src/c/linearAlgebra/interfaces/int_balanc.h"
"src/c/linearAlgebra/interfaces/int_svd.h"
"src/c/linearAlgebra/interfaces/int_lu.h"
+ "src/c/linearAlgebra/interfaces/int_rank.h"
"src/c/linearAlgebra/interfaces/int_sqroot.h"
"src/c/linearAlgebra/interfaces/int_hess.h"
"src/c/linearAlgebra/interfaces/int_sva.h"
diff --git a/macros/findDeps/getAllSources.sci b/macros/findDeps/getAllSources.sci
index effb893..64f57fb 100644
--- a/macros/findDeps/getAllSources.sci
+++ b/macros/findDeps/getAllSources.sci
@@ -314,6 +314,13 @@ function allSources = getAllSources(SharedInfo,BuildTool)
"src/c/matrixOperations/nnz/snnzs.c"
"src/c/matrixOperations/nnz/znnza.c"
"src/c/matrixOperations/nnz/znnzs.c"
+ "src/c/matrixOperations/pertrans/dpertransa.c"
+ "src/c/matrixOperations/pertrans/dpertranss.c"
+ "src/c/matrixOperations/pertrans/spertransa.c"
+ "src/c/matrixOperations/pertrans/spertranss.c"
+ "src/c/matrixOperations/pertrans/zpertransa.c"
+ "src/c/matrixOperations/pertrans/zpertranss.c"
+ //"src/c/matrixOperations/nnz/znnzs.c"
"src/c/matrixOperations/triu/dtriua.c"
"src/c/matrixOperations/triu/striua.c"
"src/c/matrixOperations/triu/u8triua.c"
@@ -1034,6 +1041,18 @@ function allSources = getAllSources(SharedInfo,BuildTool)
"src/c/statisticsFunctions/nanmedian/znanmediana.c"
"src/c/statisticsFunctions/nanmedian/znanmediancola.c"
"src/c/statisticsFunctions/nanmedian/znanmedianrowa.c"
+ "src/c/statisticsFunctions/gsort/dgsorta.c"
+ "src/c/statisticsFunctions/gsort/dgsortrowa.c"
+ "src/c/statisticsFunctions/gsort/dgsortcola.c"
+ "src/c/statisticsFunctions/gsort/sgsorta.c"
+ "src/c/statisticsFunctions/gsort/sgsortrowa.c"
+ "src/c/statisticsFunctions/gsort/sgsortcola.c"
+ "src/c/statisticsFunctions/gsort/u16gsorta.c"
+ "src/c/statisticsFunctions/gsort/u16gsortcola.c"
+ "src/c/statisticsFunctions/gsort/u16gsortrowa.c"
+ "src/c/statisticsFunctions/gsort/zgsorta.c"
+ "src/c/statisticsFunctions/gsort/zgsortcola.c"
+ "src/c/statisticsFunctions/gsort/zgsortrowa.c"
"src/c/statisticsFunctions/nanstdev/dnanstdeva.c"
"src/c/statisticsFunctions/nanstdev/dnanstdevrowa.c"
"src/c/statisticsFunctions/nanstdev/dnanstdevcola.c"
@@ -1552,6 +1571,8 @@ function allSources = getAllSources(SharedInfo,BuildTool)
"src/c/linearAlgebra/svd/dsvda.c"
"src/c/linearAlgebra/lu/dlua.c"
"src/c/linearAlgebra/svd/zsvda.c"
+ "src/c/linearAlgebra/rank/dranka.c"
+ "src/c/linearAlgebra/rank/zranka.c"
"src/c/linearAlgebra/sqroot/dsqroota.c"
"src/c/linearAlgebra/hess/dhessa.c"
"src/c/linearAlgebra/givens/dgivensa.c"
diff --git a/macros/findDeps/lib b/macros/findDeps/lib
deleted file mode 100644
index afcd3ca..0000000
--- a/macros/findDeps/lib
+++ /dev/null
Binary files differ
diff --git a/macros/lib b/macros/lib
deleted file mode 100644
index 551263e..0000000
--- a/macros/lib
+++ /dev/null
Binary files differ
diff --git a/src/c/linearAlgebra/includes/rank.h b/src/c/linearAlgebra/includes/rank.h
new file mode 100644
index 0000000..0a21b4f
--- /dev/null
+++ b/src/c/linearAlgebra/includes/rank.h
@@ -0,0 +1,29 @@
+ /* Copyright (C) 2017 - IIT Bombay - FOSSEE
+
+ This file must be used under the terms of the CeCILL.
+ This source file is licensed as described in the file COPYING, 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
+ Author: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __RANK_H__
+#define __RANK_H__
+#include "types.h"
+#include "doubleComplex.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+double dranka(double* in1, int rows, int cols);
+
+doubleComplex zranka(doubleComplex* in1, int rows, int cols);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__RANK_H__*/
diff --git a/src/c/linearAlgebra/interfaces/int_rank.h b/src/c/linearAlgebra/interfaces/int_rank.h
new file mode 100644
index 0000000..5c04e71
--- /dev/null
+++ b/src/c/linearAlgebra/interfaces/int_rank.h
@@ -0,0 +1,28 @@
+ /* Copyright (C) 2017 - IIT Bombay - FOSSEE
+
+ This file must be used under the terms of the CeCILL.
+ This source file is licensed as described in the file COPYING, 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
+ Author: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __INT_RANK_H__
+#define __INT_RANK_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define d2rankd0(in1,size1) dranka(in1, size1[0], size1[1])
+
+#define z2rankz0(in1,size1) zranka(in1, size1[0], size1[1])
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__INT_RANK_H__*/
diff --git a/src/c/linearAlgebra/rank/dranka.c b/src/c/linearAlgebra/rank/dranka.c
new file mode 100644
index 0000000..ebfb5a8
--- /dev/null
+++ b/src/c/linearAlgebra/rank/dranka.c
@@ -0,0 +1,34 @@
+/* Copyright (C) 2017 - IIT Bombay - FOSSEE
+
+ This file must be used under the terms of the CeCILL.
+ This source file is licensed as described in the file COPYING, 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
+ Author: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+/*Funtion to find inverse condition number of square matrix*/
+
+#include "lapack.h"
+#include "stdlib.h"
+#include "string.h"
+#include "rank.h"
+#include "svd.h"
+
+double dranka(double* in1, int rows, int cols)
+{
+ double out1[rows*rows];
+ double out2[rows*cols];
+ double out3[cols*cols];
+ double rk;
+
+
+ rk = dsvda(0,in1,rows,cols, 0, 4, out1, out2, out3);
+
+
+ return rk;
+
+}
diff --git a/src/c/linearAlgebra/rank/zranka.c b/src/c/linearAlgebra/rank/zranka.c
new file mode 100644
index 0000000..0efad25
--- /dev/null
+++ b/src/c/linearAlgebra/rank/zranka.c
@@ -0,0 +1,82 @@
+/* Copyright (C) 2017 - IIT Bombay - FOSSEE
+
+ This file must be used under the terms of the CeCILL.
+ This source file is licensed as described in the file COPYING, 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
+ Author: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+/*Funtion to find inverse condition number of square matrix*/
+
+#include "lapack.h"
+#include "stdlib.h"
+#include "stdio.h"
+#include "string.h"
+#include "rank.h"
+#include "svd.h"
+#include "doubleComplex.h"
+#include "addition.h"
+
+#define eps 2.22044604925e-16
+
+doubleComplex zranka(doubleComplex* in1, int rows, int cols)
+{
+ doubleComplex out1[rows*rows];
+ doubleComplex out2[rows*cols];
+ doubleComplex out3[cols*cols];
+ doubleComplex rk=0;
+
+
+ zsvda(in1,rows,cols, 0, 3, out1, out2, out3);
+
+double tol = (double)max(rows,cols)*eps*zreals(out2[0]) ;
+
+/*
+for(int i=0; i< rows*rows; i++)
+ printf("%lf + i*%lf \t", zreals(out1[i]), zimags(out1[i]));
+printf("\n");
+
+for(int i=0; i< rows*cols; i++)
+ printf("%lf + i*%lf \t", zreals(out2[i]), zimags(out2[i]));
+printf("\n");
+
+for(int i=0; i< cols*cols; i++)
+ printf("%lf + i*%lf \t", zreals(out3[i]), zimags(out3[i]));
+printf("\n");
+
+*/
+
+if(rows<cols)
+{
+ for(int i=0;i< rows;i++)
+ {
+ if( zreals(out2[i+i*rows]) > tol)
+ {
+ rk = zadds(rk,1);
+ }
+ }
+
+}
+
+else
+{
+
+ for(int i=0;i< cols;i++)
+ {
+ if( zreals(out2[i+i*rows]) > tol)
+ {
+ rk = zadds(rk,1);
+ }
+ }
+
+
+
+}
+
+ return rk;
+
+}
diff --git a/src/c/matrixOperations/includes/pertrans.h b/src/c/matrixOperations/includes/pertrans.h
new file mode 100644
index 0000000..2c385ac
--- /dev/null
+++ b/src/c/matrixOperations/includes/pertrans.h
@@ -0,0 +1,38 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ This file must be used under the terms of the CeCILL.
+ This source file is licensed as described in the file COPYING, 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
+ Author: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+#ifndef __PERTRANS_H__
+#define __PERTRANS_H__
+
+#include "types.h"
+#include "doubleComplex.h"
+#include "uint16.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void dpertransa(double *in, int row, int col, double* out);
+double dpertranss(double in);
+
+void spertransa(float *in, int row, int col, float* out);
+float spertranss(float in);
+
+void zpertransa(doubleComplex *in, int row, int col, doubleComplex* out);
+doubleComplex zpertranss(doubleComplex in);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__PERTRANS_H__*/
diff --git a/src/c/matrixOperations/interfaces/int_pertrans.h b/src/c/matrixOperations/interfaces/int_pertrans.h
new file mode 100644
index 0000000..8aa8ec5
--- /dev/null
+++ b/src/c/matrixOperations/interfaces/int_pertrans.h
@@ -0,0 +1,34 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ This file must be used under the terms of the CeCILL.
+ This source file is licensed as described in the file COPYING, 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
+ Author: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#ifndef __INT_PERTRANS_H__
+#define __INT_PERTRANS_H__
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define d2pertransd2(in1, size, out) dpertransa(in1, size[0], size[1], out)
+#define d0pertransd0(in1) dpertranss(in1)
+
+#define s2pertranss2(in1, size, out) spertransa(in1, size[0], size[1], out)
+#define s0pertranss0(in1) spertranss(in1)
+
+#define z2pertransz2(in1, size, out) zpertransa(in1, size[0], size[1], out)
+#define z0pertransz0(in1) zpertranss(in1)
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__INT_PERTRANS_H__*/
diff --git a/src/c/matrixOperations/pertrans/dpertransa.c b/src/c/matrixOperations/pertrans/dpertransa.c
new file mode 100644
index 0000000..36b963e
--- /dev/null
+++ b/src/c/matrixOperations/pertrans/dpertransa.c
@@ -0,0 +1,36 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ This file must be used under the terms of the CeCILL.
+ This source file is licensed as described in the file COPYING, 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
+ Author: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include "pertrans.h"
+#include "types.h"
+#include "matrixTranspose.h"
+
+void dpertransa(double *in, int row, int col, double* out)
+{
+
+ double middle[row*col];
+ int j=0;
+
+ dtransposea(in, row, col, middle);
+
+ for(int i= row*col-1; i>=0; i=i-1)
+ {
+
+ out[j]= middle[i];
+ j=j+1;
+
+ }
+
+
+
+
+}
diff --git a/src/c/matrixOperations/pertrans/dpertranss.c b/src/c/matrixOperations/pertrans/dpertranss.c
new file mode 100644
index 0000000..10c2d03
--- /dev/null
+++ b/src/c/matrixOperations/pertrans/dpertranss.c
@@ -0,0 +1,23 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ This file must be used under the terms of the CeCILL.
+ This source file is licensed as described in the file COPYING, 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
+ Author: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include "pertrans.h"
+#include "types.h"
+#include "matrixTranspose.h"
+
+double dpertranss(double in)
+{
+
+ return in;
+
+
+}
diff --git a/src/c/matrixOperations/pertrans/spertransa.c b/src/c/matrixOperations/pertrans/spertransa.c
new file mode 100644
index 0000000..4eba2f1
--- /dev/null
+++ b/src/c/matrixOperations/pertrans/spertransa.c
@@ -0,0 +1,36 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ This file must be used under the terms of the CeCILL.
+ This source file is licensed as described in the file COPYING, 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
+ Author: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include "pertrans.h"
+#include "types.h"
+#include "matrixTranspose.h"
+
+void spertransa(float *in, int row, int col, float* out)
+{
+
+ float middle[row*col];
+ int j=0;
+
+ stransposea(in, row, col, middle);
+
+ for(int i= row*col-1; i>=0; i=i-1)
+ {
+
+ out[j]= middle[i];
+ j=j+1;
+
+ }
+
+
+
+
+}
diff --git a/src/c/matrixOperations/pertrans/spertranss.c b/src/c/matrixOperations/pertrans/spertranss.c
new file mode 100644
index 0000000..694c231
--- /dev/null
+++ b/src/c/matrixOperations/pertrans/spertranss.c
@@ -0,0 +1,23 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ This file must be used under the terms of the CeCILL.
+ This source file is licensed as described in the file COPYING, 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
+ Author: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include "pertrans.h"
+#include "types.h"
+#include "matrixTranspose.h"
+
+float spertranss(float in)
+{
+
+ return in;
+
+
+}
diff --git a/src/c/matrixOperations/pertrans/zpertransa.c b/src/c/matrixOperations/pertrans/zpertransa.c
new file mode 100644
index 0000000..c52fdbc
--- /dev/null
+++ b/src/c/matrixOperations/pertrans/zpertransa.c
@@ -0,0 +1,37 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ This file must be used under the terms of the CeCILL.
+ This source file is licensed as described in the file COPYING, 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
+ Author: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include "pertrans.h"
+#include "types.h"
+#include "matrixTranspose.h"
+#include "doubleComplex.h"
+
+void zpertransa(doubleComplex *in, int row, int col, doubleComplex* out)
+{
+
+ doubleComplex middle[row*col];
+ int j=0;
+
+ ztransposea(in, row, col, middle);
+
+ for(int i= row*col-1; i>=0; i=i-1)
+ {
+
+ out[j]= middle[i];
+ j=j+1;
+
+ }
+
+
+
+
+}
diff --git a/src/c/matrixOperations/pertrans/zpertranss.c b/src/c/matrixOperations/pertrans/zpertranss.c
new file mode 100644
index 0000000..73e6e61
--- /dev/null
+++ b/src/c/matrixOperations/pertrans/zpertranss.c
@@ -0,0 +1,24 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ This file must be used under the terms of the CeCILL.
+ This source file is licensed as described in the file COPYING, 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
+ Author: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include "pertrans.h"
+#include "types.h"
+#include "matrixTranspose.h"
+#include "doubleComplex.h"
+
+doubleComplex zpertranss(doubleComplex in)
+{
+
+ return in;
+
+
+}
diff --git a/src/c/signalProcessing/hank/dhanka.c b/src/c/signalProcessing/hank/dhanka.c
index 1857cc2..37008fd 100644
--- a/src/c/signalProcessing/hank/dhanka.c
+++ b/src/c/signalProcessing/hank/dhanka.c
@@ -20,6 +20,8 @@
void dhanka(int m, int n, double*seq_conv, int row, int col, double*out)
{
+
+// Variable Declaration Start
int mr, nr;
mr= m* row;
nr= n* row;
@@ -31,8 +33,9 @@ void dhanka(int m, int n, double*seq_conv, int row, int col, double*out)
double middle2[m*nr];
double index[m*nr];
double final[row*m*nr];
+// Variable Declaration End
-
+// Algorithm Start
donesa(ones1, 1 , nr);
donesa(ones2, m , 1);
int j=0;
@@ -106,5 +109,6 @@ printf("\n");
*/
dmatrixa(final, row, m*nr, mr, (row*m*nr)/mr, out);
+//Algorith Ends
}
diff --git a/src/c/statisticsFunctions/gsort/dgsorta.c b/src/c/statisticsFunctions/gsort/dgsorta.c
new file mode 100644
index 0000000..8585b54
--- /dev/null
+++ b/src/c/statisticsFunctions/gsort/dgsorta.c
@@ -0,0 +1,94 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ This file must be used under the terms of the CeCILL.
+ This source file is licensed as described in the file COPYING, 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
+ Author: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+#include "gsort.h"
+#include "types.h"
+#include "uint16.h"
+
+void dgsorta(double *in, int size, char check, double* out)
+{
+ double a; double fin; double in_copy[size];
+
+ for(int i=0; i< size; i++)
+
+ {
+ in_copy[i]= in[i];
+
+ }
+
+
+if(check == 'i')
+{
+ for (int i = 0; i < size; ++i)
+
+ {
+
+ for (int j = i + 1; j < size; ++j)
+
+ {
+
+ if (in_copy[i] > in_copy[j])
+
+ {
+
+ a = in_copy[i];
+
+ in_copy[i] = in_copy[j];
+
+ in_copy[j] = a;
+
+ }
+
+ }
+
+ }
+}
+
+if(check =='d')
+{
+ for (int i = 0; i < size; ++i)
+
+ {
+
+ for (int j = i + 1; j < size; ++j)
+
+ {
+
+ if (in_copy[i] < in_copy[j])
+
+ {
+
+ a = in_copy[i];
+
+ in_copy[i] = in_copy[j];
+
+ in_copy[j] = a;
+
+ }
+
+ }
+
+ }
+
+
+}
+
+ for(int i=0; i< size; i++)
+
+ {
+ out[i]= in_copy[i];
+
+ }
+
+
+}
diff --git a/src/c/statisticsFunctions/gsort/dgsortcola.c b/src/c/statisticsFunctions/gsort/dgsortcola.c
new file mode 100644
index 0000000..56cb3e8
--- /dev/null
+++ b/src/c/statisticsFunctions/gsort/dgsortcola.c
@@ -0,0 +1,44 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ This file must be used under the terms of the CeCILL.
+ This source file is licensed as described in the file COPYING, 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
+ Author: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+#include "gsort.h"
+#include "types.h"
+#include "uint16.h"
+#include "stdio.h"
+
+void dgsortcola(double *in, int row, int col, char check, double* out)
+{
+ double inter[col];
+ double temp[col];
+
+
+for(int i=0; i< row; i++)
+ {
+ for(int j=0 ; j< col; j++)
+ {
+ inter[j]= in[i+ (j*row)];
+
+ }
+
+ dgsorta( inter, col, check, temp);
+
+ for(int k=0; k< col; k++)
+ {
+ out[i + k*row]= temp[k];
+
+ }
+
+ }
+
+
+}
diff --git a/src/c/statisticsFunctions/gsort/dgsortrowa.c b/src/c/statisticsFunctions/gsort/dgsortrowa.c
new file mode 100644
index 0000000..cb2b819
--- /dev/null
+++ b/src/c/statisticsFunctions/gsort/dgsortrowa.c
@@ -0,0 +1,42 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ This file must be used under the terms of the CeCILL.
+ This source file is licensed as described in the file COPYING, 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
+ Author: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+#include "gsort.h"
+#include "types.h"
+#include "uint16.h"
+
+void dgsortrowa(double *in, int row, int col, char check, double* out)
+{
+ double inter[row];
+ double temp[row];
+
+
+for(int i=0; i< col; i++)
+ {
+ for(int j=0 ; j< row; j++)
+ {
+ inter[j]= in[j+ (i*row)];
+
+ }
+ dgsorta( inter, row, check, temp);
+
+ for(int k=0; k< row; k++)
+ {
+ out[k + i*row]= temp[k];
+
+ }
+
+ }
+
+
+}
diff --git a/src/c/statisticsFunctions/gsort/sgsorta.c b/src/c/statisticsFunctions/gsort/sgsorta.c
new file mode 100644
index 0000000..35bbc93
--- /dev/null
+++ b/src/c/statisticsFunctions/gsort/sgsorta.c
@@ -0,0 +1,94 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ This file must be used under the terms of the CeCILL.
+ This source file is licensed as described in the file COPYING, 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
+ Author: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+#include "gsort.h"
+#include "types.h"
+#include "uint16.h"
+
+void sgsorta(float *in, int size, char check, float* out)
+{
+ float a; float fin; float in_copy[size];
+
+ for(int i=0; i< size; i++)
+
+ {
+ in_copy[i]= in[i];
+
+ }
+
+
+if(check == 'i')
+{
+ for (int i = 0; i < size; ++i)
+
+ {
+
+ for (int j = i + 1; j < size; ++j)
+
+ {
+
+ if (in_copy[i] > in_copy[j])
+
+ {
+
+ a = in_copy[i];
+
+ in_copy[i] = in_copy[j];
+
+ in_copy[j] = a;
+
+ }
+
+ }
+
+ }
+}
+
+if(check =='d')
+{
+ for (int i = 0; i < size; ++i)
+
+ {
+
+ for (int j = i + 1; j < size; ++j)
+
+ {
+
+ if (in_copy[i] < in_copy[j])
+
+ {
+
+ a = in_copy[i];
+
+ in_copy[i] = in_copy[j];
+
+ in_copy[j] = a;
+
+ }
+
+ }
+
+ }
+
+
+}
+
+ for(int i=0; i< size; i++)
+
+ {
+ out[i]= in_copy[i];
+
+ }
+
+
+}
diff --git a/src/c/statisticsFunctions/gsort/sgsortcola.c b/src/c/statisticsFunctions/gsort/sgsortcola.c
new file mode 100644
index 0000000..7296f7f
--- /dev/null
+++ b/src/c/statisticsFunctions/gsort/sgsortcola.c
@@ -0,0 +1,42 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ This file must be used under the terms of the CeCILL.
+ This source file is licensed as described in the file COPYING, 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
+ Author: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+#include "gsort.h"
+#include "types.h"
+#include "uint16.h"
+#include "stdio.h"
+
+void sgsortcola(float *in, int row, int col, char check, float* out)
+{
+ float inter[col];
+ float temp[col];
+
+
+for(int i=0; i< row; i++)
+ {
+ for(int j=0 ; j< col; j++)
+ {
+ inter[j]= in[i+ (j*row)];
+
+ }
+ sgsorta( inter, col, check, temp);
+
+ for(int k=0; k< col; k++)
+ {
+ out[i + k*row]= temp[k];
+
+ }
+ }
+
+
+}
diff --git a/src/c/statisticsFunctions/gsort/sgsortrowa.c b/src/c/statisticsFunctions/gsort/sgsortrowa.c
new file mode 100644
index 0000000..220b45a
--- /dev/null
+++ b/src/c/statisticsFunctions/gsort/sgsortrowa.c
@@ -0,0 +1,42 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ This file must be used under the terms of the CeCILL.
+ This source file is licensed as described in the file COPYING, 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
+ Author: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+#include "gsort.h"
+#include "types.h"
+#include "uint16.h"
+
+void sgsortrowa(float *in, int row, int col, char check, float* out)
+{
+ float inter[row];
+ float temp[row];
+
+
+for(int i=0; i< col; i++)
+ {
+ for(int j=0 ; j< row; j++)
+ {
+ inter[j]= in[j+ (i*row)];
+
+ }
+ sgsorta( inter, row, check, temp);
+
+ for(int k=0; k< row; k++)
+ {
+ out[k + i*row]= temp[k];
+
+ }
+
+ }
+
+
+}
diff --git a/src/c/statisticsFunctions/gsort/u16gsorta.c b/src/c/statisticsFunctions/gsort/u16gsorta.c
new file mode 100644
index 0000000..bca7b02
--- /dev/null
+++ b/src/c/statisticsFunctions/gsort/u16gsorta.c
@@ -0,0 +1,94 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ This file must be used under the terms of the CeCILL.
+ This source file is licensed as described in the file COPYING, 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
+ Author: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+#include "gsort.h"
+#include "types.h"
+#include "uint16.h"
+
+void u16gsorta(uint16 *in, int size, char check, uint16* out)
+{
+ uint16 a; uint16 fin; uint16 in_copy[size];
+
+ for(int i=0; i< size; i++)
+
+ {
+ in_copy[i]= in[i];
+
+ }
+
+
+if(check == 'i')
+{
+ for (int i = 0; i < size; ++i)
+
+ {
+
+ for (int j = i + 1; j < size; ++j)
+
+ {
+
+ if (in_copy[i] > in_copy[j])
+
+ {
+
+ a = in_copy[i];
+
+ in_copy[i] = in_copy[j];
+
+ in_copy[j] = a;
+
+ }
+
+ }
+
+ }
+}
+
+if(check =='d')
+{
+ for (int i = 0; i < size; ++i)
+
+ {
+
+ for (int j = i + 1; j < size; ++j)
+
+ {
+
+ if (in_copy[i] < in_copy[j])
+
+ {
+
+ a = in_copy[i];
+
+ in_copy[i] = in_copy[j];
+
+ in_copy[j] = a;
+
+ }
+
+ }
+
+ }
+
+
+}
+
+ for(int i=0; i< size; i++)
+
+ {
+ out[i]= in_copy[i];
+
+ }
+
+
+}
diff --git a/src/c/statisticsFunctions/gsort/u16gsortcola.c b/src/c/statisticsFunctions/gsort/u16gsortcola.c
new file mode 100644
index 0000000..51ac7b5
--- /dev/null
+++ b/src/c/statisticsFunctions/gsort/u16gsortcola.c
@@ -0,0 +1,42 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ This file must be used under the terms of the CeCILL.
+ This source file is licensed as described in the file COPYING, 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
+ Author: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+#include "gsort.h"
+#include "types.h"
+#include "uint16.h"
+#include "stdio.h"
+
+void u16gsortcola(uint16* in, int row, int col, char check, uint16* out)
+{
+ uint16 inter[col];
+ uint16 temp[col];
+
+
+for(int i=0; i< row; i++)
+ {
+ for(int j=0 ; j< col; j++)
+ {
+ inter[j]= in[i+ (j*row)];
+
+ }
+ u16gsorta( inter, col, check, temp);
+
+ for(int k=0; k< col; k++)
+ {
+ out[i + k*row]= temp[k];
+
+ }
+ }
+
+
+}
diff --git a/src/c/statisticsFunctions/gsort/u16gsortrowa.c b/src/c/statisticsFunctions/gsort/u16gsortrowa.c
new file mode 100644
index 0000000..c8cbf4e
--- /dev/null
+++ b/src/c/statisticsFunctions/gsort/u16gsortrowa.c
@@ -0,0 +1,42 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ This file must be used under the terms of the CeCILL.
+ This source file is licensed as described in the file COPYING, 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
+ Author: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+#include "gsort.h"
+#include "types.h"
+#include "uint16.h"
+
+void u16gsortrowa(uint16 *in, int row, int col, char check, uint16* out)
+{
+ uint16 inter[row];
+ uint16 temp[row];
+
+
+for(int i=0; i< col; i++)
+ {
+ for(int j=0 ; j< row; j++)
+ {
+ inter[j]= in[j+ (i*row)];
+
+ }
+ u16gsorta( inter, row, check, temp);
+
+ for(int k=0; k< row; k++)
+ {
+ out[k + i*row]= temp[k];
+
+ }
+
+ }
+
+
+}
diff --git a/src/c/statisticsFunctions/gsort/zgsorta.c b/src/c/statisticsFunctions/gsort/zgsorta.c
new file mode 100644
index 0000000..0620a8c
--- /dev/null
+++ b/src/c/statisticsFunctions/gsort/zgsorta.c
@@ -0,0 +1,96 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ This file must be used under the terms of the CeCILL.
+ This source file is licensed as described in the file COPYING, 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
+ Author: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+#include "gsort.h"
+#include "abs.h"
+#include "types.h"
+#include "uint16.h"
+#include "doubleComplex.h"
+
+void zgsorta(doubleComplex *in, int size, char check, doubleComplex* out)
+{
+ doubleComplex a; doubleComplex fin; doubleComplex in_copy[size];
+
+ for(int i=0; i< size; i++)
+
+ {
+ in_copy[i]= in[i];
+
+ }
+
+
+if(check == 'i')
+{
+ for (int i = 0; i < size; ++i)
+
+ {
+
+ for (int j = i + 1; j < size; ++j)
+
+ {
+
+ if (zabss(in_copy[i]) > zabss(in_copy[j]))
+
+ {
+
+ a = in_copy[i];
+
+ in_copy[i] = in_copy[j];
+
+ in_copy[j] = a;
+
+ }
+
+ }
+
+ }
+}
+
+if(check =='d')
+{
+ for (int i = 0; i < size; ++i)
+
+ {
+
+ for (int j = i + 1; j < size; ++j)
+
+ {
+
+ if (zabss(in_copy[i]) < zabss(in_copy[j]))
+
+ {
+
+ a = in_copy[i];
+
+ in_copy[i] = in_copy[j];
+
+ in_copy[j] = a;
+
+ }
+
+ }
+
+ }
+
+
+}
+
+ for(int i=0; i< size; i++)
+
+ {
+ out[i]= in_copy[i];
+
+ }
+
+
+}
diff --git a/src/c/statisticsFunctions/gsort/zgsortcola.c b/src/c/statisticsFunctions/gsort/zgsortcola.c
new file mode 100644
index 0000000..2c03623
--- /dev/null
+++ b/src/c/statisticsFunctions/gsort/zgsortcola.c
@@ -0,0 +1,43 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ This file must be used under the terms of the CeCILL.
+ This source file is licensed as described in the file COPYING, 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
+ Author: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+#include "gsort.h"
+#include "types.h"
+#include "uint16.h"
+#include "stdio.h"
+#include "doubleComplex.h"
+
+void zgsortcola(doubleComplex *in, int row, int col, char check, doubleComplex* out)
+{
+ doubleComplex inter[col];
+ doubleComplex temp[col];
+
+
+for(int i=0; i< row; i++)
+ {
+ for(int j=0 ; j< col; j++)
+ {
+ inter[j]= in[i+ (j*row)];
+
+ }
+ zgsorta( inter, col, check, temp);
+
+ for(int k=0; k< col; k++)
+ {
+ out[i + k*row]= temp[k];
+
+ }
+ }
+
+
+}
diff --git a/src/c/statisticsFunctions/gsort/zgsortrowa.c b/src/c/statisticsFunctions/gsort/zgsortrowa.c
new file mode 100644
index 0000000..f02b0b2
--- /dev/null
+++ b/src/c/statisticsFunctions/gsort/zgsortrowa.c
@@ -0,0 +1,42 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ This file must be used under the terms of the CeCILL.
+ This source file is licensed as described in the file COPYING, 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
+ Author: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+#include "gsort.h"
+#include "types.h"
+#include "doubleComplex.h"
+
+void zgsortrowa(doubleComplex *in, int row, int col, char check, doubleComplex* out)
+{
+ doubleComplex inter[row];
+ doubleComplex temp[row];
+
+
+for(int i=0; i< col; i++)
+ {
+ for(int j=0 ; j< row; j++)
+ {
+ inter[j]= in[j+ (i*row)];
+
+ }
+ zgsorta( inter, row, check, temp);
+
+ for(int k=0; k< row; k++)
+ {
+ out[k + i*row]= temp[k];
+
+ }
+
+ }
+
+
+}
diff --git a/src/c/statisticsFunctions/includes/gsort.h b/src/c/statisticsFunctions/includes/gsort.h
new file mode 100644
index 0000000..a4d0870
--- /dev/null
+++ b/src/c/statisticsFunctions/includes/gsort.h
@@ -0,0 +1,46 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ This file must be used under the terms of the CeCILL.
+ This source file is licensed as described in the file COPYING, 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
+ Author: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+#ifndef __GSORT_H__
+#define __GSORT_H__
+
+#include "types.h"
+#include "doubleComplex.h"
+#include "uint16.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void dgsorta(double *in, int size, char check, double* out);
+void dgsortcola(double *in, int row, int col, char check, double* out);
+void dgsortrowa(double *in, int row, int col, char check, double* out);
+
+void sgsorta(float *in, int size, char check, float* out);
+void sgsortcola(float *in, int row, int col, char check, float* out);
+void sgsortrowa(float *in, int row, int col, char check, float* out);
+
+void u16gsorta(uint16 *in, int size, char check, uint16* out);
+void u16gsortcola(uint16 *in, int row, int col, char check, uint16* out);
+void u16gsortrowa(uint16 *in, int row, int col, char check, uint16* out);
+
+void zgsorta(doubleComplex *in, int size, char check, doubleComplex* out);
+void zgsortcola(doubleComplex *in, int row, int col, char check, doubleComplex* out);
+void zgsortrowa(doubleComplex*in, int row, int col, char check, doubleComplex* out);
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__GSORT_H__*/
diff --git a/src/c/statisticsFunctions/interfaces/int_gsort.h b/src/c/statisticsFunctions/interfaces/int_gsort.h
new file mode 100644
index 0000000..d1e9bb9
--- /dev/null
+++ b/src/c/statisticsFunctions/interfaces/int_gsort.h
@@ -0,0 +1,43 @@
+/* Copyright (C) 2016 - IIT Bombay - FOSSEE
+
+ This file must be used under the terms of the CeCILL.
+ This source file is licensed as described in the file COPYING, 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
+ Author: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#ifndef __INT_GSORT_H__
+#define __INT_GSORT_H__
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define d2gsortd2(in1, size, out) dgsorta(in1, size[0]* size[1], 'd', out)
+#define d2g2gsortd2(in1, size1, in2, size2, out) (in2[0]== 'r') ? dgsortrowa(in1, size1[0], size1[1],'d', out) :dgsortcola(in1, size1[0], size1[1],'d', out)
+#define d2g2g2gsortd2(in1, size1, in2, size2, in3, size3, out) (in2[0]== 'r') ? dgsortrowa(in1, size1[0], size1[1],in3[0], out) :dgsortcola(in1, size1[0], size1[1],in3[0], out)
+
+#define s2gsorts2(in1, size, out) sgsorta(in1, size[0]* size[1], 'd', out)
+#define s2g2gsorts2(in1, size1, in2, size2, out) (in2[0]== 'r') ? sgsortrowa(in1, size1[0], size1[1],'d', out) :sgsortcola(in1, size1[0], size1[1],'d', out)
+#define s2g2g2gsorts2(in1, size1, in2, size2, in3, size3, out) (in2[0]== 'r') ? sgsortrowa(in1, size1[0], size1[1],in3[0], out) :sgsortcola(in1, size1[0], size1[1],in3[0], out)
+
+#define u162gsortu162(in1, size, out) u16gsorta(in1, size[0]* size[1], 'd', out)
+#define u162g2gsortu162(in1, size1, in2, size2, out) (in2[0]== 'r') ? u16gsortrowa(in1, size1[0], size1[1],'d', out) :u16gsortcola(in1, size1[0], size1[1],'d', out)
+#define u162g2g2gsortu162(in1, size1, in2, size2, in3, size3, out) (in2[0]== 'r') ? u16gsortrowa(in1, size1[0], size1[1],in3[0], out) :u16gsortcola(in1, size1[0], size1[1],in3[0], out)
+
+#define z2gsortz2(in1, size, out) zgsorta(in1, size[0]* size[1], 'd', out)
+#define z2g2gsortz2(in1, size1, in2, size2, out) (in2[0]== 'r') ? zgsortrowa(in1, size1[0], size1[1],'d', out) :zgsortcola(in1, size1[0], size1[1],'d', out)
+#define z2g2g2gsortz2(in1, size1, in2, size2, in3, size3, out) (in2[0]== 'r') ? zgsortrowa(in1, size1[0], size1[1],in3[0], out) :zgsortcola(in1, size1[0], size1[1],in3[0], out)
+
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__INT_GSORT_H__*/
diff --git a/src/c/statisticsFunctions/median/dmediana.c b/src/c/statisticsFunctions/median/dmediana.c
index cb2463c..8b37fd1 100644
--- a/src/c/statisticsFunctions/median/dmediana.c
+++ b/src/c/statisticsFunctions/median/dmediana.c
@@ -17,7 +17,9 @@
double dmediana(double *in, int size)
{
- double a; double fin;
+ double a; double fin; double in_copy[size];
+for(int i=0; i< size; i++)
+ in_copy[i]= in[i];
for (int i = 0; i < size; ++i)
@@ -28,15 +30,15 @@ double dmediana(double *in, int size)
{
- if (in[i] > in[j])
+ if (in_copy[i] > in_copy[j])
{
- a = in[i];
+ a = in_copy[i];
- in[i] = in[j];
+ in_copy[i] = in_copy[j];
- in[j] = a;
+ in_copy[j] = a;
}
@@ -47,11 +49,11 @@ double dmediana(double *in, int size)
if(size%2 ==0)
{
- fin= (in[size/2]+ in[(size/2)-1])/2;
+ fin= (in_copy[size/2]+ in_copy[(size/2)-1])/2;
}
else
{
- fin= in[(size-1)/2];
+ fin= in_copy[(size-1)/2];
}
return fin;
diff --git a/src/c/statisticsFunctions/median/smediana.c b/src/c/statisticsFunctions/median/smediana.c
index 9e86b77..0d427e1 100644
--- a/src/c/statisticsFunctions/median/smediana.c
+++ b/src/c/statisticsFunctions/median/smediana.c
@@ -17,8 +17,10 @@
float smediana(float *in, int size)
{
- float a; float fin;
+ float a; float fin; float in_copy[size];
+for(int i=0; i< size; i++)
+ in_copy[i]= in[i];
for (int i = 0; i < size; ++i)
@@ -28,15 +30,15 @@ float smediana(float *in, int size)
{
- if (in[i] > in[j])
+ if (in_copy[i] > in_copy[j])
{
- a = in[i];
+ a = in_copy[i];
- in[i] = in[j];
+ in_copy[i] = in_copy[j];
- in[j] = a;
+ in_copy[j] = a;
}
@@ -46,11 +48,11 @@ float smediana(float *in, int size)
if(size%2 ==0)
{
- fin= (in[size/2]+ in[(size/2)-1])/2;
+ fin= (in_copy[size/2]+ in_copy[(size/2)-1])/2;
}
else
{
- fin= in[(size-1)/2];
+ fin= in_copy[(size-1)/2];
}
return fin;
diff --git a/src/c/statisticsFunctions/median/u16mediana.c b/src/c/statisticsFunctions/median/u16mediana.c
index b45c530..85cfedc 100644
--- a/src/c/statisticsFunctions/median/u16mediana.c
+++ b/src/c/statisticsFunctions/median/u16mediana.c
@@ -17,8 +17,10 @@
uint16 u16mediana(uint16 *in, int size)
{
- uint16 a; uint16 fin;
+ uint16 a; uint16 fin; uint16 in_copy[size];
+for(int i=0; i< size; i++)
+ in_copy[i]= in[i];
for (int i = 0; i < size; ++i)
@@ -28,15 +30,15 @@ uint16 u16mediana(uint16 *in, int size)
{
- if (in[i] > in[j])
+ if (in_copy[i] > in_copy[j])
{
- a = in[i];
+ a = in_copy[i];
- in[i] = in[j];
+ in_copy[i] = in_copy[j];
- in[j] = a;
+ in_copy[j] = a;
}
@@ -46,11 +48,11 @@ uint16 u16mediana(uint16 *in, int size)
if(size%2 ==0)
{
- fin= (in[size/2]+ in[(size/2)-1])/2;
+ fin= (in_copy[size/2]+ in_copy[(size/2)-1])/2;
}
else
{
- fin= in[(size-1)/2];
+ fin= in_copy[(size-1)/2];
}
return fin;
diff --git a/src/c/statisticsFunctions/median/zmediana.c b/src/c/statisticsFunctions/median/zmediana.c
index 32726e7..3680456 100644
--- a/src/c/statisticsFunctions/median/zmediana.c
+++ b/src/c/statisticsFunctions/median/zmediana.c
@@ -21,8 +21,10 @@
doubleComplex zmediana(doubleComplex *in, int size)
{
- doubleComplex a; doubleComplex fin; doubleComplex middle;
+ doubleComplex a; doubleComplex fin; doubleComplex middle; doubleComplex in_copy[size];
+for(int i=0; i< size; i++)
+ in_copy[i]= in[i];
for (int i = 0; i < size; ++i)
@@ -32,15 +34,15 @@ doubleComplex zmediana(doubleComplex *in, int size)
{
- if (zabss(in[i]) > zabss(in[j]))
+ if (zabss(in_copy[i]) > zabss(in_copy[j]))
{
- a = in[i];
+ a = in_copy[i];
- in[i] = in[j];
+ in_copy[i] = in_copy[j];
- in[j] = a;
+ in_copy[j] = a;
}
@@ -52,12 +54,12 @@ doubleComplex zmediana(doubleComplex *in, int size)
if(size%2 ==0)
{
- middle= zadds(in[size/2], in[(size/2)-1]);
+ middle= zadds(in_copy[size/2], in_copy[(size/2)-1]);
fin= zrdivs(middle, DoubleComplex(2,0));
}
else
{
- fin= in[(size-1)/2];
+ fin= in_copy[(size-1)/2];
}
return fin;