1 #ifndef GAUSSNEWTONOPERATOR_H
2 #define GAUSSNEWTONOPERATOR_H
25 std::shared_ptr<ModPiece>
const& noiseModelIn,
26 std::vector<Eigen::VectorXd>
const& inputsIn,
34 virtual Eigen::MatrixXd
Apply(Eigen::Ref<const Eigen::MatrixXd>
const& x)
override;
37 virtual Eigen::MatrixXd
ApplyTranspose(Eigen::Ref<const Eigen::MatrixXd>
const& x)
override;
43 const std::vector<Eigen::VectorXd>
inputs;
Creates a linear operator for the action of a Gauss-Newton Hessian approximation on a vector....
const std::vector< Eigen::VectorXd > noiseInputs
virtual Eigen::MatrixXd Apply(Eigen::Ref< const Eigen::MatrixXd > const &x) override
const std::vector< Eigen::VectorXd > inputs
virtual Eigen::MatrixXd ApplyTranspose(Eigen::Ref< const Eigen::MatrixXd > const &x) override
virtual ~GaussNewtonOperator()=default
GaussNewtonOperator(std::shared_ptr< ModPiece > const &forwardModelIn, std::shared_ptr< ModPiece > const &noiseModelIn, std::vector< Eigen::VectorXd > const &inputsIn, unsigned int inWrt, double scaleIn=1.0, double nuggetIn=0.0)
std::shared_ptr< ModPiece > forwardModel
std::shared_ptr< ModPiece > noiseModel
Generic linear operator base class.