Open recursion-ninja opened 5 years ago
I added the module Numeric.Cost
in the pcg-utility
package along with an accompanying test suite. See this commit f6d0b1f .
We should consider using this Cost
type for the weights of characters along with the resulting cost of our scored graph objects. This would be the next step for this issue. The result would be no rounding errors in our codebase. The only possible exception to this is for continuous character optimization, as they are still implemented using Double
values.
Currently, our "cost" type is a
Double
or a new-typedDouble
labeledExtendedReal
.Our use-case for
Cost
does not overlap well with theNum
and related "numeric" type-class instances.Our
Cost
should have the following invariants:We could represent
Cost
as a non-negative rational number and aMonoid
under addition.