.. _program_listing_file_include_gwmodelpp_GWRRobust.h: Program Listing for File GWRRobust.h ==================================== |exhale_lsh| :ref:`Return to documentation for file ` (``include/gwmodelpp/GWRRobust.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #ifndef GWRROBUST_H #define GWRROBUST_H #include #include #include #include "GWRBase.h" #include "RegressionDiagnostic.h" #include "IBandwidthSelectable.h" #include "IVarialbeSelectable.h" #include "IParallelizable.h" #include "GWRBasic.h" namespace gwm { class GWRRobust : public GWRBasic { private: typedef arma::mat (GWRRobust::*RegressionHatmatrix)(const arma::mat &, const arma::vec &, arma::mat &, arma::vec &, arma::vec &, arma::mat &); static RegressionDiagnostic CalcDiagnostic(const arma::mat &x, const arma::vec &y, const arma::mat &betas, const arma::vec &shat); public: GWRRobust() {} ~GWRRobust() {} public: bool filtered() const { return mFiltered; } void setFiltered(bool value) { mFiltered = value; } public: // Implement IRegressionAnalysis arma::mat predict(const arma::mat& locations) override; arma::mat fit() override; arma::mat regressionHatmatrix(const arma::mat &x, const arma::vec &y, arma::mat &betasSE, arma::vec &shat, arma::vec &qdiag, arma::mat &S); private: arma::mat fitSerial(const arma::mat& x, const arma::vec& y, arma::mat& betasSE, arma::vec& shat, arma::vec& qDiag, arma::mat& S); #ifdef ENABLE_OPENMP //arma::mat predictOmp(const arma::mat& locations, const arma::mat& x, const arma::vec& y); arma::mat fitOmp(const arma::mat& x, const arma::vec& y, arma::mat& betasSE, arma::vec& shat, arma::vec& qDiag, arma::mat& S); #endif protected: arma::mat robustGWRCaliFirst(const arma::mat &x, const arma::vec &y, arma::mat &betasSE, arma::vec &shat, arma::vec &qDiag, arma::mat &S); arma::mat robustGWRCaliSecond(const arma::mat &x, const arma::vec &y, arma::mat &betasSE, arma::vec &shat, arma::vec &qDiag, arma::mat &S); arma::vec filtWeight(arma::vec residual, double mse); public : // Implement IParallelizable void setParallelType(const ParallelType &type) override; protected: void createPredictionDistanceParameter(const arma::mat& locations); private: bool mFiltered; arma::mat mS; arma::vec mWeightMask; RegressionHatmatrix mfitFunction = &GWRRobust::fitSerial; }; } #endif // GWRROBUST_H