22#include <cuda_runtime.h>
25#include <cuda/std/array>
27#ifndef FSS_ENABLE_V1_COMPAT
28#define FSS_ENABLE_V1_COMPAT 1
31#if FSS_ENABLE_V1_COMPAT
33namespace fss::compat::detail {
44template <
typename SchemeTag,
typename Cw,
int n>
51template <
typename SchemeTag,
typename Cw,
int n>
53 [[deprecated(
"the par_depth template parameter is gone; pass par_depth to EvalAll() instead")]]
54 static constexpr int kParDepth = -1;
61template <
typename SchemeTag,
typename Cw,
int n>
69template <
typename SchemeTag,
typename Cw,
int n>
72 cuda::std::array<int4, 4> cs;
78template <
typename SchemeTag>
79struct ParityTreeRecord {
85template <
typename SchemeTag>
86struct PreprocessedTreeRecord {
87 std::unique_ptr<bool[]> p;
90 [[deprecated(
"use PreprocessOwned() and OwnedParityTree::View()")]]
91 ParityTreeRecord<SchemeTag> view()
const {
return ParityTreeRecord<SchemeTag>{p.get(), b}; }
100template <__u
int128_t kLegacySize>
101constexpr int LegacyBucketSize() {
102 static_assert(kLegacySize <= static_cast<__uint128_t>(std::numeric_limits<int>::max()),
103 "legacy b_size: kBucketSize does not fit the legacy int domain");
104 return static_cast<int>(kLegacySize);
108template <
typename SchemeTag>
109struct EvalResultRecord {
111 cuda::std::array<int4, 4> pi_tilde;