}
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
}
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;
}