ruv_fann/
lib.rs

1//! Pure Rust implementation of the Fast Artificial Neural Network (FANN) library
2//!
3//! This crate provides a modern, safe, and efficient implementation of neural networks
4//! inspired by the original FANN library, with support for generic floating-point types.
5//! Includes full cascade correlation support for dynamic network topology optimization.
6
7// Re-export main types
8pub use activation::ActivationFunction;
9pub use connection::Connection;
10pub use layer::Layer;
11pub use network::{Network, NetworkBuilder, NetworkError};
12pub use neuron::Neuron;
13
14// Re-export training types
15pub use training::{
16    ParallelTrainingOptions, TrainingAlgorithm as TrainingAlgorithmTrait, TrainingData,
17    TrainingError, TrainingState,
18};
19
20/// Enumeration of available training algorithms
21#[derive(Debug, Clone, Copy, PartialEq)]
22pub enum TrainingAlgorithm {
23    IncrementalBackprop,
24    BatchBackprop,
25    Batch,           // Alias for BatchBackprop
26    Backpropagation, // Alias for IncrementalBackprop
27    RProp,
28    QuickProp,
29}
30
31// Re-export cascade training types
32pub use cascade::{CascadeConfig, CascadeError, CascadeNetwork, CascadeTrainer};
33
34// Re-export comprehensive error handling
35pub use errors::{ErrorCategory, RuvFannError, ValidationError};
36
37// Modules
38pub mod activation;
39pub mod cascade;
40pub mod connection;
41pub mod errors;
42pub mod integration;
43pub mod layer;
44pub mod network;
45pub mod neuron;
46pub mod training;
47
48// Optional I/O module
49#[cfg(feature = "io")]
50pub mod io;
51
52// WebGPU acceleration module
53pub mod webgpu;
54
55// Test module
56#[cfg(test)]
57mod tests;
58
59// Mock types for testing
60pub mod mock_types;