Math::GSL::VectorComplex - Complex Vectors 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);

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; =cut sub as_list { my $self=shift; # this is wrong return map { cplxe( gsl_complex_abs($_), gsl_complex_arg($_) ) } $self->get( [ 0 .. $self->length - 1 ] ); }

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 ); Jonathan Leto <jonathan@leto.net> and Thierry Moisan <thierry.moisan@gmail.com> Copyright (C) 2008-2009 Jonathan Leto and Thierry Moisan This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.