Public Member Functions | Static Public Member Functions | Friends | List of all members
Vec3D Class Reference

Three dimensional vector. More...

#include <vec3d.hpp>

Public Member Functions

 Vec3D ()
 
 Vec3D (double x)
 
 Vec3D (double x, double y)
 
 Vec3D (double x, double y, double z)
 
 Vec3D (const class Vec4D &vec)
 
 Vec3D (std::istream &s)
 
 ~Vec3D ()
 
double & operator[] (int i)
 
const double & operator[] (int i) const
 
double & operator() (int i)
 
const double & operator() (int i) const
 
Vec3D operator+ (const Vec3D &vec) const
 Vector addition More...
 
Vec3D operator- (const Vec3D &vec) const
 Vector difference More...
 
Vec3Doperator+= (const Vec3D &vec)
 Vector accumulation More...
 
double operator* (const Vec3D &vec) const
 Dot product. More...
 
Vec3D operator* (double x) const
 Vector scaling. More...
 
Vec3D operator- (void) const
 Unary minus. More...
 
Vec3Doperator*= (double x)
 Vector scaling. More...
 
Vec3Doperator/= (double x)
 Vector scaling with divisor. More...
 
bool operator!= (const Vec3D &x) const
 Inequality test. More...
 
bool operator== (const Vec3D &x) const
 Equality test. More...
 
bool approx (const Vec3D &x, double eps=1.0e-6) const
 Approximate equality test. More...
 
Vec3Doperator= (const Vec3D &x)
 Assignment. More...
 
Vec3Doperator= (const double &x)
 Assignment of every coordinate. More...
 
void abs (void)
 Calculate absolute value of each component. More...
 
void normalize (void)
 Normalize vector. More...
 
double norm2 (void) const
 Returns 2-norm of vector. More...
 
double ssqr (void) const
 Returns square of 2-norm of vector. More...
 
int min_element (void) const
 Returns the index of element with minimum magnitude (abs). More...
 
Vec3D arb_perpendicular (void) const
 Returns arbitrary vector perpendicular to input vector. More...
 
void save (std::ostream &os) const
 Saves data to stream os. More...
 

Static Public Member Functions

static Vec3D standard_basis (int i)
 Returns standard basis vector i. More...
 

Friends

Vec3D cross (const Vec3D &vec1, const Vec3D &vec2)
 Cross product. More...
 
double norm2 (const Vec3D &vec)
 Second norm of vector. More...
 
Vec3D operator* (double x, const Vec3D &vec)
 Vector scaling. More...
 
Vec3D operator* (double x, const class Int3D &i)
 Vector scaling for integer vector. More...
 
std::ostream & operator<< (std::ostream &os, const Vec3D &vec)
 Outputting to stream. More...
 

Detailed Description

Three dimensional vector.

Constructor & Destructor Documentation

Vec3D::Vec3D ( )
inline
Vec3D::Vec3D ( double  x)
inline
Vec3D::Vec3D ( double  x,
double  y 
)
inline
Vec3D::Vec3D ( double  x,
double  y,
double  z 
)
inline
Vec3D::Vec3D ( const class Vec4D vec)
Vec3D::Vec3D ( std::istream &  s)
inline
Vec3D::~Vec3D ( )
inline

Member Function Documentation

void Vec3D::abs ( void  )
inline

Calculate absolute value of each component.

bool Vec3D::approx ( const Vec3D x,
double  eps = 1.0e-6 
) const

Approximate equality test.

Does not require exact equality, but absolute or relative error less than eps (which ever is less strict). Be careful using this function!

Vec3D Vec3D::arb_perpendicular ( void  ) const

Returns arbitrary vector perpendicular to input vector.

int Vec3D::min_element ( void  ) const

Returns the index of element with minimum magnitude (abs).

double Vec3D::norm2 ( void  ) const
inline

Returns 2-norm of vector.

$ ||x||_2 = \sqrt{ \Sigma_{i=1}^n x_i^2 } $

void Vec3D::normalize ( void  )
inline

Normalize vector.

bool Vec3D::operator!= ( const Vec3D x) const

Inequality test.

Require exact equality.

double& Vec3D::operator() ( int  i)
inline
const double& Vec3D::operator() ( int  i) const
inline
double Vec3D::operator* ( const Vec3D vec) const
inline

Dot product.

Vec3D Vec3D::operator* ( double  x) const
inline

Vector scaling.

Vec3D& Vec3D::operator*= ( double  x)
inline

Vector scaling.

Vec3D Vec3D::operator+ ( const Vec3D vec) const
inline

Vector addition

Vec3D& Vec3D::operator+= ( const Vec3D vec)
inline

Vector accumulation

Vec3D Vec3D::operator- ( const Vec3D vec) const
inline

Vector difference

Vec3D Vec3D::operator- ( void  ) const
inline

Unary minus.

Vec3D& Vec3D::operator/= ( double  x)
inline

Vector scaling with divisor.

Vec3D& Vec3D::operator= ( const Vec3D x)
inline

Assignment.

Vec3D& Vec3D::operator= ( const double &  x)
inline

Assignment of every coordinate.

bool Vec3D::operator== ( const Vec3D x) const

Equality test.

Requires exact equality.

double& Vec3D::operator[] ( int  i)
inline
const double& Vec3D::operator[] ( int  i) const
inline
void Vec3D::save ( std::ostream &  os) const
inline

Saves data to stream os.

double Vec3D::ssqr ( void  ) const
inline

Returns square of 2-norm of vector.

$ (||x||_2)^2 = \Sigma_{i=1}^n x_i^2 $

static Vec3D Vec3D::standard_basis ( int  i)
static

Returns standard basis vector i.

Friends And Related Function Documentation

Vec3D cross ( const Vec3D vec1,
const Vec3D vec2 
)
friend

Cross product.

double norm2 ( const Vec3D vec)
friend

Second norm of vector.

Vec3D operator* ( double  x,
const Vec3D vec 
)
friend

Vector scaling.

Vec3D operator* ( double  x,
const class Int3D i 
)
friend

Vector scaling for integer vector.

std::ostream& operator<< ( std::ostream &  os,
const Vec3D vec 
)
friend

Outputting to stream.


The documentation for this class was generated from the following file: