Adding test file and documentation for Linalg. The test fails at the moment.
[Math-GSL.git] / Matrix.i
blobf213f1c793ce2db457132b3eb0c70769925b8c3a
1 %module Matrix
3 %apply int *OUTPUT { size_t *imin, size_t *imax, size_t *jmin, size_t *jmax };
5 %apply double *OUTPUT { double * min_out, double * max_out };
6 %{
7 #include "/usr/local/include/gsl/gsl_matrix.h"
8 #include "/usr/local/include/gsl/gsl_vector_double.h"
9 #include "/usr/local/include/gsl/gsl_matrix_double.h"
10 #include "/usr/local/include/gsl/gsl_matrix_int.h"
11 #include "/usr/local/include/gsl/gsl_matrix_complex_double.h"
12 #include "/usr/local/include/gsl/gsl_matrix_char.h"
15 %include "/usr/local/include/gsl/gsl_matrix.h"
16 %include "/usr/local/include/gsl/gsl_vector_double.h"
17 %include "/usr/local/include/gsl/gsl_matrix_double.h"
18 %include "/usr/local/include/gsl/gsl_matrix_int.h"
19 %include "/usr/local/include/gsl/gsl_matrix_complex_double.h"
20 %include "/usr/local/include/gsl/gsl_matrix_char.h"
23 %perlcode %{
25 no warnings 'redefine';
27 @EXPORT_OK = qw/fopen fclose
28 gsl_matrix_alloc gsl_matrix_calloc gsl_matrix_alloc_from_block
29 gsl_matrix_alloc_from_matrix gsl_vector_alloc_row_from_matrix
30 gsl_vector_alloc_col_from_matrix gsl_matrix_free gsl_matrix_submatrix
31 gsl_matrix_row gsl_matrix_column gsl_matrix_diagonal
32 gsl_matrix_subdiagonal gsl_matrix_superdiagonal gsl_matrix_subrow
33 gsl_matrix_subcolumn gsl_matrix_view_array
34 gsl_matrix_view_array_with_tda gsl_matrix_view_vector
35 gsl_matrix_view_vector_with_tda gsl_matrix_const_submatrix
36 gsl_matrix_const_row gsl_matrix_const_column gsl_matrix_const_diagonal
37 gsl_matrix_const_subdiagonal gsl_matrix_const_superdiagonal
38 gsl_matrix_const_subrow gsl_matrix_const_subcolumn
39 gsl_matrix_const_view_array gsl_matrix_const_view_array_with_tda
40 gsl_matrix_const_view_vector gsl_matrix_const_view_vector_with_tda
41 gsl_matrix_get gsl_matrix_set gsl_matrix_ptr gsl_matrix_const_ptr
42 gsl_matrix_set_zero gsl_matrix_set_identity gsl_matrix_set_all
43 gsl_matrix_fread gsl_matrix_fwrite gsl_matrix_fscanf gsl_matrix_fprintf
44 gsl_matrix_memcpy gsl_matrix_swap gsl_matrix_swap_rows
45 gsl_matrix_swap_columns gsl_matrix_swap_rowcol gsl_matrix_transpose
46 gsl_matrix_transpose_memcpy gsl_matrix_max gsl_matrix_min
47 gsl_matrix_minmax gsl_matrix_max_index gsl_matrix_min_index
48 gsl_matrix_minmax_index gsl_matrix_isnull gsl_matrix_ispos
49 gsl_matrix_isneg gsl_matrix_isnonneg gsl_matrix_add gsl_matrix_sub
50 gsl_matrix_mul_elements gsl_matrix_div_elements gsl_matrix_scale
51 gsl_matrix_add_constant gsl_matrix_add_diagonal
52 gsl_matrix_char_alloc gsl_matrix_char_calloc gsl_matrix_char_alloc_from_block
53 gsl_matrix_char_alloc_from_matrix gsl_vector_char_alloc_row_from_matrix gsl_vector_char_alloc_col_from_matrix
54 gsl_matrix_char_free gsl_matrix_char_submatrix
55 gsl_matrix_char_row gsl_matrix_char_column
56 gsl_matrix_char_diagonal gsl_matrix_char_subdiagonal gsl_matrix_char_superdiagonal
57 gsl_matrix_char_subrow gsl_matrix_char_subcolumn gsl_matrix_char_view_array
58 gsl_matrix_char_view_array_with_tda gsl_matrix_char_view_vector gsl_matrix_char_view_vector_with_tda
59 gsl_matrix_char_const_submatrix gsl_matrix_char_const_row gsl_matrix_char_const_column
60 gsl_matrix_char_const_diagonal gsl_matrix_char_const_subdiagonal gsl_matrix_char_const_superdiagonal
61 gsl_matrix_char_const_subrow gsl_matrix_char_const_subcolumn gsl_matrix_char_const_view_array
62 gsl_matrix_char_const_view_array_with_tda gsl_matrix_char_const_view_vector gsl_matrix_char_const_view_vector_with_tda
63 gsl_matrix_char_get gsl_matrix_char_set gsl_matrix_char_ptr gsl_matrix_char_const_ptr
64 gsl_matrix_char_set_zero gsl_matrix_char_set_identity
65 gsl_matrix_char_set_all gsl_matrix_char_fread
66 gsl_matrix_char_fwrite gsl_matrix_char_fscanf gsl_matrix_char_fprintf
67 gsl_matrix_char_memcpy gsl_matrix_char_swap
68 gsl_matrix_char_swap_rows gsl_matrix_char_swap_columns
69 gsl_matrix_char_swap_rowcol gsl_matrix_char_transpose gsl_matrix_char_transpose_memcpy
70 gsl_matrix_char_max gsl_matrix_char_min
71 gsl_matrix_char_minmax gsl_matrix_char_max_index
72 gsl_matrix_char_min_index gsl_matrix_char_minmax_index
73 gsl_matrix_char_isnull gsl_matrix_char_ispos gsl_matrix_char_isneg
74 gsl_matrix_char_isnonneg gsl_matrix_char_add
75 gsl_matrix_char_sub gsl_matrix_char_mul_elements gsl_matrix_char_div_elements
76 gsl_matrix_char_scale gsl_matrix_char_add_constant gsl_matrix_char_add_diagonal
77 gsl_matrix_int_alloc gsl_matrix_int_calloc gsl_matrix_int_alloc_from_block
78 gsl_matrix_int_alloc_from_matrix gsl_vector_int_alloc_row_from_matrix gsl_vector_int_alloc_col_from_matrix
79 gsl_matrix_int_free gsl_matrix_int_submatrix gsl_matrix_int_row
80 gsl_matrix_int_column gsl_matrix_int_diagonal gsl_matrix_int_subdiagonal
81 gsl_matrix_int_superdiagonal gsl_matrix_int_subrow gsl_matrix_int_subcolumn gsl_matrix_int_view_array
82 gsl_matrix_int_view_array_with_tda gsl_matrix_int_view_vector gsl_matrix_int_view_vector_with_tda
83 gsl_matrix_int_const_submatrix gsl_matrix_int_const_row gsl_matrix_int_const_column
84 gsl_matrix_int_const_diagonal gsl_matrix_int_const_subdiagonal gsl_matrix_int_const_superdiagonal
85 gsl_matrix_int_const_subrow gsl_matrix_int_const_subcolumn gsl_matrix_int_const_view_array
86 gsl_matrix_int_const_view_array_with_tda gsl_matrix_int_const_view_vector gsl_matrix_int_const_view_vector_with_tda
87 gsl_matrix_int_get gsl_matrix_int_set
88 gsl_matrix_int_ptr gsl_matrix_int_const_ptr
89 gsl_matrix_int_set_zero gsl_matrix_int_set_identity gsl_matrix_int_set_all
90 gsl_matrix_int_fread gsl_matrix_int_fwrite
91 gsl_matrix_int_fscanf gsl_matrix_int_fprintf
92 gsl_matrix_int_memcpy gsl_matrix_int_swap
93 gsl_matrix_int_swap_rows gsl_matrix_int_swap_columns gsl_matrix_int_swap_rowcol
94 gsl_matrix_int_transpose gsl_matrix_int_transpose_memcpy
95 gsl_matrix_int_max gsl_matrix_int_min gsl_matrix_int_minmax
96 gsl_matrix_int_max_index gsl_matrix_int_min_index
97 gsl_matrix_int_minmax_index gsl_matrix_int_isnull
98 gsl_matrix_int_ispos gsl_matrix_int_isneg gsl_matrix_int_isnonneg
99 gsl_matrix_int_add gsl_matrix_int_sub
100 gsl_matrix_int_mul_elements gsl_matrix_int_div_elements gsl_matrix_int_scale
101 gsl_matrix_int_add_constant gsl_matrix_int_add_diagonal
102 gsl_matrix_get_row gsl_matrix_get_col gsl_matrix_set_row gsl_matrix_set_col
104 %EXPORT_TAGS = ( all => [ @EXPORT_OK ], char => [gsl_matrix_char_alloc, gsl_matrix_char_calloc, gsl_matrix_char_alloc_from_block, gsl_matrix_char_alloc_from_matrix, gsl_vector_char_alloc_row_from_matrix, gsl_vector_char_alloc_col_from_matrix, gsl_matrix_char_free, gsl_matrix_char_submatrix, gsl_matrix_char_row, gsl_matrix_char_column, gsl_matrix_char_diagonal, gsl_matrix_char_subdiagonal, gsl_matrix_char_superdiagonal, gsl_matrix_char_subrow, gsl_matrix_char_subcolumn, gsl_matrix_char_view_array, gsl_matrix_char_view_array_with_tda, gsl_matrix_char_view_vector, gsl_matrix_char_view_vector_with_tda, gsl_matrix_char_const_submatrix, gsl_matrix_char_const_row, gsl_matrix_char_const_column, gsl_matrix_char_const_diagonal, gsl_matrix_char_const_subdiagonal, gsl_matrix_char_const_superdiagonal, gsl_matrix_char_const_subrow, gsl_matrix_char_const_subcolumn, gsl_matrix_char_const_view_array, gsl_matrix_char_const_view_array_with_tda, gsl_matrix_char_const_view_vector, gsl_matrix_char_const_view_vector_with_tda, gsl_matrix_char_get, gsl_matrix_char_set, gsl_matrix_char_ptr, gsl_matrix_char_const_ptr, gsl_matrix_char_set_zero, gsl_matrix_char_set_identity, gsl_matrix_char_set_all, gsl_matrix_char_fread, gsl_matrix_char_fwrite, gsl_matrix_char_fscanf, gsl_matrix_char_fprintf, gsl_matrix_char_memcpy, gsl_matrix_char_swap, gsl_matrix_char_swap_rows, gsl_matrix_char_swap_columns, gsl_matrix_char_swap_rowcol, gsl_matrix_char_transpose, gsl_matrix_char_transpose_memcpy, gsl_matrix_char_max, gsl_matrix_char_min, gsl_matrix_char_minmax, gsl_matrix_char_max_index, gsl_matrix_char_min_index, gsl_matrix_char_minmax_index, gsl_matrix_char_isnull, gsl_matrix_char_ispos, gsl_matrix_char_isneg, gsl_matrix_char_isnonneg, gsl_matrix_char_add, gsl_matrix_char_sub, gsl_matrix_char_mul_elements, gsl_matrix_char_div_elements, gsl_matrix_char_scale, gsl_matrix_char_add_constant, gsl_matrix_char_add_diagonal], double => [ gsl_matrix_alloc, gsl_matrix_calloc, gsl_matrix_alloc_from_block, gsl_matrix_alloc_from_matrix, gsl_vector_alloc_row_from_matrix, gsl_vector_alloc_col_from_matrix, gsl_matrix_free, gsl_matrix_submatrix, gsl_matrix_row, gsl_matrix_column, gsl_matrix_diagonal, gsl_matrix_subdiagonal, gsl_matrix_superdiagonal, gsl_matrix_subrow, gsl_matrix_subcolumn, gsl_matrix_view_array, gsl_matrix_view_array_with_tda, gsl_matrix_view_vector, gsl_matrix_view_vector_with_tda, gsl_matrix_const_submatrix, gsl_matrix_const_row, gsl_matrix_const_column, gsl_matrix_const_diagonal, gsl_matrix_const_subdiagonal, gsl_matrix_const_superdiagonal, gsl_matrix_const_subrow, gsl_matrix_const_subcolumn, gsl_matrix_const_view_array, gsl_matrix_const_view_array_with_tda, gsl_matrix_const_view_vector, gsl_matrix_const_view_vector_with_tda, gsl_matrix_get, gsl_matrix_set, gsl_matrix_ptr, gsl_matrix_const_ptr, gsl_matrix_set_zero, gsl_matrix_set_identity, gsl_matrix_set_all, gsl_matrix_fread, gsl_matrix_fwrite, gsl_matrix_fscanf, gsl_matrix_fprintf, gsl_matrix_memcpy, gsl_matrix_swap, gsl_matrix_swap_rows, gsl_matrix_swap_columns, gsl_matrix_swap_rowcol, gsl_matrix_transpose, gsl_matrix_transpose_memcpy, gsl_matrix_max, gsl_matrix_minmax, gsl_matrix_max_index, gsl_matrix_min_index, gsl_matrix_minmax_index, gsl_matrix_isnull, gsl_matrix_ispos, gsl_matrix_isneg, gsl_matrix_isnonneg, gsl_matrix_add, gsl_matrix_mul_elements, gsl_matrix_div_elements, gsl_matrix_scale, gsl_matrix_add_constant, gsl_matrix_add_diagonal], int => [gsl_matrix_int_alloc, gsl_matrix_int_alloc_from_matrix, gsl_matrix_int_free, gsl_matrix_int_column, gsl_matrix_int_superdiagonal, gsl_matrix_int_view_array_with_tda, gsl_matrix_int_const_submatrix, gsl_matrix_int_const_diagonal, gsl_matrix_int_const_subrow, gsl_matrix_int_const_view_array_with_tda, gsl_matrix_int_get, gsl_matrix_int_ptr, gsl_matrix_int_set_zero, gsl_matrix_int_fread, gsl_matrix_int_fscanf, gsl_matrix_int_memcpy, gsl_matrix_int_swap_rows, gsl_matrix_int_transpose, gsl_matrix_int_max, gsl_matrix_int_max_index, gsl_matrix_int_minmax_index, gsl_matrix_int_ispos, gsl_matrix_int_add, gsl_matrix_int_mul_elements, gsl_matrix_int_add_constant]);
106 __END__
108 =head1 NAME
110 Math::GSL::Matrix - Mathematical functions concerning Matrices
112 =head1 SYPNOPSIS
114 use Math::GSL::Matrix qw/:all/;
116 =head1 DESCRIPTION
118 Here is a list of all the functions included in this module :
120 gsl_matrix_alloc($i, $j) - Return a gsl_matrix of $i rows and $j columns
121 gsl_matrix_calloc($i, $j) - Return a gsl_matrix of $i rows and $j columns and initialize all of the elements of the matrix to zero
122 gsl_matrix_alloc_from_block
123 gsl_matrix_alloc_from_matrix
124 gsl_vector_alloc_row_from_matrix
125 gsl_vector_alloc_col_from_matrix
126 gsl_matrix_free
127 gsl_matrix_submatrix($m, $k1, $k2, $n1, $n2) - Return a matrix view of the matrix $m. The upper-left element of the submatrix is the element ($k1,$k2) of the original matrix. The submatrix has $n1 rows and $n2 columns.
128 gsl_matrix_row($m , $i) - Return a vector view of the $i-th row of the matrix $m
129 gsl_matrix_column($m, $j) - Return a vector view of the $j-th column of the matrix $m
130 gsl_matrix_diagonal($m) - Return a vector view of the diagonal of the vector. The matrix doesn't have to be square.
131 gsl_matrix_subdiagonal($m, $k) - Return a vector view of the $k-th subdiagonal of the matrix $m. The diagonal of the matrix corresponds to k=0.
132 gsl_matrix_superdiagonal($m, $k) - Return a vector view of the $k-th superdiagonal of the matrix $m. The matrix doesn't have to be square.
133 gsl_matrix_subrow($m, $i, $offset, $n) - Return a vector view of the $i-th row of the matrix $m beginning at offset elements and containing n elements.
134 gsl_matrix_subcolumn($m, $j, $offset, $n) - Return a vector view of the $j-th column of the matrix $m beginning at offset elements and containing n elements.
135 gsl_matrix_view_array
136 gsl_matrix_view_array_with_tda
137 gsl_matrix_view_vector
138 gsl_matrix_view_vector_with_tda
139 gsl_matrix_const_submatrix
140 gsl_matrix_get($m, $i, $j) - Return the (i,j)-th element of the matrix $m
141 gsl_matrix_set($m, $i, $j, $x) - Set the value of the (i,j)-th element of the matrix $m to $x
142 gsl_matrix_ptr
143 gsl_matrix_const_ptr
144 gsl_matrix_set_zero($m) - Set all the elements of the matrix $m to zero
145 gsl_matrix_set_identity($m) - Set the elements of the matrix $m to the corresponding elements of the identity matrix
146 gsl_matrix_set_all($m, $x) - Set all the elements of the matrix $m to the value $x
147 gsl_matrix_fread($fh, $m) - Read a file which has been written with gsl_matrix_fwrite from the stream $fh opened with the fopen function and stores the data inside the matrix $m
148 gsl_matrix_fwrite($fh, $m) - Write the elements of the matrix $m in binary format to a stream $fh opened with the fopen function
149 gsl_matrix_fscanf($fh, $m) - Read a file which has been written with gsl_matrix_fprintf from the stream $fh opened with the fopen function and stores the data inside the matrix $m
150 gsl_matrix_fprintf($fh, $m, $format) - Write the elements of the matrix $m in the format $format (for example "%f" is the format for double) to a stream $fh opened with the fopen function
151 gsl_matrix_memcpy($dest, $src) - Copy the elements of the matrix $src to the matrix $dest. The two matrices must have the same size.
152 gsl_matrix_swap($m1, $m2) - Exchange the elements of the matrices $m1 and $m2 by copying. The two matrices must have the same size.
153 gsl_matrix_swap_rows($m, $i, $j) - Exchange the $i-th and $j-th row of the matrix $m. The function returns 0 if the operation suceeded, 1 otherwise.
154 gsl_matrix_swap_columns($m, $i, $j) - Exchange the $i-th and $j-th column of the matrix $m. The function returns 0 if the operation suceeded, 1 otherwise.
155 gsl_matrix_swap_rowcol($m, $i, $j) - Exchange the $i-th row and the $j-th column of the matrix $m. The matrix must be square. The function returns 0 if the operation suceeded, 1 otherwise.
156 gsl_matrix_transpose($m) - This function replaces the matrix m by its transpose by copying the elements of the matrix in-place. The matrix must be square for this operation to be possible.
157 gsl_matrix_transpose_memcpy($dest, $src) - Make the matrix $dest the transpose of the matrix $src. This function works for all matrices provided that the dimensions of the matrix dest match the transposed dimensions of the matrix src.
158 gsl_matrix_max($m) - Return the maximum value in the matrix $m
159 gsl_matrix_min($m) - Return the minimum value in the matrix $m
160 gsl_matrix_minmax($m) - Return two values, the first is the minimum value of the Matrix $m and the second is the maximum of the same the same matrix.
161 gsl_matrix_max_index($m) - Return two values, the first is the the i indice of the maximum value of the matrix $m and the second is the j indice of the same value.
162 gsl_matrix_min_index - Return two values, the first is the the i indice of the minimum value of the matrix $m and the second is the j indice of the same value.
163 gsl_matrix_minmax_index($m) - Return four values, the first is the i indice of the minimum of the matrix $m, the second is the j indice of the same value, the third is the i indice of the maximum of the matrix $m and the fourth is the j indice of the same value
164 gsl_matrix_isnull($m) - Return 1 if all the elements of the matrix $m are zero, 0 otherwise
165 gsl_matrix_ispos($m) - Return 1 if all the elements of the matrix $m are strictly positve, 0 otherwise
166 gsl_matrix_isneg($m) - Return 1 if all the elements of the matrix $m are strictly negative, 0 otherwise
167 gsl_matrix_isnonneg($m) - Return 1 if all the elements of the matrix $m are non-negatuive, 0 otherwise
168 gsl_matrix_add($a, $b) - Add the elements of matrix $b to the elements of matrix $a
169 gsl_matrix_sub($a, $b) - Subtract the elements of matrix $b from the elements of matrix $a
170 gsl_matrix_mul_elements($a, $b) - Multiplie the elements of matrix $a by the elements of matrix $b
171 gsl_matrix_div_elements($a, $b) - Divide the elements of matrix $a by the elements of matrix $b
172 gsl_matrix_scale($a, $x) - Multiplie the elements of matrix $a by the constant factor $x
173 gsl_matrix_add_constant($a, $x) - Add the constant value $x to the elements of the matrix $a
174 gsl_matrix_add_diagonal($a, $x) - Add the constant value $x to the elements of the diagonal of the matrix $a
175 gsl_matrix_get_row($v, $m, $i) - Copy the elements of the $i-th row of the matrix $m into the vector $v. The lenght of the vector must be of the same as the lenght of the row. The function returns 0 if it succeded, 1 otherwise.
176 gsl_matrix_get_col($v, $m, $i) - Copy the elements of the $j-th column of the matrix $m into the vector $v. The lenght of the vector must be of the same as the lenght of the column. The function returns 0 if it succeded, 1 otherwise.
177 gsl_matrix_set_row($m, $i, $v) - Copy the elements of vector $v into the $i-th row of the matrix $m The lenght of the vector must be of the same as the lenght of the row. The function returns 0 if it succeded, 1 otherwise.
178 gsl_matrix_set_col($m, $j, $v) - Copy the elements of vector $v into the $j-th row of the matrix $m The lenght of the vector must be of the same as the lenght of the column. The function returns 0 if it succeded, 1 otherwise.
181 The following functions are the same as the previous enonced ones except that they work with other data types than double.
183 gsl_matrix_const_row gsl_matrix_const_column gsl_matrix_const_diagonal
184 gsl_matrix_const_subdiagonal gsl_matrix_const_superdiagonal
185 gsl_matrix_const_subrow gsl_matrix_const_subcolumn
186 gsl_matrix_const_view_array gsl_matrix_const_view_array_with_tda
187 gsl_matrix_const_view_vector gsl_matrix_const_view_vector_with_tda
188 gsl_matrix_char_alloc gsl_matrix_char_calloc gsl_matrix_char_alloc_from_block
189 gsl_matrix_char_alloc_from_matrix gsl_vector_char_alloc_row_from_matrix gsl_vector_char_alloc_col_from_matrix
190 gsl_matrix_char_free gsl_matrix_char_submatrix
191 gsl_matrix_char_row gsl_matrix_char_column
192 gsl_matrix_char_diagonal gsl_matrix_char_subdiagonal gsl_matrix_char_superdiagonal
193 gsl_matrix_char_subrow gsl_matrix_char_subcolumn gsl_matrix_char_view_array
194 gsl_matrix_char_view_array_with_tda gsl_matrix_char_view_vector gsl_matrix_char_view_vector_with_tda
195 gsl_matrix_char_const_submatrix gsl_matrix_char_const_row gsl_matrix_char_const_column
196 gsl_matrix_char_const_diagonal gsl_matrix_char_const_subdiagonal gsl_matrix_char_const_superdiagonal
197 gsl_matrix_char_const_subrow gsl_matrix_char_const_subcolumn gsl_matrix_char_const_view_array
198 gsl_matrix_char_const_view_array_with_tda gsl_matrix_char_const_view_vector gsl_matrix_char_const_view_vector_with_tda
199 gsl_matrix_char_get gsl_matrix_char_set gsl_matrix_char_ptr gsl_matrix_char_const_ptr
200 gsl_matrix_char_set_zero gsl_matrix_char_set_identity
201 gsl_matrix_char_set_all gsl_matrix_char_fread
202 gsl_matrix_char_fwrite gsl_matrix_char_fscanf gsl_matrix_char_fprintf
203 gsl_matrix_char_memcpy gsl_matrix_char_swap
204 gsl_matrix_char_swap_rows gsl_matrix_char_swap_columns
205 gsl_matrix_char_swap_rowcol gsl_matrix_char_transpose gsl_matrix_char_transpose_memcpy
206 gsl_matrix_char_max gsl_matrix_char_min
207 gsl_matrix_char_minmax gsl_matrix_char_max_index
208 gsl_matrix_char_min_index gsl_matrix_char_minmax_index
209 gsl_matrix_char_isnull gsl_matrix_char_ispos gsl_matrix_char_isneg
210 gsl_matrix_char_isnonneg gsl_matrix_char_add
211 gsl_matrix_char_sub gsl_matrix_char_mul_elements gsl_matrix_char_div_elements
212 gsl_matrix_char_scale gsl_matrix_char_add_constant gsl_matrix_char_add_diagonal
213 gsl_matrix_int_alloc gsl_matrix_int_calloc gsl_matrix_int_alloc_from_block
214 gsl_matrix_int_alloc_from_matrix gsl_vector_int_alloc_row_from_matrix gsl_vector_int_alloc_col_from_matrix
215 gsl_matrix_int_free gsl_matrix_int_submatrix gsl_matrix_int_row
216 gsl_matrix_int_column gsl_matrix_int_diagonal gsl_matrix_int_subdiagonal
217 gsl_matrix_int_superdiagonal gsl_matrix_int_subrow gsl_matrix_int_subcolumn gsl_matrix_int_view_array
218 gsl_matrix_int_view_array_with_tda gsl_matrix_int_view_vector gsl_matrix_int_view_vector_with_tda
219 gsl_matrix_int_const_submatrix gsl_matrix_int_const_row gsl_matrix_int_const_column
220 gsl_matrix_int_const_diagonal gsl_matrix_int_const_subdiagonal gsl_matrix_int_const_superdiagonal
221 gsl_matrix_int_const_subrow gsl_matrix_int_const_subcolumn gsl_matrix_int_const_view_array
222 gsl_matrix_int_const_view_array_with_tda gsl_matrix_int_const_view_vector gsl_matrix_int_const_view_vector_with_tda
223 gsl_matrix_int_get gsl_matrix_int_set
224 gsl_matrix_int_ptr gsl_matrix_int_const_ptr
225 gsl_matrix_int_set_zero gsl_matrix_int_set_identity gsl_matrix_int_set_all
226 gsl_matrix_int_fread gsl_matrix_int_fwrite
227 gsl_matrix_int_fscanf gsl_matrix_int_fprintf
228 gsl_matrix_int_memcpy gsl_matrix_int_swap
229 gsl_matrix_int_swap_rows gsl_matrix_int_swap_columns gsl_matrix_int_swap_rowcol
230 gsl_matrix_int_transpose gsl_matrix_int_transpose_memcpy
231 gsl_matrix_int_max gsl_matrix_int_min gsl_matrix_int_minmax
232 gsl_matrix_int_max_index gsl_matrix_int_min_index
233 gsl_matrix_int_minmax_index gsl_matrix_int_isnull
234 gsl_matrix_int_ispos gsl_matrix_int_isneg gsl_matrix_int_isnonneg
235 gsl_matrix_int_add gsl_matrix_int_sub
236 gsl_matrix_int_mul_elements gsl_matrix_int_div_elements gsl_matrix_int_scale
237 gsl_matrix_int_add_constant gsl_matrix_int_add_diagonal
239 You have to add the functions you want to use inside the qw /put_funtion_here /.
240 You can also write use Math::GSL::PowInt qw/:name_of_tag/ to use all avaible functions of the module.
241 Other tags are also avaible, here is a complete list of all tags for this module :
243 all
244 int
245 double
246 char
248 For more informations on the functions, we refer you to the GSL offcial documentation: http://www.gnu.org/software/gsl/manual/html_node/
249 Tip : search on google: site:http://www.gnu.org/software/gsl/manual/html_node/name_of_the_function_you_want
251 =head1 EXAMPLES
253 Most of the examples from this section are perl versions of the examples there : http://www.gnu.org/software/gsl/manual/html_node/Example-programs-for-matrices.html
255 The program below shows how to allocate, initialize and read from a matrix using the functions gsl_matrix_alloc, gsl_matrix_set and gsl_matrix_get.
257 use Math::GSL::Matrix qw/:all/;
258 $m = gsl_matrix_alloc (10,3);
259 for($i = 0; $i< 10; $i++){
260 for($j = 0; $j<3; $j++){
261 gsl_matrix_set($m, $i, $j, 0.23 + 100*$i + $j);
265 for($i = 0; $i< 100; $i++){ # OUT OF RANGE ERROR
266 for($j=0; $j<3; $j++){
267 print "m($i, $j) = " . gsl_matrix_get ($m, $i, $j) . "\n";
270 gsl_matrix_free ($m);
273 use Math::GSL::Matrix qw/:all/;
275 $m = gsl_matrix_alloc (100, 100);
276 $a = gsl_matrix_alloc (100, 100);
278 for($i = 0; $i < 100; $i++){
279 for($j = 0; $j < 100; $j++){
280 gsl_matrix_set ($m, $i, $j, 0.23 + $i + $j);
284 The next program shows how to write a matrix to a file.
286 $out = fopen("test.dat", "wb");
287 gsl_matrix_fwrite ($out, $m);
288 fclose ($out);
290 $in = fopen("test.dat", "rb");
291 gsl_matrix_fread ($in, $a);
292 fclose($in);
294 $k=0;
295 for($i = 0; $i < 100; $i++){
296 for($j = 0; $j < 100; $j++){
297 $mij = gsl_matrix_get ($m, $i, $j);
298 $aij = gsl_matrix_get ($a, $i, $j);
299 if ($mij != $aij){ $k++ };
303 gsl_matrix_free($m);
304 gsl_matrix_free($a);
306 print "differences = $k (should be zero)\n";
308 =head1 AUTHOR
310 Jonathan Leto <jonathan@leto.net> and Thierry Moisan <thierry.moisan@gmail.com>
312 =head1 COPYRIGHT AND LICENSE
314 Copyright (C) 2008 Jonathan Leto and Thierry Moisan
316 This program is free software; you can redistribute it and/or modify it
317 under the same terms as Perl itself.
319 =cut