#[cfg(feature = "tensor")]
pub mod traits;
#[cfg(feature = "tensor")]
pub mod dense;
#[cfg(feature = "tensor")]
pub mod sparse;
#[cfg(feature = "tensor")]
pub mod ops;
#[cfg(feature = "tensor")]
pub mod error;
#[cfg(feature = "tensor")]
pub mod types;
#[cfg(feature = "tensor")]
pub mod backend;
#[cfg(feature = "tensor-pool")]
pub mod pool;
#[cfg(feature = "tensor-gnn")]
pub mod gnn;
#[cfg(feature = "tensor")]
pub mod graph_tensor;
#[cfg(feature = "tensor")]
pub mod differentiable;
#[cfg(feature = "tensor")]
pub mod decomposition;
#[cfg(feature = "tensor")]
pub mod unified_graph;
#[cfg(feature = "tensor")]
pub use traits::{COOView, DType, Device, SparseTensorOps, TensorBase, TensorOps};
#[cfg(feature = "tensor")]
pub use dense::DenseTensor;
#[cfg(feature = "tensor")]
pub use sparse::{COOTensor, CSRTensor, SparseTensor};
#[cfg(feature = "tensor")]
pub use error::TensorError;
#[cfg(feature = "tensor")]
pub use types::{EdgeFeatures, NodeFeatures, TensorEdge, TensorNode};
#[cfg(feature = "tensor")]
pub use types::AdjacencyMatrix;
#[cfg(feature = "tensor")]
pub use types::DegreeMatrix;
#[cfg(feature = "tensor")]
pub use backend::{NdArrayStorage, TensorStorage, UnifiedStorage};
#[cfg(feature = "tensor-pool")]
pub use pool::{ArenaStats, ArenaTensor, PoolConfig, PoolStats, PooledTensor, TensorArena, TensorPool};
#[cfg(feature = "tensor-autograd")]
pub use pool::GradientCheckpoint;
#[cfg(feature = "tensor-gnn")]
pub use gnn::{
Aggregator, GATConv, GCNConv, GraphSAGE, IdentityMessage, LinearMessage, MaxAggregator,
MeanAggregator, MessageFunction, MessagePassingLayer, SumAggregator, UpdateFunction,
};
#[cfg(feature = "tensor")]
pub use graph_tensor::{
GraphFeatureExtractor, GraphReconstructor,
};
#[cfg(feature = "tensor")]
pub use graph_tensor::{
GraphAdjacencyMatrix, GraphBatch, GraphTensorExt,
};
#[cfg(feature = "tensor")]
pub use differentiable::{
DifferentiableEdge, DifferentiableGraph, DifferentiableNode, EdgeEditOp, EdgeEditPolicy,
EditOperation, GradientConfig, GradientRecorder, GraphTransformer, GumbelSoftmaxSampler,
NodeEditOp, StructureEdit, ThresholdEditPolicy,
};
#[cfg(feature = "tensor")]
pub use unified_graph::{EdgeData, NodeData, UnifiedConfig, UnifiedGraph};
#[cfg(feature = "tensor")]
pub use decomposition::{
lie_algebra::{lie_exponential, lie_logarithm, skew_symmetric_projection},
qr::{orthogonalize, qr_decompose},
svd::{low_rank_approx, svd_decompose},
tensor_ring::{compress_tensor_ring, tensor_ring_decompose, TensorRing},
};