coordinate-system 7.0.0__cp313-cp313-win_amd64.whl → 7.0.2__cp313-cp313-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,41 +1,56 @@
1
- """
2
- Complex Geometric Physics - Unified Framework
3
- ================================================================================
4
-
5
- Implementation of the "Christmas Equation" and Complex Frame Unified Theory (CFUT)
6
-
7
- The Christmas Equation (Complete complex form):
8
- M_P²/2 Ĝ_μν[U] + λ/(32π²) ∇̂_(μ K̄_ν)[U] = T̂_μν^(top)[U] + T̂_μν^(mat)
9
-
10
- Where:
11
- - Ĝ_μν: Einstein tensor from complex frame U(x)
12
- - _μ: Chern-Simons current (topological)
13
- - _μν^(top): Topological energy-momentum tensor
14
- - T̂_μν^(mat): Matter energy-momentum tensor
15
-
16
- Core Theory:
17
- - Universe as U(3) complex frame field: U(x) ∈ U(3)
18
- - Real-imaginary decomposition: U = U^(R) + iU^(I)
19
- - Real part: geometric properties (metric, curvature, spacetime)
20
- - Imaginary part: topological properties (phase winding, gauge symmetry)
21
-
22
- Physical Interpretation:
23
- - Geometry + Topology = Complex Matter + Topological Force
24
- - Unifies gravity, gauge fields, dark matter, and topology
25
-
26
- Author: Enhanced by AI following theoretical framework
27
- Date: 2025-01-14
28
- Version: 7.0.0-alpha
29
- """
30
-
31
- __version__ = '7.0.0-alpha'
1
+ """
2
+ Complex Geometric Physics - Unified Framework
3
+ ================================================================================
4
+
5
+ Implementation of the "Christmas Equation" and Complex Frame Unified Theory (CFUT).
6
+
7
+ The Christmas Equation (complete complex form):
8
+ (M_P^2 / 2) Ĝ_{μν}[U] + (λ / (32π^2)) ∇̂_{} K̄_{ν)}[U]
9
+ = T̂_{μν}^{(top)}[U] + T̂_{μν}^{(mat)}
10
+
11
+ Where:
12
+ - Ĝ_{μν}: Einstein tensor from complex frame U(x)
13
+ - _μ: Chern-Simons current (topological)
14
+ - T̂_{μν}^{(top)}: Topological energy-momentum tensor
15
+ - T̂_{μν}^{(mat)}: Matter energy-momentum tensor
16
+
17
+ Core Theory:
18
+ - Universe as U(3) complex frame field: U(x) U(3)
19
+ - Real-imaginary decomposition: U = U^(R) + i U^(I)
20
+ - Real part: geometric properties (metric, curvature, spacetime)
21
+ - Imaginary part: topological properties (phase winding, gauge symmetry)
22
+
23
+ Physical Interpretation:
24
+ - Geometry + Topology = Complex Matter + Topological Force
25
+ - Unifies gravity, gauge fields, dark matter, and topology
26
+
27
+ **Authors:** Pan Guojun
28
+ Date: 2025-01-14
29
+ Version: 7.0.1
30
+ **DOI:** https://doi.org/10.5281/zenodo.14435613
31
+ """
32
+
33
+ __version__ = '7.0.1'
32
34
 
33
35
  import numpy as np
34
36
  from typing import Tuple, Optional, Callable, Dict, Any
35
37
  from dataclasses import dataclass
36
38
  import warnings
37
39
 
38
- # Physical constants (natural units: = c = 1)
40
+ # Physical constants (SI units for precision calculations)
41
+ HBAR_SI = 1.054571817e-34 # Reduced Planck constant [J·s]
42
+ H_PLANCK_SI = 6.62607015e-34 # Planck constant [J·s]
43
+ C_LIGHT_SI = 2.99792458e8 # Speed of light [m/s]
44
+ E_CHARGE_SI = 1.602176634e-19 # Elementary charge [C]
45
+ EPSILON_0_SI = 8.8541878128e-12 # Vacuum permittivity [F/m]
46
+ M_ELECTRON_SI = 9.1093837015e-31 # Electron mass [kg]
47
+
48
+ # Derived constants
49
+ ALPHA_FS = E_CHARGE_SI**2 / (4 * np.pi * EPSILON_0_SI * HBAR_SI * C_LIGHT_SI) # Fine structure constant ≈ 1/137
50
+ LAMBDA_C = H_PLANCK_SI / (M_ELECTRON_SI * C_LIGHT_SI) # Compton wavelength [m]
51
+ ALPHA_PROJECTION = ALPHA_FS * LAMBDA_C # Projection factor α ≈ 1.77×10⁻¹⁴ m
52
+
53
+ # Physical constants (natural units: ℏ = c = 1)
39
54
  M_PLANCK = 2.435e18 # Planck mass [GeV]
