Skip to content

Commit 4a22407

Browse files
Set vec_sz and n_vecs in implementations of contig_impl for each support function
1 parent 1235902 commit 4a22407

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

71 files changed

+529
-183
lines changed

dpctl/tensor/libtensor/include/kernels/elementwise_functions/abs.hpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -135,9 +135,13 @@ sycl::event abs_contig_impl(sycl::queue &exec_q,
135135
char *res_p,
136136
const std::vector<sycl::event> &depends = {})
137137
{
138+
using resTy = typename AbsOutputType<argTy>::value_type;
139+
constexpr auto vec_sz = VecSize_v<argTy, resTy>;
140+
constexpr unsigned int n_vec = 1u;
141+
138142
return elementwise_common::unary_contig_impl<
139-
argTy, AbsOutputType, AbsContigFunctor, abs_contig_kernel>(
140-
exec_q, nelems, arg_p, res_p, depends);
143+
argTy, AbsOutputType, AbsContigFunctor, abs_contig_kernel, vec_sz,
144+
n_vec>(exec_q, nelems, arg_p, res_p, depends);
141145
}
142146

143147
template <typename fnT, typename T> struct AbsContigFactory

dpctl/tensor/libtensor/include/kernels/elementwise_functions/acos.hpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -169,9 +169,13 @@ sycl::event acos_contig_impl(sycl::queue &exec_q,
169169
char *res_p,
170170
const std::vector<sycl::event> &depends = {})
171171
{
172+
using resTy = typename AcosOutputType<argTy>::value_type;
173+
constexpr auto vec_sz = VecSize_v<argTy, resTy>;
174+
constexpr unsigned int n_vec = 1u;
175+
172176
return elementwise_common::unary_contig_impl<
173-
argTy, AcosOutputType, AcosContigFunctor, acos_contig_kernel>(
174-
exec_q, nelems, arg_p, res_p, depends);
177+
argTy, AcosOutputType, AcosContigFunctor, acos_contig_kernel, vec_sz,
178+
n_vec>(exec_q, nelems, arg_p, res_p, depends);
175179
}
176180

177181
template <typename fnT, typename T> struct AcosContigFactory

dpctl/tensor/libtensor/include/kernels/elementwise_functions/acosh.hpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -196,9 +196,13 @@ sycl::event acosh_contig_impl(sycl::queue &exec_q,
196196
char *res_p,
197197
const std::vector<sycl::event> &depends = {})
198198
{
199+
using resTy = typename AcoshOutputType<argTy>::value_type;
200+
constexpr auto vec_sz = VecSize_v<argTy, resTy>;
201+
constexpr unsigned int n_vec = 1u;
202+
199203
return elementwise_common::unary_contig_impl<
200-
argTy, AcoshOutputType, AcoshContigFunctor, acosh_contig_kernel>(
201-
exec_q, nelems, arg_p, res_p, depends);
204+
argTy, AcoshOutputType, AcoshContigFunctor, acosh_contig_kernel, vec_sz,
205+
n_vec>(exec_q, nelems, arg_p, res_p, depends);
202206
}
203207

204208
template <typename fnT, typename T> struct AcoshContigFactory

dpctl/tensor/libtensor/include/kernels/elementwise_functions/add.hpp

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -218,10 +218,14 @@ sycl::event add_contig_impl(sycl::queue &exec_q,
218218
ssize_t res_offset,
219219
const std::vector<sycl::event> &depends = {})
220220
{
221+
using resTy = typename AddOutputType<argTy1, argTy2>::value_type;
222+
constexpr auto vec_sz = VecSize_v<argTy1, argTy2, resTy>;
223+
constexpr unsigned int n_vecs = 1;
224+
221225
return elementwise_common::binary_contig_impl<
222-
argTy1, argTy2, AddOutputType, AddContigFunctor, add_contig_kernel>(
223-
exec_q, nelems, arg1_p, arg1_offset, arg2_p, arg2_offset, res_p,
224-
res_offset, depends);
226+
argTy1, argTy2, AddOutputType, AddContigFunctor, add_contig_kernel,
227+
vec_sz, n_vecs>(exec_q, nelems, arg1_p, arg1_offset, arg2_p,
228+
arg2_offset, res_p, res_offset, depends);
225229
}
226230

