Matvec

Z GeoWikiCZ
Verze z 23. 7. 2006, 09:30, kterou vytvořil WikiSysop (diskuse | příspěvky) (kategorie)
Skočit na navigaci Skočit na vyhledávání

Matvec je malá C++ knihovna template tříd a funkcí, která je samostatnou součástí projektu GNU Gama. Knihovna matvec je součástí distribuce GNU Gama, poslední verzi lze získat také z CVS archivu příkazem

cvs -d:pserver:anonymous@cvs.sv.gnu.org:/sources/gama co gama/lib/matvec

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 pro 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.

poznámka
Starší verze knihovny byly definováný v prostoru jmen gMatVec a používaly též jiné umístění hlavičkových souborů. Při přechodu na novou verzi knihovny matvec> je proto nutné změnit následující jména, například pomocí dávkového editoru sed
        s/gmatvec/matvec/g
        s/gMatVec/GNU_gama/g
        s/Exception/Exception::matvec/g
příklady
1   2   4   10   14  
matvec-demo
http://gama.fsv.cvut.cz/~cepek/gama/archive/matvec/