view mayachemtools/docs/modules/man3/Vector.3 @ 3:e420415a1799 draft

Uploaded
author deepakjadmin
date Wed, 20 Jan 2016 12:16:47 -0500
parents 73ae111cf86f
children
line wrap: on
line source

.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.22)
.\"
.\" 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 "VECTOR 1"
.TH VECTOR 1 "2015-03-29" "perl v5.14.2" "MayaChemTools"
.\" 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"
Vector
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
use Vector;
.PP
use Vector qw(:all);
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
\&\fBVector\fR class provides the following methods:
.PP
new, AddValues, Copy, GetLength, GetMagnitude, GetNumOfNonZeroValues,
GetPercentOfNonZeroValues, GetSize, GetValue, GetValues, GetX, GetXYZ, GetY,
GetZ, IsVector, Normalize, SetValue, SetValuePrintFormat,
SetX, SetXYZ, SetY, SetZ, StringifyVector, IsVector
.PP
The following functions are available:
.PP
IsVector, SetValuePrintFormat UnitXVector, UnitYVector, UnitZVector, UnitVector,
ZeroVector
.PP
The following operators are overloaded:
.PP
.Vb 7
\&    "" 0+ bool
\&    @{}
\&    + \- * / %
\&    x .
\&    == != < <= > >=
\&    neg
\&    abs exp log sqrt cos sin
.Ve
.SS "\s-1FUNCTIONS\s0"
.IX Subsection "FUNCTIONS"
.IP "\fBnew\fR" 4
.IX Item "new"
.Vb 4
\&    $NewVector = new Vector();
\&    $NewVector = new Vector(@Values);
\&    $NewVector = new Vector(\e@Values);
\&    $NewVector = new Vector($AnotherVector);
.Ve
.Sp
Creates a new \fBVector\fR object containing \fIValues\fR and returns \fBNewVector\fR object.
In case no \fIValues\fR are specified, an empty \fBVector\fR is created.
.IP "\fBAddValues\fR" 4
.IX Item "AddValues"
.Vb 3
\&    $Vector\->AddValues(@Values);
\&    $Vector\->AddValues(\e@Values);
\&    $Vector\->AddValues($AnotherVector);
.Ve
.Sp
Adds values to \fIVector\fR using an array, reference to an array or another vector and returns
\&\fIVector\fR.
.IP "\fBCopy\fR" 4
.IX Item "Copy"
.Vb 1
\&    $NewVector = $Vector\->Copy();
.Ve
.Sp
Creates a copy of \fIVector\fR and returns \fINewVector\fR.
.IP "\fBGetLength\fR" 4
.IX Item "GetLength"
.Vb 1
\&    $Length = $Vector\->GetLength();
.Ve
.Sp
Returns \fILengh\fR of a 3D \fIVector\fR corresponding to its dot product.
.IP "\fBGetMagnitude\fR" 4
.IX Item "GetMagnitude"
.Vb 1
\&    $Length = $Vector\->GetMagnitude();
.Ve
.Sp
Returns \fILengh\fR of a 3D \fIVector\fR corresponding to its dot product.
.IP "\fBGetNumOfNonZeroValues\fR" 4
.IX Item "GetNumOfNonZeroValues"
.Vb 1
\&    $Value = $Vector\->GetNumOfNonZeroValues();
.Ve
.Sp
Returns number of non-zero values in \fIVector\fR.
.IP "\fBGetPercentOfNonZeroValues\fR" 4
.IX Item "GetPercentOfNonZeroValues"
.Vb 1
\&    $Value = $Vector\->GetPercentOfNonZeroValues();
.Ve
.Sp
Returns percent of non-zero values in \fIVector\fR.
.IP "\fBGetSize\fR" 4
.IX Item "GetSize"
.Vb 1
\&    $Size = $Vector\->GetSize();
.Ve
.Sp
Returns size of a \fIVector\fR corresponding to number of its values.
.IP "\fBGetValue\fR" 4
.IX Item "GetValue"
.Vb 1
\&    $Value = $Vector\->GetValues($Index);
.Ve
.Sp
Returns vector \fBValue\fR specified using \fIIndex\fR starting at 0.
.IP "\fBGetValues\fR" 4
.IX Item "GetValues"
.Vb 2
\&    @Values = $Vector\->GetValues();
\&    $ValuesRef = $Vector\->GetValues();
.Ve
.Sp
Returns an array or a reference to an array containing all \fIVector\fR values.
.IP "\fBGetX\fR" 4
.IX Item "GetX"
.Vb 1
\&    $X = $Vector\->GetX();
.Ve
.Sp
Returns \fBX\fR value of a 3D \fIVector\fR
.IP "\fBGetXYZ\fR" 4
.IX Item "GetXYZ"
.Vb 2
\&    @XYZValues = $Vector\->GetXYZ();
\&    $XYZValuesRef = $Vector\->GetXYZ();
.Ve
.Sp
Returns \fB\s-1XYZ\s0\fR values of a 3D \fIVector\fR as an array or a reference to an array
containing the values.
.IP "\fBGetY\fR" 4
.IX Item "GetY"
.Vb 1
\&    $Y = $Vector\->GetY();
.Ve
.Sp
Returns \fBY\fR value of a 3D \fIVector\fR.
.IP "\fBGetZ\fR" 4
.IX Item "GetZ"
.Vb 1
\&    $Z = $Vector\->GetZ();
.Ve
.Sp
Returns \fBZ\fR value of a 3D \fIVector\fR.
.IP "\fBIsVector\fR" 4
.IX Item "IsVector"
.Vb 1
\&    $Status = Vector::IsVector($Object);
.Ve
.Sp
Returns 1 or 0 based on whether \fIObject\fR is a \fBVector\fR object.
.IP "\fBNormalize\fR" 4
.IX Item "Normalize"
.Vb 1
\&    $Vector\->Normalize();
.Ve
.Sp
Normalizes a 3D \fIVector\fR by dividing its values by the length and returns \fIVector\fR.
.IP "\fBSetValue\fR" 4
.IX Item "SetValue"
.Vb 1
\&    $Vector\->SetValue($Index, $Value);
.Ve
.Sp
Sets a \fIVector\fR value specified by \fIIndex\fR to \fIValue\fR and returns \fIVector\fR.
.IP "\fBSetValuePrintFormat\fR" 4
.IX Item "SetValuePrintFormat"
.Vb 2
\&    $Vector\->SetValuePrintFormat($ValuePrintFormat);
\&    Vector::SetValuePrintFormat($ValuePrintFormat);
.Ve
.Sp
Sets format for printing vector values for a specified \fIVector\fR or the whole class. Default
format: \fI\f(CI%g\fI\fR.
.IP "\fBSetX\fR" 4
.IX Item "SetX"
.Vb 1
\&    $Vector\->SetX($Value);
.Ve
.Sp
Sets \fBX\fR value of a 3D vector to \fIValue\fR and returns \fIVector\fR.
.IP "\fBSetXYZ\fR" 4
.IX Item "SetXYZ"
.Vb 3
\&    $Vector\->SetXYZ(@Values);
\&    $Vector\->SetXYZ(\e@Values);
\&    $Vector\->SetXYZ($AnotherVector);
.Ve
.Sp
Sets \fB\s-1XYZ\s0\fR values of a 3D vector and returns \fIVector\fR.
.IP "\fBSetY\fR" 4
.IX Item "SetY"
.Vb 1
\&    $Vector\->SetY($Value);
.Ve
.Sp
Sets \fBY\fR value of a 3D vector to \fIValue\fR and returns \fIVector\fR.
.IP "\fBSetZ\fR" 4
.IX Item "SetZ"
.Vb 1
\&    $Vector\->SetZ($Value);
.Ve
.Sp
Sets \fBZ\fR value of a 3D vector to \fIValue\fR and returns \fIVector\fR.
.IP "\fBStringifyVector\fR" 4
.IX Item "StringifyVector"
.Vb 1
\&    $String = $Vector\->StringifyVector();
.Ve
.Sp
Returns a string containing information about \fIVector\fR object.
.IP "\fBUnitVector\fR" 4
.IX Item "UnitVector"
.Vb 2
\&    $UnitVector = UnitVector([$Size]);
\&    $UnitVector = Vector::UnitVector([$Size]);
.Ve
.Sp
Returns a \fBUnitVector\fR of \fISize\fR. Default size: \fI3\fR.
.IP "\fBUnitXVector\fR" 4
.IX Item "UnitXVector"
.Vb 1
\&    $UnitXVector = UnitXVector();
.Ve
.Sp
Returns a 3D \fBUnitXVector\fR.
.IP "\fBUnitYVector\fR" 4
.IX Item "UnitYVector"
.Vb 1
\&    $UnitYVector = UnitYVector();
.Ve
.Sp
Returns a 3D \fBUnitYVector\fR.
.IP "\fBUnitZVector\fR" 4
.IX Item "UnitZVector"
.Vb 1
\&    $UnitZVector = UnitZVector();
.Ve
.Sp
Returns a 3D \fBUnitZVector\fR.
.IP "\fBZeroVector\fR" 4
.IX Item "ZeroVector"
.Vb 2
\&    $UnitVector = ZeroVector([$Size]);
\&    $UnitVector = Vector::ZeroVector([$Size]);
.Ve
.Sp
Returns a \fBZeroVector\fR of \fISize\fR. Default size: \fI3\fR.
.SH "AUTHOR"
.IX Header "AUTHOR"
Manish Sud <msud@san.rr.com>
.SH "SEE ALSO"
.IX Header "SEE ALSO"
BitVector.pm
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright (C) 2015 Manish Sud. All rights reserved.
.PP
This file is part of MayaChemTools.
.PP
MayaChemTools is free software; you can redistribute it and/or modify it under
the terms of the \s-1GNU\s0 Lesser General Public License as published by the Free
Software Foundation; either version 3 of the License, or (at your option)
any later version.