packages feed

static-tensor-0.1.0.0: tests/CoreDump/Tensor/GenerateSing.hs

{-# LANGUAGE TypeApplications      #-}
{-# LANGUAGE TypeInType            #-}

module CoreDump.Tensor.GenerateSing where

import Data.Kind
import Data.Singletons
import Data.Tensor.Static
import GHC.TypeLits
import TensorInstances ()

-- FIXME: Generates terrible Core possibly because of https://ghc.haskell.org/trac/ghc/ticket/14170
generateSing_ :: Tensor '[2, 3, 4] Float
generateSing_ =
    generate @'[2, 3, 4] @Float @([Nat] -> Constraint) @SingI $ \p ->
        case fromSing $ singByProxy p of
            [i, j, k] -> fromIntegral $ i * 12 + j * 4 + k
            _         -> undefined