RVLAlg::DiffBallProjTerminator< Scalar > Class Template Reference

Terminator which takes vectors x0 and x and a max for the norm difference r. More...

#include <vectorterm.hh>

Inheritance diagram for RVLAlg::DiffBallProjTerminator< Scalar >:

RVLAlg::Terminator List of all members.

Public Types

typedef ScalarFieldTraits<
Scalar >::AbsType 
NormRetType

Public Member Functions

 DiffBallProjTerminator (Vector< Scalar > const &tx, Vector< Scalar > &ty, NormRetType _maxstep, ostream &_str=cout)
virtual bool query ()
bool static_query ()
 for post facto use - access to result without recomputation

Protected Attributes

Vector< Scalar > const & x
Vector< Scalar > & y
NormRetType maxstep
bool res
ostream & str

Detailed Description

template<class Scalar>
class RVLAlg::DiffBallProjTerminator< Scalar >

Terminator which takes vectors x0 and x and a max for the norm difference r.

Returns false if

$\|x - x0\| < r$

Returns true otherwise, and projects x onto the ball of radius r centered at x0, that is, replaces x by

$ x \leftarrow x0 + \frac{r}{\|x-x_0\|}(x-x_0) $

In order to avoid possible false positive return due to roundoff when query() is called repeatedly on the same data, scale $x-x_0$ by slightly smaller factor than returned by floating point division.

Definition at line 357 of file vectorterm.hh.


Member Typedef Documentation

template<class Scalar>
typedef ScalarFieldTraits<Scalar>::AbsType RVLAlg::DiffBallProjTerminator< Scalar >::NormRetType

Definition at line 359 of file vectorterm.hh.


Constructor & Destructor Documentation

template<class Scalar>
RVLAlg::DiffBallProjTerminator< Scalar >::DiffBallProjTerminator ( Vector< Scalar > const &  tx,
Vector< Scalar > &  ty,
NormRetType  _maxstep,
ostream &  _str = cout 
)

Definition at line 361 of file vectorterm.hh.

References RVLAlg::DiffBallProjTerminator< Scalar >::x, and RVLAlg::DiffBallProjTerminator< Scalar >::y.


Member Function Documentation

template<class Scalar>
virtual bool RVLAlg::DiffBallProjTerminator< Scalar >::query (  )  [virtual]

Implements RVLAlg::Terminator.

Definition at line 369 of file vectorterm.hh.

References RVLAlg::DiffBallProjTerminator< Scalar >::maxstep, ProtectedDivision(), RVLAlg::DiffBallProjTerminator< Scalar >::res, RVLAlg::DiffBallProjTerminator< Scalar >::x, and RVLAlg::DiffBallProjTerminator< Scalar >::y.

template<class Scalar>
bool RVLAlg::DiffBallProjTerminator< Scalar >::static_query (  ) 

for post facto use - access to result without recomputation

Definition at line 393 of file vectorterm.hh.

References RVLAlg::DiffBallProjTerminator< Scalar >::res.


Member Data Documentation

template<class Scalar>
Vector<Scalar> const& RVLAlg::DiffBallProjTerminator< Scalar >::x [protected]

Definition at line 396 of file vectorterm.hh.

Referenced by RVLAlg::DiffBallProjTerminator< Scalar >::DiffBallProjTerminator(), and RVLAlg::DiffBallProjTerminator< Scalar >::query().

template<class Scalar>
Vector<Scalar>& RVLAlg::DiffBallProjTerminator< Scalar >::y [protected]

Definition at line 397 of file vectorterm.hh.

Referenced by RVLAlg::DiffBallProjTerminator< Scalar >::DiffBallProjTerminator(), and RVLAlg::DiffBallProjTerminator< Scalar >::query().

template<class Scalar>
NormRetType RVLAlg::DiffBallProjTerminator< Scalar >::maxstep [protected]

Definition at line 398 of file vectorterm.hh.

Referenced by RVLAlg::DiffBallProjTerminator< Scalar >::query().

template<class Scalar>
bool RVLAlg::DiffBallProjTerminator< Scalar >::res [protected]

Definition at line 399 of file vectorterm.hh.

Referenced by RVLAlg::DiffBallProjTerminator< Scalar >::query(), and RVLAlg::DiffBallProjTerminator< Scalar >::static_query().

template<class Scalar>
ostream& RVLAlg::DiffBallProjTerminator< Scalar >::str [protected]

Definition at line 400 of file vectorterm.hh.


The documentation for this class was generated from the following file:
Generated on 5 Jan 2017 for RvlAlg by  doxygen 1.4.7