All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
File List
Here is a list of all files with brief descriptions:

examples |
benchmarks |
dense_blas.cpp |
direct_solve.cpp |
opencl.cpp |
qr.cpp |
scheduler.cpp |
solver.cpp |
sparse.cpp |
tutorial |
amg.cpp |
armadillo-with-viennacl.cpp |
bandwidth-reduction.cpp |
bisect.cpp |
blas1.cpp |
blas2.cpp |
blas3.cpp |
blas3range.cpp |
custom-context.cpp |
custom-kernels.cpp |
eigen-with-viennacl.cpp |
fft.cpp |
iterative-armadillo.cpp |
iterative-custom.cpp |
iterative-eigen.cpp |
iterative-mtl4.cpp |
iterative-ublas.cpp |
iterative.cpp |
lanczos.cpp |
least-squares.cpp |
libviennacl.cpp |
matrix-free.cpp |
matrix-range.cpp |
mtl4-with-viennacl.cpp |
multithreaded.cpp |
multithreaded_cg.cpp |
nmf.cpp |
power-iter.cpp |
qr.cpp |
qr_method.cpp |
scheduler.cpp |
spai.cpp |
sparse.cpp |
structured-matrices.cpp |
tql2.cpp |
vector-io.hpp |
vector-range.cpp |
viennacl-info.cpp |
wrap-host-buffer.cpp |
libviennacl |
include |
viennacl.hpp |
src |
backend.cpp |
blas1.cpp |
blas1_host.cpp |
blas1_opencl.cpp |
blas2.cpp |
blas2_host.cpp |
blas2_opencl.cpp |
blas3.cpp |
blas3.hpp |
blas3_host.cpp |
blas3_opencl.cpp |
init_matrix.hpp |
init_vector.hpp |
viennacl_private.hpp |
tests |
src |
bisect.cpp |
blas3_solve.cpp |
external_1.cpp |
external_2.cpp |
fft_1d.cpp |
fft_2d.cpp |
global_variables.cpp |
iterators.cpp |
libviennacl_blas1.cpp |
libviennacl_blas2.cpp |
libviennacl_blas3.cpp |
matrix_col_double.cpp |
matrix_col_float.cpp |
matrix_col_int.cpp |
matrix_convert.cpp |
matrix_float_double.hpp |
matrix_int.hpp |
matrix_product_double.cpp |
matrix_product_float.cpp |
matrix_product_float_double.hpp |
matrix_row_double.cpp |
matrix_row_float.cpp |
matrix_row_int.cpp |
matrix_vector.cpp |
matrix_vector_int.cpp |
nmf.cpp |
qr_method.cpp |
qr_method_func.cpp |
scalar.cpp |
scan.cpp |
scheduler_matrix.cpp |
scheduler_matrix_matrix.cpp |
scheduler_matrix_vector.cpp |
scheduler_sparse.cpp |
scheduler_vector.cpp |
self_assign.cpp |
sparse.cpp |
sparse_prod.cpp |
spmdm.cpp |
structured-matrices.cpp |
svd.cpp |
tql.cpp |
vector_convert.cpp |
vector_float_double.cpp |
vector_int.cpp |
vector_multi_inner_prod.cpp |
vector_uint.cpp |
viennacl |
backend |
cpu_ram.hpp | Implementations for the OpenCL backend functionality
cuda.hpp | Implementations for the CUDA backend functionality
mem_handle.hpp | Implements the multi-memory-domain handle
memory.hpp | Main interface routines for memory management
opencl.hpp | Implementations for the OpenCL backend functionality
util.hpp | Helper functionality for working with different memory domains
detail |
matrix_def.hpp | Forward declaration of dense matrix classes
vector_def.hpp | Forward declarations of the implicit_vector_base, vector_base class
device_specific |
builtin_database |
devices |
accelerator |
fallback.hpp |
cpu |
fallback.hpp |
gpu |
amd |
evergreen |
cedar.hpp |
cypress.hpp |
northern_islands |
barts.hpp |
devastator.hpp |
scrapper.hpp |
southern_islands |
tahiti.hpp |
volcanic_islands |
hawaii.hpp |
nvidia |
fermi |
geforce_gt_540m.hpp |
geforce_gtx_470.hpp |
geforce_gtx_580.hpp |
tesla_c2050.hpp |
kepler |
tesla_k20m.hpp |
maxwell |
geforce_gtx_750_ti.hpp |
tesla |
geforce_gtx_260.hpp |
fallback.hpp |
common.hpp |
matrix_product.hpp |
templates |
matrix_product_template.hpp |
template_base.hpp |
utils.hpp |
execute.hpp | User interface for the code generator
execution_handler.hpp | Helper for handling fallbacks, lazy compilation, input-dependent kernels, etc
forwards.h | Forwards declaration
lazy_program_compiler.hpp | Helper for compiling a program lazily
mapped_objects.hpp | Map ViennaCL objects to generator wrappers
tree_parsing.hpp | Code for parsing the expression trees
utils.hpp | Internal utils
io |
matrix_market.hpp | A reader and writer for the matrix market format is implemented here
linalg |
cuda |
amg_operations.hpp | Implementations of routines for AMG in OpenCL
bisect_kernel_calls.hpp | CUDA kernel calls for the bisection algorithm
bisect_kernel_large.hpp | First step of the bisection algorithm for the computation of eigenvalues
bisect_kernel_large_multi.hpp | Second step of the bisection algorithm for the computation of eigenvalues for large matrices
bisect_kernel_large_onei.hpp | Determine eigenvalues for large matrices for intervals that contained after the first step one eigenvalue
bisect_kernel_small.hpp | Determine eigenvalues for small symmetric, tridiagonal matrix
bisect_util.hpp |
common.hpp | Common routines for CUDA execution
direct_solve.hpp | Implementations of dense direct solvers using CUDA are found here
fft_operations.hpp | Implementations of Fast Furier Transformation using cuda
ilu_operations.hpp | Implementations of specialized routines for the Chow-Patel parallel ILU preconditioner using CUDA
iterative_operations.hpp | Implementations of operations using sparse matrices using CUDA
matrix_operations.hpp | Implementations of dense matrix related operations, including matrix-vector products, using CUDA
matrix_operations_col.hpp | Implementations of column-major dense matrix related operations, including matrix-vector products, using CUDA
matrix_operations_prod.hpp | Dense matrix-matrix product CUDA kernels reside here
matrix_operations_row.hpp | Implementations of row-major dense matrix related operations, including matrix-vector products, using CUDA
misc_operations.hpp | Implementations of miscellaneous operations using CUDA
nmf_operations.hpp |
scalar_operations.hpp | Implementations of scalar operations using CUDA
sparse_matrix_operations.hpp | Implementations of operations using sparse matrices using CUDA
sparse_matrix_operations_solve.hpp | Implementations of direct triangular solvers for sparse matrices using CUDA
spgemm.hpp |
spgemm_rmerge.hpp |
vector_operations.hpp | Implementations of NMF operations using CUDA
detail |
amg |
amg_base.hpp | Helper classes and functions for the AMG preconditioner. Experimental
bisect |
bisect_kernel_calls.hpp | Kernel calls for the bisection algorithm
bisect_large.hpp | Computation of eigenvalues of a large symmetric, tridiagonal matrix
bisect_small.hpp | Computation of eigenvalues of a small symmetric, tridiagonal matrix
config.hpp | Global configuration parameters
gerschgorin.hpp | Computation of Gerschgorin interval for symmetric, tridiagonal matrix
structs.hpp | Helper structures to simplify variable handling
util.hpp | Utility functions
ilu |
block_ilu.hpp | Implementations of incomplete block factorization preconditioners
chow_patel_ilu.hpp | Implementations of incomplete factorization preconditioners with fine-grained parallelism
common.hpp | Common routines used within ILU-type preconditioners
ilu0.hpp | Implementations of incomplete factorization preconditioners with static nonzero pattern
ilut.hpp | Implementations of an incomplete factorization preconditioner with threshold (ILUT)
spai |
block_matrix.hpp | Implementation of a bunch of (small) matrices on GPU. Experimental
block_vector.hpp | Implementation of a bunch of vectors on GPU. Experimental
fspai.hpp | Implementation of FSPAI. Experimental
qr.hpp | Implementation of a simultaneous QR factorization of multiple matrices. Experimental
small_matrix.hpp | Implementation of a routines for small matrices (helper for SPAI). Experimental
spai-dynamic.hpp | Implementation of a dynamic SPAI. Provides the routines for automatic pattern updates Experimental
spai-static.hpp | Implementation of a static SPAI. Experimental
spai.hpp | Main implementation of SPAI (not FSPAI). Experimental
spai_tag.hpp | Implementation of the spai tag holding SPAI configuration parameters. Experimental
sparse_vector.hpp | Implementation of a helper sparse vector class for SPAI. Experimental
op_applier.hpp | Defines the action of certain unary and binary operators and its arguments (for host execution)
op_executor.hpp | Defines the worker class for decomposing an expression tree into small chunks, which can be processed by the predefined operations in ViennaCL
host_based |
amg_operations.hpp | Implementations of routines for AMG using the CPU on the host (with OpenMP if enabled)
common.hpp | Common routines for single-threaded or OpenMP-enabled execution on CPU
direct_solve.hpp | Implementations of dense direct triangular solvers are found here
fft_operations.hpp | Implementations of Fast Furier Transformation using a plain single-threaded or OpenMP-enabled execution on CPU
ilu_operations.hpp | Implementations of specialized routines for the Chow-Patel parallel ILU preconditioner using the host (OpenMP)
iterative_operations.hpp | Implementations of specialized kernels for fast iterative solvers using OpenMP on the CPU
matrix_operations.hpp | Implementations of dense matrix related operations, including matrix-vector products, using a plain single-threaded or OpenMP-enabled execution on CPU
misc_operations.hpp | Implementations of miscellaneous operations on the CPU using a single thread or OpenMP
nmf_operations.hpp |
scalar_operations.hpp | Implementations of scalar operations using a plain single-threaded or OpenMP-enabled execution on CPU
sparse_matrix_operations.hpp | Implementations of operations using sparse matrices on the CPU using a single thread or OpenMP
spgemm_vector.hpp |
vector_operations.hpp | Implementations of NMF operations using a plain single-threaded or OpenMP-enabled execution on CPU
opencl |
kernels |
amg.hpp | OpenCL kernel file for operations related to algebraic multigrid
bisect.hpp | OpenCL kernels for the bisection algorithm for eigenvalues
compressed_compressed_matrix.hpp | OpenCL kernel file for vector operations
compressed_matrix.hpp | OpenCL kernel file for compressed_matrix operations
coordinate_matrix.hpp | OpenCL kernel file for coordinate_matrix operations
ell_matrix.hpp | OpenCL kernel file for ell_matrix operations
fft.hpp | OpenCL kernel file for FFT operations
hyb_matrix.hpp | OpenCL kernel file for hyb_matrix operations
ilu.hpp | OpenCL kernel file for nonnegative matrix factorization
iterative.hpp | OpenCL kernel file for specialized iterative solver kernels
matrix.hpp | Runtime generation of OpenCL kernels for matrix operations
matrix_element.hpp | OpenCL kernel file for element-wise matrix operations
matrix_solve.hpp | OpenCL kernel file for dense matrix solves with multiple right hand side (BLAS level 3)
nmf.hpp | OpenCL kernel file for nonnegative matrix factorization
scalar.hpp | OpenCL kernel file for scalar operations
scan.hpp | OpenCL kernel file for scan operations. To be merged back to vector operations
sliced_ell_matrix.hpp | OpenCL kernel file for sliced_ell_matrix operations
spai.hpp | OpenCL kernel file for sparse approximate inverse operations
svd.hpp | OpenCL kernel file for singular value decomposition
vector.hpp | OpenCL kernel file for vector operations
vector_element.hpp | OpenCL kernel file for element-wise vector operations
amg_operations.hpp | Implementations of routines for AMG in OpenCL
bisect_kernel_calls.hpp | OpenCL kernel calls for the bisection algorithm
common.hpp | Common implementations shared by OpenCL-based operations
direct_solve.hpp | Implementations of dense direct solvers are found here
fft_operations.hpp | Implementations of Fast Furier Transformation using OpenCL
ilu_operations.hpp | Implementations of specialized routines for the Chow-Patel parallel ILU preconditioner using OpenCL
iterative_operations.hpp | Implementations of specialized kernels for fast iterative solvers using OpenCL
matrix_operations.hpp | Implementations of dense matrix related operations, including matrix-vector products, using OpenCL
misc_operations.hpp | Implementations of operations using compressed_matrix and OpenCL
nmf_operations.hpp |
scalar_operations.hpp | Implementations of scalar operations using OpenCL
sparse_matrix_operations.hpp | Implementations of operations using sparse matrices and OpenCL
vandermonde_matrix_operations.hpp | Implementations of operations using vandermonde_matrix
vector_operations.hpp | Implementations of NMF operations using OpenCL
amg.hpp | Main include file for algebraic multigrid (AMG) preconditioners. Experimental
amg_operations.hpp | Implementations of operations for algebraic multigrid
bicgstab.hpp | The stabilized bi-conjugate gradient method is implemented here
bisect.hpp | Implementation of the algorithm for finding eigenvalues of a tridiagonal matrix
bisect_gpu.hpp | Implementation of an bisection algorithm for eigenvalues
cg.hpp | The conjugate gradient method is implemented here
circulant_matrix_operations.hpp | Implementations of operations using circulant_matrix. Experimental
direct_solve.hpp | Implementations of dense direct solvers are found here
eig.hpp | Convenience header file including all available eigenvalue algorithms
fft_operations.hpp | Implementations of Fast Furier Transformation
gmres.hpp | Implementations of the generalized minimum residual method are in this file
hankel_matrix_operations.hpp | Implementations of operations using hankel_matrix. Experimental
ichol.hpp | Implementations of incomplete Cholesky factorization preconditioners with static nonzero pattern
ilu.hpp | Implementations of incomplete factorization preconditioners. Convenience header file
ilu_operations.hpp | Implementations of specialized routines for the Chow-Patel parallel ILU preconditioner
inner_prod.hpp | Generic interface for the computation of inner products. See viennacl/linalg/vector_operations.hpp for implementations
iterative_operations.hpp | Implementations of specialized routines for the iterative solvers
jacobi_precond.hpp | Implementation of a simple Jacobi preconditioner
lanczos.hpp | Generic interface for the Lanczos algorithm
lu.hpp | Implementations of LU factorization for row-major and column-major dense matrices
matrix_operations.hpp | Implementations of dense matrix related operations including matrix-vector products
maxmin.hpp |
misc_operations.hpp | Implementations of miscellaneous operations
mixed_precision_cg.hpp | The conjugate gradient method using mixed precision is implemented here. Experimental
nmf.hpp | Provides a nonnegative matrix factorization implementation. Experimental
norm_1.hpp | Generic interface for the l^1-norm. See viennacl/linalg/vector_operations.hpp for implementations
norm_2.hpp | Generic interface for the l^2-norm. See viennacl/linalg/vector_operations.hpp for implementations
norm_frobenius.hpp | Generic interface for the Frobenius norm
norm_inf.hpp | Generic interface for the l^infty-norm. See viennacl/linalg/vector_operations.hpp for implementations
power_iter.hpp | Defines a tag for the configuration of the power iteration method
prod.hpp | Generic interface for matrix-vector and matrix-matrix products. See viennacl/linalg/vector_operations.hpp, viennacl/linalg/matrix_operations.hpp, and viennacl/linalg/sparse_matrix_operations.hpp for implementations
qr-method-common.hpp | Common routines used for the QR method and SVD. Experimental
qr-method.hpp | Implementation of the QR method for eigenvalue computations. Experimental
qr.hpp | Provides a QR factorization using a block-based approach
row_scaling.hpp | A row normalization preconditioner is implemented here
scalar_operations.hpp | Implementations of scalar operations
spai.hpp | Main include file for the sparse approximate inverse preconditioner family (SPAI and FSPAI). Experimental
sparse_matrix_operations.hpp | Implementations of operations using sparse matrices
sum.hpp | Stub routines for the summation of elements in a vector, or all elements in either a row or column of a dense matrix
svd.hpp | Provides singular value decomposition using a block-based approach. Experimental
toeplitz_matrix_operations.hpp | Implementations of operations using toeplitz_matrix. Experimental
tql2.hpp | Implementation of the tql2-algorithm for eigenvalue computations
vandermonde_matrix_operations.hpp | Implementations of operations using vandermonde_matrix. Experimental
vector_operations.hpp | Implementations of vector operations
meta |
enable_if.hpp | Simple enable-if variant that uses the SFINAE pattern
predicate.hpp | All the predicates used within ViennaCL. Checks for expressions to be vectors, etc
result_of.hpp | A collection of compile time type deductions
tag_of.hpp | Dispatch facility for distinguishing between ublas, STL and ViennaCL types
misc |
bandwidth_reduction.hpp | Convenience include for bandwidth reduction algorithms such as Cuthill-McKee or Gibbs-Poole-Stockmeyer. Experimental
cuthill_mckee.hpp | Implementation of several flavors of the Cuthill-McKee algorithm. Experimental
gibbs_poole_stockmeyer.hpp | Implementation of the Gibbs-Poole-Stockmeyer algorithm. Experimental
ocl |
backend.hpp | Implementations of the OpenCL backend, where all contexts are stored in
command_queue.hpp | Implementations of command queue representations
context.hpp | Represents an OpenCL context within ViennaCL
device.hpp | Represents an OpenCL device within ViennaCL
device_utils.hpp | Various utility implementations for dispatching with respect to the different devices available on the market
enqueue.hpp | Enqueues kernels into command queues
error.hpp | Error handling for the OpenCL layer of ViennaCL
forwards.h | This file provides the forward declarations for the OpenCL layer of ViennaCL
handle.hpp | Implementation of a smart-pointer-like class for handling OpenCL handles
kernel.hpp | Representation of an OpenCL kernel in ViennaCL
local_mem.hpp | A local (shared) memory object for OpenCL
platform.hpp | Implements a OpenCL platform within ViennaCL
program.hpp | Implements an OpenCL program class for ViennaCL
utils.hpp | Provides OpenCL-related utilities
scheduler |
execute.hpp | Provides the datastructures for dealing with a single statement such as 'x = y + z;'
execute_axbx.hpp | Provides the datastructures for dealing with statements of the type x = (y) +- (z)
execute_elementwise.hpp | Deals with the execution of unary and binary element-wise operations
execute_generic_dispatcher.hpp | Provides unified wrappers for the common routines {as(), asbs(), asbs_s()}, {av(), avbv(), avbv_v()}, and {am(), ambm(), ambm_m()} such that scheduler logic is not cluttered with numeric type decutions
execute_matrix_dispatcher.hpp | Provides wrappers for am(), ambm(), ambm_m(), etc. in viennacl/linalg/matrix_operations.hpp such that scheduler logic is not cluttered with numeric type decutions
execute_matrix_prod.hpp | Deals with matrix-vector and matrix-matrix products
execute_scalar_assign.hpp | Deals with the execution of x = RHS; for a vector x and any compatible right hand side expression RHS
execute_scalar_dispatcher.hpp | Provides wrappers for as(), asbs(), asbs_s(), etc. in viennacl/linalg/scalar_operations.hpp such that scheduler logic is not cluttered with numeric type decutions
execute_util.hpp | Provides various utilities for implementing the execution of statements
execute_vector_dispatcher.hpp | Provides wrappers for av(), avbv(), avbv_v(), etc. in viennacl/linalg/vector_operations.hpp such that scheduler logic is not cluttered with numeric type decutions
forwards.h | Provides the datastructures for dealing with a single statement such as 'x = y + z;'
io.hpp | Some helper routines for reading/writing/printing scheduler expressions
preset.hpp |
tools |
adapter.hpp | Adapter classes for sparse matrices made of the STL type std::vector<std::map<SizeT, NumericT> >
entry_proxy.hpp | A proxy class for entries in a vector
matrix_generation.hpp | Helper routines for generating sparse matrices
matrix_size_deducer.hpp | Helper implementations that deduce the dimensions of the supplied matrix-valued expressions
random.hpp | A small collection of sequential random number generators
sha1.hpp |
shared_ptr.hpp | Implementation of a shared pointer class (cf. std::shared_ptr, boost::shared_ptr). Will be used until C++11 is widely available
timer.hpp | A simple, yet (mostly) sufficiently accurate timer for benchmarking and profiling
tools.hpp | Various little tools used here and there in ViennaCL
traits |
clear.hpp | Generic clear functionality for different vector and matrix types
context.hpp | Extracts the underlying context from objects
fill.hpp | Generic fill functionality for different matrix types
handle.hpp | Extracts the underlying OpenCL handle from a vector, a matrix, an expression etc
row_major.hpp | Determines whether a given expression has a row-major matrix layout
size.hpp | Generic size and resize functionality for different vector and matrix types
start.hpp | Extracts the underlying OpenCL start index handle from a vector, a matrix, an expression etc
stride.hpp | Determines row and column increments for matrices and matrix proxies
circulant_matrix.hpp | Implementation of the circulant_matrix class for efficient manipulation of circulant matrices. Experimental
compressed_compressed_matrix.hpp | Implementation of the compressed_compressed_matrix class (CSR format with a relatively small number of nonzero rows)
compressed_matrix.hpp | Implementation of the compressed_matrix class
context.hpp | Implementation of a OpenCL-like context, which serves as a unification of {OpenMP, CUDA, OpenCL} at the user API
coordinate_matrix.hpp | Implementation of the coordinate_matrix class
ell_matrix.hpp | Implementation of the ell_matrix class
fft.hpp | All routines related to the Fast Fourier Transform. Experimental
forwards.h | This file provides the forward declarations for the main types used within ViennaCL
hankel_matrix.hpp | Implementation of the hankel_matrix class for efficient manipulation of Hankel matrices. Experimental
hyb_matrix.hpp | Implementation of the hyb_matrix class
matrix.hpp | Implementation of the dense matrix class
matrix_proxy.hpp | Proxy classes for matrices
range.hpp | Implementation of a range object for use with proxy objects
scalar.hpp | Implementation of the ViennaCL scalar class
slice.hpp | Implementation of a slice object for use with proxy objects
sliced_ell_matrix.hpp | Implementation of the sliced_ell_matrix class
toeplitz_matrix.hpp | Implementation of the toeplitz_matrix class for efficient manipulation of Toeplitz matrices. Experimental
vandermonde_matrix.hpp | Implementation of the vandermonde_matrix class for efficient manipulation of Vandermonde matrices. Experimental
vector.hpp | The vector type with operator-overloads and proxy classes is defined here. Linear algebra operations such as norms and inner products are located in linalg/vector_operations.hpp
vector_proxy.hpp | Proxy classes for vectors
version.hpp | Provides version information for detecting different versions of ViennaCL