7 template <
typename TVector>
14 bool operator()(
const TVector& l,
const TVector& r)
const 16 assert(l.rows() == r.rows());
22 return std::tie(l[0], l[1]) < std::tie(r[0], r[1]);
24 return std::tie(l[0], l[1], l[2]) < std::tie(r[0], r[1], r[2]);
32 template <
typename TResult,
typename TNaturalCoords,
typename TCompare = CompareVector<TNaturalCoords>>
48 const TResult&
Get(
const TNaturalCoords&
v)
const 50 auto it = mCache.find(v);
51 if (it == mCache.end())
62 it = mCache.emplace_hint(it, v, mFunction(v));
75 mutable std::map<TNaturalCoords, TResult, TCompare> mCache;
77 std::function<TResult(TNaturalCoords)> mFunction;
const TResult & Get(const TNaturalCoords &v) const
returns the value of the function for the given arguments.
Definition: NaturalCoordinateMemoizer.h:48
bool operator()(const TVector &l, const TVector &r) const
defines a compare operator, following the compare concept http://en.cppreference.com/w/cpp/concept/Co...
Definition: NaturalCoordinateMemoizer.h:14
NaturalCoordinateMemoizerMap(std::function< TResult(TNaturalCoords)> function)
ctor
Definition: NaturalCoordinateMemoizer.h:38
Definition: NaturalCoordinateMemoizer.h:8
int v
Definition: Quad2DPatchTest.py:9
Definition: Exception.h:6
Definition: NaturalCoordinateMemoizer.h:33
void ClearCache() const
Definition: NaturalCoordinateMemoizer.h:68