mirror of https://github.com/zcash/halo2.git
Change canonical column ordering to Instance < Advice < Fixed
Closes zcash/halo2#325.
This commit is contained in:
parent
ca44b40009
commit
4417b4e480
|
@ -97,13 +97,13 @@ impl CircuitLayout {
|
||||||
|
|
||||||
// Figure out what order to render the columns in.
|
// Figure out what order to render the columns in.
|
||||||
// TODO: For now, just render them in the order they were configured.
|
// TODO: For now, just render them in the order they were configured.
|
||||||
let total_columns = cs.num_advice_columns + cs.num_instance_columns + cs.num_fixed_columns;
|
let total_columns = cs.num_instance_columns + cs.num_advice_columns + cs.num_fixed_columns;
|
||||||
let column_index = |column: &Column<Any>| {
|
let column_index = |column: &Column<Any>| {
|
||||||
column.index()
|
column.index()
|
||||||
+ match column.column_type() {
|
+ match column.column_type() {
|
||||||
Any::Advice => 0,
|
Any::Instance => 0,
|
||||||
Any::Instance => cs.num_advice_columns,
|
Any::Advice => cs.num_instance_columns,
|
||||||
Any::Fixed => cs.num_advice_columns + cs.num_instance_columns,
|
Any::Fixed => cs.num_instance_columns + cs.num_advice_columns,
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -124,12 +124,15 @@ impl CircuitLayout {
|
||||||
ShapeStyle::from(&WHITE).filled(),
|
ShapeStyle::from(&WHITE).filled(),
|
||||||
))?;
|
))?;
|
||||||
root.draw(&Rectangle::new(
|
root.draw(&Rectangle::new(
|
||||||
[(0, 0), (cs.num_advice_columns, view_bottom)],
|
[
|
||||||
|
(cs.num_instance_columns, 0),
|
||||||
|
(cs.num_instance_columns + cs.num_advice_columns, view_bottom),
|
||||||
|
],
|
||||||
ShapeStyle::from(&RED.mix(0.2)).filled(),
|
ShapeStyle::from(&RED.mix(0.2)).filled(),
|
||||||
))?;
|
))?;
|
||||||
root.draw(&Rectangle::new(
|
root.draw(&Rectangle::new(
|
||||||
[
|
[
|
||||||
(cs.num_advice_columns + cs.num_instance_columns, 0),
|
(cs.num_instance_columns + cs.num_advice_columns, 0),
|
||||||
(total_columns, view_bottom),
|
(total_columns, view_bottom),
|
||||||
],
|
],
|
||||||
ShapeStyle::from(&BLUE.mix(0.2)).filled(),
|
ShapeStyle::from(&BLUE.mix(0.2)).filled(),
|
||||||
|
@ -138,9 +141,9 @@ impl CircuitLayout {
|
||||||
let index = selector.index();
|
let index = selector.index();
|
||||||
root.draw(&Rectangle::new(
|
root.draw(&Rectangle::new(
|
||||||
[
|
[
|
||||||
(cs.num_advice_columns + cs.num_instance_columns + index, 0),
|
(cs.num_instance_columns + cs.num_advice_columns + index, 0),
|
||||||
(
|
(
|
||||||
cs.num_advice_columns + cs.num_instance_columns + index + 1,
|
cs.num_instance_columns + cs.num_advice_columns + index + 1,
|
||||||
view_bottom,
|
view_bottom,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|
|
@ -47,13 +47,13 @@ impl<C: ColumnType> Ord for Column<C> {
|
||||||
(Any::Advice, Any::Advice)
|
(Any::Advice, Any::Advice)
|
||||||
| (Any::Instance, Any::Instance)
|
| (Any::Instance, Any::Instance)
|
||||||
| (Any::Fixed, Any::Fixed) => self.index.cmp(&other.index),
|
| (Any::Fixed, Any::Fixed) => self.index.cmp(&other.index),
|
||||||
// Across column types, sort Advice < Instance < Fixed.
|
// Across column types, sort Instance < Advice < Fixed.
|
||||||
(Any::Advice, Any::Instance)
|
(Any::Instance, Any::Advice)
|
||||||
| (Any::Advice, Any::Fixed)
|
| (Any::Advice, Any::Fixed)
|
||||||
| (Any::Instance, Any::Fixed) => std::cmp::Ordering::Less,
|
| (Any::Instance, Any::Fixed) => std::cmp::Ordering::Less,
|
||||||
(Any::Fixed, Any::Instance)
|
(Any::Fixed, Any::Instance)
|
||||||
| (Any::Fixed, Any::Advice)
|
| (Any::Fixed, Any::Advice)
|
||||||
| (Any::Instance, Any::Advice) => std::cmp::Ordering::Greater,
|
| (Any::Advice, Any::Instance) => std::cmp::Ordering::Greater,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue