 build | |
  buildd | |
   viennacl-1.5.1 | |
    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 |
     generator | |
      autotune.hpp | User interface for the autotuning procedure |
      forwards.h | Forwards declaration |
      generate.hpp | User interface for the code generator |
      helpers.hpp | Several code generation helpers |
      map_functor.hpp | Functor to map the statements to the types defined in mapped_objects.hpp |
      mapped_objects.hpp | Map ViennaCL objects to generator wrappers |
      matrix_product.hpp | Kernel template for the matrix product operation |
      profile_base.hpp | Base classes for the profiles |
      profiles.hpp | Vendor-specific parameters for the generated kernels |
      saxpy.hpp | Kernel template for the saxpy-like operation |
      scalar_reduction.hpp | Kernel template for the scalar reduction operation |
      set_arguments_functor.hpp | Functor to set the arguments of a statement into a kernel |
      statement_representation_functor.hpp | Functor to generate the string id of a statement |
      utils.hpp | Internal utils for a dynamic OpenCL kernel generation |
      vector_reduction.hpp | Kernel template for the vector reduction operation |
     io | |
      matrix_market.hpp | A reader and writer for the matrix market format is implemented here |
     linalg | |
      cuda | |
       common.hpp | Common routines for CUDA execution |
       direct_solve.hpp | Implementations of dense direct solvers using CUDA are found here |
       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 |
       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 |
       vector_operations.hpp | Implementations of vector operations using a plain single-threaded execution on CPU |
      detail | |
       amg | |
        amg_base.hpp | Helper classes and functions for the AMG preconditioner. Experimental |
        amg_coarse.hpp | Implementations of several variants of the AMG coarsening procedure (setup phase). Experimental |
        amg_debug.hpp | Debug functionality for AMG. To be removed |
        amg_interpol.hpp | Implementations of several variants of the AMG interpolation operators (setup phase). Experimental |
       ilu | |
        block_ilu.hpp | Implementations of incomplete block factorization preconditioners |
        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 | |
       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 |
       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 |
       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 |
       sse_blas.hpp | Optimized BLAS functions using SSE2 and SSE3 intrinsic functions |
       sse_kernels.hpp | Optimized linear algebra operations for the CPU |
       vector_operations.hpp | Implementations of vector operations using a plain single-threaded or OpenMP-enabled execution on CPU |
      opencl | |
       kernels | |
        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 |
        matrix.hpp | Runtime generation of OpenCL kernels for matrix operations |
        matrix_element.hpp | OpenCL kernel file for element-wise matrix operations |
        matrix_prod.hpp | Runtime generation of OpenCL kernels for dense matrix-matrix products |
        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 |
        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 |
       common.hpp | Common implementations shared by OpenCL-based operations |
       direct_solve.hpp | Implementations of dense direct solvers are found here |
       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 |
       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 vector operations using OpenCL |
      amg.hpp | Main include file for algebraic multigrid (AMG) preconditioners. Experimental |
      bicgstab.hpp | The stabilized bi-conjugate gradient method is implemented here |
      bisect.hpp | Implementation of the algorithm for finding eigenvalues of a tridiagonal matrix |
      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 |
      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 |
      inner_prod.hpp | Generic interface for the computation of inner products. See viennacl/linalg/vector_operations.hpp for implementations |
      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 |
      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 |
      svd.hpp | Provides singular value decomposition using a block-based approach. Experimental |
      toeplitz_matrix_operations.hpp | Implementations of operations using toeplitz_matrix. Experimental |
      tred2.hpp | Optimized CPU tridiagonalization |
      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 |
      infos.hpp | Implementation of convenience functions to get infos |
      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 |
     rand | |
      gaussian.hpp | Unused: Generation of random numbers with a Gaussian normal distribution |
      uniform.hpp | Unused: Generation of uniformly distributed random numbers |
      utils.hpp | Unused: Helper functionality random number generation |
     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 |
     tools | |
      adapter.hpp | Adapter classes for sparse matrices made of the STL type std::vector<std::map<SizeType, SCALARTYPE> > |
      entry_proxy.hpp | A proxy class for entries in a vector |
      matrix_size_deducer.hpp | Helper implementations that deduce the dimensions of the supplied matrix-valued expressions |
      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 |
      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 |
     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 |