Quick Navigator

 Search Site Miscellaneous Server Agreement Year 2038 Credits

# Manual Reference Pages  -  MATH::VECSTAT (3)

.ds Aq ’

### 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! <B>The above document had some coding errors, which are explained below:B>
Around line 303: You forgot a ’=back’ before ’=head1’
Search for    or go to Top of page |  Section 3 |  Main Index

 perl v5.20.3 VECSTAT (3) 2003-04-19

Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.