Horus Doc || C++ Reference || Class Overview   Pixels   Images   Detector   Geometry   Registry || Doxygen's quick Index  

HxVec2Double Class Reference

Class definition vector of 2 doubles. More...

#include <HxVec2Double.h>

List of all members.

Constructors

 HxVec2Double ()
 Default constructor. More...

 HxVec2Double (double x, double y)
 Conversion from native type. More...

 HxVec2Double (const HxVec2Double &rhs)
 Copy constructor. More...


Inquiry

int dim () const
 Dimensionality. More...

double x () const
 Value of first element. More...

double y () const
 Value of second element. More...

double getValue (int dimension) const
 Element in given dimension. More...

void setValue (int dimension, double value)

Conversion

 operator HxScalarInt () const
 Cast to HxScalarInt. More...

 operator HxScalarDouble () const
 Cast to HxScalarDouble. More...

 operator HxVec2Int () const
 Cast to HxVec2Int. More...

 operator HxVec3Int () const
 Cast to HxVec3Int. More...

 operator HxVec3Double () const
 Cast to HxVec3Double. More...

 operator HxComplex () const
 Cast to HxComplex. More...


Operators

Mathematical definition: Binary operations on pixel values

int operator== (const HxVec2Double &v) const
 Equal. More...

int operator!= (const HxVec2Double &v) const
 Not equal. More...

int operator< (const HxVec2Double &v) const
 Less than. More...

int operator<= (const HxVec2Double &v) const
 Less equal. More...

int operator> (const HxVec2Double &v) const
 Greater than. More...

int operator>= (const HxVec2Double &v) const
 Greater equal. More...

const HxVec2Double SMALL_VAL = HxVec2Double(0, 0)
 A small value w.r.t to the comparison operators "<" and ">". More...

const HxVec2Double LARGE_VAL = HxVec2Double(1e300, 1e300)
 A large value w.r.t to the comparison operators "<" and ">". More...


Unary operations

Mathematical definition: Unary operations on pixel values

HxVec2Double operator- () const
 Negation. More...

HxVec2Double complement () const
 Complement. More...

HxVec2Double abs () const
 Absolute value. More...

HxVec2Double ceil () const
 Ceiling. More...

HxVec2Double floor () const
 Floor. More...

HxVec2Double round () const
 Round. More...

HxScalarDouble sum () const
 Sum. More...

HxScalarDouble product () const
 Product. More...

HxScalarDouble min () const
 Minimum. More...

HxScalarDouble max () const
 Maximum. More...

HxScalarDouble norm1 () const
 L1 norm. More...

HxScalarDouble norm2 () const
 L2 norm. More...

HxScalarDouble normInf () const
 L infinity norm. More...

HxVec2Double sqrt () const
 Square root. More...

HxVec2Double sin () const
 Sine. More...

HxVec2Double cos () const
 Cosine. More...

HxVec2Double tan () const
 Tangent. More...

HxVec2Double asin () const
 Arc sine. More...

HxVec2Double acos () const
 Arc cosine. More...

HxVec2Double atan () const
 Arc tangent. More...

HxScalarDouble atan2 () const
 Arc tangent. More...

HxVec2Double sinh () const
 Hyperbolic sine. More...

HxVec2Double cosh () const
 Hyperbolic cosine. More...

HxVec2Double tanh () const
 Hyperbolic tangent. More...

HxVec2Double exp () const
 Exponent. More...

HxVec2Double log () const
 Natural logarithm. More...

HxVec2Double log10 () const
 Base 10 logarithm. More...


Binary operations

Mathematical definition: Binary operations on pixel values

HxVec2Double & operator+= (const HxVec2Double &v)
 Addition and assignment. More...

HxVec2Double & operator-= (const HxVec2Double &v)
 Subtraction and assignment. More...

HxVec2Double & operator *= (const HxVec2Double &v)
 Multiplication and assignment. More...

HxVec2Double & operator/= (const HxVec2Double &v)
 Division and assignment. More...

HxVec2Double min (const HxVec2Double &v) const
 Minimum. More...

HxVec2Double & minAssign (const HxVec2Double &v)
 Minimum and assignment. More...

HxVec2Double max (const HxVec2Double &v) const
 Maximum. More...

HxVec2Double & maxAssign (const HxVec2Double &v)
 Maximum and assignment. More...

HxVec2Double inf (const HxVec2Double &v) const
 Infimum. More...

