コード例 #1
0
        public List <RationalFraction> GetMoreThan(RationalFraction src)
        {
            if (storage.Count == 0) // if collection is empty return null
            {
                return(null);
            }

            Query query = new Query(QueryType.GET_MORE_THAN,
                                    src.GetNumerator(), src.GetDenumerator()); //form query to cache
            List <RationalFraction> result = cache.Get(query, version);        // trying to get from cache

            if (result == null)                                                // if cache returned no result then find answer
            {
                result = new List <RationalFraction>();
                foreach (RationalFraction fraction in storage)
                {
                    if (fraction > src)
                    {
                        result.Add(fraction);
                    }
                }
                cache.Put(query, result, version); //put answer in cache
            }
            return(result);
        }
コード例 #2
0
        public RationalFraction GetMin()
        {
            if (storage.Count == 0) // if collection is empty return null
            {
                return(null);
            }

            Query query = new Query(QueryType.GET_MIN);                 //form query to cache
            List <RationalFraction> result = cache.Get(query, version); // trying to get from cache
            RationalFraction        tmp    = storage[0];

            if (result == null) // if cache returned no result then find answer
            {
                result = new List <RationalFraction>();
                foreach (RationalFraction fraction in storage)
                {
                    if (fraction < tmp)
                    {
                        tmp = fraction;
                    }
                }
                cache.Put(query, result, version); //put answer in cache
            }
            return(tmp);
        }
コード例 #3
0
        public static RationalFraction operator +(RationalFraction lhs, RationalFraction rhs)
        {
            RationalFraction result = new RationalFraction(lhs);

            result.Add(rhs);
            return(result);
        }
コード例 #4
0
        public void Add(RationalFraction rhs)
        {
            ulong temp = FindLeastCommonMultiple(denumerator, rhs.denumerator);

            numerator   = numerator * (long)(temp / denumerator) + rhs.numerator * (long)(temp / rhs.denumerator);
            denumerator = temp;
            Refresh();
        }
コード例 #5
0
 public void Add(RationalFraction src)
 {
     storage.Add(new RationalFraction(src));
     version++;
 }
コード例 #6
0
 public RationalFraction(RationalFraction src)
 {
     numerator   = src.numerator;
     denumerator = src.denumerator;
 }