NAME
Math::GSL::MatrixComplex - Complex Matrices
SYNOPSIS
my
$matrix1
= Math::GSL::MatrixComplex->new(5,5);
# OO interface
my
$matrix3
=
$matrix1
+
$matrix1
;
my
$matrix4
=
$matrix1
-
$matrix1
;
if
(
$matrix1
==
$matrix4
) ...
if
(
$matrix1
!=
$matrix3
) ...
my
$matrix2
= gsl_matrix_complex_alloc(5,5);
# standard interface
Objected Oriented Interface to GSL Math::GSL::MatrixComplex
new()
Creates a new MatrixComplex object of the given size.
my
$matrix
= Math::GSL::MatrixComplex->new(10,10);
raw()
Get the underlying GSL matrix object created by SWIG, useful for using gsl_matrix_* functions which do not have an OO counterpart.
my
$matrix
= Math::GSL::MatrixComplex->new(3,3);
my
$gsl_matrix
=
$matrix
->raw;
my
$stuff
= gsl_matrix_complex_get(
$gsl_matrix
, 1, 2);
rows()
Returns the number of rows in the matrix.
my
$rows
=
$matrix
->rows;
cols()
Returns the number of columns in the matrix.
my
$cols
=
$matrix
->cols;
as_vector()
Returns a 1xN or Nx1 matrix as a Math::GSL::VectorComplex object. Dies if called on a matrix that is not a single row or column. Useful for turning the output of col()
or row()
into a vector, like so:
my
$vector1
=
$matrix
->col(0)->as_vector;
my
$vector2
=
$matrix
->row(1)->as_vector;
as_list()
Get the contents of a Math::GSL::Matrix object as a Perl list.
my
$matrix
= Math::GSL::MatrixComplex->new(3,3);
...
my
@matrix
=
$matrix
->as_list;
row()
Returns a row matrix of the row you enter.
my
$matrix
= Math::GSL::MatrixComplex->new(3,3);
...
my
$matrix_row
=
$matrix
->row(0);
col()
Returns a col matrix of the column you enter.
my
$matrix
= Math::GSL::MatrixComplex->new(3,3);
...
my
$matrix_col
=
$matrix
->col(0);
set_row()
Sets a the values of a row with the elements of an array.
my
$matrix
= Math::GSL::MatrixComplex->new(3,3);
$matrix
->set_row(0, [8, 6, 2]);
You can also set multiple rows at once with chained calls: my $matrix = Math::GSL::MatrixComplex->new(3,3); $matrix->set_row(0, [8, 6, 2]) ->set_row(1, [2, 4, 1]); ...
set_col()
Sets a the values of a column with the elements of an array.
my
$matrix
= Math::GSL::MatrixComplex->new(3,3);
$matrix
->set_col(0, [8, 6, 2]);
You can also set multiple columns at once with chained calls: my $matrix = Math::GSL::MatrixComplex->new(3,3); $matrix->set_col(0, [8, 6, 2]) ->set_col(1, [2, 4, 1]); ...
is_square()
Returns true if a matrix is square, i.e. it has the same number of rows as columns, false otherwise.
det()
Returns the determinant of a matrix (computed by LU decomposition) or dies if called on a non-square matrix.
my
$det
=
$matrix
->det();
zero()
Set a matrix to the zero matrix.
$matrix
->zero;
identity()
Set a matrix to the identity matrix, i.e. one on the diagonal and zero elsewhere.
my
$I
=
$matrix
->identity;
inverse()
Returns the inverse of a matrix or dies when called on a non-square matrix.
my
$inverse
=
$matrix
->inverse;
is_hermitian()
Returns true if the matrix is hermitian, false otherwise
my
$test
=
$matrix
->is_hermitian;
eigenvalues()
lndet()
Returns the natural log of the absolute value of the determinant of a matrix (computed by LU decomposition) or dies if called on a non-square matrix.
my
$lndet
=
$matrix
->lndet();
DESCRIPTION
gsl_matrix_complex_alloc
gsl_matrix_complex_calloc
gsl_matrix_complex_alloc_from_block
gsl_matrix_complex_alloc_from_matrix
gsl_vector_complex_alloc_row_from_matrix
gsl_vector_complex_alloc_col_from_matrix
gsl_matrix_complex_free
gsl_matrix_complex_submatrix
gsl_matrix_complex_row
gsl_matrix_complex_column
gsl_matrix_complex_diagonal
gsl_matrix_complex_subdiagonal
gsl_matrix_complex_superdiagonal
gsl_matrix_complex_subrow
gsl_matrix_complex_subcolumn
gsl_matrix_complex_view_array
gsl_matrix_complex_view_array_with_tda
gsl_matrix_complex_view_vector
gsl_matrix_complex_view_vector_with_tda
gsl_matrix_complex_const_submatrix
gsl_matrix_complex_const_row
gsl_matrix_complex_const_column
gsl_matrix_complex_const_diagonal
gsl_matrix_complex_const_subdiagonal
gsl_matrix_complex_const_superdiagonal
gsl_matrix_complex_const_subrow
gsl_matrix_complex_const_subcolumn
gsl_matrix_complex_const_view_array
gsl_matrix_complex_const_view_array_with_tda
gsl_matrix_complex_const_view_vector
gsl_matrix_complex_const_view_vector_with_tda
gsl_matrix_complex_get
gsl_matrix_complex_set
gsl_matrix_complex_ptr
gsl_matrix_complex_const_ptr
gsl_matrix_complex_set_zero
gsl_matrix_complex_set_identity
gsl_matrix_complex_set_all
gsl_matrix_complex_fread
gsl_matrix_complex_fwrite
gsl_matrix_complex_fscanf
gsl_matrix_complex_fprintf
gsl_matrix_complex_memcpy
gsl_matrix_complex_swap
gsl_matrix_complex_swap_rows
gsl_matrix_complex_swap_columns
gsl_matrix_complex_swap_rowcol
gsl_matrix_complex_transpose
gsl_matrix_complex_transpose_memcpy
gsl_matrix_complex_isnull
gsl_matrix_complex_ispos
gsl_matrix_complex_isneg
gsl_matrix_complex_add
gsl_matrix_complex_sub
gsl_matrix_complex_mul_elements
gsl_matrix_complex_div_elements
gsl_matrix_complex_scale
gsl_matrix_complex_add_constant
gsl_matrix_complex_add_diagonal
gsl_matrix_complex_get_row
gsl_matrix_complex_get_col
gsl_matrix_complex_set_row
gsl_matrix_complex_set_col
For more informations on the functions, we refer you to the GSL official documentation http://www.gnu.org/software/gsl/manual/html_node/
AUTHORS
Jonathan "Duke" Leto <jonathan@leto.net> and Thierry Moisan <thierry.moisan@gmail.com>
COPYRIGHT AND LICENSE
Copyright (C) 2008-2024 Jonathan "Duke" Leto and Thierry Moisan
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.