Merge branch 'bleed' of http://leto.net/code/Math-GSL into bleed
[Math-GSL.git] / BLAS.i
blobbb9e91baa0bf61c1fd09a9cebce94fbc633cdc79
1 %module BLAS
3 %include "typemaps.i"
5 %apply float *OUTPUT { float *result };
7 %{
8 #include "/usr/local/include/gsl/gsl_blas.h"
9 #include "/usr/local/include/gsl/gsl_blas_types.h"
12 %include "/usr/local/include/gsl/gsl_blas.h"
13 %include "/usr/local/include/gsl/gsl_blas_types.h"
15 %perlcode %{
17 @EXPORT_OK_level1 = qw/
18 gsl_blas_sdsdot gsl_blas_dsdot gsl_blas_sdot gsl_blas_ddot
19 gsl_blas_cdotu gsl_blas_cdotc gsl_blas_zdotu gsl_blas_zdotc
20 gsl_blas_snrm2 gsl_blas_sasum gsl_blas_dnrm2 gsl_blas_dasum
21 gsl_blas_scnrm2 gsl_blas_scasum gsl_blas_dznrm2 gsl_blas_dzasum
22 gsl_blas_isamax gsl_blas_idamax gsl_blas_icamax gsl_blas_izamax
23 gsl_blas_sswap gsl_blas_scopy gsl_blas_saxpy gsl_blas_dswap
24 gsl_blas_dcopy gsl_blas_daxpy gsl_blas_cswap gsl_blas_ccopy
25 gsl_blas_caxpy gsl_blas_zswap gsl_blas_zcopy gsl_blas_zaxpy
26 gsl_blas_srotg gsl_blas_srotmg gsl_blas_srot gsl_blas_srotm
27 gsl_blas_drotg gsl_blas_drotmg gsl_blas_drot gsl_blas_drotm
28 gsl_blas_sscal gsl_blas_dscal gsl_blas_cscal gsl_blas_zscal
29 gsl_blas_csscal gsl_blas_zdscal
31 @EXPORT_OK_level2 = qw/
32 gsl_blas_sgemv gsl_blas_strmv
33 gsl_blas_strsv gsl_blas_dgemv gsl_blas_dtrmv gsl_blas_dtrsv
34 gsl_blas_cgemv gsl_blas_ctrmv gsl_blas_ctrsv gsl_blas_zgemv
35 gsl_blas_ztrmv gsl_blas_ztrsv gsl_blas_ssymv gsl_blas_sger
36 gsl_blas_ssyr gsl_blas_ssyr2 gsl_blas_dsymv gsl_blas_dger
37 gsl_blas_dsyr gsl_blas_dsyr2 gsl_blas_chemv gsl_blas_cgeru
38 gsl_blas_cgerc gsl_blas_cher gsl_blas_cher2 gsl_blas_zhemv
39 gsl_blas_zgeru gsl_blas_zgerc gsl_blas_zher gsl_blas_zher2
42 @EXPORT_OK_level3 = qw/
43 gsl_blas_sgemm gsl_blas_ssymm gsl_blas_ssyrk gsl_blas_ssyr2k
44 gsl_blas_strmm gsl_blas_strsm gsl_blas_dgemm gsl_blas_dsymm
45 gsl_blas_dsyrk gsl_blas_dsyr2k gsl_blas_dtrmm gsl_blas_dtrsm
46 gsl_blas_cgemm gsl_blas_csymm gsl_blas_csyrk gsl_blas_csyr2k
47 gsl_blas_ctrmm gsl_blas_ctrsm gsl_blas_zgemm gsl_blas_zsymm
48 gsl_blas_zsyrk gsl_blas_zsyr2k gsl_blas_ztrmm gsl_blas_ztrsm
49 gsl_blas_chemm gsl_blas_cherk gsl_blas_cher2k gsl_blas_zhemm
50 gsl_blas_zherk gsl_blas_zher2k
52 @EXPORT_OK = (@EXPORT_OK_level1, @EXPORT_OK_level2, @EXPORT_OK_level3);
53 %EXPORT_TAGS = (
54 all => [ @EXPORT_OK ],
55 level1 => [ @EXPORT_OK_level1 ],
56 level2 => [ @EXPORT_OK_level2 ],
57 level3 => [ @EXPORT_OK_level3 ],
59 __END__
61 =head1 NAME
63 Math::GSL::BLAS - Basic Linear Algebra Subprograms
65 =head1 SYPNOPSIS
67 use Math::GSL::QRNG qw/:all/;
69 =head1 DESCRIPTION
71 The functions of this module are divised into 3 levels:
73 =head2 Level 1 - Vector operations
75 =over 3
77 =item C<gsl_blas_sdsdot>
79 =item C<gsl_blas_dsdot>
81 =item C<gsl_blas_sdot>
83 =item C<gsl_blas_ddot >
85 =item C<gsl_blas_cdotu>
87 =item C<gsl_blas_cdotc>
89 =item C<gsl_blas_zdotu>
91 =item C<gsl_blas_zdotc >
93 =item C<gsl_blas_snrm2>
95 =item C<gsl_blas_sasum>
97 =item C<gsl_blas_dnrm2>
99 =item C<gsl_blas_dasum >
101 =item C<gsl_blas_scnrm2>
103 =item C<gsl_blas_scasum>
105 =item C<gsl_blas_dznrm2>
107 =item C<gsl_blas_dzasum >
109 =item C<gsl_blas_isamax>
111 =item C<gsl_blas_idamax>
113 =item C<gsl_blas_icamax>
115 =item C<gsl_blas_izamax >
117 =item C<gsl_blas_sswap>
119 =item C<gsl_blas_scopy>
121 =item C<gsl_blas_saxpy>
123 =item C<gsl_blas_dswap >
125 =item C<gsl_blas_dcopy>
127 =item C<gsl_blas_daxpy>
129 =item C<gsl_blas_cswap>
131 =item C<gsl_blas_ccopy >
133 =item C<gsl_blas_caxpy>
135 =item C<gsl_blas_zswap>
137 =item C<gsl_blas_zcopy>
139 =item C<gsl_blas_zaxpy >
141 =item C<gsl_blas_srotg>
143 =item C<gsl_blas_srotmg>
145 =item C<gsl_blas_srot>
147 =item C<gsl_blas_srotm >
149 =item C<gsl_blas_drotg>
151 =item C<gsl_blas_drotmg>
153 =item C<gsl_blas_drot>
155 =item C<gsl_blas_drotm >
157 =item C<gsl_blas_sscal>
159 =item C<gsl_blas_dscal>
161 =item C<gsl_blas_cscal>
163 =item C<gsl_blas_zscal >
165 =item C<gsl_blas_csscal>
167 =item C<gsl_blas_zdscal>
169 =back
171 =head2 Level 2 - Matrix-vector operations
173 =over 3
175 =item C<gsl_blas_sgemv>
177 =item C<gsl_blas_strmv >
179 =item C<gsl_blas_strsv>
181 =item C<gsl_blas_dgemv>
183 =item C<gsl_blas_dtrmv>
185 =item C<gsl_blas_dtrsv >
187 =item C<gsl_blas_cgemv >
189 =item C<gsl_blas_ctrmv>
191 =item C<gsl_blas_ctrsv>
193 =item C<gsl_blas_zgemv >
195 =item C<gsl_blas_ztrmv>
197 =item C<gsl_blas_ztrsv>
199 =item C<gsl_blas_ssymv>
201 =item C<gsl_blas_sger >
203 =item C<gsl_blas_ssyr>
205 =item C<gsl_blas_ssyr2>
207 =item C<gsl_blas_dsymv>
209 =item C<gsl_blas_dger >
211 =item C<gsl_blas_dsyr>
213 =item C<gsl_blas_dsyr2>
215 =item C<gsl_blas_chemv>
217 =item C<gsl_blas_cgeru >
219 =item C<gsl_blas_cgerc>
221 =item C<gsl_blas_cher>
223 =item C<gsl_blas_cher2>
225 =item C<gsl_blas_zhemv >
227 =item C<gsl_blas_zgeru>
229 =item C<gsl_blas_zgerc>
231 =item C<gsl_blas_zher>
233 =item C<gsl_blas_zher2 >
235 =back
237 =head2 Level 3 - Matrix-matrix operations
239 =over 3
241 =item C<gsl_blas_sgemm>
243 =item C<gsl_blas_ssymm>
245 =item C<gsl_blas_ssyrk>
247 =item C<gsl_blas_ssyr2k >
249 =item C<gsl_blas_strmm>
251 =item C<gsl_blas_strsm>
253 =item C<gsl_blas_dgemm>
255 =item C<gsl_blas_dsymm >
257 =item C<gsl_blas_dsyrk>
259 =item C<gsl_blas_dsyr2k>
261 =item C<gsl_blas_dtrmm>
263 =item C<gsl_blas_dtrsm >
265 =item C<gsl_blas_cgemm>
267 =item C<gsl_blas_csymm>
269 =item C<gsl_blas_csyrk>
271 =item C<gsl_blas_csyr2k >
273 =item C<gsl_blas_ctrmm>
275 =item C<gsl_blas_ctrsm>
277 =item C<gsl_blas_zgemm>
279 =item C<gsl_blas_zsymm >
281 =item C<gsl_blas_zsyrk>
283 =item C<gsl_blas_zsyr2k>
285 =item C<gsl_blas_ztrmm>
287 =item C<gsl_blas_ztrsm >
289 =item C<gsl_blas_chemm>
291 =item C<gsl_blas_cherk>
293 =item C<gsl_blas_cher2k>
295 =item C<gsl_blas_zhemm >
297 =item C<gsl_blas_zherk >
299 =item C<gsl_blas_zher2k >
301 =back
303 You have to add the functions you want to use inside the qw /put_funtion_here /.
304 You can also write use Math::GSL::PowInt qw/:all/ to use all avaible functions of the module.
305 Other tags are also avaible, here is a complete list of all tags for this module :
307 =over 3
309 =item C<level1>
311 =item C<level2>
313 =item C<level3>
315 =back
317 For more informations on the functions, we refer you to the GSL offcial documentation: L<http://www.gnu.org/software/gsl/manual/html_node/>
319 Tip : search on google: site:http://www.gnu.org/software/gsl/manual/html_node/ name_of_the_function_you_want
322 =head1 EXAMPLES
324 =head1 AUTHOR
326 Jonathan Leto <jonathan@leto.net> and Thierry Moisan <thierry.moisan@gmail.com>
328 =head1 COPYRIGHT AND LICENSE
330 Copyright (C) 2008 Jonathan Leto and Thierry Moisan
332 This program is free software; you can redistribute it and/or modify it
333 under the same terms as Perl itself.
335 =cut