Listing 2
// MatDefs.h
// Martin E. Scolnick
//
#ifndef _MATDEFS_H
#define _MATDEFS_H
#define self (*this)
#define firstCol_vi (*curDatP).begin()
#define firstRow_vi (*curDatP).begin()
#define lastCol_vi (*curDatP).end()
#define lastRow_vi (*curDatP).end()
#define startCol_vi(m) (*m.curDatP).begin()
#define startRow_vi(m) (*m.curDatP).begin()
#define endCol_vi(m) (*m.curDatP).end()
#define endRow_vi(m) (*m.curDatP).end()
// CM => Column Matrix
#define CM_rLen dim1 // Row length = nCols
#define CM_cLen dim2 // Column length
// RM => Row Matrix
#define RM_cLen dim1 // Column length = nRows
#define RM_rLen dim2 // Row length
#define TRY try {
#define RETHROW } catch(...){throw;}
#endif // _MATDEFS_H