code: public static void solve( final int blockLength ,
                                final boolean upper ,
                                final DSubmatrixD1 T ,
                                final DSubmatrixD1 B ,
                                final boolean transT ) {
  
          if( upper ) {
              solveR(blockLength,T,B,transT);
          } else {
              solveL(blockLength,T,B,transT);
          }
      }
docs: <p>
  Performs an in-place solve operation on the provided block aligned sub-matrices.<br>
  <br>
  B = T<sup>-1</sup> B<br>
  <br>
  where T is a triangular matrix. T or B can be transposed.  T is a square matrix of arbitrary
  size and B has the same number of rows as T and an arbitrary number of columns.
  </p>
  
  @param blockLength Size of the inner blocks.
  @param upper If T is upper or lower triangular.
  @param T An upper or lower triangular matrix. Not modified.
  @param B A matrix whose height is the same as T's width. Solution is written here. Modified.