zkfold-base-0.1.0.0: ZkFold Symbolic compiler and zero-knowledge proof protocols
Safe HaskellSafe-Inferred
LanguageHaskell2010

ZkFold.Base.Data.Matrix

Synopsis

Documentation

newtype Matrix m n a Source #

Constructors

Matrix (Vector m (Vector n a)) 

Instances

Instances details
(KnownNat m, KnownNat n) => Applicative (Matrix m n) Source # 
Instance details

Defined in ZkFold.Base.Data.Matrix

Methods

pure :: a -> Matrix m n a #

(<*>) :: Matrix m n (a -> b) -> Matrix m n a -> Matrix m n b #

liftA2 :: (a -> b -> c) -> Matrix m n a -> Matrix m n b -> Matrix m n c #

(*>) :: Matrix m n a -> Matrix m n b -> Matrix m n b #

(<*) :: Matrix m n a -> Matrix m n b -> Matrix m n a #

Functor (Matrix m n) Source # 
Instance details

Defined in ZkFold.Base.Data.Matrix

Methods

fmap :: (a -> b) -> Matrix m n a -> Matrix m n b #

(<$) :: a -> Matrix m n b -> Matrix m n a #

Semialign (Matrix m n) Source # 
Instance details

Defined in ZkFold.Base.Data.Matrix

Methods

align :: Matrix m n a -> Matrix m n b -> Matrix m n (These a b) #

alignWith :: (These a b -> c) -> Matrix m n a -> Matrix m n b -> Matrix m n c #

Zip (Matrix m n) Source # 
Instance details

Defined in ZkFold.Base.Data.Matrix

Methods

zip :: Matrix m n a -> Matrix m n b -> Matrix m n (a, b) #

zipWith :: (a -> b -> c) -> Matrix m n a -> Matrix m n b -> Matrix m n c #

(Arbitrary a, KnownNat m, KnownNat n) => Arbitrary (Matrix m n a) Source # 
Instance details

Defined in ZkFold.Base.Data.Matrix

Methods

arbitrary :: Gen (Matrix m n a) #

shrink :: Matrix m n a -> [Matrix m n a] #

Show a => Show (Matrix m n a) Source # 
Instance details

Defined in ZkFold.Base.Data.Matrix

Methods

showsPrec :: Int -> Matrix m n a -> ShowS #

show :: Matrix m n a -> String #

showList :: [Matrix m n a] -> ShowS #

Eq a => Eq (Matrix m n a) Source # 
Instance details

Defined in ZkFold.Base.Data.Matrix

Methods

(==) :: Matrix m n a -> Matrix m n a -> Bool #

(/=) :: Matrix m n a -> Matrix m n a -> Bool #

(Random a, KnownNat m, KnownNat n) => Random (Matrix m n a) Source # 
Instance details

Defined in ZkFold.Base.Data.Matrix

Methods

randomR :: RandomGen g => (Matrix m n a, Matrix m n a) -> g -> (Matrix m n a, g) #

random :: RandomGen g => g -> (Matrix m n a, g) #

randomRs :: RandomGen g => (Matrix m n a, Matrix m n a) -> g -> [Matrix m n a] #

randoms :: RandomGen g => g -> [Matrix m n a] #

toMatrix :: forall m n a. (KnownNat m, KnownNat n) => [[a]] -> Maybe (Matrix m n a) Source #

fromMatrix :: forall m n a. Matrix m n a -> [[a]] Source #

transpose :: forall m n a. (KnownNat m, KnownNat n) => Matrix m n a -> Matrix n m a Source #

outer :: forall m n a b c. (a -> b -> c) -> Vector m a -> Vector n b -> Matrix m n c Source #

(.*) :: MultiplicativeSemigroup a => Matrix m n a -> Matrix m n a -> Matrix m n a Source #

Hadamard (entry-wise) matrix product

sum1 :: Semiring a => Matrix m n a -> Vector n a Source #

sum2 :: (KnownNat m, KnownNat n, Semiring a) => Matrix m n a -> Vector m a Source #

matrixDotProduct :: forall m n a. Semiring a => Matrix m n a -> Matrix m n a -> a Source #

(.*.) :: (KnownNat n, KnownNat k, Semiring a) => Matrix m n a -> Matrix n k a -> Matrix m k a Source #