packages feed

geomancy-0.4.0.0: src/Geomancy/Swizzle/U64Vec/Down.hs

{-# LANGUAGE BlockArguments #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# OPTIONS_GHC -Wno-orphans #-}

module Geomancy.Swizzle.U64Vec.Down () where

import GHC.Records (HasField(..))

import Geomancy.U64Vec2 (U64Vec2, u64vec2)
import Geomancy.U64Vec3 (U64Vec3, u64vec3, withU64Vec3)
import Geomancy.U64Vec4 (U64Vec4, withU64Vec4)

instance HasField "xx" U64Vec3 U64Vec2 where
  {-# INLINE getField #-}
  getField v = withU64Vec3 v \x _ _ -> u64vec2 x x

instance HasField "xy" U64Vec3 U64Vec2 where
  {-# INLINE getField #-}
  getField v = withU64Vec3 v \x y _ -> u64vec2 x y

instance HasField "xz" U64Vec3 U64Vec2 where
  {-# INLINE getField #-}
  getField v = withU64Vec3 v \x _ z -> u64vec2 x z

instance HasField "yx" U64Vec3 U64Vec2 where
  {-# INLINE getField #-}
  getField v = withU64Vec3 v \x y _ -> u64vec2 y x

instance HasField "yy" U64Vec3 U64Vec2 where
  {-# INLINE getField #-}
  getField v = withU64Vec3 v \_ y _ -> u64vec2 y y

instance HasField "yz" U64Vec3 U64Vec2 where
  {-# INLINE getField #-}
  getField v = withU64Vec3 v \_ y z -> u64vec2 y z

instance HasField "zx" U64Vec3 U64Vec2 where
  {-# INLINE getField #-}
  getField v = withU64Vec3 v \x _ z -> u64vec2 z x

instance HasField "zy" U64Vec3 U64Vec2 where
  {-# INLINE getField #-}
  getField v = withU64Vec3 v \_ y z -> u64vec2 z y

instance HasField "zz" U64Vec3 U64Vec2 where
  {-# INLINE getField #-}
  getField v = withU64Vec3 v \_ _ z -> u64vec2 z z

instance HasField "xx" U64Vec4 U64Vec2 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \x _ _ _ -> u64vec2 x x

instance HasField "xy" U64Vec4 U64Vec2 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \x y _ _ -> u64vec2 x y

instance HasField "xz" U64Vec4 U64Vec2 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \x _ z _ -> u64vec2 x z

instance HasField "xw" U64Vec4 U64Vec2 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \x _ _ w -> u64vec2 x w

instance HasField "yx" U64Vec4 U64Vec2 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \x y _ _ -> u64vec2 y x

instance HasField "yy" U64Vec4 U64Vec2 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \_ y _ _ -> u64vec2 y y

instance HasField "yz" U64Vec4 U64Vec2 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \_ y z _ -> u64vec2 y z

instance HasField "yw" U64Vec4 U64Vec2 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \_ y _ w -> u64vec2 y w

instance HasField "zx" U64Vec4 U64Vec2 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \x _ z _ -> u64vec2 z x

instance HasField "zy" U64Vec4 U64Vec2 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \_ y z _ -> u64vec2 z y

instance HasField "zz" U64Vec4 U64Vec2 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \_ _ z _ -> u64vec2 z z

instance HasField "zw" U64Vec4 U64Vec2 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \_ _ z w -> u64vec2 z w

instance HasField "wx" U64Vec4 U64Vec2 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \x _ _ w -> u64vec2 w x

instance HasField "wy" U64Vec4 U64Vec2 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \_ y _ w -> u64vec2 w y

instance HasField "wz" U64Vec4 U64Vec2 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \_ _ z w -> u64vec2 w z

instance HasField "ww" U64Vec4 U64Vec2 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \_ _ _ w -> u64vec2 w w

instance HasField "xxx" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \x _ _ _ -> u64vec3 x x x

instance HasField "xxy" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \x y _ _ -> u64vec3 x x y

instance HasField "xxz" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \x _ z _ -> u64vec3 x x z

instance HasField "xxw" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \x _ _ w -> u64vec3 x x w

instance HasField "xyx" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \x y _ _ -> u64vec3 x y x

instance HasField "xyy" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \x y _ _ -> u64vec3 x y y

instance HasField "xyz" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \x y z _ -> u64vec3 x y z

instance HasField "xyw" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \x y _ w -> u64vec3 x y w

instance HasField "xzx" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \x _ z _ -> u64vec3 x z x

instance HasField "xzy" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \x y z _ -> u64vec3 x z y

instance HasField "xzz" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \x _ z _ -> u64vec3 x z z

instance HasField "xzw" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \x _ z w -> u64vec3 x z w

instance HasField "xwx" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \x _ _ w -> u64vec3 x w x

instance HasField "xwy" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \x y _ w -> u64vec3 x w y

instance HasField "xwz" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \x _ z w -> u64vec3 x w z

instance HasField "xww" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \x _ _ w -> u64vec3 x w w

instance HasField "yxx" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \x y _ _ -> u64vec3 y x x

instance HasField "yxy" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \x y _ _ -> u64vec3 y x y

instance HasField "yxz" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \x y z _ -> u64vec3 y x z

instance HasField "yxw" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \x y _ w -> u64vec3 y x w

instance HasField "yyx" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \x y _ _ -> u64vec3 y y x

instance HasField "yyy" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \_ y _ _ -> u64vec3 y y y

instance HasField "yyz" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \_ y z _ -> u64vec3 y y z

instance HasField "yyw" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \_ y _ w -> u64vec3 y y w

instance HasField "yzx" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \x y z _ -> u64vec3 y z x

instance HasField "yzy" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \_ y z _ -> u64vec3 y z y

instance HasField "yzz" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \_ y z _ -> u64vec3 y z z

instance HasField "yzw" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \_ y z w -> u64vec3 y z w

instance HasField "ywx" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \x y _ w -> u64vec3 y w x

instance HasField "ywy" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \_ y _ w -> u64vec3 y w y

instance HasField "ywz" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \_ y z w -> u64vec3 y w z

instance HasField "yww" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \_ y _ w -> u64vec3 y w w

instance HasField "zxx" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \x _ z _ -> u64vec3 z x x

instance HasField "zxy" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \x y z _ -> u64vec3 z x y

instance HasField "zxz" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \x _ z _ -> u64vec3 z x z

instance HasField "zxw" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \x _ z w -> u64vec3 z x w

instance HasField "zyx" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \x y z _ -> u64vec3 z y x

instance HasField "zyy" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \_ y z _ -> u64vec3 z y y

instance HasField "zyz" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \_ y z _ -> u64vec3 z y z

instance HasField "zyw" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \_ y z w -> u64vec3 z y w

instance HasField "zzx" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \x _ z _ -> u64vec3 z z x

instance HasField "zzy" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \_ y z _ -> u64vec3 z z y

instance HasField "zzz" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \_ _ z _ -> u64vec3 z z z

instance HasField "zzw" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \_ _ z w -> u64vec3 z z w

instance HasField "zwx" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \x _ z w -> u64vec3 z w x

instance HasField "zwy" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \_ y z w -> u64vec3 z w y

instance HasField "zwz" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \_ _ z w -> u64vec3 z w z

instance HasField "zww" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \_ _ z w -> u64vec3 z w w

instance HasField "wxx" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \x _ _ w -> u64vec3 w x x

instance HasField "wxy" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \x y _ w -> u64vec3 w x y

instance HasField "wxz" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \x _ z w -> u64vec3 w x z

instance HasField "wxw" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \x _ _ w -> u64vec3 w x w

instance HasField "wyx" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \x y _ w -> u64vec3 w y x

instance HasField "wyy" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \_ y _ w -> u64vec3 w y y

instance HasField "wyz" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \_ y z w -> u64vec3 w y z

instance HasField "wyw" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \_ y _ w -> u64vec3 w y w

instance HasField "wzx" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \x _ z w -> u64vec3 w z x

instance HasField "wzy" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \_ y z w -> u64vec3 w z y

instance HasField "wzz" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \_ _ z w -> u64vec3 w z z

instance HasField "wzw" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \_ _ z w -> u64vec3 w z w

instance HasField "wwx" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \x _ _ w -> u64vec3 w w x

instance HasField "wwy" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \_ y _ w -> u64vec3 w w y

instance HasField "wwz" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \_ _ z w -> u64vec3 w w z

instance HasField "www" U64Vec4 U64Vec3 where
  {-# INLINE getField #-}
  getField v = withU64Vec4 v \_ _ _ w -> u64vec3 w w w