21#ifndef CCGSL_EIGEN_GENHERM_HPP
22#define CCGSL_EIGEN_GENHERM_HPP
24#include<gsl/gsl_eigen.h>
58 try {
count =
new size_t; }
catch( std::bad_alloc& e ){
107#ifdef __GXX_EXPERIMENTAL_CXX0X__
113 std::swap(
count, v.count );
114 v.ccgsl_pointer =
nullptr;
237#ifdef __GXX_EXPERIMENTAL_CXX0X__
255 return gsl_eigen_genherm( A.
get(), B.
get(),
eval.get(), w.
get() ); }
277 try {
count =
new size_t; }
catch( std::bad_alloc& e ){
326#ifdef __GXX_EXPERIMENTAL_CXX0X__
332 std::swap(
count, v.count );
333 v.ccgsl_pointer =
nullptr;
456#ifdef __GXX_EXPERIMENTAL_CXX0X__
475 return gsl_eigen_genhermv( A.
get(), B.
get(),
eval.get(), evec.
get(), w.
get() ); }
Workspace for genhermetric matrices.
size_t size() const
The size of the workspace.
genherm_workspace & operator=(genherm_workspace const &v)
The assignment operator.
bool empty() const
Find if the genherm_workspace is empty.
genherm_workspace()
The default constructor is only really useful for assigning to.
bool operator<(genherm_workspace const &v) const
A container needs to define an ordering for sorting.
bool operator==(genherm_workspace const &v) const
Two genherm_workspace are identically equal if their elements are identical.
bool unique() const
Find if this is the only object sharing the gsl_eigen_genherm_workspace.
bool operator!=(genherm_workspace const &v) const
Two genherm_workspace are different equal if their elements are not identical.
bool operator>(genherm_workspace const &v) const
A container needs to define an ordering for sorting.
genherm_workspace(gsl_eigen_genherm_workspace *v)
Could construct from a gsl_eigen_genherm_workspace.
bool operator<=(genherm_workspace const &v) const
A container needs to define an ordering for sorting.
genherm_workspace(genherm_workspace const &v)
The copy constructor.
gsl_eigen_genherm_workspace * ccgsl_pointer
The shared pointer.
bool operator>=(genherm_workspace const &v) const
A container needs to define an ordering for sorting.
size_t use_count() const
Find how many genherm_workspace objects share this pointer.
~genherm_workspace()
The destructor only deletes the pointers if count reaches zero.
gsl_eigen_genherm_workspace * get() const
Get the gsl_eigen_genherm_workspace.
genherm_workspace(size_t const n)
The default constructor creates a new genherm_workspace with n elements.
void swap(genherm_workspace &v)
Swap two genherm_workspace.
genherm_workspace(genherm_workspace &&v)
Move constructor.
size_t * count
The shared reference count.
genherm_workspace & operator=(genherm_workspace &&v)
Move operator.
Workspace for real genhermetric matrices (eigenvectors and eigenvalues)
bool empty() const
Find if the genhermv_workspace is empty.
gsl_eigen_genhermv_workspace * get() const
Get the gsl_eigen_genhermv_workspace.
genhermv_workspace & operator=(genhermv_workspace const &v)
The assignment operator.
genhermv_workspace(gsl_eigen_genhermv_workspace *v)
Could construct from a gsl_eigen_genhermv_workspace.
genhermv_workspace(size_t const n)
The default constructor creates a new genhermv_workspace with n elements.
size_t size() const
The size of the workspace.
gsl_eigen_genhermv_workspace * ccgsl_pointer
The shared pointer.
bool unique() const
Find if this is the only object sharing the gsl_eigen_genhermv_workspace.
bool operator>=(genhermv_workspace const &v) const
A container needs to define an ordering for sorting.
size_t * count
The shared reference count.
size_t use_count() const
Find how many genhermv_workspace objects share this pointer.
genhermv_workspace(genhermv_workspace const &v)
The copy constructor.
bool operator==(genhermv_workspace const &v) const
Two genhermv_workspace are identically equal if their elements are identical.
genhermv_workspace(genhermv_workspace &&v)
Move constructor.
bool operator<=(genhermv_workspace const &v) const
A container needs to define an ordering for sorting.
~genhermv_workspace()
The destructor only deletes the pointers if count reaches zero.
genhermv_workspace & operator=(genhermv_workspace &&v)
Move operator.
bool operator>(genhermv_workspace const &v) const
A container needs to define an ordering for sorting.
bool operator!=(genhermv_workspace const &v) const
Two genhermv_workspace are different equal if their elements are not identical.
void swap(genhermv_workspace &v)
Swap two genhermv_workspace.
genhermv_workspace()
The default constructor is only really useful for assigning to.
bool operator<(genhermv_workspace const &v) const
A container needs to define an ordering for sorting.
This class handles matrix_complex objects as shared handles.
gsl_matrix_complex * get()
Get the gsl_matrix_complex.
This class handles vector objects as shared handles.
int eval(double const x, vector &B, workspace &w)
C++ version of gsl_bspline_eval().
int genherm(gsl::matrix_complex &A, gsl::matrix_complex &B, gsl::vector &eval, genherm_workspace &w)
C++ version of gsl_eigen_genherm().
int genhermv(gsl::matrix_complex &A, gsl::matrix_complex &B, gsl::vector &eval, gsl::matrix_complex &evec, genhermv_workspace &w)
C++ version of gsl_eigen_genhermv().
size_t n(workspace const &w)
C++ version of gsl_rstat_n().
The gsl package creates an interface to the GNU Scientific Library for C++.