MCPcopy Create free account
hub / github.com/docknetwork/crypto / alpha_d

Function alpha_d

bulletproofs_plus_plus/src/range_proof.rs:906–918  ·  view source on GitHub ↗

Compute a vector of powers of `b` multiplied by powers of `lambda` like this: `(1, b, b^2, b^3, ..., b^{num_digits-1}, lambda, lambda*b, lambda*b^2, lambda*b^3, ..., lambda*b^{num_digits-1}, ..., lambda^{num_proofs-1}, {lambda^{num_proofs-1}}*b, {lambda^{num_proofs-1}}*b^2, {lambda^{num_proofs-1}}*b^3, ..., {lambda^{num_proofs-1}}*b^{num_digits-1})` Size must be number of digits in all proofs comb

(
    base: u16,
    num_digits_per_proof: u16,
    num_proofs: usize,
    lambda: F,
)

Source from the content-addressed store, hash-verified

904/// Compute a vector of powers of `b` multiplied by powers of `lambda` like this: `(1, b, b^2, b^3, ..., b^{num_digits-1}, lambda, lambda*b, lambda*b^2, lambda*b^3, ..., lambda*b^{num_digits-1}, ..., lambda^{num_proofs-1}, {lambda^{num_proofs-1}}*b, {lambda^{num_proofs-1}}*b^2, {lambda^{num_proofs-1}}*b^3, ..., {lambda^{num_proofs-1}}*b^{num_digits-1})`
905/// Size must be number of digits in all proofs combined.
906fn alpha_d<F: PrimeField>(
907 base: u16,
908 num_digits_per_proof: u16,
909 num_proofs: usize,
910 lambda: F,
911) -> Vec<F> {
912 let base = F::from(base as u64);
913 let lambda_powers = powers(&lambda, num_proofs as u32);
914 let base_powers = powers(&base, num_digits_per_proof as u32);
915 cfg_into_iter!(lambda_powers)
916 .flat_map(|lambda_pow_i| scale(&base_powers, &lambda_pow_i))
917 .collect()
918}
919
920/// Same as `alpha_d` except that it accepts lambda powers
921fn alpha_d_given_lambda_powers<F: PrimeField>(

Callers 1

alpha_d_q_inv_powFunction · 0.85

Calls 2

powersFunction · 0.85
scaleFunction · 0.85

Tested by

no test coverage detected