20#ifndef CCGSL_MATRIX_COMPLEX_LONG_DOUBLE_HPP
21#define CCGSL_MATRIX_COMPLEX_LONG_DOUBLE_HPP
23#include<gsl/gsl_matrix.h>
25#ifdef __GXX_EXPERIMENTAL_CXX0X__
28#include<gsl/gsl_permute_matrix_complex_long_double.h>
79 if( n1 > 0 and n2 > 0 )
ccgsl_pointer = gsl_matrix_complex_long_double_alloc( n1, n2 );
83 try {
count =
new size_t; }
catch( std::bad_alloc& e ){
85 if( n1 > 0 and n2 > 0 ) gsl_matrix_complex_long_double_free(
ccgsl_pointer );
102#ifdef __GXX_EXPERIMENTAL_CXX0X__
108 size_t const n1 = initializer_list.size();
109 size_t const n2 = initializer_list.begin()->size();
110 for(
auto l : initializer_list ){
111 if( l.size() != n2 ){
112 gsl::exception e(
"matrix rows have unequal sizes", __FILE__, __LINE__,
117 ccgsl_pointer = gsl_matrix_complex_long_double_alloc( n1, n2 );
119 try {
count =
new size_t; }
catch( std::bad_alloc& e ){
121 if( n1 > 0 and n2 > 0 ) gsl_matrix_complex_long_double_free(
ccgsl_pointer );
128 for(
auto row : initializer_list ){
130 for(
auto x :
row ){
set( r, c, x ); ++c; }
170 gsl_matrix_complex_long_double_memcpy( copy.
get(),
get() );
191#ifdef __GXX_EXPERIMENTAL_CXX0X__
197 std::swap(
count, v.count );
198 v.ccgsl_pointer =
nullptr;
235 template<
typename container,
typename content,
bool reverse_t>
class iterator_base {
262 static content something;
267 }
else if(
v->ccgsl_pointer == 0 ){
286 static content something_base;
292 }
else if(
v->ccgsl_pointer == 0 ){
303#ifdef __GXX_EXPERIMENTAL_CXX0X__
304 return std::move(
ptr );
335 }
else if(
v->ccgsl_pointer == 0 ){
352 }
else if(
v->ccgsl_pointer == 0 ){
385 template<
bool reverse_t>
class iterator_t :
public iterator_base<matrix_complex_long_double,vector_complex_long_double,reverse_t>{
473 :
public iterator_base<matrix_complex_long_double const,vector_complex_long_double const,reverse_t>{
694 gsl_matrix_complex_long_double_tricpy( Uplo, Diag,
get(), src.
get() );
705 gsl_matrix_complex_long_double_transpose_tricpy( Uplo, Diag,
get(), src.
get() );
717 gsl_matrix_complex_long_double* m =
static_cast<gsl_matrix_complex_long_double*
>( malloc(
sizeof( gsl_matrix_complex_long_double ) ) );
718 *m = gsl_matrix_complex_long_double_submatrix(
get(), i, j, n1, n2 ).matrix;
727 gsl_vector_complex_long_double* w =
static_cast<gsl_vector_complex_long_double*
>( malloc(
sizeof( gsl_vector_complex_long_double ) ) );
728 *w = gsl_matrix_complex_long_double_row(
get(), i ).vector;
737 gsl_vector_complex_long_double* w =
static_cast<gsl_vector_complex_long_double*
>( malloc(
sizeof( gsl_vector_complex_long_double ) ) );
738 *w = gsl_matrix_complex_long_double_column(
get(), j ).vector;
746 diagonal(){ gsl_vector_complex_long_double* w =
static_cast<gsl_vector_complex_long_double*
>( malloc(
sizeof( gsl_vector_complex_long_double ) ) );
747 *w = gsl_matrix_complex_long_double_diagonal(
get() ).vector;
756 gsl_vector_complex_long_double* w =
static_cast<gsl_vector_complex_long_double*
>( malloc(
sizeof( gsl_vector_complex_long_double ) ) );
757 *w = gsl_matrix_complex_long_double_subdiagonal(
get(), k ).vector;
766 gsl_vector_complex_long_double* w =
static_cast<gsl_vector_complex_long_double*
>( malloc(
sizeof( gsl_vector_complex_long_double ) ) );
767 *w = gsl_matrix_complex_long_double_superdiagonal(
get(), k ).vector;
778 gsl_vector_complex_long_double* w =
static_cast<gsl_vector_complex_long_double*
>( malloc(
sizeof( gsl_vector_complex_long_double ) ) );
779 *w = gsl_matrix_complex_long_double_subrow(
get(), i, offset,
n ).vector;
790 gsl_vector_complex_long_double* w =
static_cast<gsl_vector_complex_long_double*
>( malloc(
sizeof( gsl_vector_complex_long_double ) ) );
791 *w = gsl_matrix_complex_long_double_subcolumn(
get(), j, offset,
n ).vector;
802 gsl_matrix_complex_long_double* m =
static_cast<gsl_matrix_complex_long_double*
>( malloc(
sizeof( gsl_matrix_complex_long_double ) ) );
803 *m = gsl_matrix_complex_long_double_view_array( base, n1, n2 ).matrix;
815 gsl_matrix_complex_long_double* m =
static_cast<gsl_matrix_complex_long_double*
>( malloc(
sizeof( gsl_matrix_complex_long_double ) ) );
816 *m = gsl_matrix_complex_long_double_view_array_with_tda( base, n1, n2, tda ).matrix;
827 gsl_matrix_complex_long_double* m =
static_cast<gsl_matrix_complex_long_double*
>( malloc(
sizeof( gsl_matrix_complex_long_double ) ) );
828 *m = gsl_matrix_complex_long_double_view_vector( v.
get(), n1, n2 ).matrix;
840 gsl_matrix_complex_long_double* m =
static_cast<gsl_matrix_complex_long_double*
>( malloc(
sizeof( gsl_matrix_complex_long_double ) ) );
841 *m = gsl_matrix_complex_long_double_view_vector_with_tda( v.
get(), n1, n2, tda ).matrix;
854 gsl_matrix_complex_long_double* m =
static_cast<gsl_matrix_complex_long_double*
>( malloc(
sizeof( gsl_matrix_complex_long_double ) ) );
855 *m = gsl_matrix_complex_long_double_const_submatrix(
get(), i, j, n1, n2 ).matrix;
864 gsl_vector_complex_long_double* w =
static_cast<gsl_vector_complex_long_double*
>( malloc(
sizeof( gsl_vector_complex_long_double ) ) );
865 *w = gsl_matrix_complex_long_double_const_row(
get(), i ).vector;
874 gsl_vector_complex_long_double* w =
static_cast<gsl_vector_complex_long_double*
>( malloc(
sizeof( gsl_vector_complex_long_double ) ) );
875 *w = gsl_matrix_complex_long_double_const_column(
get(), j ).vector;
883 gsl_vector_complex_long_double* w =
static_cast<gsl_vector_complex_long_double*
>( malloc(
sizeof( gsl_vector_complex_long_double ) ) );
884 *w = gsl_matrix_complex_long_double_const_diagonal(
get() ).vector;
893 gsl_vector_complex_long_double* w =
static_cast<gsl_vector_complex_long_double*
>( malloc(
sizeof( gsl_vector_complex_long_double ) ) );
894 *w = gsl_matrix_complex_long_double_const_subdiagonal(
get(), k ).vector;
903 gsl_vector_complex_long_double* w =
static_cast<gsl_vector_complex_long_double*
>( malloc(
sizeof( gsl_vector_complex_long_double ) ) );
904 *w = gsl_matrix_complex_long_double_const_superdiagonal(
get(), k ).vector;
915 gsl_vector_complex_long_double* w =
static_cast<gsl_vector_complex_long_double*
>( malloc(
sizeof( gsl_vector_complex_long_double ) ) );
916 *w = gsl_matrix_complex_long_double_const_subrow(
get(), i, offset,
n ).vector;
927 gsl_vector_complex_long_double* w =
static_cast<gsl_vector_complex_long_double*
>( malloc(
sizeof( gsl_vector_complex_long_double ) ) );
928 *w = gsl_matrix_complex_long_double_const_subcolumn(
get(), j, offset,
n ).vector;
939 gsl_matrix_complex_long_double* m =
static_cast<gsl_matrix_complex_long_double*
>( malloc(
sizeof( gsl_matrix_complex_long_double ) ) );
940 *m = gsl_matrix_complex_long_double_const_view_array( base, n1, n2 ).matrix;
953 gsl_matrix_complex_long_double* m =
static_cast<gsl_matrix_complex_long_double*
>( malloc(
sizeof( gsl_matrix_complex_long_double ) ) );
954 *m = gsl_matrix_complex_long_double_const_view_array_with_tda( base, n1, n2, tda ).matrix;
965 gsl_matrix_complex_long_double* m =
static_cast<gsl_matrix_complex_long_double*
>( malloc(
sizeof( gsl_matrix_complex_long_double ) ) );
966 *m = gsl_matrix_complex_long_double_const_view_vector( v.
get(), n1, n2 ).matrix;
979 gsl_matrix_complex_long_double* m =
static_cast<gsl_matrix_complex_long_double*
>( malloc(
sizeof( gsl_matrix_complex_long_double ) ) );
980 *m = gsl_matrix_complex_long_double_const_view_vector_with_tda( v.
get(), n1, n2, tda ).matrix;
992 gsl_matrix_complex_long_double* m =
static_cast<gsl_matrix_complex_long_double*
>( malloc(
sizeof( gsl_matrix_complex_long_double ) ) );
993 *m = gsl_matrix_complex_long_double_const_submatrix(
get(), i, j, n1, n2 ).matrix;
1002 gsl_vector_complex_long_double* w =
static_cast<gsl_vector_complex_long_double*
>( malloc(
sizeof( gsl_vector_complex_long_double ) ) );
1003 *w = gsl_matrix_complex_long_double_const_row(
get(), i ).vector;
1012 gsl_vector_complex_long_double* w =
static_cast<gsl_vector_complex_long_double*
>( malloc(
sizeof( gsl_vector_complex_long_double ) ) );
1013 *w = gsl_matrix_complex_long_double_const_column(
get(), j ).vector;
1021 gsl_vector_complex_long_double* w =
static_cast<gsl_vector_complex_long_double*
>( malloc(
sizeof( gsl_vector_complex_long_double ) ) );
1022 *w = gsl_matrix_complex_long_double_const_diagonal(
get() ).vector;
1031 gsl_vector_complex_long_double* w =
static_cast<gsl_vector_complex_long_double*
>( malloc(
sizeof( gsl_vector_complex_long_double ) ) );
1032 *w = gsl_matrix_complex_long_double_const_subdiagonal(
get(), k ).vector;
1041 gsl_vector_complex_long_double* w =
static_cast<gsl_vector_complex_long_double*
>( malloc(
sizeof( gsl_vector_complex_long_double ) ) );
1042 *w = gsl_matrix_complex_long_double_const_superdiagonal(
get(), k ).vector;
1053 gsl_vector_complex_long_double* w =
static_cast<gsl_vector_complex_long_double*
>( malloc(
sizeof( gsl_vector_complex_long_double ) ) );
1054 *w = gsl_matrix_complex_long_double_const_subrow(
get(), i, offset,
n ).vector;
1065 gsl_vector_complex_long_double* w =
static_cast<gsl_vector_complex_long_double*
>( malloc(
sizeof( gsl_vector_complex_long_double ) ) );
1066 *w = gsl_matrix_complex_long_double_const_subcolumn(
get(), j, offset,
n ).vector;
1077 gsl_matrix_complex_long_double* m =
static_cast<gsl_matrix_complex_long_double*
>( malloc(
sizeof( gsl_matrix_complex_long_double ) ) );
1078 *m = gsl_matrix_complex_long_double_const_view_array( base, n1, n2 ).matrix;
1091 gsl_matrix_complex_long_double* m =
static_cast<gsl_matrix_complex_long_double*
>( malloc(
sizeof( gsl_matrix_complex_long_double ) ) );
1092 *m = gsl_matrix_complex_long_double_const_view_array_with_tda( base, n1, n2, tda ).matrix;
1103 gsl_matrix_complex_long_double* m =
static_cast<gsl_matrix_complex_long_double*
>( malloc(
sizeof( gsl_matrix_complex_long_double ) ) );
1104 *m = gsl_matrix_complex_long_double_const_view_vector( v.
get(), n1, n2 ).matrix;
1117 gsl_matrix_complex_long_double* m =
static_cast<gsl_matrix_complex_long_double*
>( malloc(
sizeof( gsl_matrix_complex_long_double ) ) );
1118 *m = gsl_matrix_complex_long_double_const_view_vector_with_tda( v.
get(), n1, n2, tda ).matrix;
1158#ifdef __GXX_EXPERIMENTAL_CXX0X__
1214 int isnull()
const {
return gsl_matrix_complex_long_double_isnull(
get() ); }
1219 int ispos()
const {
return gsl_matrix_complex_long_double_ispos(
get() ); }
1224 int isneg()
const {
return gsl_matrix_complex_long_double_isneg(
get() ); }
1229 int isnonneg()
const {
return gsl_matrix_complex_long_double_isnonneg(
get() ); }
1273 int fread( FILE* stream ){
return gsl_matrix_complex_long_double_fread( stream,
get() ); }
1279 int fwrite( FILE* stream )
const {
return gsl_matrix_complex_long_double_fwrite( stream,
get() ); }
1285 int fscanf( FILE* stream ){
return gsl_matrix_complex_long_double_fscanf( stream,
get() ); }
1292 int fprintf( FILE* stream,
char const* format )
const {
1293 return gsl_matrix_complex_long_double_fprintf( stream,
get(), format ); }
1303 ccgsl_pointer = gsl_matrix_complex_long_double_alloc_from_block(
b.get(), offset, n1, n2, d2 );
1305 try {
count =
new size_t; }
catch( std::bad_alloc& e ){
1321 ccgsl_pointer = gsl_matrix_complex_long_double_alloc_from_matrix( m.
get(), k1, k2, n1, n2 );
1323 try {
count =
new size_t; }
catch( std::bad_alloc& e ){
1341 int swap_rows(
size_t const i,
size_t const j ){
return gsl_matrix_complex_long_double_swap_rows(
get(), i, j ); }
1349 return gsl_matrix_complex_long_double_swap_columns(
get(), i, j ); }
1357 int swap_rowcol(
size_t const i,
size_t const j ){
return gsl_matrix_complex_long_double_swap_rowcol(
get(), i, j ); }
1362 int transpose(){
return gsl_matrix_complex_long_double_transpose(
get() ); }
1369 return gsl_matrix_complex_long_double_transpose_memcpy(
get(), src.
get() ); }
1377 return gsl_matrix_complex_long_double_mul_elements(
get(),
b.get() ); }
1385 return gsl_matrix_complex_long_double_div_elements(
get(),
b.get() ); }
1392 return gsl_matrix_complex_long_double_conjtrans_memcpy(
get(), src.
get() ); }
1399 return gsl_matrix_complex_long_double_scale_rows(
get(), x.
get() ); }
1406 return gsl_matrix_complex_long_double_scale_columns(
get(), x.
get() ); }
1413 return gsl_matrix_complex_long_double_add_diagonal(
get(), x ); }
1421 return gsl_matrix_complex_long_double_get_row( v.
get(),
get(), i ); }
1429 return gsl_matrix_complex_long_double_get_col( v.
get(),
get(), j ); }
1437 return gsl_matrix_complex_long_double_set_row(
get(), i, v.
get() ); }
1445 return gsl_matrix_complex_long_double_set_col(
get(), j, v.
get() ); }
1461 gsl_vector_complex_long_double_view w = gsl_matrix_complex_long_double_row(
ccgsl_pointer, i );
1479 gsl_vector_complex_long_double_view w = gsl_matrix_complex_long_double_row(
ccgsl_pointer, i );
1490 return gsl_permute_matrix_complex_long_double( p.
get(),
get() ); }
This class handles vector_complex_long_doubles as shared handles.
This class can be used like a pointer for complex_long_double objects so that we can iterate over a v...
This class handles complex_long_double numbers.
This class is used to handle gsl exceptions so that gsl can use these rather than the GSL error handl...
@ GSL_EFAILED
generic failure
@ GSL_EINVAL
invalid argument supplied by user
@ GSL_EBADLEN
matrix, vector lengths are not conformant
A class template for the const iterators.
bool operator==(const_iterator_t< reverse_t > const &i) const
Comparison with const iterator.
const_iterator_t< reverse_t > operator--(int)
The postfix – operator.
const_iterator_t(matrix_complex_long_double const *v, size_t position)
This constructor allows vector to create non-default iterators.
bool operator==(iterator_t< reverse_t > const &i) const
Comparison with non-const iterator.
const_iterator_t(iterator_t< reverse_t > const &i)
A copy constructor.
const_iterator_t< reverse_t > & operator++()
The prefix ++ operator.
bool operator!=(const_iterator_t< reverse_t > const &i) const
Comparison with const iterator.
const_iterator_t< reverse_t > & operator--()
The prefix – operator.
const_iterator_t< reverse_t > & operator=(const_iterator_t< reverse_t > const &i)
We can assign one output iterator from another.
const_iterator_t()
The default constructor.
const_iterator_t< reverse_t > operator++(int)
The postfix ++ operator.
bool operator!=(iterator_t< reverse_t > const &i) const
Comparison with non-const iterator.
We create a suitable class for iterator types here.
iterator_base(container *v, size_t position)
This constructor allows vector to create non-default iterators.
bool operator==(iterator_base< container, content, reverse_t > const &i) const
The == operator.
pointer operator->() const
Dereference the pointer.
void decrement()
Decrement the iterator.
iterator_base()
The iterator is default constructible.
vector_complex_long_double_ptr pointer
An iterator must have a pointer typea.
size_t position
Mark position of iterator within matrix.
bool operator!=(iterator_base< container, content, reverse_t > const &i) const
The != operator.
value_type reference
An iterator must have a reference type.
container * v
Store a pointer to a matrix we can iterate over: 0 if no matrix.
void increment()
Increment the iterator.
vector_complex_long_double value_type
An iterator must have a value type.
reference operator*() const
Dereference the pointer.
std::bidirectional_iterator_tag iterator_category
An iterator must have an iterator category.
A class template for the two non-const iterators.
iterator_t< reverse_t > operator--(int)
The postfix – operator.
iterator_t< reverse_t > & operator++()
The prefix ++ operator.
iterator_t< reverse_t > & operator=(iterator_t< reverse_t > const &i)
We can assign one output iterator from another.
iterator_t< reverse_t > operator++(int)
The postfix ++ operator.
iterator_t()
The default constructor.
iterator_t(matrix_complex_long_double *v, size_t position)
This constructor allows vector to create non-default iterators.
bool operator!=(const_iterator_t< reverse_t > const &i) const
Comparison with const iterator.
iterator_t< reverse_t > & operator--()
The prefix – operator.
bool operator==(const_iterator_t< reverse_t > const &i) const
Comparison with const iterator.
This class handles matrix_complex_long_double objects as shared handles.
static matrix_complex_long_double view_vector_with_tda(vector_complex_long_double &v, size_t const n1, size_t const n2, size_t const tda)
C++ version of gsl_matrix_complex_long_double_view_vector_with_tda().
const_iterator begin() const
Get iterator pointing to first vector_complex_long_double element.
vector_complex_long_double const const_diagonal() const
C++ version of gsl_matrix_complex_long_double_const_diagonal().
static matrix_complex_long_double calloc(size_t const n1, size_t const n2)
C++ version of gsl_matrix_complex_long_double_calloc().
static matrix_complex_long_double const view_vector_with_tda(vector_complex_long_double const &v, size_t const n1, size_t const n2, size_t const tda)
Another C++ version of gsl_matrix_complex_long_double_const_view_vector_with_tda().
vector_complex_long_double superdiagonal(size_t const k)
C++ version of gsl_matrix_complex_long_double_superdiagonal().
int ispos() const
C++ version of gsl_matrix_complex_long_double_ispos().
matrix_complex_long_double & operator=(matrix_complex_long_double &&v)
Move operator.
int transpose()
C++ version of gsl_matrix_complex_long_double_transpose().
void transpose_tricpy(CBLAS_UPLO_t Uplo, CBLAS_DIAG_t Diag, matrix_complex_long_double const &src)
Copy the upper or lower triangular part of matrix src to this.
iterator begin()
Get iterator pointing to first vector_complex_long_double element.
matrix_complex_long_double(matrix_complex_long_double &&v)
Move constructor.
vector_complex_long_double diagonal()
C++ version of gsl_matrix_complex_long_double_diagonal().
gsl_matrix_complex_long_double * get()
Get the gsl_matrix_complex_long_double.
vector_complex_long_double subdiagonal(size_t const k)
C++ version of gsl_matrix_complex_long_double_subdiagonal().
static matrix_complex_long_double const const_view_vector_with_tda(vector_complex_long_double const &v, size_t const n1, size_t const n2, size_t const tda)
C++ version of gsl_matrix_complex_long_double_const_view_vector_with_tda().
void swap(matrix_complex_long_double &m)
Swap two matrix_complex_long_double objects.
static matrix_complex_long_double const view_array_with_tda(long double const *base, size_t const n1, size_t const n2, size_t const tda)
Another C++ version of gsl_matrix_complex_long_double_const_view_array_with_tda().
matrix_complex_long_double clone() const
The clone function.
int swap_rows(size_t const i, size_t const j)
C++ version of gsl_matrix_complex_long_double_swap_rows().
iterator_t< false > iterator
The iterator type.
static matrix_complex_long_double const const_view_array(long double const *base, size_t const n1, size_t const n2)
C++ version of gsl_matrix_complex_long_double_const_view_array().
void reset()
Stop sharing ownership of the shared pointer.
vector_complex_long_double const operator[](size_t const i) const
This function allows us to use a matrix_complex_long_double like an array.
vector_complex_long_double const const_subdiagonal(size_t const k) const
C++ version of gsl_matrix_complex_long_double_const_subdiagonal().
const_iterator_t< true > const_reverse_iterator
The const_reverse_t type.
reverse_iterator rend()
Get iterator pointing beyond last vector_complex_long_double element.
complex_long_double_ptr ptr(size_t const i, size_t const j)
C++ version of gsl_matrix_complex_long_double_ptr().
int swap_columns(size_t const i, size_t const j)
C++ version of gsl_matrix_complex_long_double_swap_columns().
int add_diagonal(complex_long_double const x)
C++ version of gsl_matrix_complex_long_double_add_diagonal().
static matrix_complex_long_double const view_array(long double const *base, size_t const n1, size_t const n2)
Another C++ version of gsl_matrix_complex_long_double_const_view_array().
const_iterator end() const
Get iterator pointing beyond last vector_complex_long_double element.
vector_complex_long_double const subdiagonal(size_t const k) const
Another C++ version of gsl_matrix_complex_long_double_const_subdiagonal().
static matrix_complex_long_double view_array_with_tda(long double *base, size_t const n1, size_t const n2, size_t const tda)
C++ version of gsl_matrix_complex_long_double_view_array_with_tda().
static matrix_complex_long_double const const_view_array_with_tda(long double const *base, size_t const n1, size_t const n2, size_t const tda)
C++ version of gsl_matrix_complex_long_double_const_view_array_with_tda().
size_t use_count() const
Find how many matrix_complex_long_double objects share this pointer.
vector_complex_long_double const subcolumn(size_t const j, size_t const offset, size_t const n) const
Another C++ version of gsl_matrix_complex_long_double_const_subcolumn().
void tricpy(CBLAS_UPLO_t Uplo, CBLAS_DIAG_t Diag, matrix_complex_long_double const &src)
Copy the upper or lower triangular part of matrix src to this.
gsl_matrix_complex_long_double const * get() const
Get the gsl_matrix_complex_long_double.
static matrix_complex_long_double const const_view_vector(vector_complex_long_double const &v, size_t const n1, size_t const n2)
C++ version of gsl_matrix_complex_long_double_const_view_vector().
int memcpy(matrix_complex_long_double const &src)
C++ version of gsl_matrix_complex_long_double_memcpy().
matrix_complex_long_double const const_submatrix(size_t const i, size_t const j, size_t const n1, size_t const n2) const
C++ version of gsl_matrix_complex_long_double_const_submatrix().
vector_complex_long_double const column(size_t const j) const
Another C++ version of gsl_matrix_complex_long_double_const_column().
int scale_rows(vector_complex_long_double const &x)
C++ version of gsl_matrix_complex_long_double_scale_rows().
int isneg() const
C++ version of gsl_matrix_complex_long_double_isneg().
bool unique() const
Find if this is the only object sharing the gsl_matrix_complex_long_double.
vector_complex_long_double const subrow(size_t const i, size_t const offset, size_t const n) const
Another C++ version of gsl_matrix_complex_long_double_const_subrow().
static matrix_complex_long_double const view_vector(vector_complex_long_double const &v, size_t const n1, size_t const n2)
Another C++ version of gsl_matrix_complex_long_double_const_view_vector().
complex_long_double_ptr const const_ptr(size_t const i, size_t const j) const
C++ version of gsl_matrix_complex_long_double_const_ptr().
int isnonneg() const
C++ version of gsl_matrix_complex_long_double_isnonneg().
matrix_complex_long_double(gsl_matrix_complex_long_double *v)
Could construct from a gsl_matrix_complex_long_double.
int fread(FILE *stream)
C++ version of gsl_matrix_complex_long_double_fread().
vector_complex_long_double const const_row(size_t const i) const
C++ version of gsl_matrix_complex_long_double_const_row().
vector_complex_long_double const const_subrow(size_t const i, size_t const offset, size_t const n) const
C++ version of gsl_matrix_complex_long_double_const_subrow().
matrix_complex_long_double(size_t const n1, size_t const n2)
The default constructor creates a new matrix_complex_long_double with n1 * n1 elements.
static matrix_complex_long_double view_array(long double *base, size_t const n1, size_t const n2)
C++ version of gsl_matrix_complex_long_double_view_array().
static matrix_complex_long_double view_vector(vector_complex_long_double &v, size_t const n1, size_t const n2)
C++ version of gsl_matrix_complex_long_double_view_vector().
vector_complex_long_double subcolumn(size_t const j, size_t const offset, size_t const n)
C++ version of gsl_matrix_complex_long_double_subcolumn().
reverse_iterator rbegin()
Get iterator pointing to first vector_complex_long_double element.
int swap_rowcol(size_t const i, size_t const j)
C++ version of gsl_matrix_complex_long_double_swap_rowcol().
int sub(matrix_complex_long_double const &b)
C++ version of gsl_matrix_complex_long_double_sub().
vector_complex_long_double operator[](size_t const i)
This function allows us to use a matrix_complex_long_double like an array.
matrix_complex_long_double const submatrix(size_t const i, size_t const j, size_t const n1, size_t const n2) const
Another C++ version of gsl_matrix_complex_long_double_const_submatrix().
const_reverse_iterator rbegin() const
Get iterator pointing to first vector_complex_long_double element.
matrix_complex_long_double(matrix_complex_long_double &m, size_t const k1, size_t const k2, size_t const n1, size_t const n2)
C++ version of gsl_matrix_complex_long_double_alloc_from_matrix().
vector_complex_long_double const const_column(size_t const j) const
C++ version of gsl_matrix_complex_long_double_const_column().
vector_complex_long_double const const_subcolumn(size_t const j, size_t const offset, size_t const n) const
C++ version of gsl_matrix_complex_long_double_const_subcolumn().
size_t size_type
A container must have a size_type.
void set_identity()
C++ version of gsl_matrix_complex_long_double_set_identity().
int fprintf(FILE *stream, char const *format) const
C++ version of gsl_matrix_complex_long_double_fprintf().
iterator end()
Get iterator pointing beyond last vector_complex_long_double element.
matrix_complex_long_double()
The default constructor is only really useful for assigning to.
int set_row(size_t const i, vector_complex_long_double const &v)
C++ version of gsl_matrix_complex_long_double_set_row().
const_reverse_iterator rend() const
Get iterator pointing beyond last vector_complex_long_double element.
int scale(complex_long_double const x)
C++ version of gsl_matrix_complex_long_double_scale().
int set_col(size_t const j, vector_complex_long_double const &v)
C++ version of gsl_matrix_complex_long_double_set_col().
int get_col(vector_complex_long_double &v, size_t const j) const
C++ version of gsl_matrix_complex_long_double_get_col().
iterator_t< true > reverse_iterator
The reverse_iterator type.
size_t size2() const
The number of columns of the matrix_complex_long_double.
matrix_complex_long_double(std::initializer_list< std::initializer_list< std::complex< long double > > > initializer_list)
Could construct from a std::initializer_list in C++11.
matrix_complex_long_double submatrix(size_t const i, size_t const j, size_t const n1, size_t const n2)
C++ version of gsl_matrix_complex_long_double_submatrix().
vector_complex_long_double const diagonal() const
Another C++ version of gsl_matrix_complex_long_double_const_diagonal().
int isnull() const
C++ version of gsl_matrix_complex_long_double_isnull().
gsl_matrix_complex_long_double * ccgsl_pointer
The shared pointer.
int get_row(vector_complex_long_double &v, size_t const i) const
C++ version of gsl_matrix_complex_long_double_get_row().
matrix_complex_long_double(block_complex_long_double &b, size_t const offset, size_t const n1, size_t const n2, size_t const d2)
C++ version of gsl_matrix_complex_long_double_alloc_from_block().
int div_elements(matrix_complex_long_double const &b)
C++ version of gsl_matrix_complex_long_double_div_elements().
vector_complex_long_double const row(size_t const i) const
Another C++ version of gsl_matrix_complex_long_double_const_row().
int add_constant(complex_long_double const x)
C++ version of gsl_matrix_complex_long_double_add_constant().
vector_complex_long_double column(size_t const j)
C++ version of gsl_matrix_complex_long_double_column().
void set_all(complex_long_double x)
C++ version of gsl_matrix_complex_long_double_set_all().
vector_complex_long_double const const_superdiagonal(size_t const k) const
C++ version of gsl_matrix_complex_long_double_const_superdiagonal().
~matrix_complex_long_double()
The destructor only deletes the pointers if count reaches zero.
int permute(permutation &p)
Permute the columns of this by permutation p.
matrix_complex_long_double & operator=(matrix_complex_long_double const &v)
The assignment operator.
void set(size_t const i, size_t const j, complex_long_double x)
C++ version of gsl_matrix_complex_long_double_set().
void set_zero()
C++ version of gsl_matrix_complex_long_double_set_zero().
size_t size1() const
The number of rows of the matrix_complex_long_double.
int transpose_memcpy(matrix_complex_long_double const &src)
C++ version of gsl_matrix_complex_long_double_transpose_memcpy().
int scale_columns(vector_complex_long_double const &x)
C++ version of gsl_matrix_complex_long_double_scale_columns().
int add(matrix_complex_long_double const &b)
C++ version of gsl_matrix_complex_long_double_add().
vector_complex_long_double row(size_t const i)
C++ version of gsl_matrix_complex_long_double_row().
complex_long_double get(size_t const i, size_t const j) const
C++ version of gsl_matrix_complex_long_double_get().
int fwrite(FILE *stream) const
C++ version of gsl_matrix_complex_long_double_fwrite().
vector_complex_long_double subrow(size_t const i, size_t const offset, size_t const n)
C++ version of gsl_matrix_complex_long_double_subrow().
const_iterator_t< false > const_iterator
The const_iterator type.
size_t * count
The shared reference count.
int mul_elements(matrix_complex_long_double const &b)
C++ version of gsl_matrix_complex_long_double_mul_elements().
int fscanf(FILE *stream)
C++ version of gsl_matrix_complex_long_double_fscanf().
int conjtrans_memcpy(matrix_complex_long_double const &src)
C++ version of gsl_matrix_complex_long_double_conjtrans_memcpy().
vector_complex_long_double const superdiagonal(size_t const k) const
Another C++ version of gsl_matrix_complex_long_double_const_superdiagonal().
matrix_complex_long_double(matrix_complex_long_double const &v)
The copy constructor.
This class handles GSL permutation objects.
gsl_permutation * get()
Get the gsl_permutation.
This class handles vector_complex_long_double objects as shared handles.
static vector_complex_long_double alloc_col_from_matrix(matrix_complex_long_double &m, size_t const j)
C++ version of gsl_vector_complex_long_double_alloc_col_from_matrix().
vector_complex_long_double()
The default constructor is only really useful for assigning to.
static vector_complex_long_double alloc_row_from_matrix(matrix_complex_long_double &m, size_t const i)
C++ version of gsl_vector_complex_long_double_alloc_row_from_matrix().
gsl_vector_complex_long_double * get()
Get the gsl_vector_complex_long_double.
void wrap_gsl_vector_complex_long_double_without_ownership(gsl_vector_complex_long_double *v)
This function is intended mainly for internal use.
size_t n(workspace const &w)
C++ version of gsl_rstat_n().
double b(int order, double qq)
C++ version of gsl_sf_mathieu_b().
gsl_sf_result result
Typedef for gsl_sf_result.
The gsl package creates an interface to the GNU Scientific Library for C++.
This is a pointer-like type for iterator return values.
vector_complex_long_double_ptr(vector_complex_long_double const &v)
Typically we have to construct from a vector_complex_long_double.
vector_complex_long_double & operator*()
Dereference operator.
vector_complex_long_double * operator->()
Dereference operator.