40
55
  LAMBDA_TOPO = 0.1008 # Topological coupling constant (from theory)
41
56
  HBAR = 1.0 # Reduced Planck constant (natural units)
@@ -53,77 +68,33 @@ except ImportError:
53
68
  FieldStrength = None
54
69
  warnings.warn("U3Frame not available. Some features will be limited.")
55
70
 
71
+ # Compatibility alias for older APIs.
72
+ ComplexFrame = U3Frame
73
+
56
74
 
57
75
  # ============================================================
58
76
  # Core Data Structures
59
77
  # ============================================================
60
78
 
61
79
  @dataclass
62
- class ComplexFrame:
63
- """
64
- Complex frame field U(x) = U^(R)(x) + iU^(I)(x)
65
-
66
- Attributes:
67
- real_part: Real part U^(R) - geometric properties
68
- imag_part: Imaginary part U^(I) - topological properties
69
- position: Spacetime position (x, y, z, t)
70
- """
71
- real_part: np.ndarray # 3×3 real matrix
72
- imag_part: np.ndarray # 3×3 real matrix
73
- position: Optional[np.ndarray] = None # (x, y, z, t)
80
+ class EnergyMomentumTensor:
81
+ """
82
+ Energy-momentum tensor T_{μν}
83
+
84
+ Decomposition:
85
+ T_{μν} = T_{μν}^{(R)} + i T_{μν}^{(I)}
86
+ - Real part: mass-energy density
87
+ - Imaginary part: charge current
88
+ """
89
+ real_part: np.ndarray # 4×4 real symmetric tensor
90
+ imag_part: np.ndarray # 4×4 real tensor
74
91
 
75
92
  def __post_init__(self):
76
- """Validate complex frame structure"""
77
- if self.real_part.shape != (3, 3):
78
- raise ValueError(f"Real part must be 3×3, got {self.real_part.shape}")
79
- if self.imag_part.shape != (3, 3):
80
- raise ValueError(f"Imaginary part must be 3×3, got {self.imag_part.shape}")
81
-
82
- @property
83
- def complex_matrix(self) -> np.ndarray:
84
- """Full complex matrix U = U^(R) + iU^(I)"""
85
- return self.real_part + 1j * self.imag_part
86
-
87
- @property
88
- def metric_tensor(self) -> np.ndarray:
89
- """
90
- Metric tensor from real part: g_μν = U^(R)ᵀ U^(R)
91
-
92
- Returns:
93
- 3×3 metric tensor
94
- """
95
- return self.real_part.T @ self.real_part
96
-
97
- @property
98
- def gauge_potential(self) -> np.ndarray:
99
- """
100
- Gauge potential from imaginary part: A_μ ∝ U^(I)
101
-
102
- Returns:
103
- 3×3 anti-Hermitian matrix
104
- """
105
- return 1j * self.imag_part
106
-
107
-
108
- @dataclass
109
- class EnergyMomentumTensor:
110
- """
111
- Energy-momentum tensor T_μν
112
-
113
- Decomposition:
114
- T_μν = T_μν^(R) + iT_μν^(I)
115
- - Real part: mass-energy density
116
- - Imaginary part: charge current
117
- """
118
- real_part: np.ndarray # 4×4 real symmetric tensor
119
- imag_part: np.ndarray # 4×4 real tensor
120
-
121
- def __post_init__(self):
122
- """Validate tensor structure"""
123
- if self.real_part.shape != (4, 4):
124
- raise ValueError(f"Real part must be 4×4, got {self.real_part.shape}")
125
- if self.imag_part.shape != (4, 4):
126
- raise ValueError(f"Imaginary part must be 4×4, got {self.imag_part.shape}")
93
+ """Validate tensor structure"""
94
+ if self.real_part.shape != (4, 4):
95
+ raise ValueError(f"Real part must be 4×4, got {self.real_part.shape}")
96
+ if self.imag_part.shape != (4, 4):
97
+ raise ValueError(f"Imaginary part must be 4×4, got {self.imag_part.shape}")
127
98
 
