Commits

Show all
Author Commit Message Labels Comments Date
Thijs Alkemade
This doesn't need to be a family.
Branches
TypeNats
Thijs Alkemade
Merged default into TypeNats.
Branches
TypeNats
Thijs Alkemade
INLINE a number of funcitons, and provide rules to rewrite multiple coercions. MapEq now doesn't take a Bool parameter anymore, as it was unnecessary. Some refactoring.
Thijs Alkemade
Added a bunch of INLINE pragmas to simple functions.
Thijs Alkemade
This instance can be more general and faster.
Thijs Alkemade
Merged.
Thijs Alkemade
Added instance for Enum (Value a b f).
Takayuki Muranushi
dimensional computation now possible over arrays.
Takayuki Muranushi
make this test pass: unboxed dimensional computation.
Takayuki Muranushi
you can construct dimensional unboxed vectors and Repa arrays. (but you cannot compute over them.)
Takayuki Muranushi
now we can put dimensional values into unboxed vectors.
Takayuki Muranushi
make this test pass.
Takayuki Muranushi
start testing unbox.
Thijs Alkemade
Implemented value demotion: given necessary Typeable instances, it's possible to extract the unit and the dimension as Map TypeRep Integers.
Thijs Alkemade
Reordered Value f a b into Value a b f, so many typeclasses can be defined over the enclosed value. Added instances for Functor, Monad, Applicative, Monoid, Foldable and Traversable, because they can be easily defined. For most I'm not sure if they're useful, as they limit the used values to the same dimension and unit.
Thijs Alkemade
This instance was no longer necessary.
Branches
TypeNats
Thijs Alkemade
Switched from the custom type level naturals to GHC.TypeLits. Will only work with the type-nats git branch of GHC currently. This makes compilation ~10x as fast for certain (weird) examples.
Branches
TypeNats
Thijs Alkemade
Rewrote all type classes into type families, cleaning up a lot of code. GHC HEAD now features ordered overlapping type families, so I was finally able to express the type-level maps using type families. Will probably not work till 7.8.
Branches
OverlappingTypeFamilies
Takayuki Muranushi
test update.
Thijs Alkemade
Updated the README. Increased the priorty of the half-unit binary operators. This is necessary to properly be able to mix |*| and *|, however, maybe priority 9 is a bit too high for such an operator...
Thijs Alkemade
Following Takayuki Muranushi's suggestion, replaced all uses of .*., ./. with |*|, |/|, where the | means that side uses a unit. So, this also adds: |*, /|, |/, |+, etc. This makes it easier to modify the underlying value, while maintaining the unit. Removed the pow* functions, as these were broken.
Takayuki Muranushi
SI prefixes do not overwrite the contained value. fix #2 .
Takayuki Muranushi
rename ~> to *| in tests, too.
Takayuki Muranushi
rename ~> as *| .
Thijs Alkemade
Replaced show_unit with toSuperScript.
Thijs Alkemade
This failed with mueval. Let's see if it works like this.
Thijs Alkemade
Add the language pragmas every, so I don't have to use cabal. Fix a kind signature in Meta.
Thijs Alkemade
Updated a lot of haddock comments, removed some unused code and exports.
Thijs Alkemade
Added a shorthand for singleton lists with value POne. Made all proxies empty datatypes. Implemented prettier notation for higher power units.
Thijs Alkemade
Switched to the automatically lifted lists with tuples, instead of my own map. Everything seems to work again, except: - My weird instances for Num were broken, I've removed them. - Pow doesn't work yet.
  1. Prev
  2. Next