All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
viennacl::tools Namespace Reference

Namespace for various tools used within ViennaCL. More...

## Namespaces

| detail
| Contains implementation details for the tools. Usually not of interest for the library user.

## Classes

struct | CHECK_SCALAR_TEMPLATE_ARGUMENT
| A guard that checks whether the floating point type of GPU types is either float or double. More...
struct | CONST_REMOVER
| Removes the const qualifier from a type. More...
class | const_sparse_matrix_adapted_iterator
| A const iterator for sparse matrices of type std::vector<std::map<SizeT, NumericT> > More...
class | const_sparse_matrix_adapter
| Adapts a constant sparse matrix type made up from std::vector<std::map<SizeT, NumericT> > to basic ublas-compatibility. More...
struct | CPU_SCALAR_TYPE_DEDUCER
| Obtain the cpu scalar type from a type, including a GPU type like viennacl::scalar<T> More...
struct | MATRIX_ITERATOR_INCREMENTER
| Helper class for incrementing an iterator in a dense matrix. More...
struct | MATRIX_SIZE_DEDUCER
| Deduces the size of the resulting vector represented by a vector_expression from the operands. More...
class | normal_random_numbers
| Random number generator for returning normally distributed values. More...
class | shared_ptr
| A shared pointer class similar to boost::shared_ptr. Reimplemented in order to avoid a Boost-dependency. Will be replaced by std::shared_ptr as soon as C++11 is widely available. More...
class | sparse_matrix_adapted_iterator
| A non-const iterator for sparse matrices of type std::vector<std::map<SizeT, NumericT> > More...
class | sparse_matrix_adapter
| Adapts a non-const sparse matrix type made up from std::vector<std::map<SizeT, NumericT> > to basic ublas-compatibility. More...
class | timer
| Simple timer class based on gettimeofday (POSIX) or QueryPerformanceCounter (Windows). More...
class | uniform_random_numbers
| Random number generator for returning uniformly distributed values in the closed interval [0, 1]. More...

## Typedefs

typedef signed char | int8_t
typedef unsigned char | uint8_t
typedef short | int16_t
typedef unsigned short | uint16_t
typedef int | int32_t
typedef unsigned int | uint32_t

## Functions

template<typename MatrixType >
void | generate_fdm_laplace (MatrixType &A, vcl_size_t points_x, vcl_size_t points_y)
| Generates a sparse matrix obtained from a simple finite-difference discretization of the Laplace equation on the unit square (2d). More...
template<typename NumericT >
void | generate_fdm_laplace (viennacl::compressed_matrix< NumericT > &A, vcl_size_t points_x, vcl_size_t points_y)
template<typename NumericT >
void | generate_fdm_laplace (viennacl::coordinate_matrix< NumericT > &A, vcl_size_t points_x, vcl_size_t points_y)
template<typename NumericT >
void | generate_fdm_laplace (viennacl::ell_matrix< NumericT > &A, vcl_size_t points_x, vcl_size_t points_y)
template<typename NumericT >
void | generate_fdm_laplace (viennacl::sliced_ell_matrix< NumericT > &A, vcl_size_t points_x, vcl_size_t points_y)
template<typename NumericT >
void | generate_fdm_laplace (viennacl::hyb_matrix< NumericT > &A, vcl_size_t points_x, vcl_size_t points_y)
std::string | sha1 (std::string const &src)
std::string | read_text_from_file (const std::string &filename)
| Reads a text from a file into a std::string. More...
std::string | str_replace (const std::string &text, std::string to_search, std::string to_replace)
| Replaces all occurances of a substring by another stringstream. More...
template<class INT_TYPE >
INT_TYPE | align_to_multiple (INT_TYPE to_reach, INT_TYPE base)
| Rounds an integer to the next multiple of another integer. More...
template<class INT_TYPE >
INT_TYPE | round_down_to_prevous_multiple (INT_TYPE to_reach, INT_TYPE base)
| Rounds an integer to the previous multiple of another integer. More...
int | find_and_replace (std::string &source, std::string const &find, std::string const &replace)
| Replace in a source string a pattern by another. More...
template<class InputIterator , class UnaryPredicate >
bool | any_of (InputIterator first, InputIterator last, UnaryPredicate pred)
| Returns true if pred returns true for any of the elements in the range [first,last), and false otherwise. More...
std::string | make_double_kernel (std::string const &source, std::string const &fp_extension)
| Create a double precision kernel out of a single precision kernel. More...
template<typename HostScalarType >
viennacl::scalar < HostScalarType > const & | promote_if_host_scalar (viennacl::scalar< HostScalarType > const &s)
template<typename HostScalarType >
viennacl::scalar_expression < const viennacl::scalar < HostScalarType >, const viennacl::scalar < HostScalarType > , viennacl::op_flip_sign > const & | promote_if_host_scalar (viennacl::scalar_expression< const viennacl::scalar< HostScalarType >, const viennacl::scalar< HostScalarType >, viennacl::op_flip_sign > const &s)
template<typename HostScalarType >
HostScalarType | promote_if_host_scalar (float s)
template<typename HostScalarType >
HostScalarType | promote_if_host_scalar (double s)
template<typename HostScalarType >
HostScalarType | promote_if_host_scalar (long s)
template<typename HostScalarType >
HostScalarType | promote_if_host_scalar (unsigned long s)
template<typename HostScalarType >
HostScalarType | promote_if_host_scalar (int s)
template<typename HostScalarType >
HostScalarType | promote_if_host_scalar (unsigned int s)
template<class T >
std::string | to_string (T const t)

