29#include <unordered_map>
32#include "dpctl4pybind11.hpp"
34namespace statistics::validation
36using array_ptr =
const dpctl::tensor::usm_ndarray *;
37using array_names = std::unordered_map<array_ptr, std::string>;
39std::string name_of(
const array_ptr &arr,
const array_names &names);
41void check_writable(
const std::vector<array_ptr> &arrays,
42 const array_names &names);
43void check_c_contig(
const std::vector<array_ptr> &arrays,
44 const array_names &names);
45void check_queue(
const std::vector<array_ptr> &arrays,
46 const array_names &names,
47 const sycl::queue &exec_q);
49void check_no_overlap(
const array_ptr &inputs,
50 const array_ptr &outputs,
51 const array_names &names);
52void check_no_overlap(
const std::vector<array_ptr> &inputs,
53 const std::vector<array_ptr> &outputs,
54 const array_names &names);
56void check_num_dims(
const array_ptr &arr,
58 const array_names &names);
59void check_max_dims(
const array_ptr &arr,
60 const size_t max_ndim,
61 const array_names &names);
63void check_size_at_least(
const array_ptr &arr,
65 const array_names &names);
67void common_checks(
const std::vector<array_ptr> &inputs,
68 const std::vector<array_ptr> &outputs,
69 const array_names &names);