changeset 4043:b54e00ea56bc

of-fl-core: readd fl-core patch in dos mode * src/of-fl-core-1-fixes.patch: readd patch
author John Donoghue
date Fri, 02 Oct 2015 10:24:38 -0400
parents 320b6359718e
children 4542697f6c8f
files src/of-fl-core-1-fixes.patch
diffstat 1 files changed, 154 insertions(+), 153 deletions(-) [+]
line wrap: on
line diff
--- a/src/of-fl-core-1-fixes.patch	Fri Oct 02 18:38:56 2015 -0400
+++ b/src/of-fl-core-1-fixes.patch	Fri Oct 02 10:24:38 2015 -0400
@@ -1,11 +1,161 @@
-diff -ur fl-core/src/Makefile fl-core.new/src/Makefile
---- fl-core/src/Makefile	2011-02-06 14:09:03.000000000 -0500
-+++ fl-core.new/src/Makefile	2015-03-20 13:45:48.577323118 -0400
+diff -ur fl-core.orig/src/fl_compose.cc fl-core/src/fl_compose.cc
+--- fl-core.orig/src/fl_compose.cc	2015-10-02 10:13:53.044225859 -0400
++++ fl-core/src/fl_compose.cc	2015-10-02 10:22:05.635130470 -0400
+@@ -63,14 +63,14 @@
+ // Structure for thread arguments. Each thread will perform the computation between the start_index and end_index row.
+ struct threadArg
+ {
+-	int start_index;
+-	int end_index;
++	octave_idx_type start_index;
++	octave_idx_type end_index;
+ };
+ 
+ 
+ // Functions prototype declaration
+-float get_elem(float vec[], int row, int col,int numCols);
+-void set_elem(float vec[], int row, int col, int numCols, float elem);
++float get_elem(float vec[], octave_idx_type row, octave_idx_type col,octave_idx_type numCols);
++void set_elem(float vec[], octave_idx_type row, octave_idx_type col, octave_idx_type numCols, float elem);
+ int is_valid_function(octave_function *func);
+ void *thread_function(void *arg);
+ int get_available_cpus();
+@@ -110,13 +110,13 @@
+ SparseMatrix sparseC;
+ 
+ // Matrices dimensions
+-long int rowsA,rowsB,colsA,colsB,rowsC,colsC;
++octave_idx_type rowsA,rowsB,colsA,colsB,rowsC,colsC;
+ 
+ // Lock option. 1 = calculation executed only for the diagonal of the matrix
+ int lock_option;
+ 
+ // The increment 
+-int col_index_increment;
++octave_idx_type col_index_increment;
+ 
+ // Number of threads that will be created
+ int num_threads;
+@@ -357,8 +357,9 @@
+ 	else
+ 	{	
+ 		Matrix outMatrix(rowsC,colsC);
+-		for(int i=0;i<rowsC;i++)
+-			for(int j=0;j<colsC;j++)
++
++		for(octave_idx_type i=0;i<rowsC;i++)
++			for(octave_idx_type j=0;j<colsC;j++)
+ 				outMatrix(i,j) = get_elem(c,i,j,colsC);
+ 		
+ 		if(sparse_res)
+@@ -390,15 +391,15 @@
+ 	// Initialize the first matrix
+ 	Matrix tempMatrix = args(0).matrix_value();
+ 	a = new float[rowsA*colsA];
+-	for (int i=0; i<rowsA; i++)
+-		for(int j=0; j<colsA;j++)
++	for (octave_idx_type i=0; i<rowsA; i++)
++		for(octave_idx_type j=0; j<colsA;j++)
+ 			a[i*colsA+j] = tempMatrix(i,j);
+ 
+ 	// Initialize the second matrix
+ 	tempMatrix = args(1).matrix_value();
+ 	b = new float[rowsB*colsB];
+-	for (int i=0; i<rowsB; i++)
+-		for(int j=0; j<colsB;j++)
++	for (octave_idx_type i=0; i<rowsB; i++)
++		for(octave_idx_type j=0; j<colsB;j++)
+ 			b[i*colsB+j] = tempMatrix(i,j);
+ 	
+ 
+@@ -418,7 +419,7 @@
+ 	}
+ 
+ 	// Define the number interval of rows for each thread		
+-	int interval = rowsA / num_threads;	
++	octave_idx_type interval = rowsA / num_threads;	
+ 			
+ 	int i;
+ 	// Define the threads
+@@ -465,22 +466,22 @@
+ 	float tnorm_val;	
+ 
+ 	// Initialize the result sparse matrix
+-	sparseC = SparseMatrix((int)colsB, (int)rowsA, (int)(colsB*rowsA));
++	sparseC = SparseMatrix(colsB, rowsA, (colsB*rowsA));
+ 
+         // Initialize the number of nonzero elements in the sparse matrix c
+         int nel = 0;
+         sparseC.xcidx(0) = 0;
+ 
+ 	// Calculate the composition for each element
+-        for (int i = 0; i < rowsC; i++)
++        for (octave_idx_type i = 0; i < rowsC; i++)
+         {
+-            for(int j = 0; j < colsC; j++)
++            for(octave_idx_type j = 0; j < colsC; j++)
+             {
+                 
+ 		// Get the index of the first element of the i-th column of a transpose (i-th row of a)
+ 		// and the index of the first element of the j-th column of b
+-		int ka = a.cidx(i);
+-		int kb = b.cidx(j);
++		octave_idx_type ka = a.cidx(i);
++		octave_idx_type kb = b.cidx(j);
+ 		snorm_val = 0;
+ 	
+ 		// Check if the values of the matrix are really not 0 (it happens if the column of a or b hasn't any value)
+@@ -549,18 +550,18 @@
+ 	float tnorm_val;	
+ 	
+ 	// Get the row start_index and end_index 
+-	int start_index = thread_args->start_index;
+-	int end_index = thread_args->end_index;
++	octave_idx_type start_index = thread_args->start_index;
++	octave_idx_type end_index = thread_args->end_index;
+ 	
+ 
+ 	// Calculate the composition for the specified rows (between start_index and end_index)
+-	for (int i=start_index; i<end_index; i++)
++	for (octave_idx_type i=start_index; i<end_index; i++)
+ 	{		
+-		for(int j=lock_option*i; j<colsB; j=j+col_index_increment)
++		for(octave_idx_type j=lock_option*i; j<colsB; j=j+col_index_increment)
+ 		{
+ 			snorm_val = calc_tnorm(get_elem(a,i,0,colsA),get_elem(b,0,j,colsB));
+ 
+-			for(int k=1; k<colsA; k++)
++			for(octave_idx_type k=1; k<colsA; k++)
+ 			{					
+ 				tnorm_val = calc_tnorm(get_elem(a,i,k,colsA),get_elem(b,k,j,colsB)); 
+ 				snorm_val = calc_snorm(snorm_val,tnorm_val);
+@@ -767,7 +768,7 @@
+ 
+ 
+ /* Get the (i,j)-th element from the vector vec. The column number of the original matrix (numCols) is required */
+-float get_elem(float vec[], int row, int col,int numCols)
++float get_elem(float vec[], octave_idx_type row, octave_idx_type col,octave_idx_type numCols)
+ {
+ 	return vec[row*numCols+col];
+ }
+@@ -775,7 +776,7 @@
+ 
+ 
+ /* Set the (i,j)-th element from the vector vec. The column number of the original matrix (numCols) is required */
+-void set_elem(float vec[], int row, int col, int numCols, float elem)
++void set_elem(float vec[], octave_idx_type row, octave_idx_type col, octave_idx_type numCols, float elem)
+ {
+ 	vec[row*numCols+col] = elem;
+ 	return;
+diff -ur fl-core.orig/src/Makefile fl-core/src/Makefile
+--- fl-core.orig/src/Makefile	2015-10-02 10:13:53.044225859 -0400
++++ fl-core/src/Makefile	2015-10-02 10:16:20.899198805 -0400
 @@ -1,15 +1,23 @@
  OCT = fl_compose.oct
  SRC := $(OCT:.oct=.cc)
  BASE := $(OCT:.oct=)
 -ifdef COMSPEC 
+-	ADDPARAM := -lpthreadVC2
 +
 +MKOCTFILE ?= mkoctfile
 +OCTAVE_CONFIG ?= octave-config
@@ -14,7 +164,7 @@
 +	ADDPARAM := -lpthread
 +else
 + ifdef COMSPEC 
- 	ADDPARAM := -lpthreadVC2
++ 	ADDPARAM := -lpthreadVC2
 + endif
  endif
  
@@ -27,152 +177,3 @@
  
  .phony: clean
  clean: 
-Only in fl-core.orig: fl-core
-diff -ur fl-core.orig/src/fl_compose.cc fl-core/src/fl_compose.cc
---- fl-core.orig/src/fl_compose.cc	2015-03-20 13:43:53.970074780 -0400
-+++ fl-core/src/fl_compose.cc	2015-09-30 13:51:56.498187582 -0400
-@@ -63,14 +63,14 @@
- // Structure for thread arguments. Each thread will perform the computation between the start_index and end_index row.
- struct threadArg
- {
--	int start_index;
--	int end_index;
-+	octave_idx_type start_index;
-+	octave_idx_type end_index;
- };
- 
- 
- // Functions prototype declaration
--float get_elem(float vec[], int row, int col,int numCols);
--void set_elem(float vec[], int row, int col, int numCols, float elem);
-+float get_elem(float vec[], octave_idx_type row, octave_idx_type col,octave_idx_type numCols);
-+void set_elem(float vec[], octave_idx_type row, octave_idx_type col, octave_idx_type numCols, float elem);
- int is_valid_function(octave_function *func);
- void *thread_function(void *arg);
- int get_available_cpus();
-@@ -110,13 +110,13 @@
- SparseMatrix sparseC;
- 
- // Matrices dimensions
--long int rowsA,rowsB,colsA,colsB,rowsC,colsC;
-+octave_idx_type rowsA,rowsB,colsA,colsB,rowsC,colsC;
- 
- // Lock option. 1 = calculation executed only for the diagonal of the matrix
- int lock_option;
- 
- // The increment 
--int col_index_increment;
-+octave_idx_type col_index_increment;
- 
- // Number of threads that will be created
- int num_threads;
-@@ -357,8 +357,8 @@
- 	else
- 	{	
- 		Matrix outMatrix(rowsC,colsC);
--		for(int i=0;i<rowsC;i++)
--			for(int j=0;j<colsC;j++)
-+		for(octave_idx_type i=0;i<rowsC;i++)
-+			for(octave_idx_type j=0;j<colsC;j++)
- 				outMatrix(i,j) = get_elem(c,i,j,colsC);
- 		
- 		if(sparse_res)
-@@ -390,15 +390,15 @@
- 	// Initialize the first matrix
- 	Matrix tempMatrix = args(0).matrix_value();
- 	a = new float[rowsA*colsA];
--	for (int i=0; i<rowsA; i++)
--		for(int j=0; j<colsA;j++)
-+	for (octave_idx_type i=0; i<rowsA; i++)
-+		for(octave_idx_type j=0; j<colsA;j++)
- 			a[i*colsA+j] = tempMatrix(i,j);
- 
- 	// Initialize the second matrix
- 	tempMatrix = args(1).matrix_value();
- 	b = new float[rowsB*colsB];
--	for (int i=0; i<rowsB; i++)
--		for(int j=0; j<colsB;j++)
-+	for (octave_idx_type i=0; i<rowsB; i++)
-+		for(octave_idx_type j=0; j<colsB;j++)
- 			b[i*colsB+j] = tempMatrix(i,j);
- 	
- 
-@@ -418,7 +418,7 @@
- 	}
- 
- 	// Define the number interval of rows for each thread		
--	int interval = rowsA / num_threads;	
-+	octave_idx_type interval = rowsA / num_threads;	
- 			
- 	int i;
- 	// Define the threads
-@@ -465,22 +465,22 @@
- 	float tnorm_val;	
- 
- 	// Initialize the result sparse matrix
--	sparseC = SparseMatrix((int)colsB, (int)rowsA, (int)(colsB*rowsA));
-+	sparseC = SparseMatrix(colsB, rowsA, (colsB*rowsA));
- 
-         // Initialize the number of nonzero elements in the sparse matrix c
-         int nel = 0;
-         sparseC.xcidx(0) = 0;
- 
- 	// Calculate the composition for each element
--        for (int i = 0; i < rowsC; i++)
-+        for (octave_idx_type i = 0; i < rowsC; i++)
-         {
--            for(int j = 0; j < colsC; j++)
-+            for(octave_idx_type j = 0; j < colsC; j++)
-             {
-                 
- 		// Get the index of the first element of the i-th column of a transpose (i-th row of a)
- 		// and the index of the first element of the j-th column of b
--		int ka = a.cidx(i);
--		int kb = b.cidx(j);
-+		octave_idx_type ka = a.cidx(i);
-+		octave_idx_type kb = b.cidx(j);
- 		snorm_val = 0;
- 	
- 		// Check if the values of the matrix are really not 0 (it happens if the column of a or b hasn't any value)
-@@ -549,18 +549,18 @@
- 	float tnorm_val;	
- 	
- 	// Get the row start_index and end_index 
--	int start_index = thread_args->start_index;
--	int end_index = thread_args->end_index;
-+	octave_idx_type start_index = thread_args->start_index;
-+	octave_idx_type end_index = thread_args->end_index;
- 	
- 
- 	// Calculate the composition for the specified rows (between start_index and end_index)
--	for (int i=start_index; i<end_index; i++)
-+	for (octave_idx_type i=start_index; i<end_index; i++)
- 	{		
--		for(int j=lock_option*i; j<colsB; j=j+col_index_increment)
-+		for(octave_idx_type j=lock_option*i; j<colsB; j=j+col_index_increment)
- 		{
- 			snorm_val = calc_tnorm(get_elem(a,i,0,colsA),get_elem(b,0,j,colsB));
- 
--			for(int k=1; k<colsA; k++)
-+			for(octave_idx_type k=1; k<colsA; k++)
- 			{					
- 				tnorm_val = calc_tnorm(get_elem(a,i,k,colsA),get_elem(b,k,j,colsB)); 
- 				snorm_val = calc_snorm(snorm_val,tnorm_val);
-@@ -767,7 +767,7 @@
- 
- 
- /* Get the (i,j)-th element from the vector vec. The column number of the original matrix (numCols) is required */
--float get_elem(float vec[], int row, int col,int numCols)
-+float get_elem(float vec[], octave_idx_type row, octave_idx_type col,octave_idx_type numCols)
- {
- 	return vec[row*numCols+col];
- }
-@@ -775,7 +775,7 @@
- 
- 
- /* Set the (i,j)-th element from the vector vec. The column number of the original matrix (numCols) is required */
--void set_elem(float vec[], int row, int col, int numCols, float elem)
-+void set_elem(float vec[], octave_idx_type row, octave_idx_type col, octave_idx_type numCols, float elem)
- {
- 	vec[row*numCols+col] = elem;
- 	return;