Namespaces | Functions

QuadProg++_vnl.cc File Reference

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

Detailed Description

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.

Author:
Christian Baumgartner (baumgach@ee.ethz.ch) adapted from code by Luca Di Gaspero
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Defines