S_Engine Class Reference

Engine to pass in s values and retrieve eigen parameters in different formats. More...

#include <Eigs.H>

List of all members.

Public Member Functions

 S_Engine ()
 Construct an S_Engine object, but leave it invalid.
 ~S_Engine ()
 Deallocate gsl matrix and workspace.
 S_Engine (const std::vector< float > &s)
 Construct an S_Engine with an initial s value.
bool setS (const std::vector< float > &s)
 Insert a set of s values and compute the eigenvalues and vectors Side Effect: Sets valid to true.
bool getXYZ (const EigsEnum which, std::vector< float > &xyz) const
 Get the cartisian coordinate for a particular eigen vector.
bool isValid () const
 Do we have a working s value that can be queried?

Private Member Functions

bool init ()
 Used by constructors to allocate up GSL variables.

Private Attributes

bool valid
 True if an s value has been set.
std::vector< float > s
 see s_eigs. Store 6 values. Ignores the 7th value (sigma)
gsl_eigen_symmv_workspace * w
 GNU Scientific Library workspace for decomposition.
gsl_matrix * A
 Matrix that we will get eigen parameters from.
gsl_vector * eigenval
 unordered eigen values
gsl_matrix * eigenvec
 results stored here ordered by eigen val
float eigs [9]
 Lisa Tauxe style eigen parameters. See s_eigs program.


Detailed Description

Engine to pass in s values and retrieve eigen parameters in different formats.

Designed to be a reusable container, so you do not have to pay for the cost of allocating and freeing GNU Scientific Library working variables over and over. This class does a little bit more work than necessary in that it calls GetEigs no matter what, but you probably want that anyway, right?


Constructor & Destructor Documentation

S_Engine::S_Engine  ) 
 

Construct an S_Engine object, but leave it invalid.

You need to call setS() before pulling out data with getXYZ() or other get methods. You should recycle one S_Engine rather than create/destroy a new object for each s array that you want to process. Each object has to manage 4 gsl objects.

S_Engine::~S_Engine  ) 
 

Deallocate gsl matrix and workspace.

S_Engine::S_Engine const std::vector< float > &  s  ) 
 

Construct an S_Engine with an initial s value.

Parameters:
s Vector of size 6 or 7. It will ignore the 7th value which is your sigma
You can re-use this object by calling setS to reset it to a new value


Member Function Documentation

bool S_Engine::getXYZ const EigsEnum  which,
std::vector< float > &  xyz
const
 

Get the cartisian coordinate for a particular eigen vector.

Parameters:
which KMIN, KINT, or KMAX
xyz vector of size 3 to fill with the x,y, and z values

bool S_Engine::init  )  [private]
 

Used by constructors to allocate up GSL variables.

bool S_Engine::isValid  )  const [inline]
 

Do we have a working s value that can be queried?

Returns:
false if no s has been set or if there was trouble allocating the gsl data.

bool S_Engine::setS const std::vector< float > &  s  ) 
 

Insert a set of s values and compute the eigenvalues and vectors Side Effect: Sets valid to true.


Member Data Documentation

gsl_matrix* S_Engine::A [private]
 

Matrix that we will get eigen parameters from.

gsl_vector* S_Engine::eigenval [private]
 

unordered eigen values

gsl_matrix* S_Engine::eigenvec [private]
 

results stored here ordered by eigen val

float S_Engine::eigs[9] [private]
 

Lisa Tauxe style eigen parameters. See s_eigs program.

3 tau_i, dec_i inc_i triples of eigenval and eigenvectors

In groups of three with min in [0..2], int in [3..5], and max in [6..8]

std::vector<float> S_Engine::s [private]
 

see s_eigs. Store 6 values. Ignores the 7th value (sigma)

bool S_Engine::valid [private]
 

True if an s value has been set.

gsl_eigen_symmv_workspace* S_Engine::w [private]
 

GNU Scientific Library workspace for decomposition.


The documentation for this class was generated from the following files:
Generated on Thu Mar 2 17:55:26 2006 for density by  doxygen 1.4.6