Quick Navigator

 Search Site Miscellaneous Server Agreement Year 2038 Credits

# Manual Reference Pages  -  MATH::GSL::MATRIXCOMPLEX (3)

.ds Aq ’

### NAME

Math::GSL::MatrixComplex - Complex Matrices

### SYNOPSIS

```

use Math::GSL::MatrixComplex qw/:all/;
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;

```

#### 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 offcial documentation <http://www.gnu.org/software/gsl/manual/html_node/>

### AUTHORS

Jonathan Duke Leto <jonathan@leto.net> and Thierry Moisan <thierry.moisan@gmail.com>