10 #include <gsl/gsl_blas.h> 11 #include <gsl/gsl_linalg.h> 12 #include <gsl/gsl_vector.h> 13 #include <initializer_list> 37 gsl_vector_view _view;
44 VView(gsl_vector_view v) { _view = v; }
52 _view = gsl_vector_view_array(f, dim);
59 inline const gsl_vector *
gsl()
const {
return &_view.vector; }
65 inline gsl_vector *
gsl() {
return &_view.vector; }
88 gsl_vector *_vector =
nullptr;
100 inline explicit Vector(
size_t dim,
double val = 0) {
102 _vector = gsl_vector_alloc(dim);
104 gsl_vector_set_all(_vector, val);
111 inline Vector(std::initializer_list<double> lst)
113 std::copy(
ALL(lst), begin());
123 std::copy(f, f + n, begin());
132 std::copy(
ALL(v), begin());
140 std::swap(_vector, v._vector);
148 if (_vector !=
nullptr) {
149 gsl_vector_free(_vector);
160 if (_vector !=
nullptr) {
161 gsl_vector_free(_vector);
163 _vector = gsl_vector_alloc(v.
size());
164 std::copy(
ALL(v), begin());
176 if (_vector !=
nullptr) {
178 gsl_vector_free(_vector);
183 std::swap(_vector, v._vector);
192 inline const gsl_vector *
gsl()
const {
202 inline gsl_vector *
gsl() {
215 return View(gsl_vector_subvector(gsl(), offset, n));
225 inline View view(
size_t offset,
size_t stride,
size_t n) {
226 return View(gsl_vector_subvector_with_stride(gsl(),
238 return _vector !=
nullptr && size() != 0;
245 inline bool is_init()
const {
return _vector !=
nullptr; }
The IVCalc struct Komponente implementiert Operatoren +=,-=,*=,/=.
Vector(size_t n, const double f[])
Vector Konstruktor: kopiere Inhalt eines C-Feldes.
const gsl_vector * gsl() const
gsl ermöglicht direkten Zugriff auf gsl-Funktionen
static void ptr(const std::string &s, T *ptr)
null_ptr teste Zeiger auf Gültigkeit
Vector(const Vector &v)
Vector Kopierkonstruktor.
View view(size_t offset, size_t stride, size_t n)
view erzeuge View auf Daten
Vector & operator=(Vector &&v)
operator = übernehme Daten eines Vektors
Vector(std::initializer_list< double > lst)
Vector Konstruktor:kopiere eine Liste von Zahlen.
The IVBlas struct Schnittstellen zur BLAS für das Rechnen mit Vektoren oder Views.
Vector()
Vector leerer Vektor.
The IVBase struct Basisfunktionalität für eine Vektor-Klasse.
gsl_vector * gsl()
gsl_vec ermöglicht direkten Zugriff auf gsl Funktionen
Vector & operator=(const Vector &v)
operator = kopiere die Werte eines Vektors
Vector(size_t dim, double val=0)
Vector Konstruktor: Vektor mit reservierten Speicher.
The IVCalc1 class Implementierung von +,-,*,/ (binär)
gsl_vector * gsl()
gsl ermöglicht direkten Zugriff auf gsl-Funktionen
The IVEqual class Informationen über die Elemente eines Vektors und Vergleichsoperatoren.
View view(size_t offset, size_t n)
view erzeuge View auf Daten
bool is_init() const
is_init
The IVMinMax class Suche minimales,maximales Element.
The Vector class Klasse für gsl-Vektoren zussamengesetzt aus Komponenten.
const gsl_vector * gsl() const
gsl_vec ermöglicht direkten Zugriff auf gsl Funktionen
Vector(Vector &&v)
Vector move-Konstruktor.
The VView class Klasse für Sichten zusammengesetzt aus Komponenten.
VView(gsl_vector_view v)
VView Konstruktor.
double f(double x, void *params)
f
VView(size_t dim, double f[])
VView Konstruktor.
The IVStl class Schnittstelle zur Standard Template Library.