Explorar o código

[consensus/state] refactor f error function

mohab metwally %!s(int64=3) %!d(string=hai) anos
pai
achega
1d7a3f8b2e
Modificáronse 1 ficheiros con 5 adicións e 37 borrados
  1. 5 37
      src/consensus/state.rs

+ 5 - 37
src/consensus/state.rs

@@ -413,47 +413,15 @@ impl ConsensusState {
 
     }
 
-    fn pid_error(feedback: Float10) -> Float10 {
-        let target = constants::FLOAT10_ONE.clone();
-        target - feedback
-    }
 
-    fn max_windowed_forks(&self) -> Float10 {
-        let mut max: u64 = 5;
-        let window_size = 10;
+    fn f_err(&mut self) -> Float10 {
         let len = self.leaders_history.len();
-        let window_begining = if len <= (window_size + 1) { 0 } else { len - (window_size + 1) };
-        for item in &self.leaders_history[window_begining..] {
-            if *item > max {
-                max = *item;
-            }
-        }
-
-        Float10::try_from(max as i64).unwrap()
-    }
-
-
-
-    fn zero_leads_len(&self) -> Float10 {
-        let mut count = constants::FLOAT10_ZERO.clone();
-        let hist_len = self.leaders_history.len();
-        for i in 1..hist_len {
-            if self.leaders_history[hist_len - i] == 0 {
-                count += constants::FLOAT10_ONE.clone();
-            } else {
-                break
-            }
-        }
-        count
+        let feedback = Float10::try_from(self.leaders_history[len-1] as i64).unwrap().with_precision(constants::RADIX_BITS).value();
+        let target = constants::FLOAT10_ONE.clone();
+        target - feedback
     }
 
 
-    fn f_dif(&mut self) -> Float10 {
-        let len = self.leaders_history.len();
-        Self::pid_error(Float10::try_from(self.leaders_history[len-1] as i64).unwrap().with_precision(constants::RADIX_BITS).value())
-
-    }
-
     fn discrete_pid(&mut self) -> Float10 {
         let k1 =  constants::KP.clone() +
             constants::KI.clone() +
@@ -461,7 +429,7 @@ impl ConsensusState {
         let k2 = constants::FLOAT10_NEG_ONE.clone() * constants::KP.clone() + constants::FLOAT10_NEG_TWO.clone() * constants::KD.clone();
         let k3 = constants::KD.clone();
         let f_len = self.f_history.len();
-        let err = self.f_dif();
+        let err = self.f_err();
         let err_len = self.err_history.len();
         let ret = self.f_history[f_len-1].clone() +
             k1.clone() * err.clone() +