HxVec2Double & infAssign (const HxVec2Double &v)
 Infimum and assignment. More...

HxVec2Double sup (const HxVec2Double &v) const
 Supremum. More...

HxVec2Double & supAssign (const HxVec2Double &v)
 Supremum and assignment. More...

HxVec2Double pow (const HxVec2Double &v) const
 Power. More...

HxVec2Double mod (const HxVec2Double &v) const
 Modulo. More...

HxVec2Double and (const HxVec2Double &v) const
 And. More...

HxVec2Double or (const HxVec2Double &v) const
 Or. More...

HxVec2Double xor (const HxVec2Double &v) const
 Xor. More...

HxVec2Double leftShift (const HxVec2Double &v) const
 Left shift. More...

HxVec2Double rightShift (const HxVec2Double &v) const
 Right shift. More...

HxScalarDouble dot (const HxVec2Double &v) const
 Dot product. More...

HxVec2Double cross (const HxVec2Double &v) const
 Cross product. More...

HxVec2Double operator+ (const HxVec2Double &v1, const HxVec2Double &v2)
 Addition. More...

HxVec2Double operator- (const HxVec2Double &v1, const HxVec2Double &v2)
 Subtraction. More...

HxVec2Double operator * (const HxVec2Double &v1, const HxVec2Double &v2)
 Multiplication. More...

HxVec2Double operator/ (const HxVec2Double &v1, const HxVec2Double &v2)
 Division. More...


Output

STD_OSTREAM & put (STD_OSTREAM &os) const
 Print value on stream. More...

HxString toString () const
 Value as a string. More...


Public Methods

void * operator new (size_t, void *=0)
HxVec2Double & operator= (const HxVec2Double &rhs)


Detailed Description

Class definition vector of 2 doubles.


Constructor & Destructor Documentation

HxVec2Double::HxVec2Double   [inline]
 

Default constructor.

00323 { 
00324 }

HxVec2Double::HxVec2Double double    x,
double    y
[inline]
 

Conversion from native type.

00328 {
00329     _values[0] = x;
00330     _values[1] = y;
00331 }

HxVec2Double::HxVec2Double const HxVec2Double &    v [inline]
 

Copy constructor.

00335 {
00336     _values[0] = v._values[0];
00337     _values[1] = v._values[1];
00338 }


Member Function Documentation

int HxVec2Double::dim   const [inline]
 

Dimensionality.

00356 { 
00357     return 2;
00358 }

double HxVec2Double::x   const [inline]
 

Value of first element.

00362 { 
00363     return _values[0]; 
00364 }

double HxVec2Double::y   const [inline]
 

Value of second element.

00368 { 
00369     return _values[1]; 
00370 }

double HxVec2Double::getValue int    dim const [inline]
 

Element in given dimension.

00374 { 
00375     return _values[dim - 1]; 
00376 }

HxVec2Double::operator HxScalarInt   const
 

Cast to HxScalarInt.

00026 {
00027     return (int) _values[0];
00028 }

HxVec2Double::operator HxScalarDouble   const
 

Cast to HxScalarDouble.

00031 {
00032     return _values[0];
00033 }

HxVec2Double::operator HxVec2Int   const
 

Cast to HxVec2Int.

00036 {
00037     return HxVec2Int(int(_values[0]), int(_values[1]));
00038 }

HxVec2Double::operator HxVec3Int   const
 

Cast to HxVec3Int.

00041 {
00042     return HxVec3Int(int(_values[0]), int(_values[1]), 0);
00043 }

HxVec2Double::operator HxVec3Double   const
 

Cast to HxVec3Double.

00046 {
00047     return HxVec3Double(_values[0], _values[1], 0);
00048 }

HxVec2Double::operator HxComplex   const
 

Cast to HxComplex.

00051 {
00052     return HxComplex(_values[0], _values[1]);
00053 }

int HxVec2Double::operator== const HxVec2Double &    v const [inline]
 

Equal.

00386 {
00387     return (_values[0] == v._values[0]) && (_values[1] == v._values[1]);
00388 }

int HxVec2Double::operator!= const HxVec2Double &    v const [inline]
 

Not equal.

00392 {
00393     return (_values[0] != v._values[0]) || (_values[1] != v._values[1]);
00394 }

int HxVec2Double::operator< const HxVec2Double &    v const [inline]
 

Less than.

