//
//  MatrixException.h
//
//  Qdos - Numeric Matrix Exception class
//
//  Janet Barnes
//  Sept 1999
//

#ifndef QDOS_MATRIXEXCEPTION_H
#define QDOS_MATRIXEXCEPTION_H

#include "Exception.h"

namespace QDOS
{
    class MatrixException : public Exception {
    public:
      MatrixException( ExceptionMsg m ):Exception(m<<"[MatrixException]"){;}
    };
    class MatrixLengthError : public MatrixException
    { 
    public:
        MatrixLengthError(ExceptionMsg m="")  : \
            MatrixException(m <<" [MatrixLengthError]" )
        {;}
    };
    class MatrixRankError : public MatrixException
    { 
    public:
        MatrixRankError(ExceptionMsg m="") : \
            MatrixException(m << " [MatrixRankError]" )
        {;}
    };
    class MatrixDomainError : public MatrixException
    { 
    public:
        MatrixDomainError(ExceptionMsg m="")  : \
            MatrixException( m <<" [MatrixDomainError]" )
        {;}
    };
    class MatrixIndexError : public MatrixException
    { 
    public:
        MatrixIndexError(ExceptionMsg m="") : \
            MatrixException(m << " [MatrixIndexError]" )
        {;}
    };
    class MatrixValueError : public MatrixException
    { 
    public:
        MatrixValueError(ExceptionMsg m="")  : \
            MatrixException( m << " [MatrixValueError]" )
        {;}
    };
    class MatrixRangeError : public MatrixException
    { 
    public:
        MatrixRangeError(ExceptionMsg m="") : \
            MatrixException( m << " [MatrixRangeError]" ) 
        {;}
    };
 
 } // end namespace QDOS

#endif  // QDOS_MATRIXEXCEPTION_H
 
