XtalOptimizer: Bring back standard loss function for least squares
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 11m58s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 12m59s
Build Packages / Generate python client (push) Successful in 27s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 13m33s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 13m49s
Build Packages / Create release (push) Has been skipped
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 13m59s
Build Packages / Build documentation (push) Successful in 43s
Build Packages / build:rpm (rocky8) (push) Successful in 14m5s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 14m18s
Build Packages / build:rpm (rocky9) (push) Successful in 15m5s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 7m35s
Build Packages / Unit tests (push) Successful in 51m51s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 11m58s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 12m59s
Build Packages / Generate python client (push) Successful in 27s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 13m33s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 13m49s
Build Packages / Create release (push) Has been skipped
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 13m59s
Build Packages / Build documentation (push) Successful in 43s
Build Packages / build:rpm (rocky8) (push) Successful in 14m5s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 14m18s
Build Packages / build:rpm (rocky9) (push) Successful in 15m5s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 7m35s
Build Packages / Unit tests (push) Successful in 51m51s
This commit is contained in:
@@ -126,10 +126,9 @@ struct XtalResidual {
|
||||
|
||||
auto e_pred_hkl = e_latt.transpose() * e_obs_recip;
|
||||
|
||||
T dh = exp_h - e_pred_hkl[0];
|
||||
T dk = exp_k - e_pred_hkl[1];
|
||||
T dl = exp_l - e_pred_hkl[2];
|
||||
residual[0] = ceres::sqrt(dh * dh + dk * dk + dl * dl);
|
||||
residual[0] = exp_h - e_pred_hkl[0];
|
||||
residual[1] = exp_k - e_pred_hkl[1];
|
||||
residual[2] = exp_l - e_pred_hkl[2];
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -456,14 +455,14 @@ bool XtalOptimizerInternal(XtalOptimizerData &data,
|
||||
continue;
|
||||
|
||||
problem.AddResidualBlock(
|
||||
new ceres::AutoDiffCostFunction<XtalResidual, 1, 1, 1, 1, 2, 3, 3, 3>(
|
||||
new ceres::AutoDiffCostFunction<XtalResidual, 3, 1, 1, 1, 2, 3, 3, 3>(
|
||||
new XtalResidual(pt.x, pt.y,
|
||||
data.geom.GetWavelength_A(),
|
||||
data.geom.GetPixelSize_mm(),
|
||||
gonio_back_rot,
|
||||
h, k, l,
|
||||
data.crystal_system)),
|
||||
new ceres::CauchyLoss(loss_scale),
|
||||
nullptr,
|
||||
&beam_x,
|
||||
&beam_y,
|
||||
&distance_mm,
|
||||
@@ -608,5 +607,6 @@ bool XtalOptimizerInternal(XtalOptimizerData &data,
|
||||
bool XtalOptimizer(XtalOptimizerData &data, const std::vector<SpotToSave> &spots) {
|
||||
if (!XtalOptimizerInternal(data, spots, 0.3))
|
||||
return false;
|
||||
XtalOptimizerInternal(data, spots, 0.2);
|
||||
return XtalOptimizerInternal(data, spots, 0.1);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user