00398 {
00399     return (fabs(_values[0]) + fabs(_values[1])) <
00400            (fabs(v._values[0]) + fabs(v._values[1]));
00401 }

int HxVec2Double::operator<= const HxVec2Double &    v const [inline]
 

Less equal.

00405 {
00406     return (fabs(_values[0]) + fabs(_values[1])) <=
00407            (fabs(v._values[0]) + fabs(v._values[1]));
00408 }

int HxVec2Double::operator> const HxVec2Double &    v const [inline]
 

Greater than.

00412 {
00413     return (fabs(_values[0]) + fabs(_values[1])) >
00414            (fabs(v._values[0]) + fabs(v._values[1]));
00415 }

int HxVec2Double::operator>= const HxVec2Double &    v const [inline]
 

Greater equal.

00419 {
00420     return (fabs(_values[0]) + fabs(_values[1])) >=
00421            (fabs(v._values[0]) + fabs(v._values[1]));
00422 }

HxVec2Double HxVec2Double::operator-   const [inline]
 

Negation.

00426 {
00427     return HxVec2Double(-_values[0], -_values[1]);
00428 }

HxVec2Double HxVec2Double::complement   const [inline]
 

Complement.

00432 {
00433     return HxVec2Double(-_values[0], -_values[1]);
00434 }

HxVec2Double HxVec2Double::abs   const [inline]
 

Absolute value.

00438 {
00439     return HxVec2Double(fabs(_values[0]), fabs(_values[1]));
00440 }

HxVec2Double HxVec2Double::ceil   const [inline]
 

Ceiling.

00444 {
00445     return HxVec2Double(::ceil(_values[0]), ::ceil(_values[1]));
00446 }

HxVec2Double HxVec2Double::floor   const [inline]
 

Floor.

00450 {
00451     return HxVec2Double(::floor(_values[0]), ::floor(_values[1]));
00452 }

HxVec2Double HxVec2Double::round   const [inline]
 

Round.

00456 {
00457     return HxVec2Double((int) (_values[0] + ((_values[0] >= 0) ? 0.5 : -0.5)),
00458                         (int) (_values[1] + ((_values[1] >= 0) ? 0.5 : -0.5)));
00459 }

HxScalarDouble HxVec2Double::sum   const [inline]
 

Sum.

00710 {
00711     return _values[0] + _values[1];
00712 }

HxScalarDouble HxVec2Double::product   const [inline]
 

Product.

00716 {
00717     return _values[0] * _values[1];
00718 }

HxScalarDouble HxVec2Double::min   const [inline]
 

Minimum.

00722 {
00723     return (_values[0] < _values[1]) ? _values[0] : _values[1];
00724 }

HxScalarDouble HxVec2Double::max   const [inline]
 

Maximum.

00728 {
00729     return (_values[0] > _values[1]) ? _values[0] : _values[1];
00730 }

HxScalarDouble HxVec2Double::norm1   const
 

L1 norm.

00057 {
00058     return fabs(_values[0]) + fabs(_values[1]);
00059 }

HxScalarDouble HxVec2Double::norm2   const
 

L2 norm.

00063 {
00064     return ::sqrt(_values[0]*_values[0] + _values[1]*_values[1]);
00065 }

HxScalarDouble HxVec2Double::normInf   const
 

L infinity norm.

00069 {
00070     return (fabs(_values[0]) > fabs(_values[1])) ? fabs(_values[0]) :
00071                                                    fabs(_values[1]);
00072 }

HxVec2Double HxVec2Double::sqrt   const [inline]
 

Square root.

00463 {
00464     return HxVec2Double(::sqrt(_values[0]), ::sqrt(_values[1]));
00465 }

HxVec2Double HxVec2Double::sin   const [inline]
 

Sine.

00469 {
00470     return HxVec2Double(::sin(_values[0]), ::sin(_values[1]));
00471 }

HxVec2Double HxVec2Double::cos   const [inline]
 

Cosine.

00475 {
00476     return HxVec2Double(::cos(_values[0]), ::cos(_values[1]));
00477 }

HxVec2Double HxVec2Double::tan   const [inline]
 

Tangent.

00481 {
00482     return HxVec2Double(::tan(_values[0]), ::tan(_values[1]));
00483 }

HxVec2Double HxVec2Double::asin   const [inline]
 

Arc sine.

00487 {
00488     return HxVec2Double(::asin(_values[0]), ::asin(_values[1]));
00489 }

