# procedures E_I, E_II, E_III; packable # Copyright: Erich Kaltofen alias(E_I = `refpkg/E_I`, E_II = `refpkg/E_II`, E_III = `refpkg/E_III`); `refpkg/E_I` := proc(n, i, j) # create an n times n elementary matrix of the first kind # matrix swaps row (col) i and j RETURN(linalg[swaprow](array(identity, 1..n,1..n), i, j)); end: `refpkg/E_II` := proc(n, i, alpha) # create an n times n elementary matrix of the second kind # matrix multiplies row (col) i with alpha RETURN(linalg[mulrow](array(identity, 1..n,1..n), i, alpha)); end: `refpkg/E_III` := proc(n, i, j, alpha) # create an n times n elementary matrix of the third kind # matrix adds alpha*row i (col j) to row j (col i) RETURN(linalg[addrow](array(identity, 1..n,1..n), i, j, alpha)); end: