f include ms/ns time parts when decaying
authorMatt Corallo <git@bluematt.me>
Tue, 5 Dec 2023 17:51:31 +0000 (17:51 +0000)
committerMatt Corallo <git@bluematt.me>
Sat, 9 Dec 2023 00:53:48 +0000 (00:53 +0000)
lightning/src/routing/scoring.rs

index 6a9f7266999de1f6256d1a418b9c47f5be9b9c49..329b2697d71ca9158c7b47981d87ec80fe5ba386 100644 (file)
@@ -1074,10 +1074,10 @@ impl<T: Time> ChannelLiquidity<T> {
        }
 
        fn decayed_offset(&self, offset: u64, decay_params: ProbabilisticScoringDecayParameters) -> u64 {
-               let half_life = decay_params.liquidity_offset_half_life.as_secs();
-               if half_life != 0 {
-                       let elapsed_time = T::now().duration_since(self.last_updated).as_secs() as f64;
-                       ((offset as f64) * powf64(0.5, elapsed_time / (half_life as f64))) as u64
+               let half_life = decay_params.liquidity_offset_half_life.as_secs_f64();
+               if half_life != 0.0 {
+                       let elapsed_time = T::now().duration_since(self.last_updated).as_secs_f64();
+                       ((offset as f64) * powf64(0.5, elapsed_time / half_life)) as u64
                } else {
                        0
                }
@@ -1508,8 +1508,8 @@ impl<G: Deref<Target = NetworkGraph<L>>, L: Deref, T: Time> ScoreUpdate for Prob
                        let elapsed_time =
                                T::now().duration_since(liquidity.offset_history_last_updated);
                        if elapsed_time > decay_params.historical_no_updates_half_life {
-                               let half_life = decay_params.historical_no_updates_half_life.as_secs() as f64;
-                               let divisor = powf64(2048.0, (elapsed_time.as_secs() as f64) / half_life) as u64;
+                               let half_life = decay_params.historical_no_updates_half_life.as_secs_f64();
+                               let divisor = powf64(2048.0, elapsed_time.as_secs_f64() / half_life) as u64;
                                for bucket in liquidity.min_liquidity_offset_history.buckets.iter_mut() {
                                        *bucket = ((*bucket as u64) * 1024 / divisor) as u16;
                                }