pub mod argsort;
pub mod bincount;
pub mod histogram;
pub mod histogramdd;
pub mod kthvalue;
pub mod kthvalue_backward;
pub mod msort;
pub mod searchsorted;
pub mod sort;
pub mod sort_backward;
pub mod topk;
pub mod topk_backward;
pub mod unique;
pub mod unique_consecutive;
pub use argsort::{ArgsortArgs, ArgsortDescriptor, ArgsortPlan};
pub use bincount::{BincountArgs, BincountDescriptor, BincountPlan};
pub use histogram::{HistogramArgs, HistogramDescriptor, HistogramPlan};
pub use histogramdd::{HistogramddArgs, HistogramddDescriptor, HistogramddPlan};
pub use kthvalue::{KthvalueArgs, KthvalueDescriptor, KthvaluePlan};
pub use kthvalue_backward::{
KthvalueBackwardArgs, KthvalueBackwardDescriptor, KthvalueBackwardPlan,
};
pub use msort::{MsortArgs, MsortBackwardArgs, MsortBackwardDescriptor, MsortBackwardPlan,
MsortDescriptor, MsortPlan};
pub use searchsorted::{SearchsortedArgs, SearchsortedDescriptor, SearchsortedPlan};
pub use sort::{SortArgs, SortDescriptor, SortPlan};
pub use sort_backward::{SortBackwardArgs, SortBackwardDescriptor, SortBackwardPlan};
pub use topk::{TopkArgs, TopkDescriptor, TopkPlan};
pub use topk_backward::{TopkBackwardArgs, TopkBackwardDescriptor, TopkBackwardPlan};
pub use unique::{UniqueArgs, UniqueDescriptor, UniquePlan};
pub use unique_consecutive::{
UniqueConsecutiveArgs, UniqueConsecutiveDescriptor, UniqueConsecutivePlan,
};
use baracuda_cutlass::{Error, Result};
pub const SORT_MAX_ROW: i32 = 1024;
pub const TOPK_MAX_K: i32 = 64;
pub(crate) fn map_status(code: i32) -> Result<()> {
match code {
0 => Ok(()),
1 => Err(Error::MisalignedOperand),
2 => Err(Error::InvalidProblem(
"baracuda-kernels-sys::sort reported invalid problem",
)),
3 => Err(Error::Unsupported(
"baracuda-kernels-sys::sort reported unsupported configuration \
(e.g. row_len > 1024 or k > 64)",
)),
4 => Err(Error::WorkspaceTooSmall { needed: 0, got: 0 }),
n => Err(Error::CutlassInternal(n)),
}
}