ccgsl 2.7.2
C++wrappersforGnuScientificLibrary
permute_vector.hpp
Go to the documentation of this file.
1/*
2 * $Id: permute_vector.hpp 274 2012-08-26 11:33:44Z jdl3 $
3 * Copyright (C) 2010 John D Lamb
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or (at
8 * your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful, but
11 * WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18 */
19
20#ifndef CCGSL_PERMUTE_VECTOR_HPP
21#define CCGSL_PERMUTE_VECTOR_HPP
22
23#include<cmath>
24#include<gsl/gsl_permute_vector.h>
25#include"permute.hpp"
26#include"vector.hpp"
27#include"vector_char.hpp"
28#include"vector_uchar.hpp"
29#include"vector_short.hpp"
30#include"vector_ushort.hpp"
31#include"vector_int.hpp"
32#include"vector_uint.hpp"
33#include"vector_long.hpp"
34#include"vector_ulong.hpp"
35#include"vector_float.hpp"
37#include"vector_complex.hpp"
40
41namespace gsl {
42 namespace permute {
49 inline int vector_char_forward( permutation const& p, vector_char& v ){
50 return gsl_permute_vector_char( p.get(), v.get() ); }
58 return gsl_permute_vector_complex( p.get(), v.get() ); }
66 return gsl_permute_vector_complex_float( p.get(), v.get() ); }
75 return gsl_permute_vector_complex_long_double( p.get(), v.get() ); }
82 inline int vector_forward( permutation const& p, gsl::vector& v ){
83 return gsl_permute_vector( p.get(), v.get() ); }
90 inline int vector_float_forward( permutation const& p, vector_float& v ){
91 return gsl_permute_vector_float( p.get(), v.get() ); }
98 inline int vector_int_forward( permutation const& p, vector_int& v ){
99 return gsl_permute_vector_int( p.get(), v.get() ); }
107 return gsl_permute_vector_long_double( p.get(), v.get() ); }
114 inline int vector_long_forward( permutation const& p, vector_long& v ){
115 return gsl_permute_vector_long( p.get(), v.get() ); }
123 return gsl_permute_vector_short( p.get(), v.get() ); }
131 return gsl_permute_vector_uchar( p.get(), v.get() ); }
138 inline int vector_uint_forward( permutation const& p, vector_uint& v ){
139 return gsl_permute_vector_uint( p.get(), v.get() ); }
147 return gsl_permute_vector_ulong( p.get(), v.get() ); }
155 return gsl_permute_vector_ushort( p.get(), v.get() ); }
156
157 // Inverse functions
164 inline int vector_char_inverse( permutation const& p, vector_char& v ){
165 return gsl_permute_vector_char_inverse( p.get(), v.get() ); }
173 return gsl_permute_vector_complex_inverse( p.get(), v.get() ); }
181 return gsl_permute_vector_complex_float_inverse( p.get(), v.get() ); }
190 return gsl_permute_vector_complex_long_double_inverse( p.get(), v.get() ); }
197 inline int vector_inverse( permutation const& p, gsl::vector& v ){
198 return gsl_permute_vector_inverse( p.get(), v.get() ); }
206 return gsl_permute_vector_float_inverse( p.get(), v.get() ); }
213 inline int vector_int_inverse( permutation const& p, vector_int& v ){
214 return gsl_permute_vector_int_inverse( p.get(), v.get() ); }
222 return gsl_permute_vector_long_double_inverse( p.get(), v.get() ); }
229 inline int vector_long_inverse( permutation const& p, vector_long& v ){
230 return gsl_permute_vector_long_inverse( p.get(), v.get() ); }
238 return gsl_permute_vector_short_inverse( p.get(), v.get() ); }
246 return gsl_permute_vector_uchar_inverse( p.get(), v.get() ); }
253 inline int vector_uint_inverse( permutation const& p, vector_uint& v ){
254 return gsl_permute_vector_uint_inverse( p.get(), v.get() ); }
262 return gsl_permute_vector_ulong_inverse( p.get(), v.get() ); }
270 return gsl_permute_vector_ushort_inverse( p.get(), v.get() ); }
271 }
272}
273
274#endif
This class handles GSL permutation objects.
Definition: permutation.hpp:33
gsl_permutation * get()
Get the gsl_permutation.
This class handles vector_char objects as shared handles.
Definition: vector_char.hpp:45
gsl_vector_char * get()
Get the gsl_vector_char.
This class handles vector_complex_float objects as shared handles.
gsl_vector_complex_float * get()
Get the gsl_vector_complex_float.
This class handles vector_complex_long_double objects as shared handles.
gsl_vector_complex_long_double * get()
Get the gsl_vector_complex_long_double.
This class handles vector_complex objects as shared handles.
gsl_vector_complex * get()
Get the gsl_vector_complex.
This class handles vector_float objects as shared handles.
gsl_vector_float * get()
Get the gsl_vector_float.
This class handles vector_int objects as shared handles.
Definition: vector_int.hpp:45
gsl_vector_int * get()
Get the gsl_vector_int.
This class handles vector_long_double objects as shared handles.
gsl_vector_long_double * get()
Get the gsl_vector_long_double.
This class handles vector_long objects as shared handles.
Definition: vector_long.hpp:45
gsl_vector_long * get()
Get the gsl_vector_long.
This class handles vector_short objects as shared handles.
gsl_vector_short * get()
Get the gsl_vector_short.
This class handles vector_uchar objects as shared handles.
gsl_vector_uchar * get()
Get the gsl_vector_uchar.
This class handles vector_uint objects as shared handles.
Definition: vector_uint.hpp:45
gsl_vector_uint * get()
Get the gsl_vector_uint.
This class handles vector_ulong objects as shared handles.
gsl_vector_ulong * get()
Get the gsl_vector_ulong.
This class handles vector_ushort objects as shared handles.
gsl_vector_ushort * get()
Get the gsl_vector_ushort.
This class handles vector objects as shared handles.
Definition: vector.hpp:74
gsl_vector * get()
Get the gsl_vector.
Definition: vector.hpp:1320
int vector_uint_inverse(permutation const &p, vector_uint &v)
C++ version of gsl_permute_vector_uint_inverse().
int vector_short_inverse(permutation const &p, vector_short &v)
C++ version of gsl_permute_vector_short_inverse().
int vector_long_double_forward(permutation const &p, vector_long_double &v)
C++ version of gsl_permute_vector_long_double().
int vector_char_forward(permutation const &p, vector_char &v)
C++ version of gsl_permute_vector_char().
int vector_short_forward(permutation const &p, vector_short &v)
C++ version of gsl_permute_vector_short().
int vector_complex_float_inverse(permutation const &p, vector_complex_float &v)
C++ version of gsl_permute_vector_complex_float_inverse().
int vector_inverse(permutation const &p, gsl::vector &v)
C++ version of gsl_permute_vector_inverse().
int vector_complex_long_double_forward(permutation const &p, vector_complex_long_double &v)
C++ version of gsl_permute_vector_complex_long_double().
int vector_int_forward(permutation const &p, vector_int &v)
C++ version of gsl_permute_vector_int().
int vector_ushort_forward(permutation const &p, vector_ushort &v)
C++ version of gsl_permute_vector_ushort().
int vector_int_inverse(permutation const &p, vector_int &v)
C++ version of gsl_permute_vector_int_inverse().
int vector_float_forward(permutation const &p, vector_float &v)
C++ version of gsl_permute_vector_float().
int vector_complex_long_double_inverse(permutation const &p, vector_complex_long_double &v)
C++ version of gsl_permute_vector_complex_long_double_inverse().
int vector_complex_forward(permutation const &p, vector_complex &v)
C++ version of gsl_permute_vector_complex().
int vector_complex_inverse(permutation const &p, vector_complex &v)
C++ version of gsl_permute_vector_complex_inverse().
int vector_ushort_inverse(permutation const &p, vector_ushort &v)
C++ version of gsl_permute_vector_ushort_inverse().
int vector_long_inverse(permutation const &p, vector_long &v)
C++ version of gsl_permute_vector_long_inverse().
int vector_complex_float_forward(permutation const &p, vector_complex_float &v)
C++ version of gsl_permute_vector_complex_float().
int vector_ulong_inverse(permutation const &p, vector_ulong &v)
C++ version of gsl_permute_vector_ulong_inverse().
int vector_long_double_inverse(permutation const &p, vector_long_double &v)
C++ version of gsl_permute_vector_long_double_inverse().
int vector_uint_forward(permutation const &p, vector_uint &v)
C++ version of gsl_permute_vector_uint().
int vector_forward(permutation const &p, gsl::vector &v)
C++ version of gsl_permute_vector().
int vector_ulong_forward(permutation const &p, vector_ulong &v)
C++ version of gsl_permute_vector_ulong().
int vector_float_inverse(permutation const &p, vector_float &v)
C++ version of gsl_permute_vector_float_inverse().
int vector_uchar_forward(permutation const &p, vector_uchar &v)
C++ version of gsl_permute_vector_uchar().
int vector_long_forward(permutation const &p, vector_long &v)
C++ version of gsl_permute_vector_long().
int vector_uchar_inverse(permutation const &p, vector_uchar &v)
C++ version of gsl_permute_vector_uchar_inverse().
int vector_char_inverse(permutation const &p, vector_char &v)
C++ version of gsl_permute_vector_char_inverse().
The gsl package creates an interface to the GNU Scientific Library for C++.
Definition: blas.hpp:34