Mercurial > mxe-octave
comparison src/of-fl-core-1-fixes.patch @ 4039:1c72016826aa
of-fl-core: update patch for --enable-64
* src/of-fl-core-1-fixes.patch: update patch
author | John Donoghue |
---|---|
date | Wed, 30 Sep 2015 14:11:45 -0400 |
parents | b36a7ab4bd2c |
children | b54e00ea56bc |
comparison
equal
deleted
inserted
replaced
4038:de0b5dfe77f6 | 4039:1c72016826aa |
---|---|
25 - mkoctfile -s $< $(ADDPARAM) | 25 - mkoctfile -s $< $(ADDPARAM) |
26 + $(MKOCTFILE) -s $< $(ADDPARAM) | 26 + $(MKOCTFILE) -s $< $(ADDPARAM) |
27 | 27 |
28 .phony: clean | 28 .phony: clean |
29 clean: | 29 clean: |
30 Only in fl-core.orig: fl-core | |
31 diff -ur fl-core.orig/src/fl_compose.cc fl-core/src/fl_compose.cc | |
32 --- fl-core.orig/src/fl_compose.cc 2015-03-20 13:43:53.970074780 -0400 | |
33 +++ fl-core/src/fl_compose.cc 2015-09-30 13:51:56.498187582 -0400 | |
34 @@ -63,14 +63,14 @@ | |
35 // Structure for thread arguments. Each thread will perform the computation between the start_index and end_index row. | |
36 struct threadArg | |
37 { | |
38 - int start_index; | |
39 - int end_index; | |
40 + octave_idx_type start_index; | |
41 + octave_idx_type end_index; | |
42 }; | |
43 | |
44 | |
45 // Functions prototype declaration | |
46 -float get_elem(float vec[], int row, int col,int numCols); | |
47 -void set_elem(float vec[], int row, int col, int numCols, float elem); | |
48 +float get_elem(float vec[], octave_idx_type row, octave_idx_type col,octave_idx_type numCols); | |
49 +void set_elem(float vec[], octave_idx_type row, octave_idx_type col, octave_idx_type numCols, float elem); | |
50 int is_valid_function(octave_function *func); | |
51 void *thread_function(void *arg); | |
52 int get_available_cpus(); | |
53 @@ -110,13 +110,13 @@ | |
54 SparseMatrix sparseC; | |
55 | |
56 // Matrices dimensions | |
57 -long int rowsA,rowsB,colsA,colsB,rowsC,colsC; | |
58 +octave_idx_type rowsA,rowsB,colsA,colsB,rowsC,colsC; | |
59 | |
60 // Lock option. 1 = calculation executed only for the diagonal of the matrix | |
61 int lock_option; | |
62 | |
63 // The increment | |
64 -int col_index_increment; | |
65 +octave_idx_type col_index_increment; | |
66 | |
67 // Number of threads that will be created | |
68 int num_threads; | |
69 @@ -357,8 +357,8 @@ | |
70 else | |
71 { | |
72 Matrix outMatrix(rowsC,colsC); | |
73 - for(int i=0;i<rowsC;i++) | |
74 - for(int j=0;j<colsC;j++) | |
75 + for(octave_idx_type i=0;i<rowsC;i++) | |
76 + for(octave_idx_type j=0;j<colsC;j++) | |
77 outMatrix(i,j) = get_elem(c,i,j,colsC); | |
78 | |
79 if(sparse_res) | |
80 @@ -390,15 +390,15 @@ | |
81 // Initialize the first matrix | |
82 Matrix tempMatrix = args(0).matrix_value(); | |
83 a = new float[rowsA*colsA]; | |
84 - for (int i=0; i<rowsA; i++) | |
85 - for(int j=0; j<colsA;j++) | |
86 + for (octave_idx_type i=0; i<rowsA; i++) | |
87 + for(octave_idx_type j=0; j<colsA;j++) | |
88 a[i*colsA+j] = tempMatrix(i,j); | |
89 | |
90 // Initialize the second matrix | |
91 tempMatrix = args(1).matrix_value(); | |
92 b = new float[rowsB*colsB]; | |
93 - for (int i=0; i<rowsB; i++) | |
94 - for(int j=0; j<colsB;j++) | |
95 + for (octave_idx_type i=0; i<rowsB; i++) | |
96 + for(octave_idx_type j=0; j<colsB;j++) | |
97 b[i*colsB+j] = tempMatrix(i,j); | |
98 | |
99 | |
100 @@ -418,7 +418,7 @@ | |
101 } | |
102 | |
103 // Define the number interval of rows for each thread | |
104 - int interval = rowsA / num_threads; | |
105 + octave_idx_type interval = rowsA / num_threads; | |
106 | |
107 int i; | |
108 // Define the threads | |
109 @@ -465,22 +465,22 @@ | |
110 float tnorm_val; | |
111 | |
112 // Initialize the result sparse matrix | |
113 - sparseC = SparseMatrix((int)colsB, (int)rowsA, (int)(colsB*rowsA)); | |
114 + sparseC = SparseMatrix(colsB, rowsA, (colsB*rowsA)); | |
115 | |
116 // Initialize the number of nonzero elements in the sparse matrix c | |
117 int nel = 0; | |
118 sparseC.xcidx(0) = 0; | |
119 | |
120 // Calculate the composition for each element | |
121 - for (int i = 0; i < rowsC; i++) | |
122 + for (octave_idx_type i = 0; i < rowsC; i++) | |
123 { | |
124 - for(int j = 0; j < colsC; j++) | |
125 + for(octave_idx_type j = 0; j < colsC; j++) | |
126 { | |
127 | |
128 // Get the index of the first element of the i-th column of a transpose (i-th row of a) | |
129 // and the index of the first element of the j-th column of b | |
130 - int ka = a.cidx(i); | |
131 - int kb = b.cidx(j); | |
132 + octave_idx_type ka = a.cidx(i); | |
133 + octave_idx_type kb = b.cidx(j); | |
134 snorm_val = 0; | |
135 | |
136 // Check if the values of the matrix are really not 0 (it happens if the column of a or b hasn't any value) | |
137 @@ -549,18 +549,18 @@ | |
138 float tnorm_val; | |
139 | |
140 // Get the row start_index and end_index | |
141 - int start_index = thread_args->start_index; | |
142 - int end_index = thread_args->end_index; | |
143 + octave_idx_type start_index = thread_args->start_index; | |
144 + octave_idx_type end_index = thread_args->end_index; | |
145 | |
146 | |
147 // Calculate the composition for the specified rows (between start_index and end_index) | |
148 - for (int i=start_index; i<end_index; i++) | |
149 + for (octave_idx_type i=start_index; i<end_index; i++) | |
150 { | |
151 - for(int j=lock_option*i; j<colsB; j=j+col_index_increment) | |
152 + for(octave_idx_type j=lock_option*i; j<colsB; j=j+col_index_increment) | |
153 { | |
154 snorm_val = calc_tnorm(get_elem(a,i,0,colsA),get_elem(b,0,j,colsB)); | |
155 | |
156 - for(int k=1; k<colsA; k++) | |
157 + for(octave_idx_type k=1; k<colsA; k++) | |
158 { | |
159 tnorm_val = calc_tnorm(get_elem(a,i,k,colsA),get_elem(b,k,j,colsB)); | |
160 snorm_val = calc_snorm(snorm_val,tnorm_val); | |
161 @@ -767,7 +767,7 @@ | |
162 | |
163 | |
164 /* Get the (i,j)-th element from the vector vec. The column number of the original matrix (numCols) is required */ | |
165 -float get_elem(float vec[], int row, int col,int numCols) | |
166 +float get_elem(float vec[], octave_idx_type row, octave_idx_type col,octave_idx_type numCols) | |
167 { | |
168 return vec[row*numCols+col]; | |
169 } | |
170 @@ -775,7 +775,7 @@ | |
171 | |
172 | |
173 /* Set the (i,j)-th element from the vector vec. The column number of the original matrix (numCols) is required */ | |
174 -void set_elem(float vec[], int row, int col, int numCols, float elem) | |
175 +void set_elem(float vec[], octave_idx_type row, octave_idx_type col, octave_idx_type numCols, float elem) | |
176 { | |
177 vec[row*numCols+col] = elem; | |
178 return; |