Skip to content

Commit 7c62b90

Browse files
committed
Add clamping for MTsat parameters
1 parent b98ae1a commit 7c62b90

File tree

1 file changed

+11
-6
lines changed

1 file changed

+11
-6
lines changed

Source/MT/MTSatModel.cpp

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,16 @@ auto MTSatModel::fit(QI_ARRAYN(DataType, NI) const & in,
99
auto B1 = fixed[0];
1010
auto const &s = sequence;
1111

12-
auto R1 = (B1 * B1 / 2.) * (S_t1 * s.al_t1 / s.TR_t1 - S_pd * s.al_pd / s.TR_pd) /
13-
(S_pd / s.al_pd - S_t1 / s.al_t1);
14-
auto A = (S_pd * S_t1 / B1) * (s.TR_pd * s.al_t1 / s.al_pd - s.TR_t1 * s.al_pd / s.al_t1) /
15-
(S_t1 * s.TR_pd * s.al_t1 - S_pd * s.TR_t1 * s.al_pd);
16-
auto d = (A * s.al_mt / S_mt - 1.0) * R1 * s.TR_mt - s.al_mt * s.al_mt / 2;
17-
auto d_corrected = d * (1.0 - C) / (1.0 - C * B1);
12+
auto const R1 =
13+
std::clamp((B1 * B1 / 2.) * (S_t1 * s.al_t1 / s.TR_t1 - S_pd * s.al_pd / s.TR_pd) /
14+
(S_pd / s.al_pd - S_t1 / s.al_t1),
15+
0.,
16+
10.);
17+
auto const A =
18+
std::max((S_pd * S_t1 / B1) * (s.TR_pd * s.al_t1 / s.al_pd - s.TR_t1 * s.al_pd / s.al_t1) /
19+
(S_t1 * s.TR_pd * s.al_t1 - S_pd * s.TR_t1 * s.al_pd),
20+
0.);
21+
auto const d = (A * s.al_mt / S_mt - 1.0) * R1 * s.TR_mt - s.al_mt * s.al_mt / 2;
22+
auto const d_corrected = std::clamp(d * (1.0 - C) / (1.0 - C * B1), 0., 0.1);
1823
return {A, R1, d_corrected * 100};
1924
}

0 commit comments

Comments
 (0)