.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . nr % 0 . rr F .\} .el \{\ . de IX .. .\} .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Statistics::Basic::Vector 3pm" .TH Statistics::Basic::Vector 3pm "2012-01-23" "perl v5.14.2" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Statistics::Basic::Vector \- a class for handling lists of numbers .SH "SYNOPSIS" .IX Header "SYNOPSIS" Invoke it this way: .PP .Vb 3 \& my $vector = vector(1,2,3); \& my $same_vector = vector($vector); \& my $different = $vector\->copy; .Ve .PP This module tracks which of the other Statistics::Basic modules \fIuse\fR it. That's it's primary purpose. Although, it does also have overloads to print the vectors in a pretty fashion. .PP .Vb 1 \& print "$vector\en"; # pretty printed .Ve .SH "METHODS" .IX Header "METHODS" .IP "\fB\f(BInew()\fB\fR" 4 .IX Item "new()" The constructor can take a single array ref or a single Statistics::Basic::Vector as its argument. It can also take a list of values. .Sp It returns a Statistics::Basic::Vector object. .Sp If given a vector object argument, this function will return the argument rather than creating a new vector. This mainly used by the other Statistics::Basic modules to try to prevent duplicate calculations. .Sp A vector's max size is set to the size of the argument or list on initialization. .Sp Note: normally you'd use the \fIvector()\fR constructor, rather than building these by hand using \f(CW\*(C`new()\*(C'\fR. .IP "\fB\f(BIcopy()\fB\fR" 4 .IX Item "copy()" Creates a new vector object with the same contents and size as this one and returns it. .Sp .Vb 3 \& my $v1 = vector(3,7,9); \& my $v2 = $v1\->copy(); # $v2 is a new object, separate vector \& my $v3 = vector($v1); # $v3 is the same object as $v1 .Ve .IP "\fB\f(BIinsert()\fB\fR" 4 .IX Item "insert()" Insert new values into the vector. If the vector was already full (see \&\*(L"\fIset_size()\fR\*(R"), this will also shift oldest elements from the vector to compensate. .Sp .Vb 1 \& $vector\->insert( 4, 3 ); # insert a 3 and a 4 .Ve .Sp This function returns the object itself, for chaining purposes. .IP "\fB\f(BIappend()\fB\fR \fB\f(BIginsert()\fB\fR" 4 .IX Item "append() ginsert()" Insert new values into the vector. If the vector was already full (see \&\*(L"\fIset_size()\fR\*(R"), these functions will grow the size of the vector to accommodate the new values, rather than shifting things. \f(CW\*(C`ginsert()\*(C'\fR does the same thing. .Sp .Vb 1 \& $vector\->append( 4, 3 ); # append a 3 and a 4 .Ve .Sp This function returns the object itself, for chaining purposes. .IP "\fB\f(BIquery()\fB\fR" 4 .IX Item "query()" \&\f(CW\*(C`query()\*(C'\fR returns the contents of the vector either as a list or as an arrayref. .Sp .Vb 2 \& my @copy_of_contents = $vector\->query; \& my $reference_to_contents = $vector\->query; .Ve .Sp Note that changing the \f(CW$reference_to_contents\fR will not usefully affect the contents of the vector itself, but it will adversely affect any computations based on the vector. If you need to change the contents of a vector in a special way, use a Statistics::Basic::ComputedVector object instead. .Sp Keeping \f(CW$reference_to_contents\fR available long term should work acceptably (since it refers to the vector contents itself). .IP "\fB\f(BIquery_filled()\fB\fR" 4 .IX Item "query_filled()" Returns true when the vector is the same size as the max size set by \&\*(L"\fIset_size()\fR\*(R". This function isn't useful unless operating under the effects of the nofill setting. .IP "\fB\f(BIquery_size()\fB\fR" 4 .IX Item "query_size()" Returns the current number of elements in the vector object (not the size set with \*(L"\fIset_size()\fR\*(R"). This is almost never false unless you're using the nofill setting. .IP "\fB\f(BIset_size()\fB\fR" 4 .IX Item "set_size()" Sets the max size of the vector. .Sp .Vb 2 \& my $v1 = vector(1,2,3); \& $v1\->set_size(7); # [0, 0, 0, 0, 1, 2, 3] .Ve .Sp Unless nofill is set, the vector will be filled with \f(CW0\fRs (assuming the vector wouldn't otherwise be full) on the oldest side of the vector (so an insert will push off one of the filled-zeros). .Sp This function returns the object itself, for chaining purposes. .Sp .Vb 2 \& my $v1 = vector(2 .. 5)\->set_size(5); \& # [0, 2, 3, 4, 5] .Ve .IP "\fB\f(BIset_vector()\fB\fR" 4 .IX Item "set_vector()" Given a vector or array ref, this will set the contents (and size) of the input vector to match the argument. If given a vector object argument, this will make the two vectors match, while still remaining separate objects. .Sp .Vb 3 \& my $v1 = vector(3,7,9); \& my $v2 = vector()\->set_vector($v1); \& my $v3 = vector($v1); # $v3 is the same object as $v1 .Ve .Sp This function returns the object itself, for chaining purposes. .SH "OVERLOADS" .IX Header "OVERLOADS" This object is overloaded. It tries to return an appropriate string for the vector and raises errors in numeric context. .PP In boolean context, this object is always true (even when empty). .SH "AUTHOR" .IX Header "AUTHOR" Paul Miller \f(CW\*(C`\*(C'\fR .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright 2012 Paul Miller \*(-- Licensed under the \s-1LGPL\s0 .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIperl\fR\|(1), Statistics::Basic