128
99
  @property
129
100
  def complex_tensor(self) -> np.ndarray:
@@ -143,43 +114,47 @@ class EnergyMomentumTensor:
143
114
  # Christmas Equation Implementation
144
115
  # ============================================================
145
116
 
146
- class ChristmasEquation:
147
- """
148
- The Christmas Equation - Unified field equation
149
-
150
- Complete form:
151
- M_P²/2 Ĝ_μν[U] + λ/(32π²) ∇̂_(μ K̄_ν)[U] = T̂_μν^(top)[U] + T̂_μν^(mat)
152
-
153
- Components:
154
- - Left side: Geometry + Topology
155
- - Right side: Topological source + Matter source
156
- """
157
-
158
- def __init__(self,
159
- planck_mass: float = M_PLANCK,
160
- topo_coupling: float = LAMBDA_TOPO):
161
- """
162
- Initialize Christmas Equation solver
163
-
164
- Args:
165
- planck_mass: Planck mass M_P [GeV]
166
- topo_coupling: Topological coupling constant λ
167
- """
117
+ class ChristmasEquation:
118
+ """
119
+ The Christmas Equation - unified field equation
120
+
121
+ Complete form:
122
+ (M_P^2 / 2) Ĝ_{μν}[U] + (λ / (32π^2)) ∇̂_{} K̄_{ν)}[U]
123
+ = T̂_{μν}^{(top)}[U] + T̂_{μν}^{(mat)}
124
+
125
+ Components:
126
+ - Left side: Geometry + Topology
127
+ - Right side: Topological source + Matter source
128
+ """
129
+
130
+ def __init__(self,
131
+ planck_mass: float = M_PLANCK,
132
+ topo_coupling: float = LAMBDA_TOPO,
133
+ projection_factor: float = ALPHA_PROJECTION):
134
+ """
135
+ Initialize Christmas Equation solver.
136
+
137
+ Args:
138
+ planck_mass: Planck mass M_P [GeV]
139
+ topo_coupling: Topological coupling constant λ
140
+ projection_factor: Projection factor α = α_fs × λ_c [m]
141
+ """
168
142
  self.M_P = planck_mass
169
143
  self.lambda_topo = topo_coupling
170
-
171
- def einstein_tensor(self, frame: ComplexFrame) -> np.ndarray:
172
- """
173
- Compute Einstein tensor Ĝ_μν from complex frame
174
-
175
- Ĝ_μν = R_μν - (1/2)g_μν R
176
-
177
- Args:
178
- frame: Complex frame field U(x)
179
-
180
- Returns:
181
- 3×3 Einstein tensor (spatial part)
182
- """
144
+ self.alpha_proj = projection_factor
145
+
146
+ def einstein_tensor(self, frame: U3Frame) -> np.ndarray:
147
+ """
148
+ Compute Einstein tensor Ĝ_{μν} from complex frame.
149
+
150
+ Ĝ_{μν} = R_{μν} - (1/2) g_{μν} R
151
+
152
+ Args:
153
+ frame: Complex frame field U(x)
154
+
155
+ Returns:
156
+ 3×3 Einstein tensor (spatial part)
157
+ """
183
158
  # Extract metric from real part
184
159
  g = frame.metric_tensor
185
160
 
@@ -196,14 +171,14 @@ class ChristmasEquation:
196
171
 
197
172
  return G_tensor
198
173
 
