Skip to content

Commit

Permalink
chore: remove input from AssertSortedAir and into generate_trace (#61)
Browse files Browse the repository at this point in the history
  • Loading branch information
bfan05 authored Jun 12, 2024
1 parent 56db928 commit e0d4e48
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 16 deletions.
5 changes: 0 additions & 5 deletions chips/src/assert_sorted/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,6 @@ pub mod trace;
pub struct AssertSortedAir {
#[getset(get = "pub")]
is_less_than_tuple_air: IsLessThanTupleAir,
/// The keys to check for sortedness
#[getset(get = "pub")]
keys: Vec<Vec<u32>>,
}

/// This chip constrains that consecutive rows are sorted lexicographically.
Expand All @@ -40,15 +37,13 @@ impl AssertSortedChip {
range_max: u32,
limb_bits: Vec<usize>,
decomp: usize,
keys: Vec<Vec<u32>>,
range_checker: Arc<RangeCheckerGateChip>,
) -> Self {
Self {
air: AssertSortedAir {
is_less_than_tuple_air: IsLessThanTupleAir::new(
bus_index, range_max, limb_bits, decomp,
),
keys,
},
range_checker,
}
Expand Down
12 changes: 6 additions & 6 deletions chips/src/assert_sorted/tests/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -53,12 +53,12 @@ fn test_assert_sorted_chip_small_positive() {
range_max,
limb_bits,
decomp,
requests.clone(),
range_checker.clone(),
);
let range_checker_chip = assert_sorted_chip.range_checker.as_ref();

let assert_sorted_chip_trace: DenseMatrix<BabyBear> = assert_sorted_chip.generate_trace();
let assert_sorted_chip_trace: DenseMatrix<BabyBear> =
assert_sorted_chip.generate_trace(requests.clone());
let range_checker_trace = assert_sorted_chip.range_checker.generate_trace();

run_simple_test_no_pis(
Expand Down Expand Up @@ -91,12 +91,12 @@ fn test_assert_sorted_chip_large_positive() {
range_max,
limb_bits,
decomp,
requests.clone(),
range_checker.clone(),
);
let range_checker_chip = assert_sorted_chip.range_checker.as_ref();

let assert_sorted_chip_trace: DenseMatrix<BabyBear> = assert_sorted_chip.generate_trace();
let assert_sorted_chip_trace: DenseMatrix<BabyBear> =
assert_sorted_chip.generate_trace(requests.clone());
let range_checker_trace = assert_sorted_chip.range_checker.generate_trace();

run_simple_test_no_pis(
Expand Down Expand Up @@ -130,12 +130,12 @@ fn test_assert_sorted_chip_unsorted_negative() {
range_max,
limb_bits,
decomp,
requests.clone(),
range_checker.clone(),
);
let range_checker_chip = assert_sorted_chip.range_checker.as_ref();

let assert_sorted_chip_trace: DenseMatrix<BabyBear> = assert_sorted_chip.generate_trace();
let assert_sorted_chip_trace: DenseMatrix<BabyBear> =
assert_sorted_chip.generate_trace(requests.clone());
let range_checker_trace = assert_sorted_chip.range_checker.generate_trace();

USE_DEBUG_BUILDER.with(|debug| {
Expand Down
10 changes: 5 additions & 5 deletions chips/src/assert_sorted/trace.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,20 @@ use crate::sub_chip::LocalTraceInstructions;
use super::{columns::AssertSortedCols, AssertSortedChip};

impl AssertSortedChip {
pub fn generate_trace<F: PrimeField64>(&self) -> RowMajorMatrix<F> {
pub fn generate_trace<F: PrimeField64>(&self, keys: Vec<Vec<u32>>) -> RowMajorMatrix<F> {
let num_cols: usize = AssertSortedCols::<F>::get_width(
self.air.is_less_than_tuple_air().limb_bits().clone(),
self.air.is_less_than_tuple_air().decomp(),
self.air.is_less_than_tuple_air().tuple_len(),
);

let mut rows: Vec<F> = vec![];
for i in 0..self.air.keys().len() {
let key = self.air.keys()[i].clone();
let next_key: Vec<u32> = if i == self.air.keys().len() - 1 {
for i in 0..keys.len() {
let key = keys[i].clone();
let next_key: Vec<u32> = if i == keys.len() - 1 {
vec![0; self.air.is_less_than_tuple_air().tuple_len()]
} else {
self.air.keys()[i + 1].clone()
keys[i + 1].clone()
};

let is_less_than_tuple_trace = LocalTraceInstructions::generate_trace_row(
Expand Down

0 comments on commit e0d4e48

Please sign in to comment.