3 #include
"/usr/local/include/gsl/gsl_matrix.h"
4 #include
"/usr/local/include/gsl/gsl_matrix_double.h"
5 #include
"/usr/local/include/gsl/gsl_matrix_int.h"
6 #include
"/usr/local/include/gsl/gsl_matrix_complex_double.h"
7 #include
"/usr/local/include/gsl/gsl_matrix_char.h"
10 %include
"/usr/local/include/gsl/gsl_matrix.h"
11 %include
"/usr/local/include/gsl/gsl_matrix_double.h"
12 %include
"/usr/local/include/gsl/gsl_matrix_int.h"
13 %include
"/usr/local/include/gsl/gsl_matrix_complex_double.h"
14 %include
"/usr/local/include/gsl/gsl_matrix_char.h"
16 FILE *fopen
(char
*, char
*);
21 no warnings 'redefine'
;
23 @EXPORT_OK
= qw
/fopen fclose
24 gsl_matrix_alloc gsl_matrix_calloc gsl_matrix_alloc_from_block
25 gsl_matrix_alloc_from_matrix gsl_vector_alloc_row_from_matrix
26 gsl_vector_alloc_col_from_matrix gsl_matrix_free gsl_matrix_submatrix
27 gsl_matrix_row gsl_matrix_column gsl_matrix_diagonal
28 gsl_matrix_subdiagonal gsl_matrix_superdiagonal gsl_matrix_subrow
29 gsl_matrix_subcolumn gsl_matrix_view_array
30 gsl_matrix_view_array_with_tda gsl_matrix_view_vector
31 gsl_matrix_view_vector_with_tda gsl_matrix_const_submatrix
32 gsl_matrix_const_row gsl_matrix_const_column gsl_matrix_const_diagonal
33 gsl_matrix_const_subdiagonal gsl_matrix_const_superdiagonal
34 gsl_matrix_const_subrow gsl_matrix_const_subcolumn
35 gsl_matrix_const_view_array gsl_matrix_const_view_array_with_tda
36 gsl_matrix_const_view_vector gsl_matrix_const_view_vector_with_tda
37 gsl_matrix_get gsl_matrix_set gsl_matrix_ptr gsl_matrix_const_ptr
38 gsl_matrix_set_zero gsl_matrix_set_identity gsl_matrix_set_all
39 gsl_matrix_fread gsl_matrix_fwrite gsl_matrix_fscanf gsl_matrix_fprintf
40 gsl_matrix_memcpy gsl_matrix_swap gsl_matrix_swap_rows
41 gsl_matrix_swap_columns gsl_matrix_swap_rowcol gsl_matrix_transpose
42 gsl_matrix_transpose_memcpy gsl_matrix_max gsl_matrix_min
43 gsl_matrix_minmax gsl_matrix_max_index gsl_matrix_min_index
44 gsl_matrix_minmax_index gsl_matrix_isnull gsl_matrix_ispos
45 gsl_matrix_isneg gsl_matrix_isnonneg gsl_matrix_add gsl_matrix_sub
46 gsl_matrix_mul_elements gsl_matrix_div_elements gsl_matrix_scale
47 gsl_matrix_add_constant gsl_matrix_add_diagonal
48 gsl_matrix_char_alloc gsl_matrix_char_calloc gsl_matrix_char_alloc_from_block
49 gsl_matrix_char_alloc_from_matrix gsl_vector_char_alloc_row_from_matrix gsl_vector_char_alloc_col_from_matrix
50 gsl_matrix_char_free gsl_matrix_char_submatrix
51 gsl_matrix_char_row gsl_matrix_char_column
52 gsl_matrix_char_diagonal gsl_matrix_char_subdiagonal gsl_matrix_char_superdiagonal
53 gsl_matrix_char_subrow gsl_matrix_char_subcolumn gsl_matrix_char_view_array
54 gsl_matrix_char_view_array_with_tda gsl_matrix_char_view_vector gsl_matrix_char_view_vector_with_tda
55 gsl_matrix_char_const_submatrix gsl_matrix_char_const_row gsl_matrix_char_const_column
56 gsl_matrix_char_const_diagonal gsl_matrix_char_const_subdiagonal gsl_matrix_char_const_superdiagonal
57 gsl_matrix_char_const_subrow gsl_matrix_char_const_subcolumn gsl_matrix_char_const_view_array
58 gsl_matrix_char_const_view_array_with_tda gsl_matrix_char_const_view_vector gsl_matrix_char_const_view_vector_with_tda
59 gsl_matrix_char_get gsl_matrix_char_set gsl_matrix_char_ptr gsl_matrix_char_const_ptr
60 gsl_matrix_char_set_zero gsl_matrix_char_set_identity
61 gsl_matrix_char_set_all gsl_matrix_char_fread
62 gsl_matrix_char_fwrite gsl_matrix_char_fscanf gsl_matrix_char_fprintf
63 gsl_matrix_char_memcpy gsl_matrix_char_swap
64 gsl_matrix_char_swap_rows gsl_matrix_char_swap_columns
65 gsl_matrix_char_swap_rowcol gsl_matrix_char_transpose gsl_matrix_char_transpose_memcpy
66 gsl_matrix_char_max gsl_matrix_char_min
67 gsl_matrix_char_minmax gsl_matrix_char_max_index
68 gsl_matrix_char_min_index gsl_matrix_char_minmax_index
69 gsl_matrix_char_isnull gsl_matrix_char_ispos gsl_matrix_char_isneg
70 gsl_matrix_char_isnonneg gsl_matrix_char_add
71 gsl_matrix_char_sub gsl_matrix_char_mul_elements gsl_matrix_char_div_elements
72 gsl_matrix_char_scale gsl_matrix_char_add_constant gsl_matrix_char_add_diagonal
73 gsl_matrix_int_alloc gsl_matrix_int_calloc gsl_matrix_int_alloc_from_block
74 gsl_matrix_int_alloc_from_matrix gsl_vector_int_alloc_row_from_matrix gsl_vector_int_alloc_col_from_matrix
75 gsl_matrix_int_free gsl_matrix_int_submatrix gsl_matrix_int_row
76 gsl_matrix_int_column gsl_matrix_int_diagonal gsl_matrix_int_subdiagonal
77 gsl_matrix_int_superdiagonal gsl_matrix_int_subrow gsl_matrix_int_subcolumn gsl_matrix_int_view_array
78 gsl_matrix_int_view_array_with_tda gsl_matrix_int_view_vector gsl_matrix_int_view_vector_with_tda
79 gsl_matrix_int_const_submatrix gsl_matrix_int_const_row gsl_matrix_int_const_column
80 gsl_matrix_int_const_diagonal gsl_matrix_int_const_subdiagonal gsl_matrix_int_const_superdiagonal
81 gsl_matrix_int_const_subrow gsl_matrix_int_const_subcolumn gsl_matrix_int_const_view_array
82 gsl_matrix_int_const_view_array_with_tda gsl_matrix_int_const_view_vector gsl_matrix_int_const_view_vector_with_tda
83 gsl_matrix_int_get gsl_matrix_int_set
84 gsl_matrix_int_ptr gsl_matrix_int_const_ptr
85 gsl_matrix_int_set_zero gsl_matrix_int_set_identity gsl_matrix_int_set_all
86 gsl_matrix_int_fread gsl_matrix_int_fwrite
87 gsl_matrix_int_fscanf gsl_matrix_int_fprintf
88 gsl_matrix_int_memcpy gsl_matrix_int_swap
89 gsl_matrix_int_swap_rows gsl_matrix_int_swap_columns gsl_matrix_int_swap_rowcol
90 gsl_matrix_int_transpose gsl_matrix_int_transpose_memcpy
91 gsl_matrix_int_max gsl_matrix_int_min gsl_matrix_int_minmax
92 gsl_matrix_int_max_index gsl_matrix_int_min_index
93 gsl_matrix_int_minmax_index gsl_matrix_int_isnull
94 gsl_matrix_int_ispos gsl_matrix_int_isneg gsl_matrix_int_isnonneg
95 gsl_matrix_int_add gsl_matrix_int_sub
96 gsl_matrix_int_mul_elements gsl_matrix_int_div_elements gsl_matrix_int_scale
97 gsl_matrix_int_add_constant gsl_matrix_int_add_diagonal
98 gsl_matrix_get_row gsl_matrix_get_col gsl_matrix_set_row gsl_matrix_set_col
100 %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
]);
107 Mathematical functions concerning Matrices
111 use Math
::GSL
::Matrix qw
/:all
/;
115 Here is a list of all the functions included in this module
:
117 gsl_matrix_alloc gsl_matrix_calloc gsl_matrix_alloc_from_block
118 gsl_matrix_alloc_from_matrix gsl_vector_alloc_row_from_matrix
119 gsl_vector_alloc_col_from_matrix gsl_matrix_free gsl_matrix_submatrix
120 gsl_matrix_row gsl_matrix_column gsl_matrix_diagonal
121 gsl_matrix_subdiagonal gsl_matrix_superdiagonal gsl_matrix_subrow
122 gsl_matrix_subcolumn gsl_matrix_view_array
123 gsl_matrix_view_array_with_tda gsl_matrix_view_vector
124 gsl_matrix_view_vector_with_tda gsl_matrix_const_submatrix
125 gsl_matrix_const_row gsl_matrix_const_column gsl_matrix_const_diagonal
126 gsl_matrix_const_subdiagonal gsl_matrix_const_superdiagonal
127 gsl_matrix_const_subrow gsl_matrix_const_subcolumn
128 gsl_matrix_const_view_array gsl_matrix_const_view_array_with_tda
129 gsl_matrix_const_view_vector gsl_matrix_const_view_vector_with_tda
130 gsl_matrix_get gsl_matrix_set gsl_matrix_ptr gsl_matrix_const_ptr
131 gsl_matrix_set_zero gsl_matrix_set_identity gsl_matrix_set_all
132 gsl_matrix_fread gsl_matrix_fwrite gsl_matrix_fscanf gsl_matrix_fprintf
133 gsl_matrix_memcpy gsl_matrix_swap gsl_matrix_swap_rows
134 gsl_matrix_swap_columns gsl_matrix_swap_rowcol gsl_matrix_transpose
135 gsl_matrix_transpose_memcpy gsl_matrix_max gsl_matrix_min
136 gsl_matrix_minmax gsl_matrix_max_index gsl_matrix_min_index
137 gsl_matrix_minmax_index gsl_matrix_isnull gsl_matrix_ispos
138 gsl_matrix_isneg gsl_matrix_isnonneg gsl_matrix_add gsl_matrix_sub
139 gsl_matrix_mul_elements gsl_matrix_div_elements gsl_matrix_scale
140 gsl_matrix_add_constant gsl_matrix_add_diagonal
141 gsl_matrix_char_alloc gsl_matrix_char_calloc gsl_matrix_char_alloc_from_block
142 gsl_matrix_char_alloc_from_matrix gsl_vector_char_alloc_row_from_matrix gsl_vector_char_alloc_col_from_matrix
143 gsl_matrix_char_free gsl_matrix_char_submatrix
144 gsl_matrix_char_row gsl_matrix_char_column
145 gsl_matrix_char_diagonal gsl_matrix_char_subdiagonal gsl_matrix_char_superdiagonal
146 gsl_matrix_char_subrow gsl_matrix_char_subcolumn gsl_matrix_char_view_array
147 gsl_matrix_char_view_array_with_tda gsl_matrix_char_view_vector gsl_matrix_char_view_vector_with_tda
148 gsl_matrix_char_const_submatrix gsl_matrix_char_const_row gsl_matrix_char_const_column
149 gsl_matrix_char_const_diagonal gsl_matrix_char_const_subdiagonal gsl_matrix_char_const_superdiagonal
150 gsl_matrix_char_const_subrow gsl_matrix_char_const_subcolumn gsl_matrix_char_const_view_array
151 gsl_matrix_char_const_view_array_with_tda gsl_matrix_char_const_view_vector gsl_matrix_char_const_view_vector_with_tda
152 gsl_matrix_char_get gsl_matrix_char_set gsl_matrix_char_ptr gsl_matrix_char_const_ptr
153 gsl_matrix_char_set_zero gsl_matrix_char_set_identity
154 gsl_matrix_char_set_all gsl_matrix_char_fread
155 gsl_matrix_char_fwrite gsl_matrix_char_fscanf gsl_matrix_char_fprintf
156 gsl_matrix_char_memcpy gsl_matrix_char_swap
157 gsl_matrix_char_swap_rows gsl_matrix_char_swap_columns
158 gsl_matrix_char_swap_rowcol gsl_matrix_char_transpose gsl_matrix_char_transpose_memcpy
159 gsl_matrix_char_max gsl_matrix_char_min
160 gsl_matrix_char_minmax gsl_matrix_char_max_index
161 gsl_matrix_char_min_index gsl_matrix_char_minmax_index
162 gsl_matrix_char_isnull gsl_matrix_char_ispos gsl_matrix_char_isneg
163 gsl_matrix_char_isnonneg gsl_matrix_char_add
164 gsl_matrix_char_sub gsl_matrix_char_mul_elements gsl_matrix_char_div_elements
165 gsl_matrix_char_scale gsl_matrix_char_add_constant gsl_matrix_char_add_diagonal
166 gsl_matrix_int_alloc gsl_matrix_int_calloc gsl_matrix_int_alloc_from_block
167 gsl_matrix_int_alloc_from_matrix gsl_vector_int_alloc_row_from_matrix gsl_vector_int_alloc_col_from_matrix
168 gsl_matrix_int_free gsl_matrix_int_submatrix gsl_matrix_int_row
169 gsl_matrix_int_column gsl_matrix_int_diagonal gsl_matrix_int_subdiagonal
170 gsl_matrix_int_superdiagonal gsl_matrix_int_subrow gsl_matrix_int_subcolumn gsl_matrix_int_view_array
171 gsl_matrix_int_view_array_with_tda gsl_matrix_int_view_vector gsl_matrix_int_view_vector_with_tda
172 gsl_matrix_int_const_submatrix gsl_matrix_int_const_row gsl_matrix_int_const_column
173 gsl_matrix_int_const_diagonal gsl_matrix_int_const_subdiagonal gsl_matrix_int_const_superdiagonal
174 gsl_matrix_int_const_subrow gsl_matrix_int_const_subcolumn gsl_matrix_int_const_view_array
175 gsl_matrix_int_const_view_array_with_tda gsl_matrix_int_const_view_vector gsl_matrix_int_const_view_vector_with_tda
176 gsl_matrix_int_get gsl_matrix_int_set
177 gsl_matrix_int_ptr gsl_matrix_int_const_ptr
178 gsl_matrix_int_set_zero gsl_matrix_int_set_identity gsl_matrix_int_set_all
179 gsl_matrix_int_fread gsl_matrix_int_fwrite
180 gsl_matrix_int_fscanf gsl_matrix_int_fprintf
181 gsl_matrix_int_memcpy gsl_matrix_int_swap
182 gsl_matrix_int_swap_rows gsl_matrix_int_swap_columns gsl_matrix_int_swap_rowcol
183 gsl_matrix_int_transpose gsl_matrix_int_transpose_memcpy
184 gsl_matrix_int_max gsl_matrix_int_min gsl_matrix_int_minmax
185 gsl_matrix_int_max_index gsl_matrix_int_min_index
186 gsl_matrix_int_minmax_index gsl_matrix_int_isnull
187 gsl_matrix_int_ispos gsl_matrix_int_isneg gsl_matrix_int_isnonneg
188 gsl_matrix_int_add gsl_matrix_int_sub
189 gsl_matrix_int_mul_elements gsl_matrix_int_div_elements gsl_matrix_int_scale
190 gsl_matrix_int_add_constant gsl_matrix_int_add_diagonal
191 gsl_matrix_get_row gsl_matrix_get_col gsl_matrix_set_row gsl_matrix_set_col
193 You have to add the functions you want to use inside the qw
/put_funtion_here
/. You can also write use Math
::GSL
::PowInt qw
/:name_of_tag
/ to use all avaible functions of the module. Other tags are also avaible
, here is a complete list of all tags for this module
:
200 For more informations on the functions
, we refer you to the GSL offcial documentation
: http
://www.gnu.org
/software
/gsl
/manual
/html_node
/
201 Tip
: search on google
: site
:http
://www.gnu.org
/software
/gsl
/manual
/html_node
/name_of_the_function_you_want
205 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
208 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.
210 use Math
::GSL
::Matrix qw
/:all
/;
211 $m
= gsl_matrix_alloc
(10,3);
212 for
($i
= 0; $i
< 10; $i
++){
213 for
($j
= 0; $j
<3; $j
++){
214 gsl_matrix_set
($m
, $i
, $j
, 0.23 + 100*$i
+ $j
);
217 for
($i
= 0; $i
< 100; $i
++){ # OUT
OF RANGE
ERROR
218 for
($j
=0; $j
<3; $j
++){
219 print
"m($i, $j) = " . gsl_matrix_get
($m
, $i
, $j
) .
"\n";
222 gsl_matrix_free
($m
);
225 use Math
::GSL
::Matrix qw
/:all
/;
227 $m
= gsl_matrix_alloc
(100, 100);
228 $a
= gsl_matrix_alloc
(100, 100);
230 for
($i
= 0; $i
< 100; $i
++){
231 for
($j
= 0; $j
< 100; $j
++){
232 gsl_matrix_set
($m
, $i
, $j
, 0.23 + $i
+ $j
);
236 The next program shows how to write a matrix to a file.
238 $out
= fopen
("test.dat", "wb");
239 gsl_matrix_fwrite
($out
, $m
);
242 $in
= fopen
("test.dat", "rb");
243 gsl_matrix_fread
($in
, $a
);
247 for
($i
= 0; $i
< 100; $i
++){
248 for
($j
= 0; $j
< 100; $j
++){
249 $mij
= gsl_matrix_get
($m
, $i
, $j
);
250 $aij
= gsl_matrix_get
($a
, $i
, $j
);
251 if
($mij
!= $aij
){ $k
++ };
258 print
"differences = $k (should be zero)\n";
262 Jonathan Leto
<jonathan@leto.net
> and Thierry Moisan
<thierry.moisan@gmail.com
>
264 =head1 COPYRIGHT
AND LICENSE
266 Copyright
(C
) 2008 Jonathan Leto and Thierry Moisan
268 This program is free software
; you can redistribute it and
/or modify it
269 under the same terms as Perl itself.