pub const OP_ID: &str = "vyre-primitives::graph::exploded_build_ifds_csr";
pub const IFDS_CSR_INTRA_PROC_BUFFER: &str = "exploded_ifds_csr intra_proc";
pub const IFDS_CSR_INTRA_SRC_BLOCK_BUFFER: &str = "exploded_ifds_csr intra_src_block";
pub const IFDS_CSR_INTRA_DST_BLOCK_BUFFER: &str = "exploded_ifds_csr intra_dst_block";
pub const IFDS_CSR_INTER_SRC_PROC_BUFFER: &str = "exploded_ifds_csr inter_src_proc";
pub const IFDS_CSR_INTER_SRC_BLOCK_BUFFER: &str = "exploded_ifds_csr inter_src_block";
pub const IFDS_CSR_INTER_DST_PROC_BUFFER: &str = "exploded_ifds_csr inter_dst_proc";
pub const IFDS_CSR_INTER_DST_BLOCK_BUFFER: &str = "exploded_ifds_csr inter_dst_block";
pub const IFDS_CSR_GEN_PROC_BUFFER: &str = "exploded_ifds_csr gen_proc";
pub const IFDS_CSR_GEN_BLOCK_BUFFER: &str = "exploded_ifds_csr gen_block";
pub const IFDS_CSR_GEN_FACT_BUFFER: &str = "exploded_ifds_csr gen_fact";
pub const IFDS_CSR_KILL_PROC_BUFFER: &str = "exploded_ifds_csr kill_proc";
pub const IFDS_CSR_KILL_BLOCK_BUFFER: &str = "exploded_ifds_csr kill_block";
pub const IFDS_CSR_KILL_FACT_BUFFER: &str = "exploded_ifds_csr kill_fact";
pub const IFDS_CSR_ROW_PTR_BUFFER: &str = "exploded_ifds_csr row_ptr";
pub const IFDS_CSR_ROW_CURSOR_BUFFER: &str = "exploded_ifds_csr row_cursor";
pub const IFDS_CSR_COL_IDX_BUFFER: &str = "exploded_ifds_csr col_idx";
pub const IFDS_CSR_COL_LEN_BUFFER: &str = "exploded_ifds_csr col_len";
pub const IFDS_CSR_KILLED_BUFFER: &str = "exploded_ifds_csr killed";
pub const IFDS_CSR_WORKGROUP_SIZE: [u32; 3] = [1, 1, 1];
#[must_use]
pub fn ifds_csr_dispatch_grid(intra_count: u32, total_nodes: u32) -> [u32; 3] {
let x = intra_count.max(total_nodes).max(1);
[x, 1, 1]
}
pub const IFDS_CSR_EMPTY_DISPATCH_GRID: [u32; 3] = [1, 1, 1];