Longfellow ZK
0290cb32
Loading...
Searching...
No Matches
lib
circuits
logic
bit_plucker_constants.h
1
// Copyright 2025 Google LLC.
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
// http://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
14
15
#ifndef PRIVACY_PROOFS_ZK_LIB_CIRCUITS_LOGIC_BIT_PLUCKER_CONSTANTS_H_
16
#define PRIVACY_PROOFS_ZK_LIB_CIRCUITS_LOGIC_BIT_PLUCKER_CONSTANTS_H_
17
18
#include <stddef.h>
19
#include <stdint.h>
20
21
namespace
proofs {
22
// bit-plucker code common to both compiler-time and
23
// wire-fill time
24
template
<
class
Field,
size_t
N>
25
struct
bit_plucker_point
{
26
using
Elt =
typename
Field::Elt
;
27
28
// packing of bits compatible with even_lagrange_basis():
29
Elt operator()(uint64_t bits,
const
Field& F)
const
{
30
return
F.subf(F.of_scalar(2 * bits), F.of_scalar(N - 1));
31
}
32
};
33
}
// namespace proofs
34
35
#endif
// PRIVACY_PROOFS_ZK_LIB_CIRCUITS_LOGIC_BIT_PLUCKER_CONSTANTS_H_
proofs::GF2_128::Elt
Definition
gf2_128.h:63
proofs::bit_plucker_point
Definition
bit_plucker_constants.h:25
Generated by
1.15.0