Linear least squares. More...
#include <vnl_lsqr.h>
Public Member Functions | |
vnl_lsqr (vnl_linear_system &ls) | |
~vnl_lsqr () | |
void | set_max_iterations (long max_iter) |
int | minimize (vnl_vector< double > &x) |
Perform the minimization starting from x=0 and putting the result into x. | |
long | get_number_of_iterations () const |
void | diagnose_outcome (vcl_ostream &os) const |
Pontificate about the outcome of the last minimization. | |
double | get_resid_norm_estimate () const |
Return the residual norm estimate:. | |
int | return_code () const |
Get the return code for the last minimization. | |
Static Public Member Functions | |
static void | translate_return_code (vcl_ostream &os, int return_code) |
Static Protected Member Functions | |
static int | aprod_ (long *mode, long *m, long *n, double *x, double *y, long *leniw, long *lenrw, long *iw, double *rw, void *userdata) |
Protected Attributes | |
vnl_linear_system * | ls_ |
long | max_iter_ |
long | num_iter_ |
double | resid_norm_estimate_ |
double | result_norm_estimate_ |
double | A_condition_estimate_ |
double | result_norm_ |
long | return_code_ |
Linear least squares.
vnl_lsqr implements an algorithm for large, sparse linear systems and sparse, linear least squares. It is a wrapper for the LSQR algorithm of Paige and Saunders (ACM TOMS 583). The sparse system is encapsulated by a vnl_linear_system.
Definition at line 35 of file vnl_lsqr.h.
vnl_lsqr::vnl_lsqr | ( | vnl_linear_system & | ls | ) | [inline] |
Definition at line 38 of file vnl_lsqr.h.
vnl_lsqr::~vnl_lsqr | ( | ) |
Definition at line 19 of file vnl_lsqr.cxx.
int vnl_lsqr::aprod_ | ( | long * | mode, |
long * | m, | ||
long * | n, | ||
double * | x, | ||
double * | y, | ||
long * | leniw, | ||
long * | lenrw, | ||
long * | iw, | ||
double * | rw, | ||
void * | userdata | ||
) | [static, protected] |
Definition at line 24 of file vnl_lsqr.cxx.
void vnl_lsqr::diagnose_outcome | ( | vcl_ostream & | os | ) | const |
Pontificate about the outcome of the last minimization.
Definition at line 101 of file vnl_lsqr.cxx.
long vnl_lsqr::get_number_of_iterations | ( | ) | const [inline] |
Definition at line 50 of file vnl_lsqr.h.
double vnl_lsqr::get_resid_norm_estimate | ( | ) | const [inline] |
Return the residual norm estimate:.
Definition at line 58 of file vnl_lsqr.h.
int vnl_lsqr::minimize | ( | vnl_vector< double > & | x | ) |
Perform the minimization starting from x=0 and putting the result into x.
Return code may be translated with translate_return_code(), or the result of the minimization may be printed in more detail with diagnose_outcome()
Definition at line 48 of file vnl_lsqr.cxx.
int vnl_lsqr::return_code | ( | ) | const [inline] |
Get the return code for the last minimization.
Definition at line 61 of file vnl_lsqr.h.
void vnl_lsqr::set_max_iterations | ( | long | max_iter | ) | [inline] |
Definition at line 43 of file vnl_lsqr.h.
void vnl_lsqr::translate_return_code | ( | vcl_ostream & | os, |
int | return_code | ||
) | [static] |
Definition at line 110 of file vnl_lsqr.cxx.
double vnl_lsqr::A_condition_estimate_ [protected] |
Definition at line 69 of file vnl_lsqr.h.
vnl_linear_system* vnl_lsqr::ls_ [protected] |
Definition at line 64 of file vnl_lsqr.h.
long vnl_lsqr::max_iter_ [protected] |
Definition at line 65 of file vnl_lsqr.h.
long vnl_lsqr::num_iter_ [protected] |
Definition at line 66 of file vnl_lsqr.h.
double vnl_lsqr::resid_norm_estimate_ [protected] |
Definition at line 67 of file vnl_lsqr.h.
double vnl_lsqr::result_norm_ [protected] |
Definition at line 70 of file vnl_lsqr.h.
double vnl_lsqr::result_norm_estimate_ [protected] |
Definition at line 68 of file vnl_lsqr.h.
long vnl_lsqr::return_code_ [protected] |
Definition at line 71 of file vnl_lsqr.h.