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); }
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); }
public static RationalFraction operator +(RationalFraction lhs, RationalFraction rhs) { RationalFraction result = new RationalFraction(lhs); result.Add(rhs); return(result); }
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(); }
public void Add(RationalFraction src) { storage.Add(new RationalFraction(src)); version++; }
public RationalFraction(RationalFraction src) { numerator = src.numerator; denumerator = src.denumerator; }