code: public static void multTransB(DMatrixSparseCSC A , DMatrixSparseCSC B , DMatrixSparseCSC C ,
                                    @Nullable IGrowArray gw, @Nullable DGrowArray gx )
      {
          if( A.numCols != B.numCols )
              throw new MatrixDimensionException("Inconsistent matrix shapes. "+stringShapes(A,B));
          C.reshape(A.numRows,B.numRows);
  
          if( !B.isIndicesSorted() )
              B.sortIndices(null);
  
          ImplSparseSparseMult_DSCC.multTransB(A,B,C,gw,gx);
      }
docs: Performs matrix multiplication.  C = A*B<sup>T</sup>. B needs to be sorted and will be sorted if it
  has not already been sorted.
  
  @param A (Input) Matrix. Not modified.
  @param B (Input) Matrix. Value not modified but indicies will be sorted if not sorted already.
  @param C (Output) Storage for results.  Data length is increased if increased if insufficient.
  @param gw (Optional) Storage for internal workspace.  Can be null.
  @param gx (Optional) Storage for internal workspace.  Can be null.