Skip to content
  • Henry Weller's avatar
    MatrixSpace: 2D (i-j) specialization of VectorSpace · 3ba1d176
    Henry Weller authored
    Provides '(i, j)' element access and general forms of inner and outer
    products, transpose etc. for square and rectangular VectorSpaces.
    
    VectorSpaces default to be column-vectors as before whereas row-vectors
    may be represented as 1xn MatrixSpaces.  In the future it may be
    preferable to create a specializations of VectorSpace for column- and
    maybe row-vectors but it would add complexity to MatrixSpace to handle
    all the type combinations.
    
    Tensor is now a 3x3 specialization of MatrixSpace.
    
    Sub-block const and non-const access is provided via the
    '.block<SubTensor, RowStart, ColStart>()' member functions.  Consistent
    sub-block access is also provide for VectorSpace so that columns of
    MatrixSpaces may be accessed and substituted.
    
    These new classes will be used to create a more extensive set of
    primitive vector and tensor types over the next few weeks.
    
    Henry G. Weller
    CFD Direct
    3ba1d176