1pub mod attention;
44pub mod config;
45pub mod error;
46pub mod graph;
47pub mod hyperbolic;
48pub mod moe;
49pub mod sdk;
50pub mod sparse;
51pub mod training;
52pub mod traits;
53pub mod utils;
54
55pub mod curvature;
57pub mod topology;
58pub mod transport;
59
60pub mod info_bottleneck;
62pub mod info_geometry;
63pub mod pde_attention;
64pub mod unified_report;
65
66pub use attention::{MultiHeadAttention, ScaledDotProductAttention};
68pub use config::{AttentionConfig, GraphAttentionConfig, SparseAttentionConfig};
69pub use error::{AttentionError, AttentionResult};
70pub use hyperbolic::{
71 exp_map, log_map, mobius_add, poincare_distance, project_to_ball, HyperbolicAttention,
72 HyperbolicAttentionConfig, MixedCurvatureAttention, MixedCurvatureConfig,
73};
74pub use traits::{
75 Attention, EdgeInfo, GeometricAttention, Gradients, GraphAttention, SparseAttention,
76 SparseMask, TrainableAttention,
77};
78
79pub use sparse::{
81 AttentionMask, FlashAttention, LinearAttention, LocalGlobalAttention, SparseMaskBuilder,
82};
83
84pub use moe::{
86 Expert, ExpertType, HyperbolicExpert, LearnedRouter, LinearExpert, MoEAttention, MoEConfig,
87 Router, StandardExpert, TopKRouting,
88};
89
90pub use graph::{
92 DualSpaceAttention, DualSpaceConfig, EdgeFeaturedAttention, EdgeFeaturedConfig, GraphRoPE,
93 RoPEConfig,
94};
95
96pub use training::{
98 Adam, AdamW, CurriculumScheduler, CurriculumStage, DecayType, HardNegativeMiner, InfoNCELoss,
99 LocalContrastiveLoss, Loss, MiningStrategy, NegativeMiner, Optimizer, Reduction,
100 SpectralRegularization, TemperatureAnnealing, SGD,
101};
102
103pub use sdk::{presets, AttentionBuilder, AttentionPipeline};
105
106pub use transport::{
108 CentroidCache, CentroidOTAttention, CentroidOTConfig, ProjectionCache,
109 SlicedWassersteinAttention, SlicedWassersteinConfig, WindowCache,
110};
111
112pub use curvature::{
114 ComponentQuantizer, FusedCurvatureConfig, MixedCurvatureCache,
115 MixedCurvatureFusedAttention, QuantizationConfig, QuantizedVector, TangentSpaceMapper,
116 TangentSpaceConfig,
117};
118
119pub use topology::{
121 AttentionMode, AttentionPolicy, CoherenceMetric, PolicyConfig, TopologyGatedAttention,
122 TopologyGatedConfig, WindowCoherence,
123};
124
125pub use info_geometry::{FisherConfig, FisherMetric, NaturalGradient, NaturalGradientConfig};
127
128pub use info_bottleneck::{
130 DiagonalGaussian, IBConfig, InformationBottleneck, KLDivergence,
131};
132
133pub use pde_attention::{DiffusionAttention, DiffusionConfig, GraphLaplacian, LaplacianType};
135
136pub use unified_report::{
138 AttentionRecommendation, GeometryReport, MetricType, MetricValue, ReportBuilder, ReportConfig,
139};
140
141pub const VERSION: &str = env!("CARGO_PKG_VERSION");
143
144#[cfg(test)]
145mod tests {
146 use super::*;
147
148 #[test]
149 fn test_version() {
150 assert!(!VERSION.is_empty());
151 }
152
153 #[test]
154 fn test_basic_attention_workflow() {
155 let config = AttentionConfig::builder()
156 .dim(64)
157 .num_heads(4)
158 .build()
159 .unwrap();
160
161 assert_eq!(config.dim, 64);
162 assert_eq!(config.num_heads, 4);
163 assert_eq!(config.head_dim(), 16);
164 }
165}