# NAME

constrained_least_squares - Solves Ax=b in the least squares sense with linear constraints.
# SYNOPSIS

#include "n2/n2_quadratic.h"
Example compile flags (system dependent):
-DLINUX_X86_64 -DLINUX_X86_64_OPTERON -DGNU_COMPILER
-I/home/kobus/include
-L/home/kobus/misc/load/linux_x86_64_opteron -L/usr/lib/x86_64-linux-gnu
-lKJB -lfftw3 -lgsl -lgslcblas -ljpeg -lSVM -lstdc++ -lpthread -lSLATEC -lg2c -lacml -lacml_mv -lblas -lg2c -lncursesw
int constrained_least_squares
(
Vector **result_vpp,
const Matrix *A_mp,
const Vector *b_vp,
const Matrix *le_constraint_mp,
const Vector *le_constraint_vp,
const Matrix *eq_constraint_mp,
const Vector *eq_constraint_vp,
const Vector *lb_vp,
const Vector *ub_vp
);

# DESCRIPTION

This routine solves Ax=b in the least squares sense subject to linear
constraints.
Put differently, this routine calculates
MIN { || Ax - b || }
x 2
Subject to:
Lx <= m
Ex = e
x <= u
x >= l

Note that it is generally easy to convert a basic sum of squared error
objective function into Ax=0, least squares sense.
The result is put into the vector pointed to by *result_vpp, which is created
if it is NULL, resized if it is the wrong sized, and reused otherwise. The
number of rows in the matrix pointed to by the argument "A_mp" (i.e, A,
above) must be the same as the length of the vector pointed to by the
argument "b_vp" (i.e. b, above). In addition, the number of columns of of
*A_mp (i.e, number of unknowns) cannot exceed the number of rows of *A_mp
(number of equations).
With respect to the above formulation, the parameter le_constraint_mp
corresponds to L, le_constraint_vp to m, eq_constraint_mp to E,
eq_constraint_vp to e, lb_row_arg_vp corresponds to l, and ub_row_arg_vp
corresponds to u. Any of these constraint arguments can be set to NULL if
there are no constraints of the corresponding type.
# RETURNS

NO_ERROR on success, and ERROR on failure, with an appropriate error
message being set.
# DISCLAIMER

This software is not adequatedly tested. It is recomended that
results are checked independantly where appropriate.
# AUTHOR

Kobus Barnard
# DOCUMENTER

Kobus Barnard