1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
use crate::base::scalar::Scalar;
use alloc::vec::Vec;
/// The result of evaluating a table
#[derive(Debug, Eq, PartialEq, Clone)]
pub struct TableEvaluation<S: Scalar> {
/// Evaluation of each column in the table
column_evals: Vec<S>,
/// Evaluation of an all-one column with the same length as the table
chi: (S, usize),
}
impl<S: Scalar> TableEvaluation<S> {
/// Creates a new [`TableEvaluation`].
#[must_use]
pub fn new(column_evals: Vec<S>, chi: (S, usize)) -> Self {
Self { column_evals, chi }
}
/// Returns the evaluation of each column in the table.
#[must_use]
pub fn column_evals(&self) -> &[S] {
&self.column_evals
}
/// Returns the evaluation of an all-one column with the same length as the table.
#[must_use]
pub fn chi_eval(&self) -> S {
self.chi.0
}
/// Returns the evaluation of an all-one column with the same length as the table.
#[must_use]
pub fn chi(&self) -> (S, usize) {
self.chi
}
}