mirror of
https://github.com/logos-blockchain/logos-blockchain-specs.git
synced 2026-01-06 23:23:09 +00:00
Implement toeplizt
This commit is contained in:
parent
9ffbad1b2f
commit
cdc6af668f
@ -3,7 +3,7 @@ from typing import List, Sequence
|
||||
from eth2spec.deneb.mainnet import KZGProof as Proof
|
||||
|
||||
from da.kzg_rs.common import G1, BLS_MODULUS
|
||||
from da.kzg_rs.fft import fft
|
||||
from da.kzg_rs.fft import fft, ifft
|
||||
from da.kzg_rs.poly import Polynomial
|
||||
from da.kzg_rs.utils import is_power_of_two
|
||||
|
||||
@ -26,6 +26,17 @@ def toeplitz1(global_parameters: List[G1], roots_of_unity: Sequence[int], polyno
|
||||
vector_x_extended_fft = fft(vector_x_extended, BLS_MODULUS, roots_of_unity)
|
||||
return vector_x_extended_fft
|
||||
|
||||
|
||||
def toeplitz2(coefficients: List[G1], roots_of_unity: Sequence[int], extended_vector: Sequence[G1]) -> List[G1]:
|
||||
assert is_power_of_two(len(coefficients))
|
||||
toeplitz_coefficients_fft = fft(coefficients, BLS_MODULUS, roots_of_unity)
|
||||
return [v*c for v, c in zip(extended_vector, toeplitz_coefficients_fft)]
|
||||
|
||||
|
||||
def toeplitz3(h_extended_fft: Sequence[G1], roots_of_unity: Sequence[int]) -> List[G1]:
|
||||
return ifft(h_extended_fft, BLS_MODULUS, roots_of_unity)
|
||||
|
||||
|
||||
def fk20_generate_proofs(polynomial: Polynomial) -> List[Proof]:
|
||||
# 1 - Build toeplitz matrix for h values
|
||||
# 1.1 y = dft([s^d-1, s^d-2, ..., s, 1, *[0 for _ in len(polynomial)]])
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user