227231
template <typename fnT, typename T1, typename T2> struct AddContigFactory
@@ -493,9 +497,13 @@ add_inplace_contig_impl(sycl::queue &exec_q,
493497
ssize_t res_offset,
494498
const std::vector<sycl::event> &depends = {})
495499
{
500+
constexpr auto vec_sz = VecSize_v<argTy, resTy>;
501+
constexpr unsigned int n_vecs = 1u;
502+
496503
return elementwise_common::binary_inplace_contig_impl<
497-
argTy, resTy, AddInplaceContigFunctor, add_inplace_contig_kernel>(
498-
exec_q, nelems, arg_p, arg_offset, res_p, res_offset, depends);
504+
argTy, resTy, AddInplaceContigFunctor, add_inplace_contig_kernel,
505+
vec_sz, n_vecs>(exec_q, nelems, arg_p, arg_offset, res_p, res_offset,
506+
depends);
499507
}
500508

501509
template <typename fnT, typename T1, typename T2> struct AddInplaceContigFactory

dpctl/tensor/libtensor/include/kernels/elementwise_functions/angle.hpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,9 +112,13 @@ sycl::event angle_contig_impl(sycl::queue &exec_q,
112112
char *res_p,
113113
const std::vector<sycl::event> &depends = {})
114114
{
115+
using resTy = typename AngleOutputType<argTy>::value_type;
116+
constexpr auto vec_sz = VecSize_v<argTy, resTy>;
117+
constexpr unsigned int n_vec = 1u;
118+
115119
return elementwise_common::unary_contig_impl<
116-
argTy, AngleOutputType, AngleContigFunctor, angle_contig_kernel>(
117-
exec_q, nelems, arg_p, res_p, depends);
120+
argTy, AngleOutputType, AngleContigFunctor, angle_contig_kernel, vec_sz,
121+
n_vec>(exec_q, nelems, arg_p, res_p, depends);
118122
}
119123

120124
template <typename fnT, typename T> struct AngleContigFactory

dpctl/tensor/libtensor/include/kernels/elementwise_functions/asin.hpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -189,9 +189,13 @@ sycl::event asin_contig_impl(sycl::queue &exec_q,
189189
char *res_p,
190190
const std::vector<sycl::event> &depends = {})
191191
{
192+
using resTy = typename AsinOutputType<argTy>::value_type;
193+
constexpr auto vec_sz = VecSize_v<argTy, resTy>;
194+
constexpr unsigned int n_vec = 1u;
195+
192196
return elementwise_common::unary_contig_impl<
193-
argTy, AsinOutputType, AsinContigFunctor, asin_contig_kernel>(
194-
exec_q, nelems, arg_p, res_p, depends);
197+
argTy, AsinOutputType, AsinContigFunctor, asin_contig_kernel, vec_sz,
198+
n_vec>(exec_q, nelems, arg_p, res_p, depends);
195199
}
196200

197201
template <typename fnT, typename T> struct AsinContigFactory

dpctl/tensor/libtensor/include/kernels/elementwise_functions/asinh.hpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -172,9 +172,13 @@ sycl::event asinh_contig_impl(sycl::queue &exec_q,
172172
char *res_p,
173173
const std::vector<sycl::event> &depends = {})
174174
{
175+
using resTy = typename AsinhOutputType<argTy>::value_type;
176+
constexpr auto vec_sz = VecSize_v<argTy, resTy>;
177+
constexpr unsigned int n_vec = 1u;
178+
175179
return elementwise_common::unary_contig_impl<
176-
argTy, AsinhOutputType, AsinhContigFunctor, asinh_contig_kernel>(
177-
exec_q, nelems, arg_p, res_p, depends);
180+
argTy, AsinhOutputType, AsinhContigFunctor, asinh_contig_kernel, vec_sz,
181+
n_vec>(exec_q, nelems, arg_p, res_p, depends);
178182
}
179183

