// Nick Macks (macks@fnal.gov), Summer 2002 // The "tsncom" tests perform various matrix operations using either // LinearAlgebra, or CLHEP, or CovMatrices on the same matrices. This way we // can compare the results of the matrix operations on all three packages. tsncom01: LinearAlgebra: Matrix addition (user can specify if the matrices are to be declared specialized and/or symmetric) tsncom02: CLHEP: HepMatrix addition tsncom03: CLHEP: HepSymMatrix addition tsncom04: CovMatrices: CovMatrixX addition tsncom05: LinearAlgebra: Matrix subtraction (user can specify if the matrices are to be declared specialized and/or symmetric) tsncom06: CLHEP: HepMatrix subtraction tsncom07: CLHEP: HepSymMatrix subtraction tsncom08: CovMatrices: CovMatrixX subtraction tsncom09: LinearAlgebra: Matrix multiplication (user can specify if the matrices are to be declared specialized and/or symmetric) tsncom10: CLHEP: HepMatrix multiplication tsncom11: CLHEP: HepSymMatrix multiplication tsncom12: LinearAlgebra: Matrix trace calculation (user can specify if the matrix is to be declared specialized and/or symmetric) tsncom13: CLHEP: HepMatrix trace calculation tsncom14: CLHEP: HepSymMatrix trace calculation tsncom15: LinearAlgebra: Matrix determinant calculation (user can specify if the matrix is to be declared specialized and/or symmetric) tsncom16: CLHEP: HepMatrix determinant calculation tsncom17: CLHEP: HepSymMatrix determinant calculation tsncom18: CovMatrices: CovMatrixX determinant calculation tsncom19: LinearAlgebra: Matrix inversion (user can specify if the matrices are to be declared specialized and/or symmetric) tsncom20: CLHEP: HepMatrix inversion tsncom21: CLHEP: HepSymMatrix inversion tsncom22: CovMatrices: CovMatrixX inversion tsncom23: LinearAlgebra: Matrix * ColumnVector multiplication tsncom24: LinearAlgebra: RowVector * Matrix multiplication tsncom25: CLHEP: HepMatrix * HepVector multiplication tsncom26: CLHEP: HepVector * HepMatrix multiplication Note: In order to perform vector*matrix in CLHEP we have to transpose the vector. However, when we transpose a HepVector we get back a HepMatrix. Thus, we end up performing matrix*matrix multiplication and not vector*matrix. tsncom27: CLHEP: HepSymMatrix * HepVector multiplication tsncom28: CLHEP: HepVector * HepSymMatrix multiplication Note: In order to perform vector*matrix in CLHEP we have to transpose the vector. However, when we transpose a HepVector we get back a HepMatrix. Thus, we end up performing matrix*matrix multiplication and not vector*matrix. tsncom29: CovMatrices: CovMatrixX * VectorX multiplication tsncom30: CovMatrices: VectorX * CovMatrixX multiplication tsncom31: CovMatrices: Matrix trace calculation tsncom32: CovMatrices: CovMatrixX * CovMatrixX multiplication tsncom33: LinearAlgebra: ColumnVector * RowVector multiplication tsncom34: CLHEP: HepVector * HepVector multiplication vector form like in ColumnVector * RowVector Note: In order to perform vector*vector in CLHEP we have to transpose one of the two vectors. However, when we transpose a HepVector we get back a HepMatrix. Thus, we end up performing vector*matrix multiplication and not vector*vector. tsncom35: CovMatrices: VectorX * VectorX multiplication vector form like in ColumnVector * RowVector tsncom36: LinearAlgebra: RowVector * ColumnVector multiplication tsncom37: CLHEP: HepVector * HepVector multiplication vector form like in RowVector * ColumnVector Note: In order to perform vector*vector in CLHEP we have to transpose one of the two vectors. Here we transpose the first vector. However, when we transpose a HepVector we get back a HepMatrix. Thus, we end up performing matrix*vector and not vector*vector. tsncom38: CovMatrices: VectorX * VectorX multiplication vector form like in RowVector * ColumnVector