Пример #1
0
        /*
         *      public int CalculateDistance(IHashItem dist)
         * {
         *
         *  ulong x = ((Hash256Item) dist).Hash1 ^ Hash1;
         *  ulong w = ((Hash256Item) dist).Hash2 ^ Hash2;
         *  ulong y = ((Hash256Item) dist).Hash3 ^ Hash3;
         *  ulong z = ((Hash256Item) dist).Hash4 ^ Hash4;
         *
         *  x -= (x >> 1) & 0x5555555555555555;
         *  w -= (w >> 1) & 0x5555555555555555;
         *  y -= (y >> 1) & 0x5555555555555555;
         *  z -= (z >> 1) & 0x5555555555555555;
         *  x = (x & 0x3333333333333333) + ((x >> 2) & 0x3333333333333333);
         *  w = (w & 0x3333333333333333) + ((w >> 2) & 0x3333333333333333);
         *  y = (y & 0x3333333333333333) + ((y >> 2) & 0x3333333333333333);
         *  z = (z & 0x3333333333333333) + ((z >> 2) & 0x3333333333333333);
         *  x = (x + (x >> 4)) & 0x0f0f0f0f0f0f0f0f;
         *  w = (w + (w >> 4)) & 0x0f0f0f0f0f0f0f0f;
         *  y = (y + (y >> 4)) & 0x0f0f0f0f0f0f0f0f;
         *  z = (z + (z >> 4)) & 0x0f0f0f0f0f0f0f0f;
         *  x += x >> 8;
         *  w += w >> 8;
         *  y += y >> 8;
         *  z += z >> 8;
         *  x += x >> 16;
         *  w += w >> 16;
         *  y += y >> 16;
         *  z += z >> 16;
         *  x += x >> 32;
         *  w += w >> 32;
         *  y += y >> 32;
         *  z += z >> 32;
         *  return (int) (x & 0x7f) + (int) (w & 0x7f) + (int) (y & 0x7f) + (int) (z & 0x7f);
         *
         * }*/
        public int CompareTo(object obj)
        {
            Hash256Item <T> b = (Hash256Item <T>)obj;

            return(SortDistance.CompareTo(b.SortDistance));
        }
        public int CompareTo(object obj)
        {
            Hash256LookUpItem b = (Hash256LookUpItem)obj;

            return(SortDistance.CompareTo(b.SortDistance));
        }