feldspar-language-0.6.0.2: A functional embedded language for DSP and parallelism

Safe Haskell | None

Feldspar.Core.Constructs.Bits

Description

Implementation of constructs and operations on `Bits`

Synopsis

- data BITS a where
  - BAnd :: (Type a, Bits a, BoundedInt a, Size a ~ Range a) => BITS (a :-> (a :-> Full a))
  - BOr :: (Type a, Bits a, BoundedInt a, Size a ~ Range a) => BITS (a :-> (a :-> Full a))
  - BXor :: (Type a, Bits a, BoundedInt a, Size a ~ Range a) => BITS (a :-> (a :-> Full a))
  - Complement :: (Type a, Bits a, BoundedInt a, Size a ~ Range a) => BITS (a :-> Full a)
  - Bit :: (Type a, Bits a, BoundedInt a, Size a ~ Range a) => BITS (Index :-> Full a)
  - SetBit :: (Type a, Bits a, BoundedInt a, Size a ~ Range a) => BITS (a :-> (Index :-> Full a))
  - ClearBit :: (Type a, Bits a, BoundedInt a, Size a ~ Range a) => BITS (a :-> (Index :-> Full a))
  - ComplementBit :: (Type a, Bits a, BoundedInt a, Size a ~ Range a) => BITS (a :-> (Index :-> Full a))
  - TestBit :: (Type a, Bits a, BoundedInt a, Size a ~ Range a) => BITS (a :-> (Index :-> Full Bool))
  - ShiftLU :: (Type a, Bits a, BoundedInt a, Size a ~ Range a) => BITS (a :-> (Index :-> Full a))
  - ShiftRU :: (Type a, Bits a, BoundedInt a, Size a ~ Range a) => BITS (a :-> (Index :-> Full a))
  - ShiftL :: (Type a, Bits a, BoundedInt a, Size a ~ Range a) => BITS (a :-> (IntN :-> Full a))
  - ShiftR :: (Type a, Bits a, BoundedInt a, Size a ~ Range a) => BITS (a :-> (IntN :-> Full a))
  - RotateLU :: (Type a, Bits a, BoundedInt a, Size a ~ Range a) => BITS (a :-> (Index :-> Full a))
  - RotateRU :: (Type a, Bits a, BoundedInt a, Size a ~ Range a) => BITS (a :-> (Index :-> Full a))
  - RotateL :: (Type a, Bits a, BoundedInt a, Size a ~ Range a) => BITS (a :-> (IntN :-> Full a))
  - RotateR :: (Type a, Bits a, BoundedInt a, Size a ~ Range a) => BITS (a :-> (IntN :-> Full a))
  - ReverseBits :: (Type a, Bits a, BoundedInt a, Size a ~ Range a) => BITS (a :-> Full a)
  - BitScan :: (Type a, Bits a, BoundedInt a, Size a ~ Range a) => BITS (a :-> Full Index)
  - BitCount :: (Type a, Bits a, BoundedInt a, Size a ~ Range a) => BITS (a :-> Full Index)
  - IsSigned :: (Type a, Bits a, BoundedInt a, Size a ~ Range a) => BITS (a :-> Full Bool)

# Documentation

data BITS a where

Bits constructs

Constructors

BAnd :: (Type a, Bits a, BoundedInt a, Size a ~ Range a) => BITS (a :-> (a :-> Full a)) |
BOr :: (Type a, Bits a, BoundedInt a, Size a ~ Range a) => BITS (a :-> (a :-> Full a)) |
BXor :: (Type a, Bits a, BoundedInt a, Size a ~ Range a) => BITS (a :-> (a :-> Full a)) |
Complement :: (Type a, Bits a, BoundedInt a, Size a ~ Range a) => BITS (a :-> Full a) |
Bit :: (Type a, Bits a, BoundedInt a, Size a ~ Range a) => BITS (Index :-> Full a) |
SetBit :: (Type a, Bits a, BoundedInt a, Size a ~ Range a) => BITS (a :-> (Index :-> Full a)) |
ClearBit :: (Type a, Bits a, BoundedInt a, Size a ~ Range a) => BITS (a :-> (Index :-> Full a)) |
ComplementBit :: (Type a, Bits a, BoundedInt a, Size a ~ Range a) => BITS (a :-> (Index :-> Full a)) |
TestBit :: (Type a, Bits a, BoundedInt a, Size a ~ Range a) => BITS (a :-> (Index :-> Full Bool)) |
ShiftLU :: (Type a, Bits a, BoundedInt a, Size a ~ Range a) => BITS (a :-> (Index :-> Full a)) |
ShiftRU :: (Type a, Bits a, BoundedInt a, Size a ~ Range a) => BITS (a :-> (Index :-> Full a)) |
ShiftL :: (Type a, Bits a, BoundedInt a, Size a ~ Range a) => BITS (a :-> (IntN :-> Full a)) |
ShiftR :: (Type a, Bits a, BoundedInt a, Size a ~ Range a) => BITS (a :-> (IntN :-> Full a)) |
RotateLU :: (Type a, Bits a, BoundedInt a, Size a ~ Range a) => BITS (a :-> (Index :-> Full a)) |
RotateRU :: (Type a, Bits a, BoundedInt a, Size a ~ Range a) => BITS (a :-> (Index :-> Full a)) |
RotateL :: (Type a, Bits a, BoundedInt a, Size a ~ Range a) => BITS (a :-> (IntN :-> Full a)) |
RotateR :: (Type a, Bits a, BoundedInt a, Size a ~ Range a) => BITS (a :-> (IntN :-> Full a)) |
ReverseBits :: (Type a, Bits a, BoundedInt a, Size a ~ Range a) => BITS (a :-> Full a) |
BitScan :: (Type a, Bits a, BoundedInt a, Size a ~ Range a) => BITS (a :-> Full Index) |
BitCount :: (Type a, Bits a, BoundedInt a, Size a ~ Range a) => BITS (a :-> Full Index) |
IsSigned :: (Type a, Bits a, BoundedInt a, Size a ~ Range a) => BITS (a :-> Full Bool) |

Instances

EvalBind BITS |
Semantic BITS |
Eval BITS |
Render BITS |
ToTree BITS |
Equality BITS |
Sharable BITS |
AlphaEq dom dom dom env => AlphaEq BITS BITS dom env |
SizeProp (:|| BITS Type) |
(:<: (:|| BITS Type) dom, :<: (:|| Logic Type) dom, :<: (:|| EQ Type) dom, :<: (:|| ORD Type) dom, OptimizeSuper dom) => Optimize (:|| BITS Type) dom |