SFI.bases.linear module¶
- SFI.bases.linear.V(dim, *, label=None)[source]¶
Identity in v with an explicit feature axis.
Input : v ∈ R^dim (provided via keyword v=…) Output: Y ∈ R^{dim×1}
- Parameters:
dim (int)
label (str | None)
- Return type:
- SFI.bases.linear.X(dim, *, label=None)[source]¶
Identity in x with an explicit feature axis.
Input : x ∈ R^dim Output: Y ∈ R^{dim×1}
- Parameters:
dim (int)
label (str | None)
- Return type:
- SFI.bases.linear.frame(dim, *, velocity=False, x_labels=None, v_labels=None, e_labels=None)[source]¶
Default compositional frame: constant
1+ coordinate scalars + unit axes.Overdamped (
velocity=False):one, *x_components(dim), *unit_axes(dim)
Underdamped (
velocity=True):one, *x_components(dim), *v_components(dim), *unit_axes(dim)
Examples
>>> one, x, y, z, ex, ey, ez = frame(3) >>> one, x, y, z, vx, vy, vz, ex, ey, ez = frame(3, velocity=True)
Custom labels (useful for
dim > 4):>>> bundle = frame(5, x_labels=["q0","q1","q2","q3","q4"])
- Parameters:
dim (int)
velocity (bool)
x_labels (Sequence[str] | None)
v_labels (Sequence[str] | None)
e_labels (Sequence[str] | None)
- Return type:
tuple[Basis, …]
- SFI.bases.linear.linear_basis(dim, *, include_x=True, include_v=False)[source]¶
Degree-1 monomial basis in (x, v).
- Parameters:
dim (int) – Spatial dimension.
include_x (bool) – Include linear x terms.
include_v (bool) – Include linear v terms.
- Returns:
Rank-1 (vector) basis concatenating requested degree-1 monomials.
- Return type:
- SFI.bases.linear.unit_axes(dim, *, labels=None)[source]¶
Unpack unit-vector bases (one per spatial axis).
>>> ex, ey, ez = unit_axes(3)
Each returned basis is rank-1 with a single feature carrying the unit vector along that axis. Labels default to
("ex", "ey", "ez", "ew")fordim <= 4and("e0", "e1", ...)otherwise.- Parameters:
dim (int)
labels (Sequence[str] | None)
- Return type:
tuple[Basis, …]
- SFI.bases.linear.v_components(dim, *, labels=None)[source]¶
Unpack scalar v-coordinate bases, one per axis.
>>> vx, vy, vz = v_components(3)
- Parameters:
dim (int)
labels (Sequence[str] | None)
- Return type:
tuple[Basis, …]
- SFI.bases.linear.v_coordinate(index, *, dim, label=None)[source]¶
Single v-coordinate as a scalar feature.
Input : v ∈ R^dim (provided via keyword v=…) Return: scalar (); BasisLeaf will auto-insert feature axis → (1,)
- Parameters:
index (int)
dim (int)
label (str | None)
- Return type:
- SFI.bases.linear.v_coordinates(indices, *, dim, labels=None)[source]¶
Multiple v-coordinates as scalar features.
Input : v ∈ R^dim (provided via keyword v=…) Output: y ∈ R^{k} with k=len(indices)
- Parameters:
indices (Sequence[int])
dim (int)
labels (Sequence[str] | None)
- Return type:
- SFI.bases.linear.x_components(dim, *, labels=None)[source]¶
Unpack scalar x-coordinate bases, one per axis.
>>> x, y, z = x_components(3)
Each returned basis is rank-0 with one feature. Labels default to
("x", "y", "z", "w")fordim <= 4and("x0", "x1", ...)otherwise.- Parameters:
dim (int)
labels (Sequence[str] | None)
- Return type:
tuple[Basis, …]