39 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
		
		
			
		
	
	
			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 | ||
|  | 	); | ||
|  | } |