bool ContainerUtility::checkRange(Matrix3d & mm, double minVal, double maxVal)
{
  assert(minVal < maxVal);

  // Go through each element in the matrix and ensure they are not
  // NaN and fall within the specified min and max values.
  for (int ii = 0; ii < mm.rows(); ii++)
  {
    for (int jj = 0; jj < mm.cols(); jj++)
    {
      if (isnan(mm(ii, jj)))
      {
        CONTROLIT_WARN << "(Matrix): NaN detected at index (" << ii << ", " << jj << "), returning false!";
        return false;
      }
      if (mm(ii, jj) > maxVal || mm(ii, jj) < minVal)
      {
        CONTROLIT_WARN << "(Matrix): Value of out range at index (" << ii << ", " << jj << "), returning false.\n"
             " - value = " << mm(ii, jj) << "\n"
             " - minVal = " << minVal << "\n"
             " - maxVal = " << maxVal;
        return false;
      }
    }
  }

  return true;
}