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]);

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;

DESCRIPTION

EXAMPLES

Here is an example using both interfaces.

use Math::GSL::Vector qw/:all/;

print "We'll create this vector : [0,1,4,9,16] \n";
my $vector = Math::GSL::VectorComplex->new([0,1,4,9,16]);
my ($min, $max) = gsl_vector_minmax_index($vector->raw);

print "We then check the index value of the maximum and minimum values of the vector. \n";
print "The index of the maximum should be 4 and we received $max \n";
print "The index of the minimum should be 0 and we received $min \n";
print "We'll then swap the first and the third elements of the vector \n";

gsl_vector_swap_elements($vector->raw, 0, 3);
my @got = $vector->as_list;
print "The vector should now be like this : [9,1,4,0,16] \n";
print "and we received : [ @got ]\n";

AUTHORS

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

COPYRIGHT AND LICENSE

Copyright (C) 2008 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.