implementation of QuadProg++_vnl.h More...
#include <iostream>
#include <algorithm>
#include <cmath>
#include <limits>
#include <sstream>
#include <stdexcept>
#include "QuadProg++_vnl.h"
Namespaces | |
namespace | QuadProgPP |
Contains the Quadratic Programming functionality. | |
Functions | |
void | QuadProgPP::compute_d (vnl_vector< double > &d, const vnl_matrix< double > &J, const vnl_vector< double > &np) |
void | QuadProgPP::update_z (vnl_vector< double > &z, const vnl_matrix< double > &J, const vnl_vector< double > &d, int iq) |
void | QuadProgPP::update_r (const vnl_matrix< double > &R, vnl_vector< double > &r, const vnl_vector< double > &d, int iq) |
bool | QuadProgPP::add_constraint (vnl_matrix< double > &R, vnl_matrix< double > &J, vnl_vector< double > &d, int &iq, double &rnorm) |
void | QuadProgPP::delete_constraint (vnl_matrix< double > &R, vnl_matrix< double > &J, vnl_vector< int > &A, vnl_vector< double > &u, int n, int p, int &iq, int l) |
void | QuadProgPP::cholesky_decomposition (vnl_matrix< double > &A) |
void | QuadProgPP::cholesky_solve (const vnl_matrix< double > &L, vnl_vector< double > &x, const vnl_vector< double > &b) |
void | QuadProgPP::forward_elimination (const vnl_matrix< double > &L, vnl_vector< double > &y, const vnl_vector< double > &b) |
void | QuadProgPP::backward_elimination (const vnl_matrix< double > &U, vnl_vector< double > &x, const vnl_vector< double > &y) |
double | QuadProgPP::dot_product (const vnl_vector< double > &x, const vnl_vector< double > &y) |
double | QuadProgPP::distance (double a, double b) |
void | QuadProgPP::print_matrix (const char *name, const vnl_matrix< double > &A, int n=-1, int m=-1) |
template<typename T > | |
void | QuadProgPP::print_vector (const char *name, const vnl_vector< T > &v, int n=-1) |
double | QuadProgPP::solve_quadprog (vnl_matrix< double > &G,vnl_vector< double > &g0,const vnl_matrix< double > &CE,const vnl_vector< double > &ce0,const vnl_matrix< double > &CI,const vnl_vector< double > &ci0,vnl_vector< double > &x) |
solves a problem of the form min 0.5 * x G x + g0 x : CI^T x + ci0 >= 0 |
implementation of QuadProg++_vnl.h
This file was adapted from QuadProg++ an open project available on sourceforge.net (see http://sourceforge.net/projects/quadprog/). The major change is that the file now works entirely with vnl, and is not dependant on the helper classes Vector and Matrix in Array.hh. Furthermore the equality constraints have been removed. The ce0 and CE variables passed are simply dummy variables. If you need equality constraints change it back in the code. See the bottom of the file for additional comments by the original authors.