16 #ifndef POPS_NATURAL_ANTHROPOGENIC_KERNEL_HPP
17 #define POPS_NATURAL_ANTHROPOGENIC_KERNEL_HPP
23 #include <type_traits>
42 template<
typename NaturalKernelType,
typename AnthropogenicKernelType>
53 const NaturalKernelType& natural_kernel,
54 const AnthropogenicKernelType& anthropogenic_kernel,
55 bool use_anthropogenic_kernel,
56 double percent_natural_dispersal)
68 template<
typename Generator>
69 std::tuple<int, int>
operator()(Generator& generator,
int row,
int col)
93 if (std::is_same<NaturalKernelType, AnthropogenicKernelType>::value) {
94 return NaturalKernelType::supports_kernel(type);
97 return NaturalKernelType::supports_kernel(type)
98 || AnthropogenicKernelType::supports_kernel(type);
105 #endif // POPS_NATURAL_ANTHROPOGENIC_KERNEL_HPP