199
- def chern_simons_current(self, frame: ComplexFrame) -> np.ndarray:
200
- """
201
- Compute Chern-Simons current K̄_μ from imaginary part
202
-
203
- K̄_μ = ε_μνρσ Tr(A^ν F^ρσ - (2/3)A^ν A^ρ A^σ)
204
-
205
- Args:
206
- frame: Complex frame field U(x)
174
+ def chern_simons_current(self, frame: U3Frame) -> np.ndarray:
175
+ """
176
+ Compute Chern-Simons current K̄_μ from imaginary part.
177
+
178
+ K̄_μ = ε_{μνρσ} Tr(A^ν F^{ρσ} - (2/3) A^ν A^ρ A^σ)
179
+
180
+ Args:
181
+ frame: Complex frame field U(x)
207
182
 
208
183
  Returns:
209
184
  4-vector Chern-Simons current
@@ -223,9 +198,9 @@ class ChristmasEquation:
223
198
 
224
199
  return K_current
225
200
 
226
- def topological_energy_momentum(self, frame: ComplexFrame) -> EnergyMomentumTensor:
227
- """
228
- Compute topological energy-momentum tensor T̂_μν^(top)
201
+ def topological_energy_momentum(self, frame: U3Frame) -> EnergyMomentumTensor:
202
+ """
203
+ Compute topological energy-momentum tensor T̂_{μν}^{(top)}.
229
204
 
230
205
  From topological defects (instantons, vortices)
231
206
 
@@ -252,13 +227,14 @@ class ChristmasEquation:
252
227
 
253
228
  return EnergyMomentumTensor(T_real, T_imag)
254
229
 
255
- def solve_christmas_equation(self,
256
- frame: ComplexFrame,
257
- matter_tensor: EnergyMomentumTensor) -> Dict[str, Any]:
258
- """
259
- Solve the Christmas Equation
260
-
261
- M_P²/2 Ĝ_μν + λ/(32π²) ∇̂_(μ K̄_ν) = T̂_μν^(top) + T̂_μν^(mat)
230
+ def solve_christmas_equation(self,
231
+ frame: U3Frame,
232
+ matter_tensor: EnergyMomentumTensor) -> Dict[str, Any]:
233
+ """
234
+ Solve the Christmas Equation.
235
+
236
+ (M_P^2 / 2) Ĝ_{μν} + (λ / (32π^2)) ∇̂_{} K̄_{ν)}
237
+ = T̂_{μν}^{(top)} + T̂_{μν}^{(mat)}
262
238
 
263
239
  Args:
264
240
  frame: Complex frame field U(x)
@@ -301,12 +277,12 @@ class ChristmasEquation:
301
277
 
302
278
  # -------------------- Internal Helper Methods --------------------
303
279
 
304
- def _compute_ricci_tensor(self, frame: ComplexFrame) -> np.ndarray:
280
+ def _compute_ricci_tensor(self, frame: U3Frame) -> np.ndarray:
305
281
  """
306
282
  Compute Ricci tensor from frame (simplified)
307
283
 
308
- In full implementation, use intrinsic gradient method:
309
- R_μν = [G_μ, G_ν] where G_μ = ∂_μ log U
284
+ In full implementation, use intrinsic gradient method:
285
+ R_{μν} = [G_μ, G_ν] where G_μ = ∂_μ log U
310
286
 
311
287
  Args:
312
288
  frame: Complex frame field
@@ -323,9 +299,9 @@ class ChristmasEquation:
323
299
 
324
300
  return R
325
301
 
326
- def _compute_field_strength(self, frame: ComplexFrame) -> np.ndarray:
302
+ def _compute_field_strength(self, frame: U3Frame) -> np.ndarray:
327
303
  """
328
- Compute field strength tensor F_μν = ∂_μ A_ν - ∂_ν A_μ + [A_μ, A_ν]
304
+ Compute field strength tensor F_{μν} = ∂_μ A_ν - ∂_ν A_μ + [A_μ, A_ν]
329
305
 
330
306
  Args:
331
307
  frame: Complex frame field
@@ -335,14 +311,14 @@ class ChristmasEquation:
335
311
  """
336
312
  A = frame.gauge_potential
337
313
 
338
- # Simplified: F [A, A]
314
+ # Simplified: F ~= [A, A]
339
315
  F = A @ A - A.T @ A.T
340
316
 
341
317
  return F
342
318
 
343
- def _compute_topological_charge(self, frame: ComplexFrame) -> float:
319
+ def _compute_topological_charge(self, frame: U3Frame) -> float:
344
320
  """