180184
template <typename fnT, typename T> struct AsinhContigFactory

dpctl/tensor/libtensor/include/kernels/elementwise_functions/atan.hpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -179,9 +179,13 @@ sycl::event atan_contig_impl(sycl::queue &exec_q,
179179
char *res_p,
180180
const std::vector<sycl::event> &depends = {})
181181
{
182+
using resTy = typename AtanOutputType<argTy>::value_type;
183+
constexpr auto vec_sz = VecSize_v<argTy, resTy>;
184+
constexpr unsigned int n_vec = 1u;
185+
182186
return elementwise_common::unary_contig_impl<
183-
argTy, AtanOutputType, AtanContigFunctor, atan_contig_kernel>(
184-
exec_q, nelems, arg_p, res_p, depends);
187+
argTy, AtanOutputType, AtanContigFunctor, atan_contig_kernel, vec_sz,
188+
n_vec>(exec_q, nelems, arg_p, res_p, depends);
185189
}
186190

187191
template <typename fnT, typename T> struct AtanContigFactory

dpctl/tensor/libtensor/include/kernels/elementwise_functions/atan2.hpp

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -125,10 +125,15 @@ sycl::event atan2_contig_impl(sycl::queue &exec_q,
125125
ssize_t res_offset,
126126
const std::vector<sycl::event> &depends = {})
127127
{
128+
using resTy = typename Atan2OutputType<argTy1, argTy2>::value_type;
129+
constexpr auto vec_sz = VecSize_v<argTy1, argTy2, resTy>;
130+
constexpr unsigned int n_vecs = 1u;
131+
128132
return elementwise_common::binary_contig_impl<
129133
argTy1, argTy2, Atan2OutputType, Atan2ContigFunctor,
130-
atan2_contig_kernel>(exec_q, nelems, arg1_p, arg1_offset, arg2_p,
131-
arg2_offset, res_p, res_offset, depends);
134+
atan2_contig_kernel, vec_sz, n_vecs>(exec_q, nelems, arg1_p,
135+
arg1_offset, arg2_p, arg2_offset,
136+
res_p, res_offset, depends);
132137
}
133138

134139
template <typename fnT, typename T1, typename T2> struct Atan2ContigFactory

dpctl/tensor/libtensor/include/kernels/elementwise_functions/atanh.hpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -173,9 +173,13 @@ sycl::event atanh_contig_impl(sycl::queue &exec_q,
173173
char *res_p,
174174
const std::vector<sycl::event> &depends = {})
175175
{
176+
using resTy = typename AtanhOutputType<argTy>::value_type;
177+
constexpr auto vec_sz = VecSize_v<argTy, resTy>;
178+
constexpr unsigned int n_vec = 1u;
179+
176180
return elementwise_common::unary_contig_impl<
177-
argTy, AtanhOutputType, AtanhContigFunctor, atanh_contig_kernel>(
178-
exec_q, nelems, arg_p, res_p, depends);
181+
argTy, AtanhOutputType, AtanhContigFunctor, atanh_contig_kernel, vec_sz,
182+
n_vec>(exec_q, nelems, arg_p, res_p, depends);
179183
}
180184

181185
template <typename fnT, typename T> struct AtanhContigFactory

dpctl/tensor/libtensor/include/kernels/elementwise_functions/bitwise_and.hpp

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -183,10 +183,15 @@ bitwise_and_contig_impl(sycl::queue &exec_q,
183183
ssize_t res_offset,
184184
const std::vector<sycl::event> &depends = {})
185185
{
186+
using resTy = typename BitwiseAndOutputType<argTy1, argTy2>::value_type;
187+
constexpr auto vec_sz = VecSize_v<argTy1, argTy2, resTy>;
188+
constexpr unsigned int n_vec = 1u;
189+
186190
return elementwise_common::binary_contig_impl<
187191
argTy1, argTy2, BitwiseAndOutputType, BitwiseAndContigFunctor,
188-
bitwise_and_contig_kernel>(exec_q, nelems, arg1_p, arg1_offset, arg2_p,
189-
arg2_offset, res_p, res_offset, depends);
192+
bitwise_and_contig_kernel, vec_sz, n_vec>(
193+
exec_q, nelems, arg1_p, arg1_offset, arg2_p, arg2_offset, res_p,
194+
res_offset, depends);
190195
}
191196

