# NAME

Math::GSL::VectorComplex - Complex Vectors

# SYNOPSIS

``````    use Math::GSL::VectorComplex qw/:all/;
my \$vec1 = Math::GSL::VectorComplex->new([1 + 2*i, 7*i, 5, -3 ]);
my \$vec2 = \$vec1 * 5;
my \$vec3 = Math::GSL::Vector>new(10);   # 10 element zero vector
my \$vec4 = \$vec1 + \$vec2;

# set the element at index 1 to -i
# and the element at index 3 to i
\$vec3->set([ 1, -i ], [ 9, i ]);

my @vec = \$vec2->as_list;               # return elements as Perl list

my \$dot_product = \$vec1 * \$vec2;
my \$length      = \$vec2->length;
my \$first       = \$vec1->get(0);``````

# Objected Oriented Interface to GSL Math::GSL::VectorComplex

## new()

Creates a new Vector of the given size.

``    my \$vector = Math::GSL::VectorComplex->new(3);``

You can also create and set directly the values of the vector like this :

``   my \$vector = Math::GSL::VectorComplex->new([2,4,1]);``

## raw()

Get the underlying GSL vector object created by SWIG, useful for using gsl_vector_* functions which do not have an OO counterpart.

``````    my \$vector    = Math::GSL::VectorComplex->new(3);
my \$gsl_vector = \$vector->raw;
my \$stuff      = gsl_vector_get(\$gsl_vector, 1);``````

## min()

Returns the minimum value contained in the vector.

``````   my \$vector = Math::GSL::VectorComplex->new([2,4,1]);
my \$minimum = \$vector->min;``````

## max()

Returns the minimum value contained in the vector.

``````   my \$vector = Math::GSL::VectorComplex->new([2,4,1]);
my \$maximum = \$vector->max;``````

## length()

Returns the number of elements contained in the vector.

``````   my \$vector = Math::GSL::VectorComplex->new([2,4,1]);
my \$length = \$vector->length;``````

## as_list()

Gets the content of a Math::GSL::Vector object as a Perl list.

``````    my \$vector = Math::GSL::VectorComplex->new(3);
...
my @values = \$vector->as_list;``````

## get()

Gets the value of an of a Math::GSL::Vector object.

``````    my \$vector = Math::GSL::VectorComplex->new(3);
...
my @values = \$vector->get(2);``````

You can also enter an array of indices to receive their corresponding values:

``````    my \$vector = Math::GSL::VectorComplex->new(3);
...
my @values = \$vector->get([0,2]);``````

## reverse()

Returns the a vector with the elements in reversed order.

``````    use Math::Complex;
my \$v1 = Math::GSL::VectorComplex->new([ 1, 2, 3*i]);
my \$v2 = \$v1->reverse;``````

## set()

Sets values of an of a Math::GSL::Vector object.

``````    my \$vector = Math::GSL::VectorComplex->new(3);
\$vector->set([1,2], [8,23]);``````

This sets the second and third value to 8 and 23.

## copy()

Returns a copy of the vector, which has the same length and values but resides at a different location in memory.

``````    my \$vector = Math::GSL::VectorComplex->new([10 .. 20]);
my \$copy   = \$vector->copy;``````

## swap()

Exchanges the values in the vectors \$v with \$w by copying.

``````    my \$v = Math::GSL::VectorComplex->new([1..5]);
my \$w = Math::GSL::VectorComplex->new([3..7]);
\$v->swap( \$w );``````

# AUTHORS

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