345
- Compute topological charge Q = (1/32π²) ∫ Tr(F ∧ F)
321
+ Compute topological charge Q = (1/(32π^2)) ∫ Tr(F ∧ F)
346
322
 
347
323
  Args:
348
324
  frame: Complex frame field
@@ -362,52 +338,64 @@ class ChristmasEquation:
362
338
  # Utility Functions
363
339
  # ============================================================
364
340
 
365
- def create_flat_spacetime_frame(position: Optional[np.ndarray] = None) -> ComplexFrame:
341
+ def create_flat_spacetime_frame(position: Optional[np.ndarray] = None) -> U3Frame:
366
342
  """
367
- Create a flat spacetime complex frame (Minkowski space)
343
+ Create a flat spacetime U(3) frame (Minkowski space)
368
344
 
369
345
  Args:
370
- position: Spacetime position (x, y, z, t)
346
+ position: Spacetime position (x, y, z, t) [currently ignored]
371
347
 
372
348
  Returns:
373
- ComplexFrame with flat metric
349
+ U3Frame with flat metric
374
350
  """
375
351
  real_part = np.eye(3) # Flat spatial metric
376
352
  imag_part = np.zeros((3, 3)) # No gauge field
377
353
 
378
- return ComplexFrame(real_part, imag_part, position)
354
+ # Convert to U3Frame: extract column vectors
355
+ complex_matrix = real_part + 1j * imag_part
356
+ e1 = complex_matrix[:, 0]
357
+ e2 = complex_matrix[:, 1]
358
+ e3 = complex_matrix[:, 2]
359
+
360
+ return U3Frame(e1, e2, e3, ensure_unitary=True)
379
361
 
380
362
 
381
363
  def create_curved_spacetime_frame(curvature: float = 0.1,
382
- position: Optional[np.ndarray] = None) -> ComplexFrame:
364
+ position: Optional[np.ndarray] = None) -> U3Frame:
383
365
  """
384
- Create a curved spacetime complex frame
366
+ Create a curved spacetime U(3) frame
385
367
 
386
368
  Args:
387
369
  curvature: Curvature parameter
388
- position: Spacetime position (x, y, z, t)
370
+ position: Spacetime position (x, y, z, t) [currently ignored]
389
371
 
390
372
  Returns:
391
- ComplexFrame with curved metric
373
+ U3Frame with curved metric
392
374
  """
393
375
  # Simple curved metric (spherical-like)
394
376
  real_part = np.diag([1.0 + curvature, 1.0 + curvature, 1.0])
395
377
  imag_part = np.zeros((3, 3))
396
378
 
397
- return ComplexFrame(real_part, imag_part, position)
379
+ # Convert to U3Frame: extract column vectors
380
+ complex_matrix = real_part + 1j * imag_part
381
+ e1 = complex_matrix[:, 0]
382
+ e2 = complex_matrix[:, 1]
383
+ e3 = complex_matrix[:, 2]
384
+
385
+ return U3Frame(e1, e2, e3, ensure_unitary=True)
398
386
 
399
387
 
400
388
  def create_gauge_field_frame(field_strength: float = 0.1,
401
- position: Optional[np.ndarray] = None) -> ComplexFrame:
389
+ position: Optional[np.ndarray] = None) -> U3Frame:
402
390
  """
403
- Create a complex frame with gauge field
391
+ Create a U(3) frame with gauge field
404
392
 
405
393
  Args:
406
394
  field_strength: Gauge field strength
407
- position: Spacetime position (x, y, z, t)
395
+ position: Spacetime position (x, y, z, t) [currently ignored]
408
396
 
409
397
  Returns:
410
- ComplexFrame with gauge field
398
+ U3Frame with gauge field
411
399
  """
412
400
  real_part = np.eye(3) # Flat spatial metric
