Ejemplo n.º 1
0
        private void UpdateMaxDoublet(ref Doublet <TLink> doublet, LinkFrequency <TLink> data)
        {
            var frequency    = data.Frequency;
            var maxFrequency = _maxDoubletData.Frequency;

            //if (frequency > _minFrequencyToCompress && (maxFrequency < frequency || (maxFrequency == frequency && doublet.Source + doublet.Target < /* gives better compression string data (and gives collisions quickly) */ _maxDoublet.Source + _maxDoublet.Target)))
            if (_comparer.Compare(frequency, _minFrequencyToCompress) > 0 &&
                (_comparer.Compare(maxFrequency, frequency) < 0 || (_equalityComparer.Equals(maxFrequency, frequency) && _comparer.Compare(Arithmetic.Add(doublet.Source, doublet.Target), Arithmetic.Add(_maxDoublet.Source, _maxDoublet.Target)) > 0))) /* gives better stability and better compression on sequent data and even on rundom numbers data (but gives collisions anyway) */
            {
                _maxDoublet     = doublet;
                _maxDoubletData = data;
            }
        }
Ejemplo n.º 2
0
 public HalfDoublet(TLink element, LinkFrequency <TLink> doubletData)
 {
     Element     = element;
     DoubletData = doubletData;
 }
Ejemplo n.º 3
0
 private void ResetMaxDoublet()
 {
     _maxDoublet     = new Doublet <TLink>();
     _maxDoubletData = new LinkFrequency <TLink>();
 }