Skip to content

Commit e9b59aa

Browse files
committed
WIP
Signed-off-by: nstarman <nstarman@users.noreply.github.com>
1 parent b699860 commit e9b59aa

78 files changed

Lines changed: 3162 additions & 4348 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,14 +88,14 @@ import coordinax.charts as cxc
8888
import coordinax.transforms as cxt
8989
9090
q = {"x": u.Q(1.0, "km"), "y": u.Q(2.0, "km"), "z": u.Q(3.0, "km")}
91-
q_sph = cxt.point_transform(cxc.sph3d, cxc.cart3d, q)
91+
q_sph = cxt.point_transition(cxc.sph3d, cxc.cart3d, q)
9292
```
9393

9494
We can also transform physical vector components between reps:
9595

9696
```
9797
v = {"x": u.Q(4.0, "km/s"), "y": u.Q(5.0, "km/s"), "z": u.Q(6.0, "km/s")}
98-
v_sph = cxt.physical_tangent_transform(cxc.sph3d, cxc.cart3d, v, at=q)
98+
v_sph = cxt.phys_tangent_basis_change(cxc.sph3d, cxc.cart3d, v, at=q)
9999
```
100100

101101
## Metrics

docs/_spec.md

Lines changed: 0 additions & 2398 deletions
This file was deleted.

docs/api/charts.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ sph = cxc.sph3d # Spherical3D
2525

2626
# Transform coordinates between charts
2727
p = {"x": u.Q(1, "km"), "y": u.Q(2, "km"), "z": u.Q(3, "km")}
28-
p_sph = cxt.point_transform(sph, cart, p)
28+
p_sph = cxt.point_transition(sph, cart, p)
2929
```
3030

3131
## Available Charts

docs/api/roles.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -40,15 +40,15 @@ pos_role = cxr.PhysDisp()
4040

4141
```
4242
AbstractRole
43-
├── Point # Affine location (transforms via point_transform)
43+
├── Point # Affine location (transforms via point_transition)
4444
├── AbstractPhysRole
45-
│ ├── PhysDisp # Physical displacement (physical_tangent_transform; needs at=)
46-
│ ├── PhysVel # Physical velocity (physical_tangent_transform; needs at=)
47-
│ └── PhysAcc # Physical acceleration (physical_tangent_transform; needs at=)
45+
│ ├── PhysDisp # Physical displacement (phys_tangent_basis_change; needs at=)
46+
│ ├── PhysVel # Physical velocity (phys_tangent_basis_change; needs at=)
47+
│ └── PhysAcc # Physical acceleration (phys_tangent_basis_change; needs at=)
4848
└── AbstractCoordRole
49-
├── CoordDisp # Coordinate-basis displacement (coord_tangent_transform; needs at=)
50-
├── CoordVel # Coordinate-basis velocity (coord_tangent_transform; needs at=)
51-
└── CoordAcc # Coordinate-basis acceleration (coord_tangent_transform; needs at=)
49+
├── CoordDisp # Coordinate-basis displacement (coord_tangent_pushforward; needs at=)
50+
├── CoordVel # Coordinate-basis velocity (coord_tangent_pushforward; needs at=)
51+
└── CoordAcc # Coordinate-basis acceleration (coord_tangent_pushforward; needs at=)
5252
```
5353

5454
## Role Semantics

docs/api/transforms.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,17 @@ import unxt as u
2020

2121
# Transform a point from Cartesian to spherical (with Quantities)
2222
p_cart = {"x": u.Q(1, "km"), "y": u.Q(2, "km"), "z": u.Q(3, "km")}
23-
p_sph = cxt.point_transform(cxc.sph3d, cxc.cart3d, p_cart)
23+
p_sph = cxt.point_transition(cxc.sph3d, cxc.cart3d, p_cart)
2424

