# FreeBSD Manual Pages

```VecStat(3)	      User Contributed Perl Documentation	    VecStat(3)

NAME
Math::VecStat - Some	basic numeric stats on vectors

SYNOPSIS
use Math::VecStat qw(max min	maxabs minabs sum average);
\$max=max(@vector);
\$max=max(\@vector);
(\$max,\$imax)=max(@vector);
(\$max,\$imax)=max(\@vector);
\$min=min(@vector);
\$min=min(\@vector);
(\$max,\$imin)=min(@vector);
(\$max,\$imin)=min(\@vector);
\$max=maxabs(@vector);
\$max=maxabs(\@vector);
(\$max,\$imax)=maxabs(@vector);
(\$max,\$imax)=maxabs(\@vector);
\$min=minabs(@vector);
\$min=minabs(\@vector);
(\$max,\$imin)=minabs(@vector);
(\$max,\$imin)=minabs(\@vector);
\$sum=sum(\$v1,\$v2,...);
\$sum=sum(@vector);
\$sum=sum(\@vector);
\$average=average(\$v1,\$v2,...);
\$av=average(@vector);
\$av=average(\@vector);
\$ref=vecprod(\$scalar,\@vector);
\$ok=ordered(@vector);
\$ok=ordered(\@vector);
\$ref=sumbyelement(\@vector1,\@vector2);
\$ref=diffbyelement(\@vector1,\@vector2);
\$ok=allequal(\@vector1,\@vector2);
\$ref=convolute(\@vector1,\@vector2);

DESCRIPTION
This package provides some basic	statistics on numerical	vectors. All
the subroutines can take	a reference to the vector to be	operated on.
In some cases a copy of the vector is acceptable, but is	not
recommended for efficiency.

max(@vector), max(\@vector)
return the maximum value of	given values or	vector.	In an array
context returns the	value and the index in the array where it
occurs.

min(@vector), min(\@vector)
return the minimum value of	given values or	vector,	In an array
context returns the	value and the index in the array where it
occurs.

maxabs(@vector),	maxabs(\@vector)
return the maximum value of	absolute of the	given values or
vector. In an array	context	returns	the value and the index	in the
array where	it occurs.

minabs(@vector),	minabs(\@vector)
return the minimum value of	the absolute of	the given values or
vector. In an array	context	returns	the value and the index	in the
array where	it occurs.

sum(\$v1,\$v2,...), sum(@vector), sum(\@vector)
return the sum of the given	values or vector

average(\$v1,\$v2,..), average(@vector), average(\@vector)
return the average of the given values or vector

vecprod(\$a,\$v1,\$v2,..), vecprod(\$a,@vector), vecprod( \$a, \@vector )
return a vector built by multiplying the scalar \$a by each element
of the @vector.

ordered(\$v1,\$v2,..), ordered(@vector), ordered(\@vector)
return nonzero iff the vector is nondecreasing with	respect	to its
index.  To be used like

if( ordered( \$lowBound, \$value, \$highBound ) ){

instead of the (slightly) more clumsy

if( (\$lowBound <=	\$value)	&& (\$value <= \$highBound) ) {

sumbyelement( \@array1, \@array2	), diffbyelement(\@array1,\@array2)
return the element-by-element sum or difference of two
identically-sized vectors. Given

\$s = sumbyelement( [10,20,30], [1,2,3] );
\$d = diffbyelement( [10,20,30], [1,2,3] );

\$s will be "[11,22,33]", \$d	will be	"[9,18,27]".

allequal( \@array1, \@array2 )
returns true if and	only if	the two	arrays are numerically
identical.

convolute( \@array1, \@array2 )
return a reference to an array containing the element-by-element
product of the two input arrays. I.e.,

\$r = convolute( [1,2,3], [-1,2,1]	);

returns a reference	to

[-1,4,3]

median
evaluates the median, i.e. an element which	separates the
population in two halves.  It returns a reference to a list	whose
first element is the median	value and the second element is	the
index of the median	element	in the original	vector.

\$a = Math::VecStat::median( [9,8,7,6,5,4,3,2,1] );

returns the	list reference

[	5, 4 ]

i.e. the median value is 5 and it is found at position 4 of	the
original array.

If there are several elements of the array having the median
value, e.g.	[1,3,3,3,5].  In this case we choose always the	first
element in the original vector which is a median. In the example,
we return [3,1].

HISTORY
\$Log: VecStat.pm,v \$
Revision 1.9  2003/04/20 00:49:00 spinellia@acm.org
Perl 5.8 broke test 36,	exposing inconsistency in C<median>.  Fixed, thanks to david@jamesgang.com.

Revision 1.8  2001/01/26 11:10:00 spinellia@acm.org
Fixed test, thanks to Andreas Marcel Riechert <riechert@pobox.com>

Revision 1.7  2000/10/24 15:28:00  spinellia@acm.org
Created	a reasonable test suite.

Revision 1.6  2000/06/29 16:06:37  spinellia@acm.org

Revision 1.5  1997/02/26 17:20:37  willijar

Revision 1.4  1996/02/20 07:53:10  willijar
Added ability to return	index in array contex to max and min
functions. Added minabs	and maxabs functions.
Thanks to Mark Borges <mdb@cdc.noaa.gov> for these suggestions.

Revision 1.3  1996/01/06 11:03:30  willijar
Fixed stupid bug that crept into looping in min	and max	functions

Revision 1.2  1995/12/26 09:56:38  willijar
Oops - removed xy data functions.

Revision 1.1  1995/12/26 09:39:07  willijar
Initial	revision

BUGS
Let me know. I welcome any appropriate additions	for this package.

AUTHORS
John A.R. Williams <J.A.R.Williams@aston.ac.uk> Andrea Spinelli
<spinellia@acm.org>

POD ERRORS
Hey! The	above document had some	coding errors, which are explained
below:

Around line 303:
You forgot a	'=back'	before '=head1'

perl v5.32.1			  2003-04-19			    VecStat(3)
```

NAME | SYNOPSIS | DESCRIPTION | HISTORY | BUGS | AUTHORS | POD ERRORS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Math::VecStat&sektion=3&manpath=FreeBSD+13.0-RELEASE+and+Ports>