# MicrogradEx v0.1.0 - Table of Contents

> An educational scalar reverse-mode autodiff and neural-network library for Elixir.

## Guides

- Start Here
  - [README](readme.md)
  - [Getting Started with Livebook](getting_started_with_livebook.md)

- Walkthroughs
  - [Micrograd Demo Walkthrough](micrograd_demo_walkthrough.md)

- Reference
  - [Elixir Design Notes](elixir_design_notes.md)
  - [Practical API Reference](api_reference.md)
  - [Troubleshooting](troubleshooting.md)

## Modules

- Autodiff Core
  - [MicrogradEx](MicrogradEx.md): Elixir-native micrograd: a tiny scalar reverse-mode automatic differentiation
engine plus the small neural-network library from the original project.
  - [MicrogradEx.Gradients](MicrogradEx.Gradients.md): The immutable result of a reverse-mode automatic differentiation pass.
  - [MicrogradEx.Graph](MicrogradEx.Graph.md): Extracts scalar computation graphs from `MicrogradEx.Value` expressions.
  - [MicrogradEx.Value](MicrogradEx.Value.md): A scalar value that remembers the expression graph that produced it.

- Neural Networks
  - [MicrogradEx.NN](MicrogradEx.NN.md): Public facade for the tiny neural-network library.
  - [MicrogradEx.NN.Layer](MicrogradEx.NN.Layer.md): A layer is a list of neurons with the same input width.
  - [MicrogradEx.NN.MLP](MicrogradEx.NN.MLP.md): A multi-layer perceptron composed of `Layer` structs.
  - [MicrogradEx.NN.Neuron](MicrogradEx.NN.Neuron.md): A scalar neuron: weighted sum, bias, and optional ReLU.

- Data and Training
  - [MicrogradEx.Datasets](MicrogradEx.Datasets.md): Small deterministic two-dimensional datasets for MicrogradEx demos.
  - [MicrogradEx.Datasets.Dataset](MicrogradEx.Datasets.Dataset.md): A small supervised two-dimensional classification dataset.
  - [MicrogradEx.Losses](MicrogradEx.Losses.md): Loss functions for small scalar MicrogradEx models.
  - [MicrogradEx.Losses.Result](MicrogradEx.Losses.Result.md): Result of evaluating a supervised scalar loss.

  - [MicrogradEx.PlotData](MicrogradEx.PlotData.md): Converts MicrogradEx datasets and training runs into plain plotting rows.
  - [MicrogradEx.Trainer](MicrogradEx.Trainer.md): Small immutable training loops for MicrogradEx models.
  - [MicrogradEx.Trainer.Run](MicrogradEx.Trainer.Run.md): Result of a MicrogradEx training run.

- Value Graph Internals
  - [MicrogradEx.Value.Edge](MicrogradEx.Value.Edge.md): A single local derivative from one operation output back to one parent value.
  - [MicrogradEx.Value.Node](MicrogradEx.Value.Node.md): The immutable record stored in a value's computation graph.

