1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
{-# LANGUAGE ConstraintKinds, FlexibleContexts, DataKinds, NoImplicitPrelude,
RebindableSyntax, ScopedTypeVariables, TypeFamilies, TypeOperators,
UndecidableInstances #-}
module TensorTests (tensorTests) where
import Apply.Cyc
import Tests
import Utils
import TestTypes
import Crypto.Lol
import Crypto.Lol.CRTrans
import Crypto.Lol.Cyclotomic.Tensor
import Crypto.Lol.Types
import Control.Applicative
import Data.Maybe
import Data.Singletons
import Data.Promotion.Prelude.Eq
import Data.Singletons.TypeRepStar ()
import qualified Test.Framework as TF
type TMRParams = ( '( , ,) <$> Tensors <*> Tensors) <*> MRCombos
type TMRParams = ( '(,) <$> Tensors) <*> MRCombos
tmrParams :: Proxy TMRParams
tmrParams = Proxy
--type ExtParams = ( '(,) <$> Tensors) <*> MRExtCombos
type TrEmParams = ( '(,) <$> Tensors) <*> MM'RCombos
tremParams :: Proxy TrEmParams
tremParams = Proxy
type NormParams = ( '(,) <$> '[RT]) <*> (Filter Liftable MRCombos)
data Liftable :: TyFun (Factored, *) Bool -> *
type instance Apply Liftable '(m,zq) = Int64 :== (LiftOf zq)
|