00001 #ifndef VIENNACL_LINALG_DETAIL_SPAI_BLOCK_VECTOR_HPP 00002 #define VIENNACL_LINALG_DETAIL_SPAI_BLOCK_VECTOR_HPP 00003 00004 /* ========================================================================= 00005 Copyright (c) 2010-2011, Institute for Microelectronics, 00006 Institute for Analysis and Scientific Computing, 00007 TU Wien. 00008 00009 ----------------- 00010 ViennaCL - The Vienna Computing Library 00011 ----------------- 00012 00013 Project Head: Karl Rupp rupp@iue.tuwien.ac.at 00014 00015 (A list of authors and contributors can be found in the PDF manual) 00016 00017 License: MIT (X11), see file LICENSE in the base directory 00018 ============================================================================= */ 00019 00020 #include <utility> 00021 #include <iostream> 00022 #include <fstream> 00023 #include <string> 00024 #include <algorithm> 00025 #include <vector> 00026 #include "viennacl/ocl/backend.hpp" 00027 #include "viennacl/tools/tools.hpp" 00028 00035 namespace viennacl 00036 { 00037 namespace linalg 00038 { 00039 namespace detail 00040 { 00041 namespace spai 00042 { 00043 00048 class block_vector{ 00049 public: 00050 block_vector(){ 00051 } 00055 viennacl::ocl::handle<cl_mem>& handle(){ return _elements; } 00059 viennacl::ocl::handle<cl_mem>& handle1() { return _start_block_inds; } 00060 00064 const viennacl::ocl::handle<cl_mem>& handle() const { return _elements; } 00068 const viennacl::ocl::handle<cl_mem>& handle1() const { return _start_block_inds; } 00069 private: 00070 //unsigned int _vectorIndex; 00071 viennacl::ocl::handle<cl_mem> _elements; 00072 viennacl::ocl::handle<cl_mem> _start_block_inds; 00073 }; 00074 } 00075 } 00076 } 00077 } 00078 #endif