413
401
  imag_part = np.array([
@@ -416,7 +404,13 @@ def create_gauge_field_frame(field_strength: float = 0.1,
416
404
  [0, 0, 0]
417
405
  ]) # Non-trivial gauge field
418
406
 
419
- return ComplexFrame(real_part, imag_part, position)
407
+ # Convert to U3Frame: extract column vectors
408
+ complex_matrix = real_part + 1j * imag_part
409
+ e1 = complex_matrix[:, 0]
410
+ e2 = complex_matrix[:, 1]
411
+ e3 = complex_matrix[:, 2]
412
+
413
+ return U3Frame(e1, e2, e3, ensure_unitary=True)
420
414
 
421
415
 
422
416
  # ============================================================
@@ -425,6 +419,7 @@ def create_gauge_field_frame(field_strength: float = 0.1,
425
419
 
426
420
  __all__ = [
427
421
  'ComplexFrame',
422
+ 'U3Frame',
428
423
  'EnergyMomentumTensor',
429
424
  'ChristmasEquation',
430
425
  'create_flat_spacetime_frame',
@@ -432,6 +427,9 @@ __all__ = [
432
427
  'create_gauge_field_frame',
433
428
  'M_PLANCK',
434
429
  'LAMBDA_TOPO',
430
+ 'ALPHA_FS',
431
+ 'LAMBDA_C',
432
+ 'ALPHA_PROJECTION',
435
433
  ]
436
434
 
437
435
 
@@ -467,7 +465,7 @@ def demonstrate():
467
465
 
468
466
  solver = ChristmasEquation()
469
467
  print(f" Planck mass M_P: {solver.M_P:.3e} GeV")
470
- print(f" Topological coupling λ: {solver.lambda_topo:.4f}")
468
+ print(f" Topological coupling λ: {solver.lambda_topo:.4f}")
471
469
 
472
470
  # 3. Compute geometric quantities
473
471
  print("\n3. Geometric Quantities")
@@ -506,12 +504,13 @@ def demonstrate():
506
504
 
507
505
  # 6. Theory summary
508
506
  print("\n" + "=" * 80)
509
- print("Core Theory Summary:")
510
- print(" Christmas Equation: M_P²/2 Ĝ_μν + λ/(32π²) ∇̂_(μ K̄_ν) = T̂_μν^(top) + T̂_μν^(mat)")
511
- print(" U(x) = U^(R)(x) + iU^(I)(x) [Complex frame decomposition]")
512
- print(" Real part: Geometry (metric, curvature, spacetime)")
513
- print(" Imaginary part: Topology (phase, gauge field, winding)")
514
- print(" Unifies: Gravity + Gauge fields + Dark matter + Topology")
507
+ print("Core Theory Summary:")
508
+ print(" - Christmas Equation: (M_P^2 / 2) Ĝ_{μν} + (λ / (32π^2)) ∇̂_{} K̄_{ν)}"
509
+ " = T̂_{μν}^{(top)} + T̂_{μν}^{(mat)}")
510
+ print(" - U(x) = U^(R)(x) + iU^(I)(x) [Complex frame decomposition]")
511
+ print(" - Real part: Geometry (metric, curvature, spacetime)")
512
+ print(" - Imaginary part: Topology (phase, gauge field, winding)")
513
+ print(" - Unifies: Gravity + Gauge fields + Dark matter + Topology")
515
514
  print("=" * 80)
516
515
 
517
516
 
@@ -12,9 +12,10 @@ Main Features:
12
12
  - B-spline and frame field hybrid interpolation
13
13
  - Curvature distribution analysis
14
14
 
15
- Author: PanGuoJun
16
- Date: 2025-12-01
17
- """
15
+ **Authors:** Pan Guojun
16
+ Date: 2025-12-01
17
+ **DOI:** https://doi.org/10.5281/zenodo.14435613
18
+ """
18
19
 
19
20
  import math
20
21
  import numpy as np
@@ -12,8 +12,9 @@ Key Features:
12
12
  - Classical curvature methods with high-order finite differences
13
13
  - Gaussian, mean, principal, and Riemann curvatures
14
14
 
15
- Author: Coordinate System Package
15
+ **Authors:** Pan Guojun
16
16
  Date: 2025-12-03
17
+ **DOI:** https://doi.org/10.5281/zenodo.14435613
17
18
  """
18
19
 
19
20
  import math
@@ -910,6 +911,74 @@ def all_curvatures(
910
911
  return compute_all_curvatures(surface, u, v, step_size)
911
912
 
912
913
 
914
+ # ============================================================
915
+ # Legacy / Compatibility Aliases
916
+ # ============================================================
917
+
918
+ class LieGroupCurvatureCalculator(IntrinsicGradientCurvatureCalculator):
919
+ """Legacy alias for intrinsic gradient curvature calculator."""
920
+
921
+
922
+ def compute_curvature_tensor(
923
+ surface: Surface,
924
+ u: float,
925
+ v: float,
926
+ step_size: float = 1e-3
927
+ ) -> float:
928
+ """Legacy alias for compute_riemann_curvature."""
929
+ return compute_riemann_curvature(surface, u, v, step_size)
930
+
931
+
932
+ def gaussian_curvature_lie(
933
+ surface: Surface,
934
+ u: float,
935
+ v: float,
936
+ step_size: float = 1e-3
937
+ ) -> float:
938
+ """Legacy alias for intrinsic gradient Gaussian curvature."""
939
+ return compute_gaussian_curvature(surface, u, v, step_size)
940
+
941
+
942
+ def intrinsic_gradient_gaussian_curvature(
943
+ surface: Surface,
944
+ u: float,
945
+ v: float,
946
+ step_size: float = 1e-3
947
+ ) -> float:
948
+ """Legacy alias for intrinsic gradient Gaussian curvature."""
949
+ return compute_gaussian_curvature(surface, u, v, step_size)
950
+
951
+
952
+ def intrinsic_gradient_mean_curvature(
953
+ surface: Surface,
954
+ u: float,
955
+ v: float,
956
+ step_size: float = 1e-3
957
+ ) -> float:
958
+ """Legacy alias for intrinsic gradient mean curvature."""
959
+ return compute_mean_curvature(surface, u, v, step_size)
960
+
961
+
962
+ def intrinsic_gradient_principal_curvatures(
963
+ surface: Surface,
964
+ u: float,
965
+ v: float,
966
+ step_size: float = 1e-3
967
+ ) -> Tuple[float, float]:
968
+ """Legacy alias for intrinsic gradient principal curvatures."""
969
+ return principal_curvatures(surface, u, v, step_size)
970
+
971
+
972
+ def intrinsic_gradient_all_curvatures(
973
+ surface: Surface,
974
+ u: float,
975
+ v: float,
976
+ step_size: float = 1e-3
977
+ ) -> Dict[str, Union[float, Tuple[float, float]]]:
978
+ """Legacy alias for intrinsic gradient curvature set."""
979
+ return compute_all_curvatures(surface, u, v, step_size)
980
+
981
+
913
982
  # ============================================================
914
983
  # Method Comparison
915
984
  # ============================================================
@@ -955,15 +1024,23 @@ __all__ = [
955
1024
  'GradientResult',
956
1025
  'IntrinsicGradientOperator',
957
1026
  'IntrinsicGradientCurvatureCalculator',
1027
+ 'LieGroupCurvatureCalculator',
958
1028
  'CurvatureCalculator',
959
1029
 
960
1030
  # Intrinsic gradient method functions (default)
961
1031
  'compute_gaussian_curvature',
962
1032
  'compute_mean_curvature',
963
1033
  'compute_riemann_curvature',
1034
+ 'compute_curvature_tensor',
964
1035
  'compute_all_curvatures',
965
1036
  'compute_intrinsic_gradient',
966
1037
 
1038
+ # Intrinsic gradient legacy aliases
1039
+ 'intrinsic_gradient_gaussian_curvature',
1040
+ 'intrinsic_gradient_mean_curvature',
1041
+ 'intrinsic_gradient_principal_curvatures',
1042
+ 'intrinsic_gradient_all_curvatures',
1043
+
967
1044
  # Classical method functions
968
1045
  'gaussian_curvature_classical',
969
1046
  'mean_curvature_classical',
@@ -976,6 +1053,9 @@ __all__ = [
976
1053
  'principal_curvatures',
977
1054
  'all_curvatures',
978
1055
 
1056
+ # Legacy Lie group naming
1057
+ 'gaussian_curvature_lie',
1058
+
979
1059
  # Method comparison
980
1060
  'compare_methods',
981
1061