Public Member Functions | |
SparsitySuperset (const Set< MultipleDeriv > &C, const Set< MultipleDeriv > &V) | |
void | print (std::ostream &os) const |
void | print (std::ostream &os, const Array< RCP< EvalVector > > &vecResults, const Array< double > &constantResults) const |
std::string | toString () const |
DerivSet | derivSet () const |
Access to information about individual derivatives | |
bool | containsDeriv (const MultipleDeriv &d) const |
int | getIndex (const MultipleDeriv &d) const |
const MultipleDeriv & | deriv (int i) const |
const DerivState & | state (int i) const |
int | numDerivs () const |
int | numConstantDerivs () const |
int | numVectorDerivs () const |
int | maxOrder () const |
bool | isConstant (int i) const |
bool | isSpatialDeriv (int i) const |
const MultiIndex & | multiIndex (int i) const |
Private Member Functions | |
void | addDeriv (const MultipleDeriv &d, const DerivState &state) |
void | addDeriv (const Deriv &d, const DerivState &state) |
Private Attributes | |
int | maxOrder_ |
Sundance::Map< MultipleDeriv, int > | derivToIndexMap_ |
Array< MultipleDeriv > | derivs_ |
Array< DerivState > | states_ |
Array< MultiIndex > | multiIndex_ |
int | numConstantDerivs_ |
int | numVectorDerivs_ |
Definition at line 68 of file SundanceSparsitySuperset.hpp.
SparsitySuperset::SparsitySuperset | ( | const Set< MultipleDeriv > & | C, | |
const Set< MultipleDeriv > & | V | |||
) |
Create a sparsity set
Definition at line 49 of file SundanceSparsitySuperset.cpp.
References addDeriv(), Sundance::Set< Key, Compare >::begin(), Sundance::ConstantDeriv, Sundance::Set< Key, Compare >::end(), and Sundance::VectorDeriv.
void SparsitySuperset::addDeriv | ( | const Deriv & | d, | |
const DerivState & | state | |||
) | [private] |
Add a derivative to the set. Called by the subset's addDeriv() method.
Definition at line 112 of file SundanceSparsitySuperset.cpp.
References addDeriv(), and Sundance::MultiSet< Key >::put().
void SparsitySuperset::addDeriv | ( | const MultipleDeriv & | d, | |
const DerivState & | state | |||
) | [private] |
Add a derivative to the set. Called by the subset's addDeriv() method.
Definition at line 72 of file SundanceSparsitySuperset.cpp.
References Sundance::ConstantDeriv, containsDeriv(), derivs_, derivToIndexMap_, getIndex(), Playa::max(), maxOrder_, multiIndex_, numConstantDerivs_, numVectorDerivs_, Sundance::MultipleDeriv::order(), Sundance::Map< Key, Value, Compare >::put(), and states_.
Referenced by addDeriv(), and SparsitySuperset().
bool SparsitySuperset::containsDeriv | ( | const MultipleDeriv & | d | ) | const |
Detect whether a given derivative exists in this set
Definition at line 122 of file SundanceSparsitySuperset.cpp.
References Sundance::Map< Key, Value, Compare >::containsKey(), and derivToIndexMap_.
Referenced by addDeriv(), and getIndex().
const MultipleDeriv& Sundance::SparsitySuperset::deriv | ( | int | i | ) | const [inline] |
Return the results stored at index i
Definition at line 87 of file SundanceSparsitySuperset.hpp.
References derivs_.
Referenced by derivSet(), Sundance::EvalVectorArray::print(), Sundance::UserDefOpCommonEvaluator::UserDefOpCommonEvaluator(), and Sundance::UserDefOpEvaluator::UserDefOpEvaluator().
DerivSet SparsitySuperset::derivSet | ( | ) | const |
Definition at line 229 of file SundanceSparsitySuperset.cpp.
References deriv(), numDerivs(), Sundance::Set< Key, Compare >::put(), state(), and Sundance::ZeroDeriv.
int SparsitySuperset::getIndex | ( | const MultipleDeriv & | d | ) | const |
Find the index at which the results for the given functional derivative are stored in the results array
Definition at line 127 of file SundanceSparsitySuperset.cpp.
References containsDeriv(), derivToIndexMap_, and Sundance::Map< Key, Value, Compare >::get().
Referenced by addDeriv().
bool Sundance::SparsitySuperset::isConstant | ( | int | i | ) | const [inline] |
Indicate whether the specified derivative is spatially constant at this node
Definition at line 111 of file SundanceSparsitySuperset.hpp.
References Sundance::ConstantDeriv, and states_.
bool Sundance::SparsitySuperset::isSpatialDeriv | ( | int | i | ) | const [inline] |
Indicate whether the specified multiple derivative contains at least one order of spatial differentiation
Definition at line 115 of file SundanceSparsitySuperset.hpp.
References multiIndex_.
int Sundance::SparsitySuperset::maxOrder | ( | ) | const [inline] |
const MultiIndex& Sundance::SparsitySuperset::multiIndex | ( | int | i | ) | const [inline] |
Return the spatial multi index for the i-th derivative
Definition at line 121 of file SundanceSparsitySuperset.hpp.
References multiIndex_.
int Sundance::SparsitySuperset::numConstantDerivs | ( | ) | const [inline] |
int Sundance::SparsitySuperset::numDerivs | ( | ) | const [inline] |
Definition at line 95 of file SundanceSparsitySuperset.hpp.
References derivs_.
Referenced by derivSet(), Sundance::EvalVectorArray::print(), Sundance::UserDefOpCommonEvaluator::UserDefOpCommonEvaluator(), and Sundance::UserDefOpEvaluator::UserDefOpEvaluator().
int Sundance::SparsitySuperset::numVectorDerivs | ( | ) | const [inline] |
void SparsitySuperset::print | ( | std::ostream & | os, | |
const Array< RCP< EvalVector > > & | vecResults, | |||
const Array< double > & | constantResults | |||
) | const |
Definition at line 135 of file SundanceSparsitySuperset.cpp.
References Sundance::ConstantDeriv, derivs_, states_, Sundance::VectorDeriv, and Sundance::ZeroDeriv.
void SparsitySuperset::print | ( | std::ostream & | os | ) | const |
Definition at line 186 of file SundanceSparsitySuperset.cpp.
References Sundance::ConstantDeriv, derivs_, states_, Sundance::VectorDeriv, and Sundance::ZeroDeriv.
Referenced by toString().
const DerivState& Sundance::SparsitySuperset::state | ( | int | i | ) | const [inline] |
Return the constancy state of deriv i
Definition at line 91 of file SundanceSparsitySuperset.hpp.
References states_.
Referenced by derivSet(), Sundance::UserDefOpCommonEvaluator::UserDefOpCommonEvaluator(), and Sundance::UserDefOpEvaluator::UserDefOpEvaluator().
string SparsitySuperset::toString | ( | ) | const |
Array<MultipleDeriv> Sundance::SparsitySuperset::derivs_ [private] |
The list of functional derivatives whose values are stored in this results set
Definition at line 159 of file SundanceSparsitySuperset.hpp.
Referenced by addDeriv(), deriv(), numDerivs(), and print().
Sundance::Map<MultipleDeriv, int> Sundance::SparsitySuperset::derivToIndexMap_ [private] |
Map from deriv to position of the derivative's value in the results array
Definition at line 155 of file SundanceSparsitySuperset.hpp.
Referenced by addDeriv(), containsDeriv(), and getIndex().
int Sundance::SparsitySuperset::maxOrder_ [private] |
Definition at line 151 of file SundanceSparsitySuperset.hpp.
Referenced by addDeriv(), and maxOrder().
Array<MultiIndex> Sundance::SparsitySuperset::multiIndex_ [private] |
Multiindices
Definition at line 165 of file SundanceSparsitySuperset.hpp.
Referenced by addDeriv(), isSpatialDeriv(), and multiIndex().
int Sundance::SparsitySuperset::numConstantDerivs_ [private] |
Definition at line 168 of file SundanceSparsitySuperset.hpp.
Referenced by addDeriv(), and numConstantDerivs().
int Sundance::SparsitySuperset::numVectorDerivs_ [private] |
Definition at line 171 of file SundanceSparsitySuperset.hpp.
Referenced by addDeriv(), and numVectorDerivs().
Array<DerivState> Sundance::SparsitySuperset::states_ [private] |
The state of each derivative at this node in the expression
Definition at line 162 of file SundanceSparsitySuperset.hpp.
Referenced by addDeriv(), isConstant(), print(), and state().