Inner product of vectors (mass-weighted if requested).

inner.prod(x, y, mass=NULL)

Arguments

x

a numeric vector or matrix.

y

a numeric vector or matrix.

mass

a numeric vector containing the atomic masses for weighting.

Details

This function calculates the inner product between two vectors, or alternatively, the column-wise vector elements of matrices. If atomic masses are provided, the dot products will be mass-weighted.

See examples for more details.

Value

Returns the inner product(s).

References

Grant, B.J. et al. (2006) Bioinformatics 22, 2695--2696.

Author

Lars Skjaerven

See also

Examples

## Matrix operations x <- 1:3 y <- diag(x) z <- matrix(1:9, ncol = 3, nrow = 3) inner.prod(x,y)
#> [1] 1 4 9
inner.prod(y,z)
#> [1] 1 10 27
## Application to normal modes pdb <- read.pdb( system.file("examples/1hel.pdb", package="bio3d") ) ## Calculate (vibrational) normal modes modes <- nma(pdb)
#> Building Hessian... Done in 0.012 seconds. #> Diagonalizing Hessian... Done in 0.077 seconds.
## Check for orthogonality inner.prod(modes$U[,7], modes$U[,8])
#> [1] -9.829387e-15