diagonalMatrix-class         package:Matrix         R Documentation

_C_l_a_s_s "_d_i_a_g_o_n_a_l_M_a_t_r_i_x" _o_f _D_i_a_g_o_n_a_l _M_a_t_r_i_c_e_s

_D_e_s_c_r_i_p_t_i_o_n:

     Class "diagonalMatrix" is the virtual class of all diagonal
     matrices.

_O_b_j_e_c_t_s _f_r_o_m _t_h_e _C_l_a_s_s:

     A virtual Class: No objects may be created from it.

_S_l_o_t_s:

     '_d_i_a_g': code{"character"} string, either '"U"' or '"N"', where
          '"U"' means 'unit-diagonal'.

     '_D_i_m': matrix dimension, and

     '_D_i_m_n_a_m_e_s': the 'dimnames', a 'list', see the 'Matrix' class
          description.  Typically 'list(NULL,NULL)' for diagonal
          matrices.

_E_x_t_e_n_d_s:

     Class '"denseMatrix"', directly.

_M_e_t_h_o_d_s:

     _c_o_e_r_c_e 'signature(from = "matrix", to = "diagonalMatrix")': ... 

     _c_o_e_r_c_e 'signature(from = "diagonalMatrix", to =
          "symmetricMatrix")': ... 

     _c_o_e_r_c_e 'signature(from = "diagonalMatrix", to =
          "triangularMatrix")': ... 

     _c_o_e_r_c_e 'signature(from = "diagonalMatrix", to = "matrix")': ... 

     _c_o_e_r_c_e 'signature(from = "Matrix", to = "diagonalMatrix")': ... 

     _t 'signature(x = "diagonalMatrix")': ... 

     %*% 'signature(x = "dgeMatrix", y = "diagonalMatrix")': ... 

     %*% 'signature(x = "matrix", y = "diagonalMatrix")': ... 

     %*% 'signature(x = "diagonalMatrix", y = "matrix")': ... 

     %*% 'signature(x = "diagonalMatrix", y = "dgeMatrix")': ... 

     _s_o_l_v_e 'signature(a = "diagonalMatrix", b, ...)': is trivially
          implemented, of course.

_S_e_e _A_l_s_o:

     'ddiMatrix' and 'ldiMatrix' are "actual" classes extending
     '"diagonalMatrix"'.

_E_x_a_m_p_l_e_s:

     I5 <- Diagonal(5)
     D5 <- Diagonal(x = 10*(1:5))
     ## trivial (but explicitly defined) methods:
     stopifnot(identical(crossprod(I5), I5),
               identical(tcrossprod(I5), I5),
               identical(crossprod(I5, D5), D5),
               identical(tcrossprod(D5, I5), D5),
               identical(solve(D5), solve(D5, I5)),
               all.equal(D5, solve(solve(D5)), tol = 1e-12)
               )
     solve(D5)

