38 using Field =
typename Logic::Field;
40 using EltW =
typename Logic::EltW;
42 static constexpr size_t kN = 2 * (NJ + 1);
47 std::vector<PolyN> pluckerj_;
49 explicit CborPlucker(
const Logic& l) : l_(l), pluckerj_(NJ) {
50 const Field& F = l_.f_;
53 for (
size_t i = 0; i < kN; ++i) {
59 for (
size_t i = 0; i < kN; ++i) {
60 Y[i] = F.of_scalar(i & 1);
62 pluckerb_ = InterpolationN::monomial_of_lagrange(Y, X, F);
65 for (
size_t j = 0; j < NJ; ++j) {
66 for (
size_t i = 0; i < kN; ++i) {
67 Y[i] = F.of_scalar((i >> 1) == j);
69 pluckerj_[j] = InterpolationN::monomial_of_lagrange(Y, X, F);
73 BitW pluckb(
const EltW& e)
const {
77 EltW v = P.eval(pluckerb_, e);
82 typename Logic::template bitvec<NJ> pluckj(
const EltW& e)
const {
83 typename Logic::template bitvec<NJ> r;
87 for (
size_t j = 0; j < NJ; ++j) {
88 EltW v = P.eval(pluckerj_[j], e);