namespace rgpot::vesin_compatΒΆ

namespace vesin_compat {
 
// structs
 
template <typename Options, typename = void>
struct has_algorithm_member;
 
template <typename Options>
struct has_algorithm_member<Options, std::void_t<decltype(std::declval<Options>().algorithm)>>;
 
template <typename Options, typename = void>
struct has_n_threads_member;
 
template <typename Options>
struct has_n_threads_member<Options, std::void_t<decltype(std::declval<Options>().n_threads)>>;
 
template <typename Options, typename = void>
struct has_skin_member;
 
template <typename Options>
struct has_skin_member<Options, std::void_t<decltype(std::declval<Options>().skin)>>;
 
template <typename Device, typename = void>
struct is_device_struct;
 
template <typename Device>
struct is_device_struct<Device, std::void_t<decltype(std::declval<Device>().type), decltype(std::declval<Device>().device_id)>>;
 
// global functions
 
template <typename Device = VesinDevice>
Device make_cpu_device();
 
template <typename Options>
void set_algorithm_default(Options& options);
 
template <typename Options>
void set_skin(Options& options, double skin);
 
template <typename Options>
void set_n_threads(Options& options, std::int32_t n_threads);
 
template <typename Options>
void fill_neighbor_options(Options& options, double cutoff, bool full_list);
 
} // namespace vesin_compat