1 #ifndef SUB_STATE_VECTOR_OBSERVER_H 2 #define SUB_STATE_VECTOR_OBSERVER_H 17 blitz::Array<bool, 1>& Used)
const;
19 blitz::Array<std::string, 1>& Sv_name)
const;
40 const blitz::Array<double, 2>& Cov_sub) = 0;
59 virtual void print(std::ostream& Os)
const {Os <<
"SubStatVectorObserver";}
63 throw Exception(
"A SubStateVectorObserver can only be attached to one state vector");
SubStateVectorObserver()
Default constructor.
void state_vector_observer_initialize(int Plen)
Take the given number of state vector parameters.
virtual void print(std::ostream &Os) const
virtual void update_sub_state(const ArrayAd< double, 1 > &Sv_sub, const blitz::Array< double, 2 > &Cov_sub)=0
Called by update_state with the subset of the state vector used by this class.
virtual ~SubStateVectorObserver()
ArrayAd< double, 1 > sv_full
The last full state vector we have been updated with, saved for reference by derived class...
This is the base of the exception hierarchy for Full Physics code.
blitz::Array< double, 2 > sv_cov_sub
The subset of cov_full that is "owned" by this class, what was passed through update_sub_state.
This is an observer of a StateVector.
virtual void notify_update(const StateVector &Sv)
Called when the Observed object is updated.
virtual void mark_used_sub(blitz::Array< bool, 1 > &Used) const
Called by mark_used with the subset of the state vector used by this class.
int sub_vector_size() const
Length of the sub set of the state vector used by this object.
ArrayAd< double, 1 > sv_sub
The subset of sv_full that is "owned" by this class, what was passed through update_sub_state.
int state_vector_start_index() const
Starting index of state vector used by this object.
A common StateVectorObserver just "owns" a subset of the StateVector.
This handles informing a set of interested objects when the state vector has updated.
int observer_claimed_size() const
Total "claimed" size of the state vector.
virtual void mark_used(const StateVector &Sv, blitz::Array< bool, 1 > &Used) const
Mark elements that we are actively using (i.e., that aren't ignored).
SubStateVectorObserver(int Plen)
Take the given number of state vector parameters.
virtual void state_vector_name_sub(blitz::Array< std::string, 1 > &Sv_name) const
Called by state_vector_name with the subset of the Sv_name used by this class.
Contains classes to abstract away details in various Spurr Radiative Transfer software.
virtual void state_vector_name(const StateVector &Sv, blitz::Array< std::string, 1 > &Sv_name) const
Update any portion of the list of the state vector names that apply to this object.
virtual void notify_remove(StateVector &Sv)
Called when an object is removed from an Observable.
blitz::Array< double, 2 > sv_cov_full
The last full covariance matrix we have been with, saved for reference by derived class...
virtual void notify_add(StateVector &Sv)
Called when an object is added to an Observable.