/*************************************************************************** * Copyright (c) 2023 Ondsel, Inc. * * * * This file is part of OndselSolver. * * * * See LICENSE file for details about copyright. * ***************************************************************************/ #pragma once #include #include #include #include "FullColumn.h" namespace MbD { class SingularMatrixError : virtual public std::runtime_error { protected: std::shared_ptr> redundantEqnNos; public: explicit SingularMatrixError(const std::string& msg, std::shared_ptr> redunEqnNos) : std::runtime_error(msg), redundantEqnNos(redunEqnNos) { } explicit SingularMatrixError(const std::string& msg) : std::runtime_error(msg) { } virtual ~SingularMatrixError() noexcept {} virtual std::shared_ptr> getRedundantEqnNos() const noexcept { return redundantEqnNos; } }; }