.. _program_listing_file_include_gwmodelpp_spatialweight_Weight.h: Program Listing for File Weight.h ================================= |exhale_lsh| :ref:`Return to documentation for file ` (``include/gwmodelpp/spatialweight/Weight.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #ifndef WEIGHT_H #define WEIGHT_H #ifdef ENABLE_CUDA #include #include "gwmodelpp/spatialweight/cuda/ISpatialCudaEnabled.h" #endif // ENABLE_CUDA #include #include #include "armadillo_config.h" namespace gwm { class Weight #ifdef ENABLE_CUDA : public ISpatialCudaEnabled #endif { public: enum WeightType { BandwidthWeight }; static std::unordered_map TypeNameMapper; public: Weight() {} virtual ~Weight() {} virtual Weight* clone() const = 0; public: virtual arma::vec weight(arma::vec dist) = 0; #ifdef ENABLE_CUDA bool useCuda() { return mUseCuda; } void setUseCuda(bool isUseCuda) { mUseCuda = isUseCuda; } virtual cudaError_t prepareCuda(size_t gpuId) override; virtual cudaError_t weight(double* d_dists, double* d_weights, size_t elems) { throw std::logic_error("Function not yet implemented"); } #endif #ifdef ENABLE_CUDA protected: bool mUseCuda = false; //