2525
# Transform a point (with bare arrays - no units)
2626
p_cart_arr = {"x": 1.0, "y": 2.0, "z": 3.0}
27-
p_sph_arr = cxt.point_transform(
27+
p_sph_arr = cxt.point_transition(
2828
cxc.sph3d, cxc.cart3d, p_cart_arr, usys=u.unitsystems.galactic
2929
)
3030

3131
# Transform a velocity vector (requires base point)
3232
v_cart = {"x": u.Q(10, "km/s"), "y": u.Q(20, "km/s"), "z": u.Q(30, "km/s")}
33-
v_sph = cxt.physical_tangent_transform(cxc.sph3d, cxc.cart3d, v_cart, at=p_cart)
33+
v_sph = cxt.phys_tangent_basis_change(cxc.sph3d, cxc.cart3d, v_cart, at=p_cart)
3434
```
3535

3636
## Core Functions
@@ -42,7 +42,7 @@ Transform point coordinates from one chart to another:
4242
<!-- skip: next -->
4343

4444
```python
45-
p_new = cxt.point_transform(to_chart, from_chart, p)
45+
p_new = cxt.point_transition(to_chart, from_chart, p)
4646
```
4747

4848
The transformation is a coordinate-wise map that preserves the geometric
@@ -62,12 +62,12 @@ import unxt as u
6262

6363
# With Quantities (explicit units)
6464
p_qty = {"r": u.Q(10, "m")}
65-
p_cart = cxt.point_transform(cxc.cart1d, cxc.radial1d, p_qty)
65+
p_cart = cxt.point_transition(cxc.cart1d, cxc.radial1d, p_qty)
6666
# Result: {'x': Quantity(Array(10, dtype=int64, ...), unit='m')}
6767

6868
# With bare values (no units)
6969
p_arr = {"r": 5}
70-
p_cart = cxt.point_transform(cxc.cart1d, cxc.radial1d, p_arr, usys=u.unitsystems.si)
70+
p_cart = cxt.point_transition(cxc.cart1d, cxc.radial1d, p_arr, usys=u.unitsystems.si)
7171
# Result: {'x': 5}
7272
```
7373

@@ -78,7 +78,7 @@ Transform tangent vectors (velocities, accelerations) between charts:
7878
<!-- skip: next -->
7979

8080
```python
81-
v_new = cxt.physical_tangent_transform(to_chart, from_chart, v, at=p)
81+
v_new = cxt.phys_tangent_basis_change(to_chart, from_chart, v, at=p)
8282
```
8383

8484
This uses the Jacobian of the coordinate transformation to correctly transform

docs/guides/anchored_vector_bundle.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ v_mixed = {"rho": u.Q(1.0, "m/s"), "phi": u.Q(0.1, "rad/s"), "z": u.Q(0.5, "m/s"
177177
# This would be coordinate differentials, not physical vectors
178178
```
179179

180-
The bundle automatically uses `coordinax.transforms.physical_tangent_transform`
180+
The bundle automatically uses `coordinax.transforms.phys_tangent_basis_change`
181181
for fibre conversions, which expects homogeneous physical components.
182182

183183
### Batched Bundles
@@ -359,4 +359,4 @@ See [API Documentation](../api/vecs.md) for detailed method signatures.
359359
- [Coordinate Representations](charts.md) - Available coordinate systems
360360
- [Operators](operators.md) - Geometric operations on vectors
361361
- API: `coordinax.PointedVector`
362-
- API: `coordinax.transforms.physical_tangent_transform`
362+
- API: `coordinax.transforms.phys_tangent_basis_change`

docs/guides/charts.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ and shows how to transform parameter dictionaries and vectors.
2222
units (e.g. all speed or all acceleration).
2323
- Coordinate derivatives: time derivatives of coordinate components (e.g.
2424
\dot\theta, \ddot\phi); these may have heterogeneous units and are not what
25-
`physical_tangent_transform`/`vconvert` uses for physical vectors.
25+
`phys_tangent_basis_change`/`vconvert` uses for physical vectors.
2626

2727
## Distances and Angles
2828

@@ -36,9 +36,9 @@ a = u.Angle(30.0, "deg")
3636

3737
## Representations and Coordinate Maps
3838

39-
The `point_transform` function converts coordinates between different charts. It
40-
accepts `CsDict` values that can be either **Quantities** (values with explicit
41-
units) or **bare arrays** (dimensionless values).
39+
The `point_transition` function converts coordinates between different charts.
40+
It accepts `CsDict` values that can be either **Quantities** (values with
41+
explicit units) or **bare arrays** (dimensionless values).
4242

4343
### With Quantities
4444

@@ -54,7 +54,7 @@ rep_sph = cxc.sph3d
5454
5555
q = {"x": u.Q(1, "km"), "y": u.Q(2, "km"), "z": u.Q(3, "km")}
5656
57-
q_sph = cxt.point_transform(rep_sph, rep_cart, q)
57+
q_sph = cxt.point_transition(rep_sph, rep_cart, q)
5858
# Result: {'r': Quantity(..., unit='km'), 'theta': ..., 'phi': ...}
5959
```
6060

@@ -69,13 +69,13 @@ import unxt as u
6969
7070
# 1D example: Radial to Cartesian
7171
to_chart, from_chart = cxc.cart1d, cxc.radial1d
72-
cxt.point_transform(to_chart, from_chart, {"r": 5})
72+
cxt.point_transition(to_chart, from_chart, {"r": 5})
7373
# Result: {'x': 5}
7474
7575
# 2D example: Polar to Cartesian
7676
import jax.numpy as jnp
7777
p_polar = {"r": 1.0, "theta": jnp.pi / 4}
78-
p_cart = cxt.point_transform(cxc.cart2d, cxc.polar2d, p_polar, usys=u.unitsystems.galactic)
78+
p_cart = cxt.point_transition(cxc.cart2d, cxc.polar2d, p_polar, usys=u.unitsystems.galactic)
7979
# Result: {'x': 0.707..., 'y': 0.707...}
8080
```
8181

docs/guides/embedded_manifolds.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,11 @@ physical components are pushed forward and projected using orthonormal frames.
2222
units (e.g. all speed or all acceleration).
2323
- Coordinate derivatives: time derivatives of coordinate components (e.g.
2424
\dot\theta, \ddot\phi); these may have heterogeneous units and are not what
25-
`physical_tangent_transform`/`vconvert` uses for physical vectors.
25+
`phys_tangent_basis_change`/`vconvert` uses for physical vectors.
2626

2727
## Physical components vs coordinate derivatives
2828

29-
Physical components are the inputs to `physical_tangent_transform` and
29+
Physical components are the inputs to `phys_tangent_basis_change` and
3030
`vconvert`. Coordinate derivatives can mix units and are not transformed by
3131
these routines:
3232

docs/guides/metrics.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,11 @@ physical components are interpreted and compared.
2222
units (e.g. all speed or all acceleration).
2323
- Coordinate derivatives: time derivatives of coordinate components (e.g.
2424
\dot\theta, \ddot\phi); these may have heterogeneous units and are not what
25-
`physical_tangent_transform`/`vconvert` uses for physical vectors.
25+
`phys_tangent_basis_change`/`vconvert` uses for physical vectors.
2626

2727
## Physical components vs coordinate derivatives
2828

29-
Physical components are the inputs to `physical_tangent_transform` and
29+
Physical components are the inputs to `phys_tangent_basis_change` and
3030
`vconvert`. Coordinate derivatives can mix units and are not transformed by
3131
these routines:
3232

docs/guides/vector_algebra.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,12 @@ displacement can be added to a point** to yield a new point.
2424
**This is the most important concept**: positions and displacements transform
2525
differently under coordinate changes.
2626

27-
| Role | Geometric Object | Transformation Rule | Function | Base Point? |
28-
| ---------- | ----------------------------- | ---------------------------------------------- | ---------------------------- | ----------- |
29-
| `Point` | Point $p \in M$ | Position transform: $p_S = f_{R \to S}(p_R)$ | `point_transform` | No |
30-
| `PhysDisp` | Physical vector $v \in T_p M$ | Tangent transform: $v_S = B_S(p)^T B_R(p) v_R$ | `physical_tangent_transform` | Sometimes\* |
31-
| `PhysVel` | Physical vector $v \in T_p M$ | Tangent transform: $v_S = B_S(p)^T B_R(p) v_R$ | `physical_tangent_transform` | Sometimes\* |
32-
| `PhysAcc` | Physical vector $a \in T_p M$ | Tangent transform: $a_S = B_S(p)^T B_R(p) v_R$ | `physical_tangent_transform` | Sometimes\* |
27+
| Role | Geometric Object | Transformation Rule | Function | Base Point? |
28+
| ---------- | ----------------------------- | ---------------------------------------------- | --------------------------- | ----------- |
29+
| `Point` | Point $p \in M$ | Position transform: $p_S = f_{R \to S}(p_R)$ | `point_transition` | No |
30+
| `PhysDisp` | Physical vector $v \in T_p M$ | Tangent transform: $v_S = B_S(p)^T B_R(p) v_R$ | `phys_tangent_basis_change` | Sometimes\* |
31+
| `PhysVel` | Physical vector $v \in T_p M$ | Tangent transform: $v_S = B_S(p)^T B_R(p) v_R$ | `phys_tangent_basis_change` | Sometimes\* |
32+
| `PhysAcc` | Physical vector $a \in T_p M$ | Tangent transform: $a_S = B_S(p)^T B_R(p) v_R$ | `phys_tangent_basis_change` | Sometimes\* |
3333

3434
\*Base point required for:
3535

@@ -42,13 +42,13 @@ differently under coordinate changes.
4242
The distinction between these transformation types is formalized in coordinax
4343
through two separate functions:
4444

45-
1. **`point_transform(to_chart, from_chart, p)`**: Chart-to-chart mapping
45+
1. **`point_transition(to_chart, from_chart, p)`**: Chart-to-chart mapping
4646
- Maps points between coordinate charts: $p_{\text{new}} = f(p_{\text{old}})$
4747
- Used for: Position vectors (role `PhysDisp`)
4848
- Does not require a base point
4949
- Example: Converting a position from Cartesian to spherical coordinates
5050

51-
2. **`physical_tangent_transform(to_chart, from_chart, v, at=p_base)`**:
51+
2. **`phys_tangent_basis_change(to_chart, from_chart, v, at=p_base)`**:
5252
Frame-based mapping at a point
5353
- Maps tangent vectors at a point via the frame transformation:
5454
$v_S = B_S(p)^T B_R(p) v_R$
@@ -259,7 +259,7 @@ origin = cx.Vector.from_([0, 0, 0], "m")
259259
260260
# Get displacement in spherical representation
261261
disp_sph = cx.as_disp(pos, origin, chart=cxc.sph3d, at=pos)
262-
# Uses physical_tangent_transform to convert to spherical at base point 'pos'
262+
# Uses phys_tangent_basis_change to convert to spherical at base point 'pos'
263263
```
264264

265265
## Euclidean vs Non-Euclidean Representations

0 commit comments

Comments
 (0)