Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data ArithCircuitProofError
- data ArithCircuitProof f = ArithCircuitProof {}
- data ArithCircuit f = ArithCircuit {
- weights :: GateWeights f
- commitmentWeights :: [[f]]
- cs :: [f]
- data GateWeights f = GateWeights {}
- data ArithWitness f = ArithWitness {
- assignment :: Assignment f
- commitments :: [Point]
- commitBlinders :: [f]
- data Assignment f = Assignment {}
- padCircuit :: Num f => ArithCircuit f -> ArithCircuit f
- padAssignment :: Num f => Assignment f -> Assignment f
- delta :: (Eq f, Field f) => Integer -> f -> [f] -> [f] -> f
- commitBitVector :: AsInteger f => f -> [f] -> [f] -> Point
- shamirGxGxG :: (Show f, Num f) => Point -> Point -> Point -> f
- shamirGs :: (Show f, Num f) => [Point] -> f
- shamirZ :: (Show f, Num f) => f -> f
- evaluatePolynomial :: Num f => Integer -> [[f]] -> f -> [f]
- multiplyPoly :: Num n => [[n]] -> [[n]] -> [n]
- vectorMatrixProduct :: Num f => [f] -> [[f]] -> [f]
- vectorMatrixProductT :: Num f => [f] -> [[f]] -> [f]
- matrixVectorProduct :: Num f => [[f]] -> [f] -> [f]
- powerMatrix :: Num f => [[f]] -> Integer -> [[f]]
- matrixProduct :: Num a => [[a]] -> [[a]] -> [[a]]
- insertAt :: Int -> a -> [a] -> [a]
- genIdenMatrix :: Num f => Integer -> [[f]]
- genZeroMatrix :: Num f => Integer -> Integer -> [[f]]
- generateWv :: (Num f, MonadRandom m) => Integer -> Integer -> m [[f]]
- generateGateWeights :: (MonadRandom m, Num f, MonadFail m) => Integer -> Integer -> m (GateWeights f)
- generateRandomAssignment :: forall f m. (Num f, AsInteger f, MonadRandom m) => Integer -> m (Assignment f)
- computeInputValues :: (Field f, Eq f) => GateWeights f -> [[f]] -> Assignment f -> [f] -> [f]
- gaussianReduce :: (Field f, Eq f) => [[f]] -> [[f]]
- substituteMatrix :: (Field f, Eq f) => [[f]] -> [f]
- solveLinearSystem :: (Field f, Eq f) => [[f]] -> [f]
Documentation
data ArithCircuitProofError Source #
TooManyGates Integer | The number of gates is too high |
NNotPowerOf2 Integer | The number of gates is not a power of 2 |
Instances
Eq ArithCircuitProofError Source # | |
Defined in Bulletproofs.ArithmeticCircuit.Internal | |
Show ArithCircuitProofError Source # | |
Defined in Bulletproofs.ArithmeticCircuit.Internal showsPrec :: Int -> ArithCircuitProofError -> ShowS # show :: ArithCircuitProofError -> String # showList :: [ArithCircuitProofError] -> ShowS # |
data ArithCircuitProof f Source #
ArithCircuitProof | |
|
Instances
data ArithCircuit f Source #
ArithCircuit | |
|
Instances
data GateWeights f Source #
Instances
data ArithWitness f Source #
ArithWitness | |
|
Instances
data Assignment f Source #
Instances
padCircuit :: Num f => ArithCircuit f -> ArithCircuit f Source #
Pad circuit weights to make n be a power of 2, which is required to compute the inner product proof
padAssignment :: Num f => Assignment f -> Assignment f Source #
Pad assignment vectors to make their length n be a power of 2, which is required to compute the inner product proof
commitBitVector :: AsInteger f => f -> [f] -> [f] -> Point Source #
evaluatePolynomial :: Num f => Integer -> [[f]] -> f -> [f] Source #
multiplyPoly :: Num n => [[n]] -> [[n]] -> [n] Source #
vectorMatrixProduct :: Num f => [f] -> [[f]] -> [f] Source #
vectorMatrixProductT :: Num f => [f] -> [[f]] -> [f] Source #
matrixVectorProduct :: Num f => [[f]] -> [f] -> [f] Source #
powerMatrix :: Num f => [[f]] -> Integer -> [[f]] Source #
matrixProduct :: Num a => [[a]] -> [[a]] -> [[a]] Source #
genIdenMatrix :: Num f => Integer -> [[f]] Source #
generateWv :: (Num f, MonadRandom m) => Integer -> Integer -> m [[f]] Source #
generateGateWeights :: (MonadRandom m, Num f, MonadFail m) => Integer -> Integer -> m (GateWeights f) Source #
generateRandomAssignment :: forall f m. (Num f, AsInteger f, MonadRandom m) => Integer -> m (Assignment f) Source #
computeInputValues :: (Field f, Eq f) => GateWeights f -> [[f]] -> Assignment f -> [f] -> [f] Source #
gaussianReduce :: (Field f, Eq f) => [[f]] -> [[f]] Source #
substituteMatrix :: (Field f, Eq f) => [[f]] -> [f] Source #
solveLinearSystem :: (Field f, Eq f) => [[f]] -> [f] Source #