Skip to content

Commit 269e358

Browse files
committed
TimeSeries::m_chi2
1 parent 83908b9 commit 269e358

File tree

3 files changed

+16
-11
lines changed

3 files changed

+16
-11
lines changed

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
99

1010
### Added
1111

12-
--
12+
- `m_chi2` attribute and `get_m_chi2` method for `TimeSeries`
1313

1414
### Changed
1515

src/data/time_series.rs

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ where
2121
pub m: DataSample<'a, T>,
2222
pub w: DataSample<'a, T>,
2323
m_weighted_mean: Option<T>,
24+
m_chi2: Option<T>,
2425
m_reduced_chi2: Option<T>,
2526
t_max_m: Option<T>,
2627
t_min_m: Option<T>,
@@ -84,6 +85,7 @@ where
8485
m,
8586
w,
8687
m_weighted_mean: None,
88+
m_chi2: None,
8789
m_reduced_chi2: None,
8890
t_max_m: None,
8991
t_min_m: None,
@@ -116,6 +118,7 @@ where
116118
m,
117119
w,
118120
m_weighted_mean: None,
121+
m_chi2: None,
119122
m_reduced_chi2: None,
120123
t_max_m: None,
121124
t_min_m: None,
@@ -140,20 +143,23 @@ where
140143
|ts: &mut TimeSeries<T>| { ts.m.sample.weighted_mean(&ts.w.sample).unwrap() }
141144
);
142145

143-
time_series_getter!(m_reduced_chi2, get_m_reduced_chi2, |ts: &mut TimeSeries<
144-
T,
145-
>| {
146+
time_series_getter!(m_chi2, get_m_chi2, |ts: &mut TimeSeries<T>| {
146147
let m_weighed_mean = ts.get_m_weighted_mean();
147-
let m_reduced_chi2 = Zip::from(&ts.m.sample)
148+
let m_chi2 = Zip::from(&ts.m.sample)
148149
.and(&ts.w.sample)
149150
.fold(T::zero(), |chi2, &m, &w| {
150151
chi2 + (m - m_weighed_mean).powi(2) * w
151-
})
152-
/ (ts.lenf() - T::one());
153-
if m_reduced_chi2.is_zero() {
152+
});
153+
if m_chi2.is_zero() {
154154
ts.plateau = Some(true);
155155
}
156-
m_reduced_chi2
156+
m_chi2
157+
});
158+
159+
time_series_getter!(m_reduced_chi2, get_m_reduced_chi2, |ts: &mut TimeSeries<
160+
T,
161+
>| {
162+
ts.get_m_chi2() / (ts.lenf() - T::one())
157163
});
158164

159165
time_series_getter!(bool, plateau, is_plateau, |ts: &mut TimeSeries<T>| {

src/features/stetson_k.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,12 +62,11 @@ where
6262
T: Float,
6363
{
6464
fn eval_no_ts_check(&self, ts: &mut TimeSeries<T>) -> Result<Vec<T>, EvaluatorError> {
65-
let chi2 = ts.get_m_reduced_chi2() * (ts.lenf() - T::one());
6665
let mean = ts.get_m_weighted_mean();
6766
let value = Zip::from(&ts.m.sample)
6867
.and(&ts.w.sample)
6968
.fold(T::zero(), |acc, &y, &w| acc + T::abs(y - mean) * T::sqrt(w))
70-
/ T::sqrt(ts.lenf() * chi2);
69+
/ T::sqrt(ts.lenf() * ts.get_m_chi2());
7170
Ok(vec![value])
7271
}
7372
}

0 commit comments

Comments
 (0)