diff --git a/include/mcc/mcc_pcm.h b/include/mcc/mcc_pcm.h index a13606c..822e3bb 100644 --- a/include/mcc/mcc_pcm.h +++ b/include/mcc/mcc_pcm.h @@ -387,7 +387,7 @@ public: MccCoordPair{x + res->pcmX, y + res->pcmY, obs_skycoord.epoch()}; } } else { // for B-splines the result is computed directly from inverse B-spline coefficients - ret = _computeFuncDeriv(x, y, res); + ret = _computeFuncDeriv(x, y, res, true); if (!ret) { if constexpr (mcc_coord_pair_c) { diff --git a/include/mcc/mcc_pcm_fit.h b/include/mcc/mcc_pcm_fit.h index 5f96149..d795f70 100644 --- a/include/mcc/mcc_pcm_fit.h +++ b/include/mcc/mcc_pcm_fit.h @@ -355,29 +355,30 @@ protected: std::vector _epoch{}; - void computeModelResi(compute_result_t& result) - { - result.colon_err.resize(numberOfPoints()); - result.colat_err.resize(numberOfPoints()); + // void computeModelResi(compute_result_t& result) + // { + // result.colon_err.resize(numberOfPoints()); + // result.colat_err.resize(numberOfPoints()); + + // for (size_t i = 0; i < numberOfPoints(); ++i) { + // result.colon_err[i] = _colonRES[i] - result.model_colonRES[i]; // = target - model + // result.colat_err[i] = _colatRES[i] - result.model_colatRES[i]; // = target - model + // } + + // #ifdef USE_BSPLINE_PCM + // if (result.pcm_type == MccDefaultPCMType::PCM_TYPE_BSPLINE) { + // result.inv_colon_err.resize(numberOfPoints()); + // result.inv_colat_err.resize(numberOfPoints()); + // for (size_t i = 0; i < numberOfPoints(); ++i) { + // result.inv_colon_err[i] = _colonRES[i] - result.inv_model_colonRES[i]; // = hw - model + // result.inv_colat_err[i] = _colatRES[i] - result.inv_model_colatRES[i]; // = hw - model + // } + // } + // #endif + // } - for (size_t i = 0; i < numberOfPoints(); ++i) { - result.colon_err[i] = _colonRES[i] - result.model_colonRES[i]; // = target - model - result.colat_err[i] = _colatRES[i] - result.model_colatRES[i]; // = target - model - } #ifdef USE_BSPLINE_PCM - if (result.pcm_type == MccDefaultPCMType::PCM_TYPE_BSPLINE) { - result.inv_colon_err.resize(numberOfPoints()); - result.inv_colat_err.resize(numberOfPoints()); - for (size_t i = 0; i < numberOfPoints(); ++i) { - result.inv_colon_err[i] = _colonRES[i] - result.inv_model_colonRES[i]; // = hw - model - result.inv_colat_err[i] = _colatRES[i] - result.inv_model_colatRES[i]; // = hw - model - } - } -#endif - } - - compute_result_t bsplineFitting(MccDefaultPCM::pcm_data_t& pcm_data) { compute_result_t result{.pcm_type = pcm_data.type, .error = MccPCMFitterErrorCode::ERROR_OK}; @@ -534,6 +535,7 @@ protected: return result; } +#endif compute_result_t robustLinearRegress(MccDefaultPCM::pcm_data_t& pcm_data,