dendritic/
lib.rs

1//! # Dendritic 
2//!
3//! **Dendritic** is a lightweight and extensible optimization library built with flexibility in mind.
4//! Contains utilities for first order optimization with multi variate/vector valued functions using `ndarray`.
5//! This crate aims to contain extensible interfaces for common abstractions in optimization & machine learning problems.
6
7
8//! ## 🚀 Features
9//! 
10//! - 📐 **Auto-Differentiation**: Reverse-mode autodiff for computing gradients using `ndarray`.
11//! - ⚙️ **Optimizers**: Built-in optimizers like SGD, Adam, etc.
12//! - 📈 **Regression Models**: Traditional regression models (Linear, Logistic).
13//! - 🔣 **Preprocessing**: Lightweight utilities for common preprocessing tasks (e.g., one-hot encoding).
14//! - 🧱 **Modular**: Designed to be flexible and easy to extend for research or custom pipelines.
15
16//! ## 🔮 Future Enhancements
17//! 
18//! There are more features on the roadmap for this crate. Version `v2` was a redesign focused on improving crate structure and aligning functionality with abstractions common in optimization theory.
19//!
20//! Below are some ideas for future features that may be incorporated into the crate:
21//!
22//! - **Second Order Optimization**  
23//!   Methods like Newton's or Secant methods that leverage second-order derivatives (Hessian) for faster convergence.
24//!
25//! - **Population Methods**  
26//!   Optimization techniques that maintain and evolve a population of candidate solutions. Includes genetic algorithms and evolutionary strategies.
27//!
28//! - **Zero Order Methods**  
29//!   Approaches that do not require gradient information, useful in settings where derivatives are unavailable or expensive to compute.
30
31pub mod autodiff;
32pub mod optimizer;
33pub mod preprocessing;