iRoCS Toolbox  1.1.0
Static Public Member Functions
atb::GSLWrapper Class Reference

The GSLWrapper class provides static wrapper functions to obtain GSL views onto Array data structures. More...

#include <ATBGSLWrapper.hh>

Collaboration diagram for atb::GSLWrapper:

Static Public Member Functions

static gsl_matrix * getGSLView (blitz::Array< double, 2 > &data)
 Create a gsl_matrix view to the given blitz++ Array. More...
 
template<int Dim1, int Dim2>
static gsl_matrix * getGSLView (blitz::TinyMatrix< double, Dim1, Dim2 > &data)
 Create a gsl_matrix view to the given blitz++ TinyMatrix. More...
 
static gsl_vector * getGSLView (blitz::Array< double, 1 > &data)
 Create a gsl_vector view to the given 1-D blitz++ Array. More...
 
template<int Dim>
static gsl_vector * getGSLView (blitz::TinyVector< double, Dim > &data)
 Create a gsl_vector view to the given blitz++ TinyVector. More...
 

Detailed Description

The GSLWrapper class provides static wrapper functions to obtain GSL views onto Array data structures.

The GSL views directly operate on the original data, only the gsl specific metadata are added to allow usage of the data within gsl calls.

Definition at line 77 of file ATBGSLWrapper.hh.

Member Function Documentation

◆ getGSLView() [1/4]

static gsl_matrix* atb::GSLWrapper::getGSLView ( blitz::Array< double, 2 > &  data)
static

Create a gsl_matrix view to the given blitz++ Array.

The Array is not copied, only gsl control structures are added, thus any processing will be performed directly on the blitz++ Array data. The user is responsible for freeing the space used up by the control structures, so please delete the gsl_matrix after you don't need gsl support for the blitz++ Array any more. The Array data will not be touched when freeing the gsl_matrix.

Parameters
dataThe blitz++ Array to wrap
Returns
A gsl_matrix view of the data

◆ getGSLView() [2/4]

template<int Dim1, int Dim2>
static gsl_matrix* atb::GSLWrapper::getGSLView ( blitz::TinyMatrix< double, Dim1, Dim2 > &  data)
static

Create a gsl_matrix view to the given blitz++ TinyMatrix.

The TinyMatrix is not copied, only gsl control structures are added, thus any processing will be performed directly on the blitz++ TinyMatrix data. The user is responsible for freeing the space used up by the control structures, so please delete the gsl_matrix after you don't need gsl support for the blitz++ TinyMatrix any more. The TinyMatrix data will not be touched when freeing the gsl_matrix.

Parameters
dataThe blitz++ TinyMatrix to wrap
Returns
A gsl_matrix view of the data

◆ getGSLView() [3/4]

static gsl_vector* atb::GSLWrapper::getGSLView ( blitz::Array< double, 1 > &  data)
static

Create a gsl_vector view to the given 1-D blitz++ Array.

The Array is not copied, only gsl control structures are added, thus any processing will be performed directly on the blitz++ Array data. The user is responsible for freeing the space used up by the control structures, so please delete the gsl_vector after you don't need gsl support for the blitz++ Array any more. The Array data will not be touched when freeing the gsl_vector.

Parameters
dataThe 1-D blitz++ Array to wrap
Returns
A gsl_vector view of the data

◆ getGSLView() [4/4]

template<int Dim>
static gsl_vector* atb::GSLWrapper::getGSLView ( blitz::TinyVector< double, Dim > &  data)
static

Create a gsl_vector view to the given blitz++ TinyVector.

The TinyVector is not copied, only gsl control structures are added, thus any processing will be performed directly on the blitz++ TinyVector data. The user is responsible for freeing the space used up by the control structures, so please delete the gsl_vector after you don't need gsl support for the blitz++ TinyVector any more. The TinyVector data will not be touched when freeing the gsl_vector.

Parameters
dataThe blitz++ TinyVector to wrap
Returns
A gsl_vector view of the data

The documentation for this class was generated from the following file: