public void Add(Double val)
 {
     if (Double.IsNaN(val)) return;
     lock (m_buffer) {
         m_buffer[m_current] = new RA_Item(val);
         m_current = _next(m_current);
     }
 }
 public void Reset()
 {
     for (int i = 0; i < _N_; i++)
         m_buffer[i] = new RA_Item();
 }