192197
template <typename fnT, typename T1, typename T2> struct BitwiseAndContigFactory
@@ -365,10 +370,13 @@ bitwise_and_inplace_contig_impl(sycl::queue &exec_q,
365370
ssize_t res_offset,
366371
const std::vector<sycl::event> &depends = {})
367372
{
373+
constexpr auto vec_sz = VecSize_v<argTy, resTy>;
374+
constexpr unsigned int n_vecs = 1u;
375+
368376
return elementwise_common::binary_inplace_contig_impl<
369377
argTy, resTy, BitwiseAndInplaceContigFunctor,
370-
bitwise_and_inplace_contig_kernel>(exec_q, nelems, arg_p, arg_offset,
371-
res_p, res_offset, depends);
378+
bitwise_and_inplace_contig_kernel, vec_sz, n_vecs>(
379+
exec_q, nelems, arg_p, arg_offset, res_p, res_offset, depends);
372380
}
373381

374382
template <typename fnT, typename T1, typename T2>

dpctl/tensor/libtensor/include/kernels/elementwise_functions/bitwise_invert.hpp

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -129,10 +129,14 @@ bitwise_invert_contig_impl(sycl::queue &exec_q,
129129
char *res_p,
130130
const std::vector<sycl::event> &depends = {})
131131
{
132-
return elementwise_common::unary_contig_impl<argTy, BitwiseInvertOutputType,
133-
BitwiseInvertContigFunctor,
134-
bitwise_invert_contig_kernel>(
135-
exec_q, nelems, arg_p, res_p, depends);
132+
using resTy = typename BitwiseInvertOutputType<argTy>::value_type;
133+
constexpr auto vec_sz = VecSize_v<argTy, resTy>;
134+
constexpr unsigned int n_vec = 1u;
135+
136+
return elementwise_common::unary_contig_impl<
137+
argTy, BitwiseInvertOutputType, BitwiseInvertContigFunctor,
138+
bitwise_invert_contig_kernel, vec_sz, n_vec>(exec_q, nelems, arg_p,
139+
res_p, depends);
136140
}
137141

138142
template <typename fnT, typename T> struct BitwiseInvertContigFactory

dpctl/tensor/libtensor/include/kernels/elementwise_functions/bitwise_left_shift.hpp

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -192,11 +192,16 @@ bitwise_left_shift_contig_impl(sycl::queue &exec_q,
192192
ssize_t res_offset,
193193
const std::vector<sycl::event> &depends = {})
194194
{
195+
using resTy =
196+
typename BitwiseLeftShiftOutputType<argTy1, argTy2>::value_type;
197+
constexpr auto vec_sz = VecSize_v<argTy1, argTy2, resTy>;
198+
constexpr unsigned int n_vecs = 1u;
199+
195200
return elementwise_common::binary_contig_impl<
196201
argTy1, argTy2, BitwiseLeftShiftOutputType,
197-
BitwiseLeftShiftContigFunctor, bitwise_left_shift_contig_kernel>(
198-
exec_q, nelems, arg1_p, arg1_offset, arg2_p, arg2_offset, res_p,
199-
res_offset, depends);
202+
BitwiseLeftShiftContigFunctor, bitwise_left_shift_contig_kernel, vec_sz,
203+
n_vecs>(exec_q, nelems, arg1_p, arg1_offset, arg2_p, arg2_offset, res_p,
204+
res_offset, depends);
200205
}
201206

