| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Bulletproofs.ArithmeticCircuit.Internal
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 #
Constructors
| 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 Methods (==) :: ArithCircuitProofError -> ArithCircuitProofError -> Bool # (/=) :: ArithCircuitProofError -> ArithCircuitProofError -> Bool # | |
| Show ArithCircuitProofError Source # | |
Defined in Bulletproofs.ArithmeticCircuit.Internal Methods showsPrec :: Int -> ArithCircuitProofError -> ShowS # show :: ArithCircuitProofError -> String # showList :: [ArithCircuitProofError] -> ShowS # | |
data ArithCircuitProof f Source #
Constructors
| ArithCircuitProof | |
Fields
| |
Instances
data ArithCircuit f Source #
Constructors
| ArithCircuit | |
Fields
| |
Instances
data GateWeights f Source #
Constructors
| GateWeights | |
Instances
data ArithWitness f Source #
Constructors
| ArithWitness | |
Fields
| |
Instances
data Assignment f Source #
Constructors
| Assignment | |
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 #