/// <summary>
 /// See <see cref="IIndexable2D.this[int, int]"/>.
 /// </summary>
 public double this[int rowIdx, int colIdx]
 {
     get
     {
         SkylineMatrix.ProcessIndices(ref rowIdx, ref colIdx);
         int entryHeight     = colIdx - rowIdx;                                   // excluding diagonal
         int maxColumnHeight = diagOffsets[colIdx + 1] - diagOffsets[colIdx] - 1; // excluding diagonal
         if (entryHeight > maxColumnHeight)
         {
             return(0.0);                               // outside stored non zero pattern
         }
         else
         {
             return(values[diagOffsets[colIdx] + entryHeight]);
         }
     }
 }