HxVec2Double HxVec2Double::acos   const [inline]
 

Arc cosine.

00493 {
00494     return HxVec2Double(::acos(_values[0]), ::acos(_values[1]));
00495 }

HxVec2Double HxVec2Double::atan   const [inline]
 

Arc tangent.

00499 {
00500     return HxVec2Double(::atan(_values[0]), ::atan(_values[1]));
00501 }

HxScalarDouble HxVec2Double::atan2   const
 

Arc tangent.

00076 {   
00077     return HxScalarDouble(::atan2(_values[0], _values[1]));
00078 }

HxVec2Double HxVec2Double::sinh   const [inline]
 

Hyperbolic sine.

00505 {
00506     return HxVec2Double(::sinh(_values[0]), ::sinh(_values[1]));
00507 }

HxVec2Double HxVec2Double::cosh   const [inline]
 

Hyperbolic cosine.

00511 {
00512     return HxVec2Double(::cosh(_values[0]), ::cosh(_values[1]));
00513 }

HxVec2Double HxVec2Double::tanh   const [inline]
 

Hyperbolic tangent.

00517 {
00518     return HxVec2Double(::tanh(_values[0]), ::tanh(_values[1]));
00519 }

HxVec2Double HxVec2Double::exp   const [inline]
 

Exponent.

00523 {
00524     return HxVec2Double(::exp(_values[0]), ::exp(_values[1]));
00525 }

HxVec2Double HxVec2Double::log   const [inline]
 

Natural logarithm.

00529 {
00530     return HxVec2Double(::log(_values[0]), ::log(_values[1]));
00531 }

HxVec2Double HxVec2Double::log10   const [inline]
 

Base 10 logarithm.

00535 {
00536     return HxVec2Double(::log10(_values[0]), ::log10(_values[1]));
00537 }

HxVec2Double & HxVec2Double::operator+= const HxVec2Double &    v [inline]
 

Addition and assignment.

00541 {
00542     _values[0] += v._values[0];
00543     _values[1] += v._values[1];
00544     return *this;
00545 }

HxVec2Double & HxVec2Double::operator-= const HxVec2Double &    v [inline]
 

Subtraction and assignment.

00549 {
00550     _values[0] -= v._values[0];
00551     _values[1] -= v._values[1];
00552     return *this;
00553 }

HxVec2Double & HxVec2Double::operator *= const HxVec2Double &    v [inline]
 

Multiplication and assignment.

00557 {
00558     _values[0] *= v._values[0];
00559     _values[1] *= v._values[1];
00560     return *this;
00561 }

HxVec2Double & HxVec2Double::operator/= const HxVec2Double &    v [inline]
 

Division and assignment.

00565 {
00566     _values[0] /= v._values[0];
00567     _values[1] /= v._values[1];
00568     return *this;
00569 }

HxVec2Double HxVec2Double::min const HxVec2Double &    v const [inline]
 

Minimum.

00601 {
00602     return (operator<(v)) ? (*this) : v;
00603 }

HxVec2Double & HxVec2Double::minAssign const HxVec2Double &    v [inline]
 

Minimum and assignment.

00607 {
00608     if (operator<(v))
00609         return *this;
00610     operator=(v);
00611     return *this;
00612 }

HxVec2Double HxVec2Double::max const HxVec2Double &    v const [inline]
 

Maximum.

00616 {
00617     return (operator>(v)) ? (*this) : v;
00618 }

HxVec2Double & HxVec2Double::maxAssign const HxVec2Double &    v [inline]
 

Maximum and assignment.

00622 {
00623     if (operator>(v))
00624         return *this;
00625     operator=(v);
00626     return *this;
00627 }

HxVec2Double HxVec2Double::inf const HxVec2Double &    v const [inline]
 

Infimum.

00631 {
00632     return HxVec2Double((_values[0] < v._values[0]) ? _values[0] : v._values[0],
00633                        (_values[1] < v._values[1]) ? _values[1] : v._values[1]);
00634 }

HxVec2Double & HxVec2Double::infAssign const HxVec2Double &    v [inline]
 

Infimum and assignment.

00638 {
00639     _values[0] = (_values[0] < v._values[0]) ? _values[0] : v._values[0];
00640     _values[1] = (_values[1] < v._values[1]) ? _values[1] : v._values[1];
00641     return *this;
00642 }

