solveLS and gaussJordan



dear Maxima users and experts,

currently I'm solving systems of linear equations in *matrix-form*, e.g.:

(%i1) A : matrix( [1,2], [4,5] ); 
(%i2) X : matrix( [x],[y] ); 
(%i3) B : matrix( [3],[6] ); 
(%i4) A.X=B; 

The matrix equation (i4) shows the linear system in standard equationial form.
Because is it not (yet?) possible to write (as e.g. in MUPAD) ..
(%i5) solve( A.X=B ); 
.. I have written a small helper function for my students 
to hide the call of lu_factor and lu_backsub:

(%i16) solveLS(A,B):=block([M], load("linearalgebra"),
                       M : lu_factor(A,generalring),
                       lu_backsub(M,B))$    

Now this works (and is similar to (i5)):
(%i17) solveLS(A,B); 

It is also possible to partial solve A.X=B via echelon: 
(%i19) echelon(addcol(A,B)); 

Here are my questions:

(Q1)  does anyone has implemented an 'gaussJordan' version of echelon,
      doing also the backsubst part of gauss elimination?

(Q2)  Is it somehow possible to realize a call like (%i5)?

(Q3)  any comments to the routine solveLS?

HTH   Wolfgang