--------------------------------------------------------------------------------
-- Copyright © 2011 National Institute of Aerospace / Galois, Inc.
--------------------------------------------------------------------------------

-- | Constants.

{-# LANGUAGE Safe #-}

module Copilot.Language.Operators.Constant
  ( constant
  , constB
  , constW8
  , constW16
  , constW32
  , constW64
  , constI8
  , constI16
  , constI32
  , constI64
  , constF
  , constD
  ) where

import Copilot.Core (Typed)
import Copilot.Language.Stream

import Data.Word
import Data.Int

--------------------------------------------------------------------------------

constant :: Typed a => a -> Stream a
constant :: a -> Stream a
constant = a -> Stream a
forall a. Typed a => a -> Stream a
Const

--------------------------------------------------------------------------------

constB   :: Bool -> Stream Bool
constB :: Bool -> Stream Bool
constB   = Bool -> Stream Bool
forall a. Typed a => a -> Stream a
constant
constW8  :: Word8 -> Stream Word8
constW8 :: Word8 -> Stream Word8
constW8  = Word8 -> Stream Word8
forall a. Typed a => a -> Stream a
constant
constW16 :: Word16 -> Stream Word16
constW16 :: Word16 -> Stream Word16
constW16 = Word16 -> Stream Word16
forall a. Typed a => a -> Stream a
constant
constW32 :: Word32 -> Stream Word32
constW32 :: Word32 -> Stream Word32
constW32 = Word32 -> Stream Word32
forall a. Typed a => a -> Stream a
constant
constW64 :: Word64 -> Stream Word64
constW64 :: Word64 -> Stream Word64
constW64 = Word64 -> Stream Word64
forall a. Typed a => a -> Stream a
constant
constI8  :: Int8 -> Stream Int8
constI8 :: Int8 -> Stream Int8
constI8  = Int8 -> Stream Int8
forall a. Typed a => a -> Stream a
constant
constI16 :: Int16 -> Stream Int16
constI16 :: Int16 -> Stream Int16
constI16 = Int16 -> Stream Int16
forall a. Typed a => a -> Stream a
constant
constI32 :: Int32 -> Stream Int32
constI32 :: Int32 -> Stream Int32
constI32 = Int32 -> Stream Int32
forall a. Typed a => a -> Stream a
constant
constI64 :: Int64 -> Stream Int64
constI64 :: Int64 -> Stream Int64
constI64 = Int64 -> Stream Int64
forall a. Typed a => a -> Stream a
constant
constF   :: Float -> Stream Float
constF :: Float -> Stream Float
constF   = Float -> Stream Float
forall a. Typed a => a -> Stream a
constant
constD   :: Double -> Stream Double
constD :: Double -> Stream Double
constD   = Double -> Stream Double
forall a. Typed a => a -> Stream a
constant