## Detailed Description

Namespace for various tools used within ViennaCL.

## Typedef Documentation

typedef short viennacl::tools::int16_t

Definition at line 39 of file sha1.hpp.

typedef int viennacl::tools::int32_t

Definition at line 45 of file sha1.hpp.

typedef signed char viennacl::tools::int8_t

Definition at line 37 of file sha1.hpp.

typedef unsigned short viennacl::tools::uint16_t

Definition at line 40 of file sha1.hpp.

typedef unsigned int viennacl::tools::uint32_t

Definition at line 46 of file sha1.hpp.

typedef unsigned char viennacl::tools::uint8_t

Definition at line 38 of file sha1.hpp.

## Function Documentation

template<class INT_TYPE >

INT_TYPE viennacl::tools::align_to_multiple | ( | INT_TYPE | to_reach,
|  | INT_TYPE | base
| ) |  |

Rounds an integer to the next multiple of another integer.

Template Parameters

  INT_TYPE | The integer type

Parameters

  to_reach | The integer to be rounded up (ceil operation)
  base | The base

Returns
  The smallest multiple of 'base' such that to_reach <= base

Definition at line 133 of file tools.hpp.

template<class InputIterator , class UnaryPredicate >

bool viennacl::tools::any_of | ( | InputIterator | first,
|  | InputIterator | last,
|  | UnaryPredicate | pred
| ) |  |

Returns true if pred returns true for any of the elements in the range [first,last), and false otherwise.

Definition at line 175 of file tools.hpp.

int viennacl::tools::find_and_replace | ( | std::string & | source,
|  | std::string const & | find,
|  | std::string const & | replace
| ) |  |

inline

Replace in a source string a pattern by another.

Parameters

  source | The source string
  find | String to find
  replace | String to replace

Definition at line 160 of file tools.hpp.

template<typename MatrixType >

void viennacl::tools::generate_fdm_laplace | ( | MatrixType & | A,
|  | vcl_size_t | points_x,
|  | vcl_size_t | points_y
| ) |  |

Generates a sparse matrix obtained from a simple finite-difference discretization of the Laplace equation on the unit square (2d).

Template Parameters

  MatrixType | An uBLAS-compatible matrix type supporting .clear(), .resize(), and operator()-access

Parameters

  A | A sparse matrix object from ViennaCL, total number of unknowns will be points_x*points_y
  points_x | Number of points in x-direction
  points_y | Number of points in y-direction

Definition at line 48 of file matrix_generation.hpp.

template<typename NumericT >

void viennacl::tools::generate_fdm_laplace | ( | viennacl::compressed_matrix< NumericT > & | A,
|  | vcl_size_t | points_x,
|  | vcl_size_t | points_y
| ) |  |

Definition at line 92 of file matrix_generation.hpp.

template<typename NumericT >

void viennacl::tools::generate_fdm_laplace | ( | viennacl::coordinate_matrix< NumericT > & | A,
|  | vcl_size_t | points_x,
|  | vcl_size_t | points_y
| ) |  |

Definition at line 102 of file matrix_generation.hpp.

template<typename NumericT >

