@@ -59,20 +59,52 @@ class EngineType {
59
59
constexpr int no_of_engines = EngineType::base_id();
60
60
61
61
class EngineBase {
62
+ private:
63
+ sycl::queue q_{};
64
+ std::vector<std::uint64_t > seed_vec{};
65
+ std::vector<std::uint64_t > offset_vec{};
66
+
62
67
public:
68
+ EngineBase () {}
69
+
70
+ EngineBase (sycl::queue &q, std::uint64_t seed, std::uint64_t offset) :
71
+ q_ (q), seed_vec(1 , seed), offset_vec(1 , offset) {}
72
+
73
+ EngineBase (sycl::queue &q, std::vector<std::uint64_t > &seeds, std::uint64_t offset) :
74
+ q_ (q), seed_vec(seeds), offset_vec(1 , offset) {}
75
+
76
+ EngineBase (sycl::queue &q, std::vector<std::uint32_t > &seeds, std::uint64_t offset) : q_(q), offset_vec(1 , offset) {
77
+ seed_vec.reserve (seeds.size ());
78
+ seed_vec.assign (seeds.begin (), seeds.end ());
79
+ }
80
+
81
+ EngineBase (sycl::queue &q, std::uint64_t seed, std::vector<std::uint64_t > &offsets) :
82
+ q_ (q), seed_vec(1 , seed), offset_vec(offsets) {}
83
+
84
+ EngineBase (sycl::queue &q, std::vector<std::uint64_t > &seeds, std::vector<std::uint64_t > &offsets) :
85
+ q_ (q), seed_vec(seeds), offset_vec(offsets) {}
86
+
87
+ EngineBase (sycl::queue &q, std::vector<std::uint32_t > &seeds, std::vector<std::uint64_t > &offsets) : q_(q), offset_vec(offsets) {
88
+ seed_vec.reserve (seeds.size ());
89
+ seed_vec.assign (seeds.begin (), seeds.end ());
90
+ }
91
+
63
92
virtual ~EngineBase () {}
64
- virtual sycl::queue &get_queue () = 0;
65
93
66
94
virtual EngineType get_type () const noexcept {
67
95
return EngineType::Base;
68
96
}
69
97
70
- virtual std::vector<std::uint64_t > get_seeds () const noexcept {
71
- return std::vector<std::uint64_t >();
98
+ sycl::queue &get_queue () noexcept {
99
+ return q_;
100
+ }
101
+
102
+ std::vector<std::uint64_t >& get_seeds () noexcept {
103
+ return seed_vec;
72
104
}
73
105
74
- virtual std::vector<std::uint64_t > get_offsets () const noexcept {
75
- return std::vector<std:: uint64_t >() ;
106
+ std::vector<std::uint64_t >& get_offsets () noexcept {
107
+ return offset_vec ;
76
108
}
77
109
};
78
110
} // dpnp::backend::ext::rng::device::engine
0 commit comments