.. _program_listing_file_include_gwmodelpp_spatialweight_Distance.h: Program Listing for File Distance.h =================================== |exhale_lsh| :ref:`Return to documentation for file ` (``include/gwmodelpp/spatialweight/Distance.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #ifndef DISTANCE_H #define DISTANCE_H #include #include #include #include #include namespace gwm { typedef std::variant DistParamVariant; class Distance { public: struct Parameter { arma::uword total; Parameter(): total(0) {} }; enum DistanceType { CRSDistance, MinkwoskiDistance, DMatDistance, OneDimDistance, }; static std::unordered_map TypeNameMapper; public: virtual ~Distance() {}; virtual Distance* clone() = 0; virtual DistanceType type() = 0; virtual Parameter* parameter() const = delete; public: virtual void makeParameter(std::initializer_list plist) = 0; virtual arma::vec distance(arma::uword focus) = 0; virtual double maxDistance() = 0; virtual double minDistance() = 0; }; } #endif // DISTANCE_H