## ----echo=FALSE,include=FALSE-------------------------------------------------
library(QR)
set.seed(26112011)

## ----echo=TRUE, include=TRUE--------------------------------------------------
# Let's sample a random square-matrix
A<-matrix(runif(121,min = -100, max = 100), 11, 11)

## ----echo=TRUE, include=TRUE, collapse=TRUE-----------------------------------
QRres<-QR(A)
QRres

## ----echo=TRUE, include=TRUE, collapse=TRUE-----------------------------------
QRres$Q

QRres$R

## ----echo=TRUE, include=TRUE, collapse=TRUE-----------------------------------
all.equal(QRres$Q%*%t(QRres$Q),diag(11))

## ----echo=TRUE, include=TRUE, collapse=TRUE-----------------------------------
all.equal(QRres$R[lower.tri(QRres$R)],rep(0,11*10/2))

## ----echo=TRUE, include=TRUE, collapse=TRUE-----------------------------------
all.equal(QRres$Q%*%QRres$R,A)

## ----echo=TRUE, include=TRUE, collapse=TRUE-----------------------------------
# example of pivoting
x <- cbind(int = 1,
           b1 = rep(1:0, each = 3), b2 = rep(0:1, each = 3),
           c1 = rep(c(1,0,0), 2), c2 = rep(c(0,1,0), 2), c3 = rep(c(0,0,1),2))
x # is singular, columns "b2" and "c3" are "extra"
a <- qr(x)

## ----echo=TRUE, include=TRUE, collapse=TRUE-----------------------------------
all.equal(qr.Q(a)%*%qr.R(a),x)

## ----echo=TRUE, include=TRUE, collapse=TRUE-----------------------------------
all.equal(QR(x)$Q%*%QR(x)$R,x)