20#ifndef CCGSL_VECTOR_COMPLEX_FLOAT_HPP
21#define CCGSL_VECTOR_COMPLEX_FLOAT_HPP
23#include<gsl/gsl_vector_complex_float.h>
30#ifdef __GXX_EXPERIMENTAL_CXX0X__
39 class matrix_complex_float;
67 try {
count =
new size_t; }
catch( std::bad_alloc& e ){
82 if(
n > 0 )
ccgsl_pointer = gsl_vector_complex_float_alloc(
static_cast<size_t>(
n ) );
84 gsl_error(
"failed tring to make a vector of negative length",
88 try {
count =
new size_t; }
catch( std::bad_alloc& e ){
102 explicit vector_complex_float( gsl_vector_complex_float* v )
109#ifdef __GXX_EXPERIMENTAL_CXX0X__
116 size_t const n = initializer_list.size();
119 try {
count =
new size_t; }
catch( std::bad_alloc& e ){
128 for(
auto x : initializer_list ){
172 gsl_vector_complex_float_memcpy( copy.
get(),
get() );
234#ifdef __GXX_EXPERIMENTAL_CXX0X__
242 std::swap(
count, v.count );
243 v.ccgsl_pointer =
nullptr;
283 for(
size_t i = 0; i <
min; ++i ){
286 if( t < u )
return true;
287 if( u < t )
return false;
290 return size < v_size;
310 for(
size_t i = 0; i <
min; ++i ){
313 if( t > u )
return true;
314 if( u > t )
return false;
317 return size > v_size;
375 template<
typename container,
typename content,
bool reverse_t>
411 }
else if(
v->ccgsl_pointer == 0 ){
437 }
else if(
v->ccgsl_pointer == 0 ){
464 }
else if(
v->ccgsl_pointer == 0 ){
489 if(
v == 0 or i.
v == 0 ){
492 }
else if(
v->ccgsl_pointer == 0 or i.
v->ccgsl_pointer == 0 ){
497 if(
v->ccgsl_pointer != i.
v->ccgsl_pointer ){
498 gsl_error(
"trying to take difference of iterators for different vector_complex_float objects", __FILE__, __LINE__,
531 if(
v == 0 or i.
v == 0 ){
536 if(
v->ccgsl_pointer != i.
v->ccgsl_pointer ){
537 gsl_error(
"trying to take difference of iterators for different vector_complex_float objects", __FILE__, __LINE__,
553 }
else if(
v->ccgsl_pointer == 0 ){
570 }
else if(
v->ccgsl_pointer == 0 ){
587 }
else if(
v->ccgsl_pointer == 0 ){
735 if( this->
v == 0 or i.
v == 0 ){
744 gsl_error(
"trying to take difference of iterators for different vector_complex_float objects", __FILE__, __LINE__,
773 if( this->
v == 0 or i.
v == 0 ){
779 gsl_error(
"trying to take difference of iterators for different vector_complex_float objects", __FILE__, __LINE__,
804 :
public iterator_base<vector_complex_float const,float,reverse_t>{
921 if( this->
v == 0 or i.
v == 0 ){
930 gsl_error(
"trying to take difference of iterators for different vector_complex_float objects", __FILE__, __LINE__,
971 if( this->
v == 0 or i.
v == 0 ){
977 gsl_error(
"trying to take difference of iterators for different vector_complex_float objects", __FILE__, __LINE__,
1006 if( this->
v == 0 or i.
v == 0 ){
1012 gsl_error(
"trying to take difference of iterators for different vector_complex objects", __FILE__, __LINE__,
1102 if(
ccgsl_pointer == 0 ) gsl_error(
"null vector", __FILE__, __LINE__, GSL_EFAULT );
1103#ifndef GSL_RANGE_CHECK_OFF
1105 gsl_error(
"vector does not have stride of size 1", __FILE__, __LINE__, GSL_EBADLEN );
1116 if(
ccgsl_pointer == 0 ) gsl_error(
"null vector", __FILE__, __LINE__, GSL_EFAULT );
1117#ifndef GSL_RANGE_CHECK_OFF
1119 gsl_error(
"vector does not have stride of size 1", __FILE__, __LINE__, GSL_EBADLEN );
1190#ifndef GSL_RANGE_CHECK_OFF
1193 gsl_error(
"trying to read beyond end of vector_complex_float", __FILE__, __LINE__,
exception::GSL_EFAILED );
1211#ifndef GSL_RANGE_CHECK_OFF
1214 gsl_error(
"trying to read beyond end of vector_complex_float", __FILE__, __LINE__,
exception::GSL_EFAILED );
1262#ifdef __GXX_EXPERIMENTAL_CXX0X__
1289 int set_basis(
size_t i ){
return gsl_vector_complex_float_set_basis(
get(), i ); }
1300 int reverse(){
return gsl_vector_complex_float_reverse(
get() ); }
1308 return gsl_vector_complex_float_swap_elements(
get(), i, j ); }
1354 return gsl_vector_complex_float_axpby( alpha, x.
get(),
beta,
get() );
1360 int isnull()
const {
return gsl_vector_complex_float_isnull(
get() ); }
1365 int ispos()
const {
return gsl_vector_complex_float_ispos(
get() ); }
1370 int isneg()
const {
return gsl_vector_complex_float_isneg(
get() ); }
1375 int isnonneg()
const {
return gsl_vector_complex_float_isnonneg(
get() ); }
1411 int fread( FILE* stream ){
return gsl_vector_complex_float_fread( stream,
get() ); }
1417 int fwrite( FILE* stream )
const {
return gsl_vector_complex_float_fwrite( stream,
get() ); }
1423 int fscanf( FILE* stream ){
return gsl_vector_complex_float_fscanf( stream,
get() ); }
1430 int fprintf( FILE* stream,
char const* format )
const {
1431 return gsl_vector_complex_float_fprintf( stream,
get(), format ); }
1440 ccgsl_pointer = gsl_vector_complex_float_alloc_from_block(
b.get(), offset,
n, stride );
1442 try {
count =
new size_t; }
catch( std::bad_alloc& e ){
1457 ccgsl_pointer = gsl_vector_complex_float_alloc_from_vector( v.
get(), offset,
n, stride );
1459 try {
count =
new size_t; }
catch( std::bad_alloc& e ){
1521 gsl_vector_complex_float* w =
static_cast<gsl_vector_complex_float*
>( malloc(
sizeof( gsl_vector_complex_float ) ) );
1522 *w = gsl_vector_complex_float_view_array( v,
n ).vector;
1535 gsl_vector_complex_float* w =
static_cast<gsl_vector_complex_float*
>( malloc(
sizeof( gsl_vector_complex_float ) ) );
1536 *w = gsl_vector_complex_float_view_array_with_stride( base, stride,
n ).vector;
1548 gsl_vector_complex_float* w =
static_cast<gsl_vector_complex_float *
>( malloc(
sizeof( gsl_vector_complex_float ) ) );
1549 *w = gsl_vector_complex_float_const_view_array( v,
n ).vector;
1562 gsl_vector_complex_float* w =
static_cast<gsl_vector_complex_float*
>( malloc(
sizeof( gsl_vector_complex_float ) ) );
1563 *w = gsl_vector_complex_float_const_view_array_with_stride( base, stride,
n ).vector;
1576 gsl_vector_complex_float* w =
static_cast<gsl_vector_complex_float*
>( malloc(
sizeof( gsl_vector_complex_float ) ) );
1577 *w = gsl_vector_complex_float_const_view_array( v,
n ).vector;
1592 gsl_vector_complex_float* w =
static_cast<gsl_vector_complex_float*
>( malloc(
sizeof( gsl_vector_complex_float ) ) );
1593 *w = gsl_vector_complex_float_const_view_array_with_stride( base, stride,
n ).vector;
1606 gsl_vector_complex_float* w =
static_cast<gsl_vector_complex_float*
>( malloc(
sizeof( gsl_vector_complex_float ) ) );
1607 *w = gsl_vector_complex_float_subvector(
get(), i,
n ).vector;
1620 gsl_vector_complex_float* w =
static_cast<gsl_vector_complex_float*
>( malloc(
sizeof( gsl_vector_complex_float ) ) );
1621 *w = gsl_vector_complex_float_subvector_with_stride(
get(), i, stride,
n ).vector;
1633 gsl_vector_complex_float* w =
static_cast<gsl_vector_complex_float*
>( malloc(
sizeof( gsl_vector_complex_float ) ) );
1634 *w = gsl_vector_complex_float_const_subvector(
get(), i,
n ).vector;
1647 gsl_vector_complex_float* w =
static_cast<gsl_vector_complex_float*
>( malloc(
sizeof( gsl_vector_complex_float ) ) );
1648 *w = gsl_vector_complex_float_const_subvector_with_stride(
get(), i, stride,
n ).vector;
1661 gsl_vector_complex_float* w =
static_cast<gsl_vector_complex_float*
>( malloc(
sizeof( gsl_vector_complex_float ) ) );
1662 *w = gsl_vector_complex_float_const_subvector(
get(), i,
n ).vector;
1677 gsl_vector_complex_float* w =
static_cast<gsl_vector_complex_float*
>( malloc(
sizeof( gsl_vector_complex_float ) ) );
1678 *w = gsl_vector_complex_float_const_subvector_with_stride(
get(), i, stride,
n ).vector;
1690 template<
typename ARRAY>
1696 gsl_vector_complex_float* w =
static_cast<gsl_vector_complex_float*
>( malloc(
sizeof( gsl_vector_complex_float ) ) );
1697 *w = gsl_vector_complex_float_view_array( v.data(),
n ).vector;
1709 template<
typename ARRAY>
1712 n = base.size()/stride;
1713 if((
n-1)*stride > base.size())
1715 gsl_vector_complex_float* w =
static_cast<gsl_vector_complex_float*
>( malloc(
sizeof( gsl_vector_complex_float ) ) );
1716 *w = gsl_vector_complex_float_view_array_with_stride( base.data(), stride,
n ).vector;
1727 template<
typename ARRAY>
1733 gsl_vector_complex_float* w =
static_cast<gsl_vector_complex_float *
>( malloc(
sizeof( gsl_vector_complex_float ) ) );
1734 *w = gsl_vector_complex_float_const_view_array( v.data(),
n ).vector;
1746 template<
typename ARRAY>
1749 n = base.size()/stride;
1750 if((
n-1)*stride > base.size())
1752 gsl_vector_complex_float* w =
static_cast<gsl_vector_complex_float*
>( malloc(
sizeof( gsl_vector_complex_float ) ) );
1753 *w = gsl_vector_complex_float_const_view_array_with_stride( base.data(), stride,
n ).vector;
1765 template<
typename ARRAY>
1771 gsl_vector_complex_float* w =
static_cast<gsl_vector_complex_float*
>( malloc(
sizeof( gsl_vector_complex_float ) ) );
1772 *w = gsl_vector_complex_float_const_view_array( v.data(),
n ).vector;
1786 template<
typename ARRAY>
1789 n = base.size()/stride;
1790 if((
n-1)*stride > base.size())
1792 gsl_vector_complex_float* w =
static_cast<gsl_vector_complex_float*
>( malloc(
sizeof( gsl_vector_complex_float ) ) );
1793 *w = gsl_vector_complex_float_const_view_array_with_stride( base.data(), stride,
n ).vector;
This class handles vector_complex_floats as shared handles.
This class can be used like a pointer for complex_float objects so that we can iterate over a vector ...
This class can be used like a reference for complex_float objects so that we can iterate over a vecto...
This class handles complex_float numbers.
@ GSL_EDOM
input domain error, e.g sqrt(-1)
@ GSL_EFAILED
generic failure
@ GSL_EINVAL
invalid argument supplied by user
@ GSL_EBADLEN
matrix, vector lengths are not conformant
This class handles matrix_complex_float objects as shared handles.
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+=(difference_type const n)
The += operator.
const_iterator_t< reverse_t > operator-(difference_type const n) const
The - operator: subtract distance from iterator.
const_iterator_t< reverse_t > operator+(difference_type const n) const
The + operator.
bool operator==(const_iterator_t< reverse_t > const &i) const
Comparison with const iterator.
const_iterator_t(vector_complex_float const *v, difference_type position)
This constructor allows vector_complex_float to create non-default iterators.
bool operator!=(iterator_t< reverse_t > const &i) const
Comparison with non-const iterator.
const_iterator_t()
The default constructor.
bool operator<(iterator_t< reverse_t > const &i) const
Comparison with non-const iterator.
iterator_base< vector_complex_floatconst, float, reverse_t >::difference_type difference_type
Difference type.
difference_type operator-(const_iterator_t< reverse_t > const &i) const
The - operator: find distance between two iterators.
difference_type operator-(iterator_t< reverse_t > const &i) const
The - operator: find distance between two iterators.
const_iterator_t< reverse_t > & operator++()
The prefix ++ operator.
const_iterator_t< reverse_t > operator++(int)
The postfix ++ operator.
bool operator!=(const_iterator_t< reverse_t > const &i) const
Comparison with const iterator.
const_iterator_t< reverse_t > & operator=(const_iterator_t< reverse_t > const &i)
We can assign one output iterator from another.
bool operator==(iterator_t< reverse_t > const &i) const
Comparison with non-const iterator.
const_iterator_t< reverse_t > operator--(int)
The postfix – operator.
const_iterator_t(iterator_t< reverse_t > const &i)
A copy constructor.
const_iterator_t< reverse_t > & operator-=(difference_type const n)
The -= operator.
const_iterator_t< reverse_t > & operator--()
The prefix – operator.
The container must have iterator types.
void increment()
Increment the iterator.
difference_type position
Mark position of iterator within vector_complex_float.
pointer operator->() const
Dereference the pointer.
bool operator!=(iterator_base< container, content, reverse_t > const &i) const
The != operator.
iterator_base()
The iterator is default constructible.
ptrdiff_t difference_type
An iterator must have a difference_type.
container * v
Store a pointer to a vector_complex_float we can iterate over: 0 if no vector_complex_float.
bool operator==(iterator_base< container, content, reverse_t > const &i) const
The == operator.
complex_float value_type
An iterator must have a value_type.
void decrement()
Decrement the iterator.
void shift(difference_type const n)
Shift iterator n places.
difference_type operator-(iterator_base< container, content, reverse_t > const &i) const
The - operator: find distance between two iterators.
iterator_base(container *v, difference_type position)
This constructor allows vector_complex_float to create non-default iterators.
complex_float_ptr pointer
An iterator must have a pointer type.
reference operator[](difference_type const n) const
Get element at i + n by reference ([] operator).
reference operator*() const
Dereference the pointer.
complex_float_ref reference
An iterator must have a reference type.
bool operator<(iterator_base< container, content, reverse_t > const &i) const
The < operator is used to compare iterators.
std::random_access_iterator_tag iterator_category
An iterator must have a pointer type.
A class template for the two non-const iterators.
iterator_t< reverse_t > & operator--()
The prefix – operator.
difference_type operator-(iterator_t< reverse_t > const &i) const
The - operator: find distance between two iterators.
difference_type operator-(const_iterator_t< reverse_t > const &i) const
The - operator: find distance between two iterators.
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-(difference_type const n) const
The - operator: subtract distance from iterator.
iterator_t< reverse_t > operator--(int)
The postfix – operator.
bool operator!=(const_iterator_t< reverse_t > const &i) const
Comparison with const iterator.
iterator_t< reverse_t > & operator+=(difference_type const n)
The += operator.
iterator_t< reverse_t > & operator-=(difference_type const n)
The -= operator.
bool operator<(const_iterator_t< reverse_t > const &i) const
Comparison with const iterator.
iterator_t< reverse_t > operator+(difference_type const n) const
The + operator.
iterator_t()
The default constructor.
iterator_t(vector_complex_float *v, difference_type position)
This constructor allows vector_complex_float to create non-default iterators.
bool operator==(const_iterator_t< reverse_t > const &i) const
Comparison with const iterator.
iterator_t< reverse_t > operator++(int)
The postfix ++ operator.
iterator_base< vector_complex_float, float, reverse_t >::difference_type difference_type
Difference type.
This class handles vector_complex_float objects as shared handles.
gsl::vector_float const real() const
Another C++ version of gsl_vector_complex_const_real().
bool operator>=(vector_complex_float const &v) const
A container needs to define an ordering for sorting.
int div(vector_complex_float const &b)
C++ version of gsl_vector_complex_float_div().
int fread(FILE *stream)
C++ version of gsl_vector_complex_float_fread().
int ispos() const
C++ version of gsl_vector_complex_float_ispos().
iterator_t< false > iterator
The iterator type.
vector_complex_float()
The default constructor is only really useful for assigning to.
void set_zero()
C++ version of gsl_vector_complex_float_set_zero().
static vector_complex_float const const_view_array(float const *v, size_t n)
C++ version of gsl_vector_complex_float _const_view_array().
complex_float_ptr ptr(size_t const i)
C++ version of gsl_vector_complex_float_ptr().
vector_complex_float(vector_complex_float &v, size_t const offset, size_t const n, size_t const stride=1)
C++ version of gsl_vector_complex_float_alloc_from_vector().
reference const const_reference
A container must have a constant reference type.
int isnull() const
C++ version of gsl_vector_complex_float_isnull().
vector_complex_float const const_subvector(size_t i, size_t n) const
C++ version of gsl_vector_complex_float_const_subvector().
const_iterator begin() const
Get iterator pointing to first vector_complex_float element.
gsl_vector_complex_float * get()
Get the gsl_vector_complex_float.
const_iterator_t< false > const_iterator
The const_iterator type.
vector_complex_float(vector_complex_float &&v)
Move constructor.
complex_float_ptr const const_pointer
A container must have a constant pointer type.
vector_complex_float subvector(size_t i, size_t n)
C++ version of gsl_vector_complex_float_subvector().
int axpby(complex_float const alpha, vector_complex_float const &x, complex_float const beta)
C++ version of gsl_vector_complex_float_axpby().
static vector_complex_float calloc(size_t const n)
C++ version of gsl_vector_complex_float_calloc().
static vector_complex_float view_array_with_stride(float *base, size_t stride, size_t n)
C++ version of gsl_vector_complex_float_view_array_with_stride().
const_reverse_iterator rbegin() const
Get iterator pointing to first vector_complex_float element.
void set(size_t const i, complex_float x)
C++ version of gsl_vector_complex_float_set().
complex_float_ptr const const_ptr(size_t const i)
C++ version of gsl_vector_complex_float_const_ptr().
gsl::vector_float imag()
C++ version of gsl_vector_complex_imag().
size_type size() const
The size (number of elements) of the vector_complex_float.
static vector_complex_float view_array(float *v, size_t n)
C++ version of gsl_vector_complex_float_view_array().
int add_constant(complex_float const x)
C++ version of gsl_vector_complex_float_add_constant().
vector_complex_float(std::initializer_list< std::complex< float > > initializer_list)
Could construct from a std::initializer_list in C++11.
gsl_vector_complex_float const * get() const
Get the gsl_vector_complex_float.
bool operator!=(vector_complex_float const &v) const
Two vector_complex_float objects are different equal if their elements are not identical.
complex_float value_type
A container must have a value_type.
iterator end()
Get iterator pointing beyond last vector_complex_float element.
int reverse()
C++ version of gsl_vector_complex_float_reverse().
int set_basis(size_t i)
C++ version of gsl_vector_complex_float_set_basis().
bool operator==(vector_complex_float const &v) const
Two vector_complex_float objects are identically equal if their elements are identical.
iterator_t< true > reverse_iterator
The reverse_iterator type.
complex_float get(size_t const i) const
C++ version of gsl_vector_complex_float_get().
int swap_elements(size_t const i, size_t const j)
C++ version of gsl_vector_complex_float_swap_elements().
bool owns_data
Used to allow a vector that does not own its data.
iterator begin()
Get iterator pointing to first vector_complex_float element.
gsl::vector_float const const_real() const
C++ version of gsl_vector_complex_const_real().
reverse_iterator rbegin()
Get iterator pointing to first vector_complex_float element.
float const * data() const
Give access to the data block.
gsl::vector_float const imag() const
Another C++ version of gsl_vector_complex_const_imag().
complex_float_ref const operator[](size_t const n) const
Get element at position n by reference ([] operator).
int fprintf(FILE *stream, char const *format) const
C++ version of gsl_vector_complex_float_fprintf().
complex_float_ptr pointer
A container must have a pointer type.
complex_float_ref operator[](size_t const n)
Get element at position n by reference ([] operator).
size_t * count
The shared reference count.
bool unique() const
Find if this is the only object sharing the gsl_vector_complex_float.
vector_complex_float & operator=(vector_complex_float &&v)
Move operator.
size_t size_type
A container must have a size_type.
gsl::vector_float const const_imag() const
C++ version of gsl_vector_complex_const_imag().
vector_complex_float subvector_with_stride(size_t i, size_t stride, size_t n)
C++ version of gsl_vector_complex_float_subvector_with_stride().
vector_complex_float clone() const
The clone function.
bool operator<(vector_complex_float const &v) const
A container needs to define an ordering for sorting.
gsl_vector_complex_float * ccgsl_pointer
The shared pointer.
int fwrite(FILE *stream) const
C++ version of gsl_vector_complex_float_fwrite().
bool operator<=(vector_complex_float const &v) const
A container needs to define an ordering for sorting.
bool operator>(vector_complex_float const &v) const
A container needs to define an ordering for sorting.
static vector_complex_float const const_view_array_with_stride(float const *base, size_t stride, size_t n)
C++ version of gsl_vector_complex_float_const_view_array_with_stride().
void wrap_gsl_vector_complex_float_without_ownership(gsl_vector_complex_float *v)
This function is intended mainly for internal use.
int mul(vector_complex_float const &b)
C++ version of gsl_vector_complex_float_mul().
vector_complex_float(size_t const n)
The default constructor creates a new vector_complex_float with n elements.
vector_complex_float(vector_complex_float const &v)
The copy constructor.
size_type max_size() const
The max size (number of elements) of the vector_complex_float.
void reset()
Stop sharing ownership of the shared pointer.
float * data()
Give access to the data block.
complex_float_ref reference
A container must have a reference type.
int add(vector_complex_float const &b)
C++ version of gsl_vector_complex_float_add().
static vector_complex_float view_array_with_stride(ARRAY &base, size_t stride, size_t n=0)
C++ version of gsl_vector_complex_float_view_array_with_stride().
int scale(complex_float const x)
C++ version of gsl_vector_complex_float_scale().
int sub(vector_complex_float const &b)
C++ version of gsl_vector_complex_float_sub().
~vector_complex_float()
The destructor only deletes the pointers if count reaches zero.
bool empty() const
Find if the vector_complex_float is empty.
static vector_complex_float alloc_row_from_matrix(matrix_complex_float &m, size_t const i)
C++ version of gsl_vector_complex_float_alloc_row_from_matrix().
gsl::vector_float real()
C++ version of gsl_vector_complex_real().
int memcpy(vector_complex_float const &src)
C++ version of gsl_vector_complex_float_memcpy().
vector_complex_float const const_subvector_with_stride(size_t i, size_t stride, size_t n) const
C++ version of gsl_vector_complex_float_const_subvector_with_stride().
static vector_complex_float alloc_col_from_matrix(matrix_complex_float &m, size_t const j)
C++ version of gsl_vector_complex_float_alloc_col_from_matrix().
const_iterator_t< true > const_reverse_iterator
The const_reverse_t type.
static vector_complex_float view_array(ARRAY &v, size_t n=0)
C++ version of gsl_vector_complex_float_view_array().
const_iterator::difference_type difference_type
A container must have a difference_type.
vector_complex_float & operator=(vector_complex_float const &v)
The assignment operator.
int isnonneg() const
C++ version of gsl_vector_complex_float_isnonneg().
vector_complex_float(block_complex_float &b, size_t const offset, size_t const n, size_t const stride=1)
C++ version of gsl_vector_complex_float_alloc_from_block().
reverse_iterator rend()
Get iterator pointing beyond last vector_complex_float element.
int fscanf(FILE *stream)
C++ version of gsl_vector_complex_float_fscanf().
size_t use_count() const
Find how many vector_complex_float objects share this pointer.
static vector_complex_float const const_view_array(ARRAY const &v, size_t n=0)
C++ version of gsl_vector_complex_float _const_view_array().
static vector_complex_float const const_view_array_with_stride(ARRAY const &base, size_t stride, size_t n=0)
C++ version of gsl_vector_complex_float_const_view_array_with_stride().
int isneg() const
C++ version of gsl_vector_complex_float_isneg().
void swap(vector_complex_float &v)
Swap two vector_complex_float objects.
const_reverse_iterator rend() const
Get iterator pointing beyond last vector_complex_float element.
void set_all(complex_float x)
C++ version of gsl_vector_complex_float_set_all().
const_iterator end() const
Get iterator pointing beyond last vector_complex_float element.
This class handles vector_float objects as shared handles.
static vector_float view_array_with_stride(float *base, size_t stride, size_t n)
C++ version of gsl_vector_float_view_array_with_stride().
static vector_float const const_view_array_with_stride(float const *base, size_t stride, size_t n)
C++ version of gsl_vector_float_const_view_array_with_stride().
int min(movstat::end_t const endtype, vector const &x, vector &y, workspace &w)
C++ version of gsl_movstat_min().
double beta(rng const &r, double const a, double const b)
C++ version of gsl_ran_beta().
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++.