File Exchange

image thumbnail

Rank-Revealing QR factorization

version 1.4.0.0 (208 KB) by Ivo Houtzager
Rank-Revealing QR factorization of an array

1 Download

Updated 30 Mar 2015

View License

Rank-Revealing QR factorization of an array. The mex-functions are using the rank-revealing QR routines xGEQPX and xGEQPY from ACM Algorithm 782. Can also handle complex and single precision array's.

Comments and Ratings (3)

Piotr Sypek

Here's how I managed to compile librrqr.a

# first download the package (it is actually a shell script that creates a bunch of files)
wget http://www.netlib.org/netlib/toms/782 -O 782.sh

# remove the top 3 lines with the ACM info
sed -i '1,3d' 782.sh

# replace all $( and $?in the cat areas for makefiles with \$( and \$?to work with newer versions of sh
sed -i 's/\$[\(]/\\$\(/g' 782.sh
sed -i 's/\$[\?]/\\$?/g' 782.sh

# now extract the rrqr_acm directory
sh 782.sh

To compile go into rrqr_acm/lib and run make. You will probably need to first edit the Makefile and change the fortran compiler from f77 to gfortran and add -fPIC to the OPTS. After running make, there should be a file rrqr.a in the rrqr_acm directory. Move this to librrqr.a in the directory with the matlab and c files and now you should be able to compile the mex file.

Tim Davis

I had difficulty in compiling the ACM 782 algorithm on Linux (the "make" instructions seem to be out of date).

You should create an m-file called rrqr_install.m that compiles this code and the RRQR algorithm from the ACM - all using the "mex" command from inside MATLAB. That way, your installation should work on any MATLAB. The one-line instructions you give using rrqr.lib assume you're on Windows (there would be an rrqr.a on Linux/Unix, or a rrqr.so, not a Windows rrqr.lib).

You should also provide instructions on where to find the ACM algorithm (I found it here:

http://portal.acm.org/citation.cfm?doid=290200.287638

or

http://www.netlib.org/netlib/toms/782

but that detail should be in your installation instructions.

Updates

1.4.0.0

The compilation of the RRQR source code is added to the make script.
Fix make script for newer matlab versions.
Fix integer data types for newer matlab versions.

1.3.0.0

some small fixes for 64bit

1.2.0.0

Updated for new Matlab 64 bit versions

1.1.0.0

Updated for new Matlab 64 bit versions

1.0.0.0

new mex-files for R2008a

MATLAB Release Compatibility
Created with R2012b
Compatible with any release
Platform Compatibility
Windows macOS Linux

Discover Live Editor

Create scripts with code, output, and formatted text in a single executable document.


Learn About Live Editor