Matvec

Z GeoWikiCZ
Verze z 15. 3. 2018, 11:26, kterou vytvořil Cepek (diskuse | příspěvky) (Aktualizován text popisu knihovny a doplněn odkaz na matvec.zip na serveru geo.fsv.cvut.cz)
(rozdíl) ← Starší verze | zobrazit aktuální verzi (rozdíl) | Novější verze → (rozdíl)

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.

příklady
1   2   4   10   14