LAMA
/home/brandes/workspace/LAMA/src/lama/exception/Exception.hpp File Reference

Interface of the class Exception. More...

#include <lama/config.hpp>
#include <logging/logging.hpp>
#include <exception>
#include <string>

Go to the source code of this file.

Data Structures

class  lama::Exception
 The class Exception represents a general exception in lama. More...

Namespaces

namespace  lama
 

The namespace lama holds everything of the C++ Library lama.


Defines

#define LAMA_THROWEXCEPTION(msg)
#define LAMA_UNSUPPORTED(msg)
 This macro should be used to give hints about unsupported features.

Detailed Description

Interface of the class Exception.

Author:
jiri
Date:
02.03.2011 $Id$

Define Documentation

#define LAMA_THROWEXCEPTION (   msg)
Value:
{                                                                              \
        std::ostringstream errorStr;                                               \
        errorStr<<"Exception in line "<<__LINE__<<" of file "<<__FILE__<<"\n";     \
        errorStr<<"    Message: "<<msg<<"\n";                                      \
        lama::Exception::addCallStack( errorStr );                                 \
        throw lama::Exception( errorStr.str() );                                   \
    }

Referenced by lama::DefaultHostContext::allocate(), lama::Context::ContextData::allocate(), lama::DenseMatrix< T >::allocate(), lama::LAMAArrayUtils::assign(), lama::LAMAArray< T >::assign(), lama::DenseMatrix< T >::assign(), lama::SparseMatrix< T >::assign(), lama::DenseVector< T >::assign(), lama::LAMAArrayUtils::assignImpl1(), lama::SparseMatrix< T >::assignTranspose(), lama::SparseMatrix< T >::assignTransposeImpl(), lama::CRTPMatrixStorage< CSRStorage< T >, T >::buildCSRData(), lama::DenseMatrix< T >::buildCSRData(), lama::JDSStorage< T >::check(), lama::SparseAssemblyStorage< T >::check(), lama::Matrix::checkSettings(), lama::LAMAArrayView< T >::clear(), lama::InverseSolver::computeInverse(), lama::LUSolver::computeLUFactorization(), lama::Communicator::computeOwners(), lama::MetaSolver::copy(), lama::LAMAArray< T >::copy(), lama::_LAMAArray::create(), lama::Matrix::createDenseVector(), lama::Vector::createVector(), lama::IterativeSolver::criteriaAreSatisfied(), lama::CUDAHostContext::CUDAHostContext(), lama::InverseSolver::decompose(), lama::DenseMatrix< T >::DenseMatrix(), lama::Distributed::Distributed(), lama::Distribution::Distribution(), lama::DenseVector< T >::dotProduct(), lama::Communicator::factorize2(), lama::Communicator::factorize3(), lama::LUSolver::factorMatrixToLU(), lama::LAMAArray< T >::fetchAsync(), lama::OpenMPCSRUtils::gemm(), lama::GenBlockDistribution::GenBlockDistribution(), lama::CommunicatorFactory::get(), lama::DistributionFactory::get(), lama::ReadAccess< T >::get(), lama::WriteAccess< T >::get(), lama::LAMAArray< T >::getAccess(), lama::ContextFactory::getContext(), lama::StorageIO< T >::getDataTypeSize(), lama::DenseVector< T >::getDataTypeSize(), lama::CRTPMatrixStorage< CSRStorage< T >, T >::getDiagonal(), lama::DenseMatrix< T >::getDiagonal(), lama::SparseMatrix< T >::getDiagonal(), lama::_StorageIO::getIndexDataTypeSize(), lama::LAMAInterfaceRegistry::getInterface(), lama::OpenMPLAPACK::getinv(), lama::MPICommunicator::getMPI2Type(), lama::OpenMPLAPACK::getrf(), lama::OpenMPLAPACK::getri(), lama::CRTPMatrixStorage< CSRStorage< T >, T >::getRow(), lama::DenseMatrix< T >::getRow(), lama::XDRFileStream::getSize(), lama::SolverFactory::getSolver(), lama::getStencilProperties(), lama::OpenMPTimer::getTime(), lama::OpenMPTimer::initialize(), lama::SpecializedJacobi::initialize(), lama::SOR::initialize(), lama::CG::initialize(), lama::GMRES::initialize(), lama::MetaSolver::initialize(), lama::MetaSolver::initializePreconditioner(), lama::OpenMPSCALAPACK::inverse(), lama::InverseSolver::invert(), lama::DenseMatrixOps::invertCyclic(), lama::DenseMatrix< T >::invertCyclic(), lama::SOR::iterate(), lama::SpecializedJacobi::iterate(), lama::GMRES::iterate(), lama::SpecializedJacobi::iterateTyped(), lama::OpenMPCOOUtils::jacobi(), lama::OpenMPCSRUtils::jacobi(), lama::JDSStorage< T >::jacobiIterate(), lama::DIAStorage< T >::jacobiIterate(), lama::COOStorage< T >::jacobiIterate(), lama::ELLStorage< T >::jacobiIterate(), lama::CSRStorage< T >::jacobiIterate(), lama::CSRStorage< T >::jacobiIterateHalo(), lama::StorageMethods< T >::joinCSR(), lama::LAMAArrayConstView< T >::LAMAArrayConstView(), lama::LAMAArrayRef< T >::LAMAArrayRef(), lama::LAMAArrayView< T >::LAMAArrayView(), lama::_MatrixStorage::localize(), lama::Matrix::matrix2CSRGraph(), lama::ELLStorage< T >::matrixTimesMatrix(), lama::DenseMatrix< T >::matrixTimesMatrix(), lama::SparseMatrix< T >::matrixTimesMatrixImpl(), lama::CRTPMatrix< DenseMatrix< T >, T >::matrixTimesVector(), lama::SparseMatrix< T >::matrixTimesVector(), lama::SparseMatrix< T >::maxDiffNorm(), lama::CUDAContext::memcpy(), lama::CUDAContext::memcpyAsync(), lama::MPICommunicator::MPICommunicator(), lama::OpenMPDIAUtils::normalGEMV(), lama::OpenMPCOOUtils::normalGEMV(), lama::OpenMPCSRUtils::normalGEMV(), lama::SparseAssemblyStorage< T >::operator()(), lama::operator<(), lama::Vector::operator=(), lama::LAMAArray< T >::operator=(), lama::Matrix::operator=(), lama::operator>(), lama::MetaMatrix::parseConfiguration(), lama::MetaSolver::parseConfiguration(), lama::LUSolver::pgetf2(), lama::XDRFileStream::read(), lama::StorageIO< T >::readCSRFromFile(), lama::StorageIO< T >::readCSRFromFormattedFile(), lama::StorageIO< T >::readCSRFromMMFile(), lama::StorageIO< T >::readCSRFromXDRFile(), lama::_StorageIO::readCSRHeader(), lama::DenseVector< T >::readVectorDataFromBinaryFile(), lama::DenseVector< T >::readVectorFromBinaryFile(), lama::DenseVector< T >::readVectorFromFormattedFile(), lama::DenseVector< T >::readVectorFromXDRFile(), lama::DenseVector< T >::readVectorHeader(), lama::LAMAArrayView< T >::reserve(), lama::OpenMPTimer::reset(), lama::SparseMatrix< T >::resetDiagonalProperty(), lama::LAMAArrayView< T >::resize(), lama::_MatrixStorage::scale(), lama::CRTPMatrixStorage< CSRStorage< T >, T >::scale(), lama::DenseMatrix< T >::scale(), lama::SparseMatrix< T >::scale(), lama::SparseAssemblyStorage< T >::set(), lama::CUDAHostContextManager::setAsCurrent(), lama::_MatrixStorage::setCompressThreshold(), lama::CRTPMatrixStorage< CSRStorage< T >, T >::setCSRData(), lama::DenseStorageView< T >::setCSRDataImpl(), lama::CSRStorage< T >::setCSRDataImpl(), lama::SparseAssemblyStorage< T >::setCSRDataImpl(), lama::CommunicatorFactory::setDefaultCommunicatorType(), lama::CRTPMatrixStorage< CSRStorage< T >, T >::setDiagonal(), lama::_MatrixStorage::setDiagonal(), lama::DenseMatrix< T >::setDiagonal(), lama::SparseMatrix< T >::setDiagonal(), lama::CSRStorage< T >::setDiagonalImpl(), lama::DenseMatrix< T >::setIdentity(), lama::SparseMatrix< T >::setIdentity(), lama::FileLogger::setLogFile(), lama::Context::ContextData::setRef(), lama::SyncToken::setSynchronized(), lama::WriteAccess< T >::size(), lama::LUSolver::solve(), lama::IterativeSolver::solveImpl(), lama::MetaSolver::solveImpl(), lama::SpecializedJacobi::solveInit(), lama::DefaultJacobi::solveInit(), lama::Solver::solveInit(), lama::OpenMPCSRUtils::sparseGEMV(), lama::OpenMPTimer::start(), lama::OpenMPTimer::stop(), lama::OpenMPTimer::stopAndReset(), lama::DenseVector< T >::swap(), lama::Task::synchronize(), lama::OpenMPUtils::validIndexes(), lama::DenseVector< T >::vectorPlusVector(), lama::XDRFileStream::write(), lama::_StorageIO::writeCSRHeader(), lama::StorageIO< T >::writeCSRToBinaryFile(), lama::StorageIO< T >::writeCSRToFile(), lama::StorageIO< T >::writeCSRToMMFile(), lama::DenseMatrix< T >::writeToFile(), lama::SparseMatrix< T >::writeToFile(), lama::DenseVector< T >::writeVectorDataToBinaryFile(), lama::DenseVector< T >::writeVectorHeader(), lama::DenseVector< T >::writeVectorToMMFile(), lama::XDRFileStream::xdrRead(), and lama::XDRFileStream::xdrWrite().