HxVec2Double HxVec2Double::sup const HxVec2Double &    v const [inline]
 

Supremum.

00646 {
00647     return HxVec2Double((_values[0] > v._values[0]) ? _values[0] : v._values[0],
00648                        (_values[1] > v._values[1]) ? _values[1] : v._values[1]);
00649 }

HxVec2Double & HxVec2Double::supAssign const HxVec2Double &    v [inline]
 

Supremum and assignment.

00653 {
00654     _values[0] = (_values[0] > v._values[0]) ? _values[0] : v._values[0];
00655     _values[1] = (_values[1] > v._values[1]) ? _values[1] : v._values[1];
00656     return *this;
00657 }

HxVec2Double HxVec2Double::pow const HxVec2Double &    v const [inline]
 

Power.

00661 {
00662     return HxVec2Double(::pow(_values[0], v._values[0]),
00663                         ::pow(_values[1], v._values[1]));
00664 }

HxVec2Double HxVec2Double::mod const HxVec2Double &    v const [inline]
 

Modulo.

00668 {
00669     return (*this);
00670 }

HxVec2Double HxVec2Double::and const HxVec2Double &    v const [inline]
 

And.

00674 {
00675     return (*this);
00676 }

HxVec2Double HxVec2Double::or const HxVec2Double &    v const [inline]
 

Or.

00680 {
00681     return (*this);
00682 }

HxVec2Double HxVec2Double::xor const HxVec2Double &    v const [inline]
 

Xor.

00686 {
00687     return (*this);
00688 }

HxVec2Double HxVec2Double::leftShift const HxVec2Double &    v const [inline]
 

Left shift.

00692 {
00693     return (*this);
00694 }

HxVec2Double HxVec2Double::rightShift const HxVec2Double &    v const [inline]
 

Right shift.

00698 {
00699     return (*this);
00700 }

HxScalarDouble HxVec2Double::dot const HxVec2Double &    v const
 

Dot product.

00082 {
00083     return (_values[0] * v._values[0]) + (_values[1] * v._values[1]);
00084 }

HxVec2Double HxVec2Double::cross const HxVec2Double &    v const [inline]
 

Cross product.

00704 {
00705     return HxVec2Double(0, 0);
00706 }

STD_OSTREAM & HxVec2Double::put STD_OSTREAM &    os const
 

Print value on stream.

For global operator<<

00088 {
00089     return os << "(" << _values[0] << "," << _values[1] << ")";
00090 }

HxString HxVec2Double::toString   const
 

Value as a string.

00093                              {
00094     return HxString("(") + makeString(_values[0]) + ", "
00095             + makeString(_values[1]) + ")";
00096 }


Friends And Related Function Documentation

HxVec2Double operator+ const HxVec2Double &    v1,
const HxVec2Double &    v2
[friend]
 

Addition.

00573 {
00574     return HxVec2Double(v1._values[0] + v2._values[0],
00575                         v1._values[1] + v2._values[1]);
00576 }

HxVec2Double operator- const HxVec2Double &    v1,
const HxVec2Double &    v2
[friend]
 

Subtraction.

00580 {
00581     return HxVec2Double(v1._values[0] - v2._values[0],
00582                         v1._values[1] - v2._values[1]);
00583 }

HxVec2Double operator * const HxVec2Double &    v1,
const HxVec2Double &    v2
[friend]
 

Multiplication.

00587 {
00588     return HxVec2Double(v1._values[0] * v2._values[0],
00589                         v1._values[1] * v2._values[1]);
00590 }

HxVec2Double operator/ const HxVec2Double &    v1,
const HxVec2Double &    v2
[friend]
 

Division.

00594 {
00595     return HxVec2Double(v1._values[0] / v2._values[0],
00596                         v1._values[1] / v2._values[1]);
00597 }


Member Data Documentation

const HxVec2Double HxVec2Double::SMALL_VAL = HxVec2Double(0, 0) [static]
 

A small value w.r.t to the comparison operators "<" and ">".

Not actually the minimum to avoid overflow.

const HxVec2Double HxVec2Double::LARGE_VAL = HxVec2Double(1e300, 1e300) [static]
 

A large value w.r.t to the comparison operators "<" and ">".

Not actually the maximum to avoid overflow.


The documentation for this class was generated from the following files:
Generated on Mon Jan 27 15:49:11 2003 for C++Reference by doxygen1.2.12 written by Dimitri van Heesch, © 1997-2001