ViennaCL - The Vienna Computing Library  1.2.0
spai_kernels.h
Go to the documentation of this file.
1 #ifndef _VIENNACL_SPAI_KERNELS_HPP_
2 #define _VIENNACL_SPAI_KERNELS_HPP_
6 #include "viennacl/ocl/utils.hpp"
8 
9 //Automatically generated file from aux-directory, do not edit manually!
10 namespace viennacl
11 {
12  namespace linalg
13  {
14  namespace kernels
15  {
16  template<class TYPE, unsigned int alignment>
17  struct spai;
18 
19 
21  template <>
22  struct spai<float, 1>
23  {
24  static std::string program_name()
25  {
26  return "f_spai_1";
27  }
28  static void init()
29  {
31  static std::map<cl_context, bool> init_done;
33  if (!init_done[context_.handle()])
34  {
35  std::string source;
36  source.append(spai_align1_block_qr_assembly);
37  source.append(spai_align1_block_qr);
38  source.append(spai_align1_block_r_assembly);
39  source.append(spai_align1_assemble_blocks);
40  source.append(spai_align1_block_least_squares);
41  source.append(spai_align1_block_qr_assembly_1);
42  source.append(spai_align1_block_q_mult);
43  source.append(spai_align1_block_bv_assembly);
44  std::string prog_name = program_name();
45  #ifdef VIENNACL_BUILD_INFO
46  std::cout << "Creating program " << prog_name << std::endl;
47  #endif
48  context_.add_program(source, prog_name);
49  viennacl::ocl::program & prog_ = context_.get_program(prog_name);
50  prog_.add_kernel("block_qr_assembly");
51  prog_.add_kernel("block_qr");
52  prog_.add_kernel("block_r_assembly");
53  prog_.add_kernel("assemble_blocks");
54  prog_.add_kernel("block_least_squares");
55  prog_.add_kernel("block_qr_assembly_1");
56  prog_.add_kernel("block_q_mult");
57  prog_.add_kernel("block_bv_assembly");
58  init_done[context_.handle()] = true;
59  } //if
60  } //init
61  }; // struct
62 
63 
64 
66  template <>
67  struct spai<double, 1>
68  {
69  static std::string program_name()
70  {
71  return "d_spai_1";
72  }
73  static void init()
74  {
76  static std::map<cl_context, bool> init_done;
78  if (!init_done[context_.handle()])
79  {
80  std::string source;
90  std::string prog_name = program_name();
91  #ifdef VIENNACL_BUILD_INFO
92  std::cout << "Creating program " << prog_name << std::endl;
93  #endif
94  context_.add_program(source, prog_name);
95  viennacl::ocl::program & prog_ = context_.get_program(prog_name);
96  prog_.add_kernel("block_qr_assembly");
97  prog_.add_kernel("block_qr");
98  prog_.add_kernel("block_r_assembly");
99  prog_.add_kernel("assemble_blocks");
100  prog_.add_kernel("block_least_squares");
101  prog_.add_kernel("block_qr_assembly_1");
102  prog_.add_kernel("block_q_mult");
103  prog_.add_kernel("block_bv_assembly");
104  init_done[context_.handle()] = true;
105  } //if
106  } //init
107  }; // struct
108 
109 
110  } //namespace kernels
111  } //namespace linalg
112 } //namespace viennacl
113 #endif