docs: prepare v0.3.0 release with documentation improvements - #150
Conversation
- Update README version to 0.3, expand module table to 15 algebras - Add comprehensive features list (CGA, codegen, interior products, etc.) - Enhance Minkowski module docs with spacetime geometry explanation - Add doc comments to generated trait implementations: - Wedge/Antiwedge products with geometric meaning - Sandwich/Antisandwich for transformations - Left/Right contractions with grade semantics - Bulk/Weight contractions and expansions for PGA - Transform trait documentation - Update PRD-6 (3D CGA) and PRD-50 (2D CGA) status to Complete - Bump all crate versions to 0.3.0 - Update CHANGELOG with release notes Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Greptile OverviewGreptile SummaryThis PR prepares the v0.3.0 release primarily through documentation and metadata updates: it bumps crate versions to 0.3.0, expands the Two doc correctness issues remain: the README claims 15 specialized algebras but the table lists 14 (missing Confidence Score: 3/5
Important Files Changed
|
| // Generate documentation | ||
| let doc = format!( | ||
| "Wedge (exterior/outer) product of [`{}`] and [`{}`].\n\n\ | ||
| The wedge product `a ^ b` computes the outer product, which represents\n\ | ||
| the oriented subspace spanned by both operands. The result grade is the\n\ | ||
| sum of the input grades (or zero if they share common factors).", | ||
| a.name, b.name | ||
| ); |
There was a problem hiding this comment.
The generated algebras need to be regenerated to include these new doc comments.
After modifying the codegen templates, you must regenerate all 15 algebras:
for toml in crates/clifford-codegen/algebras/*.toml; do
cargo run --package clifford-codegen -- generate "$toml" --force
doneCurrently the generated traits.rs files in src/specialized/*/generated/ don't include the new documentation.
Prompt To Fix With AI
This is a comment left during a code review.
Path: crates/clifford-codegen/src/codegen/traits.rs
Line: 2281:2288
Comment:
The generated algebras need to be regenerated to include these new doc comments.
After modifying the codegen templates, you must regenerate all 15 algebras:
```bash
for toml in crates/clifford-codegen/algebras/*.toml; do
cargo run --package clifford-codegen -- generate "$toml" --force
done
```
Currently the generated `traits.rs` files in `src/specialized/*/generated/` don't include the new documentation.
How can I resolve this? If you propose a fix, please make it concise.| | Module | Signature | Description | | ||
| |--------|-----------|-------------| | ||
| | [`specialized::complex`](https://docs.rs/clifford/latest/clifford/specialized/complex/) | Cl(0,1) | Complex numbers (i^2 = -1) | | ||
| | [`specialized::dual`](https://docs.rs/clifford/latest/clifford/specialized/dual/) | Cl(0,0,1) | Dual numbers (epsilon^2 = 0) for automatic differentiation | | ||
| | [`specialized::quaternion`](https://docs.rs/clifford/latest/clifford/specialized/quaternion/) | Cl(0,2) | Quaternions for 3D rotations | | ||
| | [`specialized::dualquat`](https://docs.rs/clifford/latest/clifford/specialized/dualquat/) | - | Dual quaternions for rigid transforms | | ||
| | [`specialized::euclidean::dim2`](https://docs.rs/clifford/latest/clifford/specialized/euclidean/dim2/) | Cl(2,0) | 2D Euclidean: Vector, Bivector, Rotor | | ||
| | [`specialized::euclidean::dim3`](https://docs.rs/clifford/latest/clifford/specialized/euclidean/dim3/) | Cl(3,0) | 3D Euclidean: Vector, Bivector, Trivector, Rotor | | ||
| | [`specialized::projective::dim2`](https://docs.rs/clifford/latest/clifford/specialized/projective/dim2/) | Cl(2,0,1) | 2D PGA: Point, Line, Motor | | ||
| | [`specialized::projective::dim3`](https://docs.rs/clifford/latest/clifford/specialized/projective/dim3/) | Cl(3,0,1) | 3D PGA: Point, Line, Plane, Motor, Flector | | ||
| | [`specialized::conformal::dim2`](https://docs.rs/clifford/latest/clifford/specialized/conformal/dim2/) | Cl(3,1) | 2D CGA: Points, circles, conformal transforms | | ||
| | [`specialized::conformal::dim3`](https://docs.rs/clifford/latest/clifford/specialized/conformal/dim3/) | Cl(4,1) | 3D CGA: Points, spheres, circles, conformal transforms | | ||
| | [`specialized::minkowski::dim2`](https://docs.rs/clifford/latest/clifford/specialized/minkowski/dim2/) | Cl(1,1) | 2D Minkowski spacetime | | ||
| | [`specialized::minkowski::dim3`](https://docs.rs/clifford/latest/clifford/specialized/minkowski/dim3/) | Cl(1,2) | 3D Minkowski spacetime | | ||
| | [`specialized::elliptic::dim2`](https://docs.rs/clifford/latest/clifford/specialized/elliptic/dim2/) | Cl(2,0) + positive curvature | 2D elliptic/spherical geometry | | ||
| | [`specialized::hyperbolic`](https://docs.rs/clifford/latest/clifford/specialized/hyperbolic/) | - | Hyperbolic numbers (j^2 = +1) | |
There was a problem hiding this comment.
The table lists 14 algebras but claims 15 in the features section. The missing algebra is hyperbolic::dim2 (2D hyperbolic plane, Cl(2,1,0)).
Add this row to complete the table:
| | Module | Signature | Description | | |
| |--------|-----------|-------------| | |
| | [`specialized::complex`](https://docs.rs/clifford/latest/clifford/specialized/complex/) | Cl(0,1) | Complex numbers (i^2 = -1) | | |
| | [`specialized::dual`](https://docs.rs/clifford/latest/clifford/specialized/dual/) | Cl(0,0,1) | Dual numbers (epsilon^2 = 0) for automatic differentiation | | |
| | [`specialized::quaternion`](https://docs.rs/clifford/latest/clifford/specialized/quaternion/) | Cl(0,2) | Quaternions for 3D rotations | | |
| | [`specialized::dualquat`](https://docs.rs/clifford/latest/clifford/specialized/dualquat/) | - | Dual quaternions for rigid transforms | | |
| | [`specialized::euclidean::dim2`](https://docs.rs/clifford/latest/clifford/specialized/euclidean/dim2/) | Cl(2,0) | 2D Euclidean: Vector, Bivector, Rotor | | |
| | [`specialized::euclidean::dim3`](https://docs.rs/clifford/latest/clifford/specialized/euclidean/dim3/) | Cl(3,0) | 3D Euclidean: Vector, Bivector, Trivector, Rotor | | |
| | [`specialized::projective::dim2`](https://docs.rs/clifford/latest/clifford/specialized/projective/dim2/) | Cl(2,0,1) | 2D PGA: Point, Line, Motor | | |
| | [`specialized::projective::dim3`](https://docs.rs/clifford/latest/clifford/specialized/projective/dim3/) | Cl(3,0,1) | 3D PGA: Point, Line, Plane, Motor, Flector | | |
| | [`specialized::conformal::dim2`](https://docs.rs/clifford/latest/clifford/specialized/conformal/dim2/) | Cl(3,1) | 2D CGA: Points, circles, conformal transforms | | |
| | [`specialized::conformal::dim3`](https://docs.rs/clifford/latest/clifford/specialized/conformal/dim3/) | Cl(4,1) | 3D CGA: Points, spheres, circles, conformal transforms | | |
| | [`specialized::minkowski::dim2`](https://docs.rs/clifford/latest/clifford/specialized/minkowski/dim2/) | Cl(1,1) | 2D Minkowski spacetime | | |
| | [`specialized::minkowski::dim3`](https://docs.rs/clifford/latest/clifford/specialized/minkowski/dim3/) | Cl(1,2) | 3D Minkowski spacetime | | |
| | [`specialized::elliptic::dim2`](https://docs.rs/clifford/latest/clifford/specialized/elliptic/dim2/) | Cl(2,0) + positive curvature | 2D elliptic/spherical geometry | | |
| | [`specialized::hyperbolic`](https://docs.rs/clifford/latest/clifford/specialized/hyperbolic/) | - | Hyperbolic numbers (j^2 = +1) | | |
| | Module | Signature | Description | | |
| |--------|-----------|-------------| | |
| | [`specialized::complex`](https://docs.rs/clifford/latest/clifford/specialized/complex/) | Cl(0,1) | Complex numbers (i^2 = -1) | | |
| | [`specialized::dual`](https://docs.rs/clifford/latest/clifford/specialized/dual/) | Cl(0,0,1) | Dual numbers (epsilon^2 = 0) for automatic differentiation | | |
| | [`specialized::quaternion`](https://docs.rs/clifford/latest/clifford/specialized/quaternion/) | Cl(0,2) | Quaternions for 3D rotations | | |
| | [`specialized::dualquat`](https://docs.rs/clifford/latest/clifford/specialized/dualquat/) | - | Dual quaternions for rigid transforms | | |
| | [`specialized::euclidean::dim2`](https://docs.rs/clifford/latest/clifford/specialized/euclidean/dim2/) | Cl(2,0) | 2D Euclidean: Vector, Bivector, Rotor | | |
| | [`specialized::euclidean::dim3`](https://docs.rs/clifford/latest/clifford/specialized/euclidean/dim3/) | Cl(3,0) | 3D Euclidean: Vector, Bivector, Trivector, Rotor | | |
| | [`specialized::projective::dim2`](https://docs.rs/clifford/latest/clifford/specialized/projective/dim2/) | Cl(2,0,1) | 2D PGA: Point, Line, Motor | | |
| | [`specialized::projective::dim3`](https://docs.rs/clifford/latest/clifford/specialized/projective/dim3/) | Cl(3,0,1) | 3D PGA: Point, Line, Plane, Motor, Flector | | |
| | [`specialized::conformal::dim2`](https://docs.rs/clifford/latest/clifford/specialized/conformal/dim2/) | Cl(3,1) | 2D CGA: Points, circles, conformal transforms | | |
| | [`specialized::conformal::dim3`](https://docs.rs/clifford/latest/clifford/specialized/conformal/dim3/) | Cl(4,1) | 3D CGA: Points, spheres, circles, conformal transforms | | |
| | [`specialized::minkowski::dim2`](https://docs.rs/clifford/latest/clifford/specialized/minkowski/dim2/) | Cl(1,1) | 2D Minkowski spacetime | | |
| | [`specialized::minkowski::dim3`](https://docs.rs/clifford/latest/clifford/specialized/minkowski/dim3/) | Cl(1,2) | 3D Minkowski spacetime | | |
| | [`specialized::elliptic::dim2`](https://docs.rs/clifford/latest/clifford/specialized/elliptic/dim2/) | Cl(2,0) + positive curvature | 2D elliptic/spherical geometry | | |
| | [`specialized::hyperbolic`](https://docs.rs/clifford/latest/clifford/specialized/hyperbolic/) | - | Hyperbolic numbers (j^2 = +1) | | |
| | [`specialized::hyperbolic::dim2`](https://docs.rs/clifford/latest/clifford/specialized/hyperbolic/dim2/) | Cl(2,1) | 2D hyperbolic plane | |
Prompt To Fix With AI
This is a comment left during a code review.
Path: crates/clifford/README.md
Line: 162:177
Comment:
The table lists 14 algebras but claims 15 in the features section. The missing algebra is `hyperbolic::dim2` (2D hyperbolic plane, Cl(2,1,0)).
Add this row to complete the table:
```suggestion
| Module | Signature | Description |
|--------|-----------|-------------|
| [`specialized::complex`](https://docs.rs/clifford/latest/clifford/specialized/complex/) | Cl(0,1) | Complex numbers (i^2 = -1) |
| [`specialized::dual`](https://docs.rs/clifford/latest/clifford/specialized/dual/) | Cl(0,0,1) | Dual numbers (epsilon^2 = 0) for automatic differentiation |
| [`specialized::quaternion`](https://docs.rs/clifford/latest/clifford/specialized/quaternion/) | Cl(0,2) | Quaternions for 3D rotations |
| [`specialized::dualquat`](https://docs.rs/clifford/latest/clifford/specialized/dualquat/) | - | Dual quaternions for rigid transforms |
| [`specialized::euclidean::dim2`](https://docs.rs/clifford/latest/clifford/specialized/euclidean/dim2/) | Cl(2,0) | 2D Euclidean: Vector, Bivector, Rotor |
| [`specialized::euclidean::dim3`](https://docs.rs/clifford/latest/clifford/specialized/euclidean/dim3/) | Cl(3,0) | 3D Euclidean: Vector, Bivector, Trivector, Rotor |
| [`specialized::projective::dim2`](https://docs.rs/clifford/latest/clifford/specialized/projective/dim2/) | Cl(2,0,1) | 2D PGA: Point, Line, Motor |
| [`specialized::projective::dim3`](https://docs.rs/clifford/latest/clifford/specialized/projective/dim3/) | Cl(3,0,1) | 3D PGA: Point, Line, Plane, Motor, Flector |
| [`specialized::conformal::dim2`](https://docs.rs/clifford/latest/clifford/specialized/conformal/dim2/) | Cl(3,1) | 2D CGA: Points, circles, conformal transforms |
| [`specialized::conformal::dim3`](https://docs.rs/clifford/latest/clifford/specialized/conformal/dim3/) | Cl(4,1) | 3D CGA: Points, spheres, circles, conformal transforms |
| [`specialized::minkowski::dim2`](https://docs.rs/clifford/latest/clifford/specialized/minkowski/dim2/) | Cl(1,1) | 2D Minkowski spacetime |
| [`specialized::minkowski::dim3`](https://docs.rs/clifford/latest/clifford/specialized/minkowski/dim3/) | Cl(1,2) | 3D Minkowski spacetime |
| [`specialized::elliptic::dim2`](https://docs.rs/clifford/latest/clifford/specialized/elliptic/dim2/) | Cl(2,0) + positive curvature | 2D elliptic/spherical geometry |
| [`specialized::hyperbolic`](https://docs.rs/clifford/latest/clifford/specialized/hyperbolic/) | - | Hyperbolic numbers (j^2 = +1) |
| [`specialized::hyperbolic::dim2`](https://docs.rs/clifford/latest/clifford/specialized/hyperbolic/dim2/) | Cl(2,1) | 2D hyperbolic plane |
```
How can I resolve this? If you propose a fix, please make it concise.Regenerate all 15 algebras to apply the new doc comments added to trait implementations in the codegen traits.rs file. Generated traits now include documentation explaining: - Wedge/Antiwedge products with geometric meaning - Sandwich/Antisandwich for transformations - Left/Right contractions with grade semantics - Bulk/Weight contractions and expansions for PGA - Transform trait documentation Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
@greptileai review |
| //! # Available Algebras | ||
| //! | ||
| //! - **[`dim2`]**: Minkowski plane Cl(1,1,0) - 2D spacetime | ||
| //! - **[`dim3`]**: Minkowski spacetime Cl(3,1,0) - 3+1 spacetime (special relativity) | ||
| //! - **[`dim2`]**: Minkowski plane Cl(1,1,0) - 2D spacetime (1 space + 1 time) |
There was a problem hiding this comment.
Conflicting Minkowski signature
This module doc now says dim3 is Cl(1,2,0), but the generated Minkowski 3D types docs still state Cl(3,1,0) (see crates/clifford/src/specialized/minkowski/dim3/generated/types.rs). As-is, users will get contradictory docs for the same module; either update the generator/algebra config so the generated docs match the new signature, or revert this doc change to the existing signature.
Prompt To Fix With AI
This is a comment left during a code review.
Path: crates/clifford/src/specialized/minkowski/mod.rs
Line: 7:9
Comment:
**Conflicting Minkowski signature**
This module doc now says `dim3` is `Cl(1,2,0)`, but the generated Minkowski 3D types docs still state `Cl(3,1,0)` (see `crates/clifford/src/specialized/minkowski/dim3/generated/types.rs`). As-is, users will get contradictory docs for the same module; either update the generator/algebra config so the generated docs match the new signature, or revert this doc change to the existing signature.
How can I resolve this? If you propose a fix, please make it concise.|
|
||
| ## Features | ||
|
|
There was a problem hiding this comment.
README algebra count mismatch
The Features section claims “15 Specialized Algebras”, but the specialized module table only lists 14 rows (it’s missing specialized::hyperbolic::dim2, which exists and is listed elsewhere as Cl(2,1,0)). This should be fixed so the README is internally consistent.
Prompt To Fix With AI
This is a comment left during a code review.
Path: crates/clifford/README.md
Line: 36:38
Comment:
**README algebra count mismatch**
The Features section claims “15 Specialized Algebras”, but the specialized module table only lists 14 rows (it’s missing `specialized::hyperbolic::dim2`, which exists and is listed elsewhere as `Cl(2,1,0)`). This should be fixed so the README is internally consistent.
How can I resolve this? If you propose a fix, please make it concise.
Summary
Documentation Improvements
README Updates
Generated Trait Documentation
Codegen now produces doc comments for trait implementations:
Module Documentation
PRD Updates
Test plan
cargo fmt- cleancargo clippy --all-targets- no warningscargo doc --no-deps- builds successfullycargo nextest run- 1938 tests passcargo deny check- licenses OK🤖 Generated with Claude Code