pub mod combinatorial;
pub mod diff_lp;
pub mod diff_qp;
pub mod implicit_diff;
pub mod kkt_sensitivity;
pub mod layer;
pub mod lp_layer;
pub mod perturbed_optimizer;
pub mod qp_layer;
pub mod types;
pub use combinatorial::{
diff_topk, soft_rank, soft_sort, sparsemap, sparsemap_gradient,
PerturbedOptimizer as PerturbedOptimizerLegacy,
PerturbedOptimizerConfig as PerturbedOptimizerLegacyConfig, SparsemapConfig, SparsemapResult,
StructureType,
};
pub use diff_lp::DifferentiableLP;
pub use diff_qp::DifferentiableQP;
pub use kkt_sensitivity::{
kkt_matrix, kkt_sensitivity, mat_vec, outer_product, parametric_nlp_adjoint, regularize_q,
sym_outer_product, KktGrad, KktSystem, NlpGrad,
};
pub use layer::{OptNetLayer, StandardOptNetLayer};
pub use lp_layer::{lp_gradient, lp_perturbed, LpLayer, LpLayerConfig, LpSensitivity};
pub use perturbed_optimizer::{
PerturbedOptimizer, PerturbedOptimizerConfig, SparseMap, SparseMapConfig,
};
pub use qp_layer::{QpLayer, QpLayerConfig};
pub use types::{
BackwardMode, DiffLPConfig, DiffLPResult, DiffOptGrad, DiffOptParams, DiffOptResult,
DiffOptStatus, DiffQPConfig, DiffQPResult, ImplicitGradient, KKTSystem,
};