38 lines
884 B
C++
38 lines
884 B
C++
/**
|
|
* @file NP.h
|
|
* @brief Use this virtual class to represent a non-linear
|
|
* problem. An implementation of this should provide
|
|
* approximation and differentiation services to
|
|
* allow SQP to work on the given problem.
|
|
* @author Ivan Dario Jimenez
|
|
* @date 2/2/16
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <gtsam_unstable/linear/QP.h>
|
|
|
|
namespace gtsam {
|
|
|
|
class NP {
|
|
public:
|
|
/*
|
|
* This function takes the a point and returns a quadratic
|
|
* problem approximation to the non-linear Problem.
|
|
*/
|
|
virtual QP approximate(const Vector& x) const = 0;
|
|
|
|
/*
|
|
* Differentiates the objective function of the non-linear
|
|
* problem at point x.
|
|
*/
|
|
virtual Vector objectiveDerivative(const Vector& x) const = 0;
|
|
|
|
/*
|
|
* Differentiates the constraints at point x.
|
|
*/
|
|
virtual Vector constraintsDerivative(const Vector& x) const = 0;
|
|
};
|
|
|
|
}
|