202207
template <typename fnT, typename T1, typename T2>
@@ -379,9 +384,12 @@ sycl::event bitwise_left_shift_inplace_contig_impl(
379384
ssize_t res_offset,
380385
const std::vector<sycl::event> &depends = {})
381386
{
387+
constexpr auto vec_sz = VecSize_v<argTy, resTy>;
388+
constexpr unsigned int n_vecs = 1u;
389+
382390
return elementwise_common::binary_inplace_contig_impl<
383391
argTy, resTy, BitwiseLeftShiftInplaceContigFunctor,
384-
bitwise_left_shift_inplace_contig_kernel>(
392+
bitwise_left_shift_inplace_contig_kernel, vec_sz, n_vecs>(
385393
exec_q, nelems, arg_p, arg_offset, res_p, res_offset, depends);
386394
}
387395

dpctl/tensor/libtensor/include/kernels/elementwise_functions/bitwise_or.hpp

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -181,10 +181,15 @@ sycl::event bitwise_or_contig_impl(sycl::queue &exec_q,
181181
ssize_t res_offset,
182182
const std::vector<sycl::event> &depends = {})
183183
{
184+
using resTy = typename BitwiseOrOutputType<argTy1, argTy2>::value_type;
185+
constexpr auto vec_sz = VecSize_v<argTy1, argTy2, resTy>;
186+
constexpr unsigned int n_vecs = 1u;
187+
184188
return elementwise_common::binary_contig_impl<
185189
argTy1, argTy2, BitwiseOrOutputType, BitwiseOrContigFunctor,
186-
bitwise_or_contig_kernel>(exec_q, nelems, arg1_p, arg1_offset, arg2_p,
187-
arg2_offset, res_p, res_offset, depends);
190+
bitwise_or_contig_kernel, vec_sz, n_vecs>(
191+
exec_q, nelems, arg1_p, arg1_offset, arg2_p, arg2_offset, res_p,
192+
res_offset, depends);
188193
}
189194

190195
template <typename fnT, typename T1, typename T2> struct BitwiseOrContigFactory
@@ -359,10 +364,13 @@ bitwise_or_inplace_contig_impl(sycl::queue &exec_q,
359364
ssize_t res_offset,
360365
const std::vector<sycl::event> &depends = {})
361366
{
367+
constexpr auto vec_sz = VecSize_v<argTy, resTy>;
368+
constexpr unsigned int n_vecs = 1u;
369+
362370
return elementwise_common::binary_inplace_contig_impl<
363371
argTy, resTy, BitwiseOrInplaceContigFunctor,
364-
bitwise_or_inplace_contig_kernel>(exec_q, nelems, arg_p, arg_offset,
365-
res_p, res_offset, depends);
372+
bitwise_or_inplace_contig_kernel, vec_sz, n_vecs>(
373+
exec_q, nelems, arg_p, arg_offset, res_p, res_offset, depends);
366374
}
367375

368376
template <typename fnT, typename T1, typename T2>

dpctl/tensor/libtensor/include/kernels/elementwise_functions/bitwise_right_shift.hpp

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -194,11 +194,16 @@ bitwise_right_shift_contig_impl(sycl::queue &exec_q,
194194
ssize_t res_offset,
195195
const std::vector<sycl::event> &depends = {})
196196
{
197+
using resTy =
198+
typename BitwiseRightShiftOutputType<argTy1, argTy2>::value_type;
199+
constexpr auto vec_sz = VecSize_v<argTy1, argTy2, resTy>;
200+
constexpr unsigned int n_vecs = 1u;
201+
197202
return elementwise_common::binary_contig_impl<
198203
argTy1, argTy2, BitwiseRightShiftOutputType,
199-
BitwiseRightShiftContigFunctor, bitwise_right_shift_contig_kernel>(
200-
exec_q, nelems, arg1_p, arg1_offset, arg2_p, arg2_offset, res_p,
201-
res_offset, depends);
204+
BitwiseRightShiftContigFunctor, bitwise_right_shift_contig_kernel,
205+
vec_sz, n_vecs>(exec_q, nelems, arg1_p, arg1_offset, arg2_p,
206+
arg2_offset, res_p, res_offset, depends);
202207
}
203208

204209
template <typename fnT, typename T1, typename T2>
@@ -383,9 +388,12 @@ sycl::event bitwise_right_shift_inplace_contig_impl(
383388
ssize_t res_offset,
384389
const std::vector<sycl::event> &depends = {})
385390
{
391+
constexpr auto vec_sz = VecSize_v<argTy, resTy>;
392+
constexpr unsigned int n_vecs = 1u;
393+
386394
return elementwise_common::binary_inplace_contig_impl<
387395
argTy, resTy, BitwiseRightShiftInplaceContigFunctor,
388-
bitwise_right_shift_inplace_contig_kernel>(
396+
bitwise_right_shift_inplace_contig_kernel, vec_sz, n_vecs>(
389397
exec_q, nelems, arg_p, arg_offset, res_p, res_offset, depends);
390398
}
391399

dpctl/tensor/libtensor/include/kernels/elementwise_functions/bitwise_xor.hpp

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -183,10 +183,15 @@ bitwise_xor_contig_impl(sycl::queue &exec_q,
183183
ssize_t res_offset,
184184
const std::vector<sycl::event> &depends = {})
185185
{
186+
using resTy = typename BitwiseXorOutputType<argTy1, argTy2>::value_type;
187+
constexpr auto vec_sz = VecSize_v<argTy1, argTy2, resTy>;
188+
constexpr unsigned int n_vecs = 1u;
189+
186190
return elementwise_common::binary_contig_impl<
187191
argTy1, argTy2, BitwiseXorOutputType, BitwiseXorContigFunctor,
188-
bitwise_xor_contig_kernel>(exec_q, nelems, arg1_p, arg1_offset, arg2_p,
189-
arg2_offset, res_p, res_offset, depends);
192+
bitwise_xor_contig_kernel, vec_sz, n_vecs>(
193+
exec_q, nelems, arg1_p, arg1_offset, arg2_p, arg2_offset, res_p,
194+
res_offset, depends);
190195
}
191196

192197
template <typename fnT, typename T1, typename T2> struct BitwiseXorContigFactory
@@ -365,10 +370,13 @@ bitwise_xor_inplace_contig_impl(sycl::queue &exec_q,
365370
ssize_t res_offset,
366371
const std::vector<sycl::event> &depends = {})
367372
{
373+
constexpr auto vec_sz = VecSize_v<argTy, resTy>;
374+
constexpr unsigned int n_vecs = 1u;
375+
368376
return elementwise_common::binary_inplace_contig_impl<
369377
argTy, resTy, BitwiseXorInplaceContigFunctor,
370-
bitwise_xor_inplace_contig_kernel>(exec_q, nelems, arg_p, arg_offset,
371-
res_p, res_offset, depends);
378+
bitwise_xor_inplace_contig_kernel, vec_sz, n_vecs>(
379+
exec_q, nelems, arg_p, arg_offset, res_p, res_offset, depends);
372380
}
373381

374382
template <typename fnT, typename T1, typename T2>

dpctl/tensor/libtensor/include/kernels/elementwise_functions/cbrt.hpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,9 +105,13 @@ sycl::event cbrt_contig_impl(sycl::queue &exec_q,
105105
char *res_p,
106106
const std::vector<sycl::event> &depends = {})
107107
{
108+
using resTy = typename CbrtOutputType<argTy>::value_type;
109+
constexpr auto vec_sz = VecSize_v<argTy, resTy>;
110+
constexpr unsigned int n_vecs = 1u;
111+
108112
return elementwise_common::unary_contig_impl<
109-
argTy, CbrtOutputType, CbrtContigFunctor, cbrt_contig_kernel>(
110-
exec_q, nelems, arg_p, res_p, depends);
113+
argTy, CbrtOutputType, CbrtContigFunctor, cbrt_contig_kernel, vec_sz,
114+
n_vecs>(exec_q, nelems, arg_p, res_p, depends);
111115
}
112116

113117
template <typename fnT, typename T> struct CbrtContigFactory

0 commit comments

Comments
 (0)