$search

pinv.cpp File Reference

#include <math.h>
#include <assert.h>
#include <kdl/pinv.hpp>
#include <iostream>
#include <algorithm>
Include dependency graph for pinv.cpp:

Go to the source code of this file.

Classes

class  SVD_Ordering

Functions

double PYTHAG (double a, double b)
double SIGN (double a, double b)
int svdcmp (double *a, int stridea, int m, int n, double *w, double *v, int stridev, int NrIts, double *vec)

Function Documentation

double PYTHAG ( double  a,
double  b 
) [inline]

Definition at line 35 of file pinv.cpp.

double SIGN ( double  a,
double  b 
) [inline]

Definition at line 53 of file pinv.cpp.

int svdcmp ( double *  a,
int  stridea,
int  m,
int  n,
double *  w,
double *  v,
int  stridev,
int  NrIts,
double *  vec 
)
  • this routine computes its singular value decomposition, a = u*w*v'
  • the dimensions of a are m*n, m >= n, otherwise fill a up to square with zero rows in that case take only the mxm part of the v matrix. and the mxm of w
  • The singular values are not ordered in descending order!! So, also the columns of U and V are not ordered!!
  • The algorithm does not calculate a full m xm matrix U! only an mxn one ! ARGUMENTS : a,stridea,int m,int n : description of matrix a[1..m][1..n], input: matrix a output: matrix u w : w[1..n] output : singular values (not sorted) v,stridev : description of matrix v[1..n][1..n] output : the matrix v NrIts : max nr of iterations vec : temporary storage with max dimension of a ( ie m)

RETURNS: 0 if no errors occured during computations; 1 if `m' < `n'; 2 if maximum number of iterations is exceeded.

Based on the book NUMERICAL RECIPES IN C: THE ART OF SCIENTIFIC COMPUTING (ISBN 0-521-43108-5) http://www.library.cornell.edu/nr/bookcpdf.html

Definition at line 83 of file pinv.cpp.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines


orocos_kdl
Author(s): Ruben Smits, Erwin Aertbelien, Orocos Developers
autogenerated on Fri Mar 1 16:20:00 2013