gtsam/base/DenseQR.h

39 lines
1.1 KiB
C++

/*
* DenseQR.h
*
* Created on: Oct 19, 2010
* Author: nikai
* Description: Dense QR, inspired by Tim Davis's dense solver
*/
#pragma once
namespace gtsam {
long DenseQR(
long m, // F is m-by-n with leading dimension m
long n,
long npiv, // number of pivot columns
double tol, // a column is flagged as dead if its norm is <= tol
long ntol, // apply tol only to first ntol pivot columns
long fchunk, // block size for compact WY Householder reflections,
// treated as 1 if fchunk <= 1
// input/output
double *F, // frontal matrix F of size m-by-n
long *Stair, // size n, entries F (Stair[k]:m-1, k) are all zero,
// and remain zero on output.
char *Rdead, // size npiv; all zero on input. If k is dead,
// Rdead [k] is set to 1
// output, not defined on input
double *Tau, // size n, Householder coefficients
// workspace, undefined on input and output
double *W, // size b*(n+b), where b = min (fchunk,n,m)
// input/output
double *wscale,
double *wssq
);
}