238 ASSERTL1(totalRows == totalColumns,
"Triangular matrices must be square.");
239 ASSERTL1(curRow < totalRows,
"Attemping to iterate through an element on row " +
240 boost::lexical_cast<std::string>(curRow) +
" of a (" +
241 boost::lexical_cast<std::string>(totalRows) +
", " +
242 boost::lexical_cast<std::string>(totalColumns) +
" lower triangular matrix.");
243 ASSERTL1(curColumn < totalColumns,
"Attemping to iterate through an element on row " +
244 boost::lexical_cast<std::string>(curColumn) +
" of a (" +
245 boost::lexical_cast<std::string>(totalRows) +
", " +
246 boost::lexical_cast<std::string>(totalColumns) +
" lower triangular matrix.");
247 ASSERTL1(curRow >= curColumn,
"Attemping to iterate through element (" +
248 boost::lexical_cast<std::string>(curRow) +
", " +
249 boost::lexical_cast<std::string>(curColumn) +
") of a (" +
250 boost::lexical_cast<std::string>(totalRows) +
", " +
251 boost::lexical_cast<std::string>(totalColumns) +
" lower triangular matrix.");
253 if( transpose ==
'T' )
256 totalColumns, totalRows, curColumn, curRow);
259 unsigned int nextRow = curRow;
260 unsigned int nextColumn = curColumn;
262 if( nextRow < totalRows )
267 if( nextRow >= totalRows )
270 nextRow = nextColumn;
273 if( nextColumn >= totalColumns )
275 nextRow = std::numeric_limits<unsigned int>::max();
276 nextColumn = std::numeric_limits<unsigned int>::max();
279 return boost::tuples::tuple<unsigned int, unsigned int>(nextRow, nextColumn);
static boost::tuples::tuple< unsigned int, unsigned int > Advance(const unsigned int totalRows, const unsigned int totalColumns, const unsigned int curRow, const unsigned int curColumn)
#define ASSERTL1(condition, msg)
Assert Level 1 – Debugging which is used whether in FULLDEBUG or DEBUG compilation mode...