mirror of
https://github.com/logos-storage/plonky2.git
synced 2026-01-02 13:53:07 +00:00
add "short id" for gates, for easier interop with third-party tooling (untested)
This commit is contained in:
parent
99aac4dd08
commit
301ae79b6f
@ -65,6 +65,10 @@ impl<F: RichField + Extendable<D>, const D: usize> Gate<F, D> for ArithmeticGate
|
||||
format!("{self:?}")
|
||||
}
|
||||
|
||||
fn short_id(&self) -> String {
|
||||
format!("ArithmeticGate:{}",self.num_ops)
|
||||
}
|
||||
|
||||
fn serialize(&self, dst: &mut Vec<u8>, _common_data: &CommonCircuitData<F, D>) -> IoResult<()> {
|
||||
dst.write_usize(self.num_ops)
|
||||
}
|
||||
|
||||
@ -61,6 +61,10 @@ impl<F: RichField + Extendable<D>, const D: usize> Gate<F, D> for ArithmeticExte
|
||||
format!("{self:?}")
|
||||
}
|
||||
|
||||
fn short_id(&self) -> String {
|
||||
format!("ArithmeticExtensionGate:{}",self.num_ops)
|
||||
}
|
||||
|
||||
fn serialize(&self, dst: &mut Vec<u8>, _common_data: &CommonCircuitData<F, D>) -> IoResult<()> {
|
||||
dst.write_usize(self.num_ops)
|
||||
}
|
||||
|
||||
@ -56,6 +56,10 @@ impl<F: RichField + Extendable<D>, const D: usize, const B: usize> Gate<F, D> fo
|
||||
format!("{self:?} + Base: {B}")
|
||||
}
|
||||
|
||||
fn short_id(&self) -> String {
|
||||
format!("BaseSumGate:{}",self.num_limbs)
|
||||
}
|
||||
|
||||
fn serialize(&self, dst: &mut Vec<u8>, _common_data: &CommonCircuitData<F, D>) -> IoResult<()> {
|
||||
dst.write_usize(self.num_limbs)
|
||||
}
|
||||
|
||||
@ -46,6 +46,10 @@ impl<F: RichField + Extendable<D>, const D: usize> Gate<F, D> for ConstantGate {
|
||||
format!("{self:?}")
|
||||
}
|
||||
|
||||
fn short_id(&self) -> String {
|
||||
format!("ConstantGate:{}",self.num_consts)
|
||||
}
|
||||
|
||||
fn serialize(&self, dst: &mut Vec<u8>, _common_data: &CommonCircuitData<F, D>) -> IoResult<()> {
|
||||
dst.write_usize(self.num_consts)
|
||||
}
|
||||
|
||||
@ -178,6 +178,10 @@ impl<F: RichField + Extendable<D>, const D: usize> Gate<F, D> for CosetInterpola
|
||||
format!("{self:?}<D={D}>")
|
||||
}
|
||||
|
||||
fn short_id(&self) -> String {
|
||||
format!("CosetInterpolationGate:{}",self.subgroup_bits)
|
||||
}
|
||||
|
||||
fn serialize(&self, dst: &mut Vec<u8>, _common_data: &CommonCircuitData<F, D>) -> IoResult<()> {
|
||||
dst.write_usize(self.subgroup_bits)?;
|
||||
dst.write_usize(self.degree)?;
|
||||
|
||||
@ -82,6 +82,10 @@ impl<F: RichField + Extendable<D>, const D: usize> Gate<F, D> for Exponentiation
|
||||
format!("{self:?}<D={D}>")
|
||||
}
|
||||
|
||||
fn short_id(&self) -> String {
|
||||
format!("ExponentiationGate:{}",self.num_power_bits)
|
||||
}
|
||||
|
||||
fn serialize(&self, dst: &mut Vec<u8>, _common_data: &CommonCircuitData<F, D>) -> IoResult<()> {
|
||||
dst.write_usize(self.num_power_bits)
|
||||
}
|
||||
|
||||
@ -56,6 +56,11 @@ pub trait Gate<F: RichField + Extendable<D>, const D: usize>: 'static + Send + S
|
||||
/// This is used as differentiating tag in gate serializers.
|
||||
fn id(&self) -> String;
|
||||
|
||||
/// Another, more friendly identifier for easier interop with third-party tooling
|
||||
fn short_id(&self) -> String {
|
||||
self.id()
|
||||
}
|
||||
|
||||
/// Serializes this custom gate to the targeted byte buffer, with the provided [`CommonCircuitData`].
|
||||
fn serialize(&self, dst: &mut Vec<u8>, common_data: &CommonCircuitData<F, D>) -> IoResult<()>;
|
||||
|
||||
|
||||
@ -78,6 +78,10 @@ impl<F: RichField + Extendable<D>, const D: usize> Gate<F, D> for LookupGate {
|
||||
)
|
||||
}
|
||||
|
||||
fn short_id(&self) -> String {
|
||||
format!("LookupGate:{}",self.num_slots)
|
||||
}
|
||||
|
||||
fn serialize(&self, dst: &mut Vec<u8>, common_data: &CommonCircuitData<F, D>) -> IoResult<()> {
|
||||
dst.write_usize(self.num_slots)?;
|
||||
for (i, lut) in common_data.luts.iter().enumerate() {
|
||||
|
||||
@ -91,6 +91,10 @@ impl<F: RichField + Extendable<D>, const D: usize> Gate<F, D> for LookupTableGat
|
||||
)
|
||||
}
|
||||
|
||||
fn short_id(&self) -> String {
|
||||
format!("LookupTableGate:{}",self.num_slots)
|
||||
}
|
||||
|
||||
fn serialize(&self, dst: &mut Vec<u8>, common_data: &CommonCircuitData<F, D>) -> IoResult<()> {
|
||||
dst.write_usize(self.num_slots)?;
|
||||
dst.write_usize(self.last_lut_row)?;
|
||||
|
||||
@ -58,6 +58,10 @@ impl<F: RichField + Extendable<D>, const D: usize> Gate<F, D> for MulExtensionGa
|
||||
format!("{self:?}")
|
||||
}
|
||||
|
||||
fn short_id(&self) -> String {
|
||||
format!("MulExtensionGenerator:{}",self.num_ops)
|
||||
}
|
||||
|
||||
fn serialize(&self, dst: &mut Vec<u8>, _common_data: &CommonCircuitData<F, D>) -> IoResult<()> {
|
||||
dst.write_usize(self.num_ops)
|
||||
}
|
||||
|
||||
@ -20,6 +20,10 @@ impl<F: RichField + Extendable<D>, const D: usize> Gate<F, D> for NoopGate {
|
||||
"NoopGate".into()
|
||||
}
|
||||
|
||||
fn short_id(&self) -> String {
|
||||
"NoopGate".into()
|
||||
}
|
||||
|
||||
fn serialize(
|
||||
&self,
|
||||
_dst: &mut Vec<u8>,
|
||||
|
||||
@ -106,6 +106,10 @@ impl<F: RichField + Extendable<D>, const D: usize> Gate<F, D> for PoseidonGate<F
|
||||
format!("{self:?}<WIDTH={SPONGE_WIDTH}>")
|
||||
}
|
||||
|
||||
fn short_id(&self) -> String {
|
||||
format!("PoseidonGate:{}",SPONGE_WIDTH)
|
||||
}
|
||||
|
||||
fn serialize(
|
||||
&self,
|
||||
_dst: &mut Vec<u8>,
|
||||
|
||||
@ -125,6 +125,10 @@ impl<F: RichField + Extendable<D> + Poseidon, const D: usize> Gate<F, D> for Pos
|
||||
format!("{self:?}<WIDTH={SPONGE_WIDTH}>")
|
||||
}
|
||||
|
||||
fn short_id(&self) -> String {
|
||||
format!("PoseidonMdsGate:{}",SPONGE_WIDTH)
|
||||
}
|
||||
|
||||
fn serialize(
|
||||
&self,
|
||||
_dst: &mut Vec<u8>,
|
||||
|
||||
@ -33,6 +33,10 @@ impl<F: RichField + Extendable<D>, const D: usize> Gate<F, D> for PublicInputGat
|
||||
"PublicInputGate".into()
|
||||
}
|
||||
|
||||
fn short_id(&self) -> String {
|
||||
"PublicInputGate".into()
|
||||
}
|
||||
|
||||
fn serialize(
|
||||
&self,
|
||||
_dst: &mut Vec<u8>,
|
||||
|
||||
@ -127,6 +127,10 @@ impl<F: RichField + Extendable<D>, const D: usize> Gate<F, D> for RandomAccessGa
|
||||
format!("{self:?}<D={D}>")
|
||||
}
|
||||
|
||||
fn short_id(&self) -> String {
|
||||
format!("RandomAccessGate:{}",self.bits)
|
||||
}
|
||||
|
||||
fn serialize(&self, dst: &mut Vec<u8>, _common_data: &CommonCircuitData<F, D>) -> IoResult<()> {
|
||||
dst.write_usize(self.bits)?;
|
||||
dst.write_usize(self.num_copies)?;
|
||||
|
||||
@ -67,6 +67,10 @@ impl<F: RichField + Extendable<D>, const D: usize> Gate<F, D> for ReducingGate<D
|
||||
format!("{self:?}")
|
||||
}
|
||||
|
||||
fn short_id(&self) -> String {
|
||||
format!("ReducingGate:{}",self.num_coeffs)
|
||||
}
|
||||
|
||||
fn serialize(&self, dst: &mut Vec<u8>, _common_data: &CommonCircuitData<F, D>) -> IoResult<()> {
|
||||
dst.write_usize(self.num_coeffs)?;
|
||||
Ok(())
|
||||
|
||||
@ -70,6 +70,10 @@ impl<F: RichField + Extendable<D>, const D: usize> Gate<F, D> for ReducingExtens
|
||||
format!("{self:?}")
|
||||
}
|
||||
|
||||
fn short_id(&self) -> String {
|
||||
format!("ReducingExtensionGate:{}",self.num_coeffs)
|
||||
}
|
||||
|
||||
fn serialize(&self, dst: &mut Vec<u8>, _common_data: &CommonCircuitData<F, D>) -> IoResult<()> {
|
||||
dst.write_usize(self.num_coeffs)?;
|
||||
Ok(())
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user