packages feed

posit-2022.0.0.0: test/WeighPosit.hs

{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE DataKinds #-}

import Weigh
import Data.Vector.Storable as V

import Posit
import Posit.Internal.PositC

main :: IO ()
main = mainWith $ do
  func' "Posit8 in 1M Vector" vecOf (1.0 :: Posit8)
  func' "Posit16 in 1M Vector" vecOf (1.0 :: Posit16)
  func' "Posit32 in 1M Vector" vecOf (1.0 :: Posit32)
  func' "Posit64 in 1M Vector" vecOf (1.0 :: Posit64)
  func' "Posit128 in 1M Vector" vecOf (1.0 :: Posit128)
  func' "Posit256 in 1M Vector" vecOf (1.0 :: Posit256)
  func' "P8 in 1M Vector" vecOf (1.0 :: P8)
  func' "P16 in 1M Vector" vecOf (1.0 :: P16)
  func' "P32 in 1M Vector" vecOf (1.0 :: P32)
  func' "P64 in 1M Vector" vecOf (1.0 :: P64)
  func' "P128 in 1M Vector" vecOf (1.0 :: P128)
  func' "P256 in 1M Vector" vecOf (1.0 :: P256)


vecOf :: PositC es => Posit es -> V.Vector (Posit es)
vecOf x = V.replicate (1024*1024) x