#define LAMA_UNSUPPORTED (   msg)
Value:
{                                                                              \
        if ( lama::Exception::getUnsupportedSetting() !=                           \
             lama::Exception::UNSUPPORTED_IGNORE )                                 \
        {                                                                          \
            std::ostringstream errorStr;                                           \
            errorStr << "Unsupported at line ";                                    \
            errorStr << __LINE__ << " of file " << __FILE__ << "\n";               \
            errorStr << "    Message: " << msg << std::endl;                       \
            errorStr << "Use environenment variable LAMA_UNSUPPORTED";             \
            errorStr << " (WARN or IGNORE) to get rid of this message";            \
            errorStr << std::endl;                                                 \
            if ( lama::Exception::getUnsupportedSetting() ==                       \
                 lama::Exception::UNSUPPORTED_ERROR )                              \
            {                                                                      \
                throw lama::Exception( errorStr.str() );                           \
            }                                                                      \
            else                                                                   \
            {                                                                      \
                std::cout << errorStr.str() << std::endl;                          \
            }                                                                      \
        }                                                                          \
    }

This macro should be used to give hints about unsupported features.

It should only be used in cases where less performant solutions are still available.

By setting the environment variable LAMA_UNSUPPORTED to WARN only warnings will be given. For IGNORE no message is given at all. Otherwise an exception is thrown.

Referenced by lama::SparseMatrix< T >::invert(), lama::DenseStorageView< T >::invert(), lama::MatrixStorage< T >::jacobiIterate(), lama::MatrixStorage< T >::jacobiIterateHalo(), lama::DenseStorageView< T >::matrixTimesMatrix(), lama::ELLStorage< T >::matrixTimesMatrix(), lama::CSRStorage< T >::matrixTimesMatrix(), lama::MatrixStorage< T >::matrixTimesMatrix(), lama::MatrixStorage< T >::matrixTimesVector(), lama::MatrixStorage< T >::matrixTimesVectorN(), lama::DenseStorageView< T >::maxDiffNorm(), lama::DenseMatrix< T >::maxDiffNorm(), lama::SparseMatrix< T >::maxDiffNorm(), lama::CSRStorage< T >::maxDiffNorm(), and lama::MatrixStorage< T >::maxDiffNorm().