Commit 842f3ce5 authored by Michael Tesch's avatar Michael Tesch
Browse files

Remove stale dual_fmt.h references from documentation

parent 93362d84
Loading
Loading
Loading
Loading
+6 −5
Original line number Diff line number Diff line
# CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

## Project Overview

cppduals is a header-only C++17 template library for dual number arithmetic and forward-mode automatic differentiation. Dual numbers have the form `a + b·ε` where `ε² = 0`, enabling exact derivative computation. Supports recursive nesting (`dual<dual<T>>`) for higher-order derivatives and composition with `std::complex`.
@@ -45,7 +43,6 @@ Build output goes to `Build-clang/`, `Build-clangr/`, `Build-cc/`, `Build-ccr/`,

- `duals/dual` — Main `duals::dual<T>` class template with all math functions (sin, cos, exp, log, pow, etc.) and operator overloads. This is the primary public API (~1900 lines).
- `duals/dual_eigen` — Eigen matrix library integration: NumTraits, type promotion, and vectorized packet operations for dual types.
- `duals/dual_fmt.h` — Optional fmt library formatting support.
- `duals/arch/{SSE,AVX,NEON}/` — Hand-coded SIMD vectorization for `dual<float>`, `dual<double>`, and `complex<dual<>>`.

**Tests** (`tests/`): Google Test-based. Key test files: `test_dual.cpp` (core), `test_eigen.cpp` (Eigen integration), `test_packets.cpp` (SIMD), `test_cdual.cpp` (complex-dual), `test_funcs.cpp` (math functions), `test_solve.cpp` (linear solvers), `test_expm.cpp` (matrix exponential).
@@ -65,9 +62,12 @@ To cut a new release:
# 1. Update the VERSION in CMakeLists.txt
#    project(cppduals VERSION 0.7.1 ...)

# 2. Commit the version bump and merge to master
# 2. Add a changelog entry under the ChangeLog section at the
#    bottom of README.md (new version heading + bullet points)

# 3. Commit the version bump and merge to master

# 3. Tag and push — CI does the rest
# 4. Tag and push — CI does the rest
git tag v0.7.1
git push origin v0.7.1
```
@@ -76,6 +76,7 @@ git push origin v0.7.1

## Code Conventions

- All changes require a merge request — never push directly to `master`.
- Comment WHY, not WHAT.
- License: MPL 2.0.
- Must compile on GCC, Clang, and MSVC.
+0 −1
Original line number Diff line number Diff line
@@ -82,7 +82,6 @@ Headers
| `duals/multidual` | Multivariate `dual<T,N>` — N partials in one evaluation |
| `duals/dual_eigen` | Eigen integration for `dual<T>`: NumTraits, type promotion, SIMD packet ops |
| `duals/multidual_eigen` | Eigen integration for `dual<T,N>`: NumTraits, type promotion, rpart/dpart functors |
| `duals/dual_fmt.h` | Optional fmt library formatters |

Installation
============
+1 −4
Original line number Diff line number Diff line
@@ -14,10 +14,7 @@ compiles unchanged (N=1 default).
   `NumTraits`, `ScalarBinaryOpTraits`, and the unary functors
   (`rpart`, `dpart`).  Guard SIMD packet specializations to `N=1`.

3. Update `duals/dual_fmt.h` — add `int N` template parameter.
   N=1 formatting unchanged; N>1 shows partials array.

4. Update SIMD headers (`duals/arch/{SSE,AVX,NEON}/Dual.h`,
3. Update SIMD headers (`duals/arch/{SSE,AVX,NEON}/Dual.h`,
   `ComplexDual.h`) — specialize for `dual<T,1>` only.

5. Run full existing test suite — must pass unchanged.
+0 −1
Original line number Diff line number Diff line
@@ -144,7 +144,6 @@ existing code works unchanged.
| `duals/dual` | Core `dual<T>` class, math functions, IO, complex overloads |
| `duals/multidual` | Multivariate `dual<T,N>` with compile-time gradient support |
| `duals/dual_eigen` | Eigen NumTraits, type promotion, SIMD packet ops |
| `duals/dual_fmt.h` | Optional fmt library formatters |

 */