vect-floating-accelerate-0.1.0.2: Accelerate instances for vect-floating types

Safe HaskellNone

Data.Vect.Floating.Accelerate.Instances

Description

This module exports vect-floating instances to make Vec2, Normal2, Vec3, Normal3, Vec4, Normal4, Quaternion, and UnitQuaternion compatible with accelerate.

The instances are defined:

Vec2 Accelerate Instances:

  • instance Elt a => Elt (Vec2 a)
  • instance IsTuple (Vec2 a)
  • instance (Lift Exp a, Elt (Plain a)) => Lift Exp (Vec2 a)
  • instance (Elt a) => Unlift Exp (Vec2 (Exp a))

Normal2 Accelerate Instances:

  • instance (Elt a, Floating a) => Elt (Normal2 a)
  • instance Floating a => IsTuple (Normal2 a)
  • instance (Lift Exp a, Elt (Plain a), Floating a, Floating (Plain a)) => Lift Exp (Normal2 a)
  • instance (Elt a, Floating a, IsFloating a) => Unlift Exp (Normal2 (Exp a))

Vec3 Accelerate Instances:

  • instance Elt a => Elt (Vec3 a)
  • instance IsTuple (Vec3 a)
  • instance (Lift Exp a, Elt (Plain a)) => Lift Exp (Vec3 a)
  • instance Elt a => Unlift Exp (Vec3 (Exp a))

Normal3 Accelerate Instances:

  • instance (Elt a, Floating a) => Elt (Normal3 a)
  • instance Floating a => IsTuple (Normal3 a)
  • instance (Lift Exp a, Elt (Plain a), Floating a, Floating (Plain a)) => Lift Exp (Normal3 a)
  • instance (Elt a, Floating a, IsFloating a) => Unlift Exp (Normal3 (Exp a))

Vec4 Accelerate Instances:

  • instance Elt a => Elt (Vec4 a)
  • instance IsTuple (Vec4 a)
  • instance (Lift Exp a, Elt (Plain a)) => Lift Exp (Vec4 a)
  • instance Elt a => Unlift Exp (Vec4 (Exp a))

Normal4 Accelerate Instances:

  • instance (Elt a, Floating a) => Elt (Normal4 a)
  • instance Floating a => IsTuple (Normal4 a)
  • instance (Lift Exp a, Elt (Plain a), Floating a, Floating (Plain a)) => Lift Exp (Normal4 a)
  • instance (Elt a, Floating a, IsFloating a) => Unlift Exp (Normal4 (Exp a))

Quaternion Accelerate Instances:

  • instance Elt a => Elt (Quaternion a)
  • instance IsTuple (Quaternion a)
  • instance (Lift Exp a, Elt (Plain a)) => Lift Exp (Quaternion a)
  • instance Elt a => Unlift Exp (Quaternion (Exp a))

UnitQuaternion Accelerate Instances:

  • instance (Elt a, Floating a) => Elt (UnitQuaternion a)
  • instance Floating a => IsTuple (UnitQuaternion a)
  • instance (Lift Exp a, Elt (Plain a), Floating a, Floating (Plain a)) => Lift Exp (UnitQuaternion a)
  • instance (Elt a, IsFloating a) => Unlift Exp (UnitQuaternion (Exp a))