R/linearAlgebra.R

Defines functions projectUontoV scalarProduct tr

Documented in projectUontoV scalarProduct tr

# The trace of matrix X
tr <- function(X, na.rm=FALSE) {
  sum(diag(X), na.rm=na.rm);
}

# u and v are column vectors.
scalarProduct <- function(u,v, na.rm=FALSE) {
  colSums(u*v, na.rm=na.rm);
}

# u are column vectors, v a single vector for now.
projectUontoV <- function(u,v, na.rm=FALSE) {
  vN <- v / sqrt(sum(v^2, na.rm=na.rm));
  sp <- scalarProduct(u,vN, na.rm=na.rm);
  sp <- rep(sp, each=length(vN));
  sp <- matrix(sp, nrow=length(vN));
  v * sp;
}

############################################################################
# HISTORY:
# 2005-01-24
# o Added arg. na.rm=FALSE to tr(), scalarProduct(), and projectUontoV().
# 2003-11-06
# o Created for readability.
############################################################################

Try the aroma.light package in your browser

Any scripts or data that you put into this service are public.

aroma.light documentation built on Nov. 8, 2020, 4:56 p.m.