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