void viennacl::tools::generate_fdm_laplace | ( | viennacl::ell_matrix< NumericT > & | A,
|  | vcl_size_t | points_x,
|  | vcl_size_t | points_y
| ) |  |

Definition at line 112 of file matrix_generation.hpp.

template<typename NumericT >

void viennacl::tools::generate_fdm_laplace | ( | viennacl::sliced_ell_matrix< NumericT > & | A,
|  | vcl_size_t | points_x,
|  | vcl_size_t | points_y
| ) |  |

Definition at line 122 of file matrix_generation.hpp.

template<typename NumericT >

void viennacl::tools::generate_fdm_laplace | ( | viennacl::hyb_matrix< NumericT > & | A,
|  | vcl_size_t | points_x,
|  | vcl_size_t | points_y
| ) |  |

Definition at line 132 of file matrix_generation.hpp.

std::string viennacl::tools::make_double_kernel | ( | std::string const & | source,
|  | std::string const & | fp_extension
| ) |  |

inline

Create a double precision kernel out of a single precision kernel.

Parameters

  source | The source string
  fp_extension | An info string that specifies the OpenCL double precision extension

Returns
  The double precision kernel

Definition at line 191 of file tools.hpp.

template<typename HostScalarType >

viennacl::scalar<HostScalarType> const& viennacl::tools::promote_if_host_scalar | ( | viennacl::scalar< HostScalarType > const & | s | ) |

Definition at line 275 of file tools.hpp.

template<typename HostScalarType >

viennacl::scalar_expression<const viennacl::scalar<HostScalarType>,const viennacl::scalar<HostScalarType>,viennacl::op_flip_sign> const& viennacl::tools::promote_if_host_scalar | ( | viennacl::scalar_expression< const viennacl::scalar< HostScalarType >, const viennacl::scalar< HostScalarType >, viennacl::op_flip_sign > const & | s | ) |

Definition at line 281 of file tools.hpp.

template<typename HostScalarType >

HostScalarType viennacl::tools::promote_if_host_scalar | ( | float | s | ) |

Definition at line 286 of file tools.hpp.

template<typename HostScalarType >

HostScalarType viennacl::tools::promote_if_host_scalar | ( | double | s | ) |

Definition at line 289 of file tools.hpp.

template<typename HostScalarType >

HostScalarType viennacl::tools::promote_if_host_scalar | ( | long | s | ) |

Definition at line 292 of file tools.hpp.

template<typename HostScalarType >

HostScalarType viennacl::tools::promote_if_host_scalar | ( | unsigned long | s | ) |

Definition at line 295 of file tools.hpp.

template<typename HostScalarType >

HostScalarType viennacl::tools::promote_if_host_scalar | ( | int | s | ) |

Definition at line 298 of file tools.hpp.

template<typename HostScalarType >

HostScalarType viennacl::tools::promote_if_host_scalar | ( | unsigned int | s | ) |

Definition at line 301 of file tools.hpp.

std::string viennacl::tools::read_text_from_file | ( | const std::string & | filename | ) |

inline

Reads a text from a file into a std::string.

Parameters

  filename | The filename

Returns
  The text read from the file

Definition at line 89 of file tools.hpp.

template<class INT_TYPE >

INT_TYPE viennacl::tools::round_down_to_prevous_multiple | ( | INT_TYPE | to_reach,
|  | INT_TYPE | base
| ) |  |

Rounds an integer to the previous multiple of another integer.

Template Parameters

  INT_TYPE | The integer type

Parameters

  to_reach | The integer to be rounded down (floor operation)
  base | The base

Returns
  The biggest multiple of 'base' such that to_reach >= base

Definition at line 148 of file tools.hpp.

std::string viennacl::tools::sha1 | ( | std::string const & | src | ) |

inline

Definition at line 220 of file sha1.hpp.

std::string viennacl::tools::str_replace | ( | const std::string & | text,
|  | std::string | to_search,
|  | std::string | to_replace
| ) |  |

inline

Replaces all occurances of a substring by another stringstream.

Parameters

  text | The string to search in
  to_search | The substring to search for
  to_replace | The replacement for found substrings

Returns
  The resulting string

Definition at line 109 of file tools.hpp.

template<class T >

std::string viennacl::tools::to_string | ( | T const | t | ) |

inline

Definition at line 304 of file tools.hpp.