Matvec
Matvec je malá C++ knihovna template tříd a funkcí, která je samostatnou součástí projektu GNU Gama, poslední verzi lze získat z git archivu příkazem
git clone git://git.sv.gnu.org/gama.git
Knihovna matvec se nachází v adresáři gama/lib/matvec/. Knihovnu matvec lze také získat samostatně jako zip soubor z adresy http://geo.fsv.cvut.cz/user/gin/git3/. Adresář knihovny matvec/ stačí nakopírovat do adresáře projektu založeného ve výjovém prostředí Qt Creator.
Všechny objekty knihovny matvec jsou definovány v prostoru jmen GNU_gama, implicitní výjimka je v šablonách definována jako třída GNU_gama::Exception::matvec.
namespace GNU_gama {
typedef size_t Index;
namespace Exception {
enum
{
BadRank,
BadIndex,
Singular,
BadRegularization,
NoConvergence,
ZeroDivision,
NonPositiveDefinite,
NotImplemented,
StreamError
};
class base {
public:
virtual ~base()
{
}
};
class matvec : public base
{
public:
const int error;
const char* description;
matvec(int e, const char* t) : error(e), description(t)
{
}
};
}
}
Třída Exception::base je zde definována jako bázová třída všech výjimek v projektu GNU Gama. Výčtový typ umožňuje spolu s popisem bližší specifikaci vyvolané výjimky.