Skip to content

Class ae108::cpppetsc::LeastSquaresSolver

template <class Policy>

ClassList > ae108 > cpppetsc > LeastSquaresSolver

Public Types

Type Name
typedef std::function< void(const distributed< vector_type > &, matrix_type *)> GradientFunctor
typedef std::function< void(const distributed< vector_type > &, distributed< vector_type > *)> ObjectiveFunctor
typedef Matrix< Policy > matrix_type
typedef typename Vector< Policy >::real_type real_type
typedef typename Vector< Policy >::size_type size_type
typedef typename Vector< Policy >::value_type value_type
typedef Vector< Policy > vector_type

Public Functions

Type Name
LeastSquaresSolver (matrix_type bufferMatrix, distributed< vector_type > bufferVector)
Initializes the nonlinear solver with the problem dimension.
distributed< vector_type > solve (ObjectiveFunctor objective, GradientFunctor gradient, distributed< vector_type > guess) const
Minimizes the sum of the squared elements of the objective function.

Public Types Documentation

typedef GradientFunctor

using ae108::cpppetsc::LeastSquaresSolver< Policy >::GradientFunctor =  std::function<void(const distributed<vector_type> &, matrix_type *)>;

Remark:

The first parameter is the input, the second parameter is the output.


typedef ObjectiveFunctor

using ae108::cpppetsc::LeastSquaresSolver< Policy >::ObjectiveFunctor =  std::function<void(const distributed<vector_type> &, distributed<vector_type> *)>;

Remark:

The first parameter is the input, the second parameter is the output.


typedef matrix_type

using ae108::cpppetsc::LeastSquaresSolver< Policy >::matrix_type =  Matrix<Policy>;

typedef real_type

using ae108::cpppetsc::LeastSquaresSolver< Policy >::real_type =  typename Vector<Policy>::real_type;

typedef size_type

using ae108::cpppetsc::LeastSquaresSolver< Policy >::size_type =  typename Vector<Policy>::size_type;

typedef value_type

using ae108::cpppetsc::LeastSquaresSolver< Policy >::value_type =  typename Vector<Policy>::value_type;

typedef vector_type

using ae108::cpppetsc::LeastSquaresSolver< Policy >::vector_type =  Vector<Policy>;

Public Functions Documentation

function LeastSquaresSolver

Initializes the nonlinear solver with the problem dimension.

explicit ae108::cpppetsc::LeastSquaresSolver::LeastSquaresSolver (
    matrix_type bufferMatrix,
    distributed < vector_type > bufferVector
) 

Parameters:

  • bufferMatrix The matrix to use as an internal buffer.
  • bufferVector The matrix to use as an internal buffer.

function solve

Minimizes the sum of the squared elements of the objective function.

distributed < vector_type > ae108::cpppetsc::LeastSquaresSolver::solve (
    ObjectiveFunctor objective,
    GradientFunctor gradient,
    distributed < vector_type > guess
) const

Parameters:

  • objective The function to minimize.
  • gradient The gradient of the objective.
  • guess The starting point for the optimization.

Exception:

Returns:

The minimizer.



The documentation for this class was generated from the following file cpppetsc/src/include/ae108/cpppetsc/LeastSquaresSolver.h