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 > ,
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 >| {
0 commit comments