The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Bio::PhyloNetwork::muVector - Module to compute with vectors of arbitrary dimension

SYNOPSIS

use strict;
use warnings;

use Bio::PhyloNetwork::muVector;

my $vec1=Bio::PhyloNetwork::muVector->new(4);
my $vec2=Bio::PhyloNetwork::muVector->new([1,2,3,4]);
my $vec3=Bio::PhyloNetwork::muVector->new([10,20,30,40]);

my $vec4=$vec3-10*$vec2;
if (($vec4 cmp $vec1) == 0) {
  print "$vec4 is zero\n";
}

my $vec5=Bio::PhyloNetwork::muVector->new([8,2,2,4]);
my $vec6=Bio::PhyloNetwork::muVector->new([1,2,3,4]);

print "Test poset $vec5 > $vec6: ".$vec5->geq_poset($vec6)."\n";
print "Test lex $vec5 > $vec6: ".($vec5 cmp $vec6)."\n";

DESCRIPTION

This is a module to work with vectors. It creates vectors of arbitrary length, defines its basic arithmetic operations, its lexicographic ordering and the natural structure of poset.

AUTHOR

Gabriel Cardona, gabriel(dot)cardona(at)uib(dot)es

APPENDIX

The rest of the documentation details each of the object methods.

new

Title   : new
Usage   : my $mu = new Bio::PhyloNetwork::muVector();
Function: Creates a new Bio::PhyloNetwork::muVector object
Returns : Bio::PhyloNetwork::muVector
Args    : integer or (reference to) an array

If given an integer as argument, returns a Bio::PhyloNetwork::muVector object with dimension the integer given and initialized to zero. If it is an anonimous array, then the vector is initialized with the values in the array and with the corresponding dimension.

display

Title   : display
Usage   : my $str=$mu->display()
Function: returns an string displaying its contents
Returns : string
Args    : none

This function is also overloaded to the "" operator.

add

Title   : add
Usage   : $mu->add($mu2)
Function: returns the sum of $mu and $mu2
Returns : Bio::PhyloNetwork::muVector
Args    : Bio::PhyloNetwork::muVector

This function is also overloaded to the + operator.

substract

Title   : substract
Usage   : $mu->substract($mu2)
Function: returns the difference of $mu and $mu2
Returns : Bio::PhyloNetwork::muVector
Args    : Bio::PhyloNetwork::muVector

This function is also overloaded to the - operator.

scalarproduct

Title   : scalarproduct
Usage   : $mu->scalarproduct($ct)
Function: returns the scalar product of $ct and $mu
Returns : Bio::PhyloNetwork::muVector
Args    : scalar

This function is also overloaded to the * operator.

comparelex

Title   : comparelex
Usage   : $mu1->comparelex($mu2)
Function: compares $mu and $mu2 w.r.t. the lexicographic ordering
Returns : scalar (-1 if $mu1<$mu2, 0 if $mu1=$mu2, 1 if $mu1>$mu2)
Args    : Bio::PhyloNetwork::muVector

This function is also overloaded to the <=> and cmp operator.

geq_poset

Title   : geq_poset
Usage   : $mu1->geq_poset($mu2)
Function: compares $mu and $mu2 w.r.t. the natural partial ordering
Returns : boolean (1 if $mu >= $mu2, 0 otherwise)
Args    : Bio::PhyloNetwork::muVector

is_positive

Title   : is_positive
Usage   : $mu->is_positive()
Function: tests if all components of $mu are positive (or zero)
Returns : boolean
Args    : none

hamming

Title   : hamming
Usage   : $mu1->hamming($mu2)
Function: returns the Hamming distance between $mu1 and $mu2
Returns : scalar
Args    : Bio::PhyloNetwork::muVector

manhattan

Title   : manhattan
Usage   : $mu1->manhattan($mu2)
Function: returns the Manhattan distance between $mu1 and $mu2
Returns : scalar
Args    : Bio::PhyloNetwork::muVector