openvm_cuda_backend/logup_zerocheck/
errors.rs1use openvm_cuda_common::error::{CudaError, MemCopyError};
2use thiserror::Error;
3
4use crate::{prelude::EF, sponge::GrindError, KernelError};
5
6#[derive(Debug, Error)]
7pub enum Round0PrepError {
8 #[error("cuda error: {0}")]
9 Cuda(#[from] CudaError),
10 #[error("memory copy failed: {0}")]
11 Mem(#[from] MemCopyError),
12 #[error("invalid stacked layout for round-0 staging")]
13 Layout,
14}
15
16#[derive(Debug, Error)]
17pub enum Round0EvalError {
18 #[error("cuda error: {0}")]
19 Cuda(#[from] CudaError),
20 #[error("memcpy error: {0}")]
21 Copy(#[from] MemCopyError),
22 #[error("round-0 layout mismatch")]
23 Layout,
24}
25
26impl From<Round0PrepError> for Round0EvalError {
27 fn from(err: Round0PrepError) -> Self {
28 match err {
29 Round0PrepError::Cuda(e) => Round0EvalError::Cuda(e),
30 Round0PrepError::Mem(e) => Round0EvalError::Copy(e),
31 Round0PrepError::Layout => Round0EvalError::Layout,
32 }
33 }
34}
35
36#[derive(Debug, Error)]
37pub enum FractionalSumcheckError {
38 #[error("nonzero root sum: p={p}, q={q}")]
39 NonzeroRootSum { p: EF, q: EF },
40 #[error("bit reversal: {0}")]
41 BitReversal(CudaError),
42 #[error("segment tree: {0}")]
43 SegmentTree(CudaError),
44 #[error("frac_compute_round: {0}")]
45 ComputeRound(CudaError),
46 #[error("frac_fold_columns: {0}")]
47 FoldColumns(CudaError),
48 #[error("evals_eq_hypercube: {0}")]
49 EvalEqHypercube(KernelError),
50 #[error("grind error: {0}")]
51 Grind(#[from] GrindError),
52 #[error("memcpy error: {0}")]
53 Copy(#[from] MemCopyError),
54}
55
56#[derive(Debug, Error)]
57pub enum InteractionGpuError {
58 #[error("cuda error: {0}")]
59 Cuda(#[from] CudaError),
60 #[error("memcpy error: {0}")]
61 Copy(#[from] MemCopyError),
62 #[error("interaction layout mismatch")]
63 Layout,
64}
65
66#[derive(Debug, Error)]
67pub enum FoldPleError {
68 #[error("cuda error: {0}")]
69 Cuda(#[from] CudaError),
70 #[error("memcpy error: {0}")]
71 Copy(#[from] MemCopyError),
72 #[error("invalid matrix dimensions")]
73 InvalidDimensions,
74}
75
76#[derive(Debug, Error)]
77pub enum UnstackMatrixError {
78 #[error("matrix idx={mat_idx} not found")]
79 MatrixNotFound { mat_idx: usize },
80}