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

ZkFold.Base.Data.Vector

Documentation

newtype Vector (size :: Natural) a Source #

Constructors

Vector [a] 

Instances

Instances details
(SymbolicData a x, KnownNat n) => SymbolicData a (Vector n x) Source # 
Instance details

Defined in ZkFold.Symbolic.Compiler.Arithmetizable

Foldable (Vector size) Source # 
Instance details

Defined in ZkFold.Base.Data.Vector

Methods

fold :: Monoid m => Vector size m -> m #

foldMap :: Monoid m => (a -> m) -> Vector size a -> m #

foldMap' :: Monoid m => (a -> m) -> Vector size a -> m #

foldr :: (a -> b -> b) -> b -> Vector size a -> b #

foldr' :: (a -> b -> b) -> b -> Vector size a -> b #

foldl :: (b -> a -> b) -> b -> Vector size a -> b #

foldl' :: (b -> a -> b) -> b -> Vector size a -> b #

foldr1 :: (a -> a -> a) -> Vector size a -> a #

foldl1 :: (a -> a -> a) -> Vector size a -> a #

toList :: Vector size a -> [a] #

null :: Vector size a -> Bool #

length :: Vector size a -> Int #

elem :: Eq a => a -> Vector size a -> Bool #

maximum :: Ord a => Vector size a -> a #

minimum :: Ord a => Vector size a -> a #

sum :: Num a => Vector size a -> a #

product :: Num a => Vector size a -> a #

Traversable (Vector size) Source # 
Instance details

Defined in ZkFold.Base.Data.Vector

Methods

traverse :: Applicative f => (a -> f b) -> Vector size a -> f (Vector size b) #

sequenceA :: Applicative f => Vector size (f a) -> f (Vector size a) #

mapM :: Monad m => (a -> m b) -> Vector size a -> m (Vector size b) #

sequence :: Monad m => Vector size (m a) -> m (Vector size a) #

KnownNat size => Applicative (Vector size) Source # 
Instance details

Defined in ZkFold.Base.Data.Vector

Methods

pure :: a -> Vector size a #

(<*>) :: Vector size (a -> b) -> Vector size a -> Vector size b #

liftA2 :: (a -> b -> c) -> Vector size a -> Vector size b -> Vector size c #

(*>) :: Vector size a -> Vector size b -> Vector size b #

(<*) :: Vector size a -> Vector size b -> Vector size a #

Functor (Vector size) Source # 
Instance details

Defined in ZkFold.Base.Data.Vector

Methods

fmap :: (a -> b) -> Vector size a -> Vector size b #

(<$) :: a -> Vector size b -> Vector size a #

Semialign (Vector size) Source # 
Instance details

Defined in ZkFold.Base.Data.Vector

Methods

align :: Vector size a -> Vector size b -> Vector size (These a b) #

alignWith :: (These a b -> c) -> Vector size a -> Vector size b -> Vector size c #

Zip (Vector size) Source # 
Instance details

Defined in ZkFold.Base.Data.Vector

Methods

zip :: Vector size a -> Vector size b -> Vector size (a, b) #

zipWith :: (a -> b -> c) -> Vector size a -> Vector size b -> Vector size c #

(Arbitrary a, KnownNat size) => Arbitrary (Vector size a) Source # 
Instance details

Defined in ZkFold.Base.Data.Vector

Methods

arbitrary :: Gen (Vector size a) #

shrink :: Vector size a -> [Vector size a] #

Show a => Show (Vector size a) Source # 
Instance details

Defined in ZkFold.Base.Data.Vector

Methods

showsPrec :: Int -> Vector size a -> ShowS #

show :: Vector size a -> String #

showList :: [Vector size a] -> ShowS #

Binary a => Binary (Vector n a) Source # 
Instance details

Defined in ZkFold.Base.Data.Vector

Methods

put :: Vector n a -> Put #

get :: Get (Vector n a) #

putList :: [Vector n a] -> Put #

Eq a => Eq (Vector size a) Source # 
Instance details

Defined in ZkFold.Base.Data.Vector

Methods

(==) :: Vector size a -> Vector size a -> Bool #

(/=) :: Vector size a -> Vector size a -> Bool #

(Random a, KnownNat size) => Random (Vector size a) Source # 
Instance details

Defined in ZkFold.Base.Data.Vector

Methods

randomR :: RandomGen g => (Vector size a, Vector size a) -> g -> (Vector size a, g) #

random :: RandomGen g => g -> (Vector size a, g) #

randomRs :: RandomGen g => (Vector size a, Vector size a) -> g -> [Vector size a] #

randoms :: RandomGen g => g -> [Vector size a] #

Substitution (Vector n b) (Zp n) b Source # 
Instance details

Defined in ZkFold.Base.Algebra.Polynomials.Multivariate.Substitution

Methods

subs :: Vector n b -> Zp n -> b Source #

toVector :: forall size a. KnownNat size => [a] -> Maybe (Vector size a) Source #

fromVector :: Vector size a -> [a] Source #

vectorDotProduct :: forall size a. Semiring a => Vector size a -> Vector size a -> a Source #

concat :: Vector m (Vector n a) -> Vector (m * n) a Source #