1.20.8 [2018.07.03] ------------------- * Add instances of the `Field` classes from `lens`. * Add `Epsilon` instance for `Complex`. * Use specialized implementations of the `null` and `length` methods in `Foldable` instances. * Add `Hashable1` instances for data types in `linear`. Also add a `Hashable` instance for `V`. * Fix a bug in which `Quaternion`s were incorrectly exponentiated. 1.20.7 ------ * Support `semigroupoids-5.2.1` and `doctest-0.12` 1.20.6 ------ * Revamp `Setup.hs` to use `cabal-doctest`. This makes it build with `Cabal-2.0`, and makes the `doctest`s work with `cabal new-build` and sandboxes. * Make `(1 / x)` and `recip x` agree in the `Fractional` instance for `Quaternion` * Use newtype instances for `Point` vectors in `Linear.Affine` * Enable `PolyKinds` in `Linear.Trace`. Also enable `PolyKinds` when GHC 7.6 or later is used (previously, it was GHC 7.8 or later). * Fix a segfault arising from the `MVector` instance for `V` * Add `Finite` class for conversion between `V` and fixed-size vector types 1.20.5 ------ * GHC 8 compatibility * Fixed the `perspective` calculation. 1.20.4 ------ * Compatibility with `base-orphans` 0.5 1.20.3 ------ * Support `vector` 0.11.0.0. * Support `cereal` 0.5 * You can now unboxed vectors of `V n` vectors. 1.20.2 ------ * Modified the `doctest` machinery to work with `stack` and builds to non-standard locations. * Removed the local `.ghci` file. * Various numerical stability improvements were made to the quaternion and projection functions. 1.20.1 ------ * Fixed doctests broken by the previous change. * Unboxed vector instances for various linear data types now use unpacked integers even on older GHCs. 1.20 ---- * `inv22`, `inv33` and `inv44` no longer attempt an epsilon check. They no longer return a `Maybe` result as a consequence. You should filter for the 0 determinant case yourself. 1.19.1.3 -------- * `vector` 0.11.0.0 support 1.19.1.2 -------- * Fix GHC 7.4. 1.19.1.1 -------- * Proper `reflection` 2 support 1.19.1 ------ * `reflection` 2 support 1.19 ---- * Change the Ixed instance for `Linear.V` to use `Int` as the index type. This makes `V n` a _lot_ easier to use. 1.18.3 ------ * Compile warning-free on GHC 7.10. 1.18.2 ------ * Added `NFData` instance for `Point` 1.18.1 ------ * Added an `-f-template-haskell` option to allow disabling `template-haskell` support. This is an unsupported configuration but may be useful for expert users in sandbox configurations. * Added lenses for extracting corner various sub-matrices e.g. `_m22`, `_m33` 1.18.0.2 -------- * Fixed builds on even older GHCs. 1.18.0.1 -------- * Fixed the test suite. * Fixed builds on older GHCs. 1.18 ---- * Consolidated `eye2` .. `eye4` into a single `identity` combinator. * Fixed the `Data` instance `V n a` for GHC 7.10-RC3. 1.17.1.1 -------- * `filepath` 1.4 support 1.17.1 ------ * Added support for `Data.Functor.Classes` from `transformers` 0.5 via `transformers-compat`. * Added missing support for `binary`, `bytes` and `cereal` for `Point` 1.17 ---- * Better support for `binary`. Added support for `bytes` and `cereal` 1.16.4 ------ * `ortho` and `inverseOrtho` now only require a `Fractional` constraint. * Added missing `Floating` instances. 1.16.3 ---- * Improve the performance of `fromQuaternion`, `mkTransformation`, `mkTransformationMat`, `basisFor`, `scaled` by using implementations that inline well for functions that were previously reference implementations. 1.16.2 ---- * Added `NFData` instances for the various vector types. * Added `!!/` operator for matrix division by scalar. 1.16.1 ---- * Added `Trace` instance for `V1`. 1.16 ---- * Renamed `kronecker` to `scaled`. 1.15.5 ------ * Added `Metric` instances for `[]`, `ZipList`, `Maybe` * Added `det44` and `inv44` to `Linear.Matrix` * Added `Data` instance for `Point` 1.15.4 ------ * Added Typeable and Data instances for V 1.15.3 ------ * Added missing `FunctorWithIndex`, `FoldableWithIndex` and `TraversableWithIndex Int (V n)` instances for `V` 1.15.2 ------ * Added `frustum`, analogous to the old `glFrustum` call. * Added `inverseInfinitePerspective`, `inverseOrtho`, `inverseFrustum`. 1.15.1 ------ * Added `inversePerspective`. It is much more accurate to compute it directly than to compute an inverse. 1.15.0.1 -------- * Fixed build failures caused by `Linear` re-exporting the old name. 1.15 ---- * Renamed `Linear.Perspective` to `Linear.Projection`. * Fixed a build issue with GHC HEAD. 1.14.0.1 -------- * Fixed test failures caused by 1.14 1.14 ---- * Moved `Coincides` to `Linear.Plucker.Coincides`. The constructors `Line` and `Ray` oft collided with user code. 1.13 ---- * Switched 'ortho' to follow the OpenGL handedness. 1.12.1 ------ * Added "swizzle" lenses **e.g.** `_yzx`, which are useful for working with libraries like `gl`. 1.12 ------ * Added 'transpose' * Added missing 'Mxy' matrices up to 4 dimensions -- they were commonly reimplemented by users. 1.11.3 ------ * Fixed an issue with `UndecidableInstances` on GHC 7.6.3 1.11.2 ------ * Added `Linear.Perspective`. 1.11.1 ------ * Added `_Point`, `relative` and a few instances for `Point`. 1.11 ---- * Changed the 'representation' of `V n` from `E (V n)`, which was hard to use, to `Int`, which is a bit too permissive, but is easy to use. 1.10.1 ------ * Added `Linear.V2.angle`. 1.10 ---- * Added `Hashable` instances. 1.9.1 ----- * Added a role annotation to `V n a` to prevent users from using GHC 7.8's `Coercible` machinery to violate invariants. 1.9.0.1 ----- * Fixed a broken build 1.9 --- * Added `MonadZip` instances. * Added `MonadFix` instances. * Added `Control.Lens.Each.Each` instances 1.8.1 ----- * Bugfixed `slerp` 1.8 --- * Added missing `Unbox` instances for working with unboxed vectors of `linear` data types. 1.7 --- * Fixed `axisAngle` * `unit` now has a rank 1 type. 1.5 --- * `lens` 4 compatibility 1.4 --- * Renamed `incore` to `column` and added an example. 1.3.1.1 ------- * Build bugfix 1.3.1 --- * Better implementations of `basis` and `basisFor`. * Derived Generic instances. 1.2 --- * Improved matrix multiplication to properly support the sparse/sparse case. 1.1.4 ----- * Marked modules `Trustworthy` as necessary. 1.1.2 ----- * Dependency bump for `reflection` compatibility 1.1.1 ----- * Fixed an infinite loop in the default definition of `liftI2`. 1.1 --- * Added `Additive` instances for `[]`, `Maybe` and `Vector`. 1.0 --- * Strict vectors * Exported `mkTransformationMat` * Bumped dependency bounds 0.9.1 [bug fix] ----- * Exported `Linear.V0`! 0.9 --- * Added sparse vector support. 0.8 --- * Added `Linear.V0` 0.7 --- * Added `Linear.Instances` * More documentation 0.6 --- * Removed the direct dependency on `lens`. * Added `Linear.Core` to cover vector spaces as corepresentable functors. 0.5 ------- * Added `Ix` instances for `V2`, `V3`, and `V4` 0.4.2.2 ------- * Removed the upper bound on `distributive` 0.2 --- * Initial hackage release