1 #ifndef CONSTANTVECTOR_H_ 2 #define CONSTANTVECTOR_H_ 3 4 #include "MUQ/Modeling/ModPiece.h" 5 6 namespace muq { 7 namespace Modeling { 8 9 /// A muq::Modeling::ModPiece with no inputs and a single known vector-valued output 10 class ConstantVector : public ModPiece { 11 public: 12 13 /// Create a muq::Modeling::ConstantPiece with the outputs given in a vector of vectors 14 /** 15 @param[in] outs The outputs 16 */ 17 ConstantVector(std::vector<Eigen::VectorXd> const& outs); 18 19 /// Create a muq::Modeling::ConstantPiece with the outputs given in a vector 20 /** 21 @param[in] outs The outputs 22 */ 23 ConstantVector(Eigen::VectorXd const& valIn); 24 25 /// Set the outputs 26 /** 27 @param[in] outs The new outputs 28 */ 29 void SetValue(Eigen::VectorXd const& valIn); 30 31 private: 32 /// The outputs are already set and not cleared so don't do anything 33 /** 34 @param[in] inputs An empty vector of inputs 35 */ 36 virtual void EvaluateImpl(muq::Modeling::ref_vector<Eigen::VectorXd> const& inputs) override; 37 38 static Eigen::VectorXi OutSizes(std::vector<Eigen::VectorXd> const& outs); 39 40 }; // class ConstantVector 41 42 } // namespace Modeling 43 } // namespace muq 44 45 #endif 46