gtsam-develop 4.3a0.dev202508020718__cp312-cp312-macosx_10_15_x86_64.whl → 4.3a0.dev202508081446__cp312-cp312-macosx_10_15_x86_64.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.

Potentially problematic release.


This version of gtsam-develop might be problematic. Click here for more details.

gtsam/__init__.pyi CHANGED
@@ -2,28 +2,28 @@
2
2
  Module definition file for GTSAM
3
3
  """
4
4
  from __future__ import annotations
5
- from builtins import dict as MatchIndicesMap
6
5
  from builtins import dict as KeyPairDoubleMap
7
6
  from builtins import dict as IndexPairSetMap
8
- from builtins import list as Point3Pairs
7
+ from builtins import dict as MatchIndicesMap
8
+ from builtins import list as SfmCameras
9
9
  from builtins import list as Point2Pairs
10
+ from builtins import list as Point3Pairs
10
11
  from builtins import list as BinaryMeasurementsUnit3
11
- from builtins import list as Point2Vector
12
+ from builtins import list as IndexPairVector
13
+ from builtins import list as SfmTracks
12
14
  from builtins import list as BinaryMeasurementsRot3
13
- from builtins import list as Rot3Vector
14
- from builtins import list as Pose3Vector
15
15
  from builtins import list as BetweenFactorPose3s
16
- from builtins import list as Pose2Pairs
17
16
  from builtins import list as SfmTrack2dVector
17
+ from builtins import list as BinaryMeasurementsPoint3
18
+ from builtins import list as Point2Vector
18
19
  from builtins import list as BetweenFactorPose2s
19
- from builtins import list as SfmMeasurementVector
20
- from builtins import list as KeypointsVector
21
- from builtins import list as SfmTracks
22
- from builtins import list as KeyVector
23
- from builtins import list as IndexPairVector
24
20
  from builtins import list as Pose3Pairs
25
- from builtins import list as SfmCameras
26
- from builtins import list as BinaryMeasurementsPoint3
21
+ from builtins import list as Pose2Pairs
22
+ from builtins import list as KeyVector
23
+ from builtins import list as Pose3Vector
24
+ from builtins import list as Rot3Vector
25
+ from builtins import list as KeypointsVector
26
+ from builtins import list as SfmMeasurementVector
27
27
  from gtsam.gtsam import AHRSFactor
28
28
  from gtsam.gtsam import AcceleratingScenario
29
29
  from gtsam.gtsam import AlgebraicDecisionTreeKey
gtsam/gtsam/__init__.pyi CHANGED
@@ -612,6 +612,11 @@ class Cal3:
612
612
  vectorized form (column-wise)
613
613
  """
614
614
  class Cal3Bundler(Cal3f):
615
+ @staticmethod
616
+ def Dim() -> int:
617
+ """
618
+ Return DOF, dimensionality of tangent space.
619
+ """
615
620
  def __getstate__(self) -> tuple:
616
621
  ...
617
622
  @typing.overload
@@ -629,6 +634,10 @@ class Cal3Bundler(Cal3f):
629
634
  ...
630
635
  def deserialize(self, serialized: str) -> None:
631
636
  ...
637
+ def dim(self) -> int:
638
+ """
639
+ Return DOF, dimensionality of tangent space.
640
+ """
632
641
  def equals(self, K: Cal3Bundler, tol: float) -> bool:
633
642
  """
634
643
  assert equality up to a tolerance
@@ -659,7 +668,7 @@ class Cal3DS2(Cal3DS2_Base):
659
668
  @staticmethod
660
669
  def Dim() -> int:
661
670
  """
662
- Return dimensions of calibration manifold object.
671
+ return DOF, dimensionality of tangent space
663
672
  """
664
673
  def __getstate__(self) -> tuple:
665
674
  ...
@@ -681,7 +690,7 @@ class Cal3DS2(Cal3DS2_Base):
681
690
  ...
682
691
  def dim(self) -> int:
683
692
  """
684
- Return dimensions of calibration manifold object.
693
+ return DOF, dimensionality of tangent space
685
694
  """
686
695
  def equals(self, K: Cal3DS2, tol: float) -> bool:
687
696
  """
@@ -771,6 +780,11 @@ class Cal3DS2_Base(Cal3):
771
780
  Return all parameters as a vector.
772
781
  """
773
782
  class Cal3Fisheye(Cal3):
783
+ @staticmethod
784
+ def Dim() -> int:
785
+ """
786
+ Return dimensions of calibration manifold object.
787
+ """
774
788
  def __getstate__(self) -> tuple:
775
789
  ...
776
790
  @typing.overload
@@ -810,6 +824,10 @@ class Cal3Fisheye(Cal3):
810
824
  """
811
825
  def deserialize(self, serialized: str) -> None:
812
826
  ...
827
+ def dim(self) -> int:
828
+ """
829
+ Return dimensions of calibration manifold object.
830
+ """
813
831
  def equals(self, K: Cal3Fisheye, tol: float) -> bool:
814
832
  """
815
833
  assert equality up to a tolerance
@@ -1057,6 +1075,11 @@ class Cal3_S2(Cal3):
1057
1075
  Returns: point in image coordinates
1058
1076
  """
1059
1077
  class Cal3_S2Stereo(Cal3_S2):
1078
+ @staticmethod
1079
+ def Dim() -> int:
1080
+ """
1081
+ return DOF, dimensionality of tangent space
1082
+ """
1060
1083
  @typing.overload
1061
1084
  def __init__(self) -> None:
1062
1085
  ...
@@ -1099,6 +1122,10 @@ class Cal3_S2Stereo(Cal3_S2):
1099
1122
 
1100
1123
  Returns: point in intrinsic coordinates
1101
1124
  """
1125
+ def dim(self) -> int:
1126
+ """
1127
+ return DOF, dimensionality of tangent space
1128
+ """
1102
1129
  def equals(self, other: Cal3_S2Stereo, tol: float) -> bool:
1103
1130
  """
1104
1131
  Check if equal up to specified tolerance.
@@ -1142,6 +1169,11 @@ class Cal3_S2Stereo(Cal3_S2):
1142
1169
  vectorized form (column-wise)
1143
1170
  """
1144
1171
  class Cal3f(Cal3):
1172
+ @staticmethod
1173
+ def Dim() -> int:
1174
+ """
1175
+ Return DOF, dimensionality of tangent space.
1176
+ """
1145
1177
  def __getstate__(self) -> tuple:
1146
1178
  ...
1147
1179
  @typing.overload
@@ -1178,6 +1210,10 @@ class Cal3f(Cal3):
1178
1210
  """
1179
1211
  def deserialize(self, serialized: str) -> None:
1180
1212
  ...
1213
+ def dim(self) -> int:
1214
+ """
1215
+ Return DOF, dimensionality of tangent space.
1216
+ """
1181
1217
  def equals(self, K: Cal3f, tol: float) -> bool:
1182
1218
  """
1183
1219
  assert equality up to a tolerance
@@ -1225,9 +1261,7 @@ class Cal3f(Cal3):
1225
1261
  class CalibratedCamera:
1226
1262
  @staticmethod
1227
1263
  def Dim() -> int:
1228
- """
1229
- Deprecated
1230
- """
1264
+ ...
1231
1265
  @staticmethod
1232
1266
  def Level(pose2: Pose2, height: float) -> CalibratedCamera:
1233
1267
  """
@@ -1266,9 +1300,7 @@ class CalibratedCamera:
1266
1300
  def deserialize(self, serialized: str) -> None:
1267
1301
  ...
1268
1302
  def dim(self) -> int:
1269
- """
1270
- Deprecated
1271
- """
1303
+ ...
1272
1304
  def equals(self, camera: CalibratedCamera, tol: float) -> bool:
1273
1305
  """
1274
1306
  assert equality up to a tolerance
@@ -4065,11 +4097,21 @@ class GPSFactorArmCalib(NonlinearFactor):
4065
4097
  ...
4066
4098
  class Gal3:
4067
4099
  @staticmethod
4100
+ def Dim() -> int:
4101
+ """
4102
+ Static method to get the dimension (compile-time or dynamic)
4103
+ """
4104
+ @staticmethod
4068
4105
  def Expmap(xi: numpy.ndarray[tuple[typing.Literal[10], typing.Literal[1]], numpy.dtype[numpy.float64]]) -> Gal3:
4069
4106
  """
4070
4107
  Exponential map at identity: tangent vector xi -> manifold element g.
4071
4108
  """
4072
4109
  @staticmethod
4110
+ def Hat(xi: numpy.ndarray[tuple[M, typing.Literal[1]], numpy.dtype[numpy.float64]]) -> numpy.ndarray[tuple[typing.Literal[5], typing.Literal[5]], numpy.dtype[numpy.float64]]:
4111
+ """
4112
+ Hat operator: maps tangent vector xi to Lie algebra matrix.
4113
+ """
4114
+ @staticmethod
4073
4115
  def Identity() -> Gal3:
4074
4116
  """
4075
4117
  Return the identity element.
@@ -4079,6 +4121,11 @@ class Gal3:
4079
4121
  """
4080
4122
  Logarithmic map at identity: manifold element g -> tangent vector xi.
4081
4123
  """
4124
+ @staticmethod
4125
+ def Vee(X: numpy.ndarray[tuple[M, N], numpy.dtype[numpy.float64]]) -> numpy.ndarray[tuple[typing.Literal[10], typing.Literal[1]], numpy.dtype[numpy.float64]]:
4126
+ """
4127
+ Vee operator: maps Lie algebra matrix to tangent vector xi.
4128
+ """
4082
4129
  @typing.overload
4083
4130
  def __init__(self) -> None:
4084
4131
  ...
@@ -4096,6 +4143,10 @@ class Gal3:
4096
4143
  ...
4097
4144
  def compose(self, other: Gal3) -> Gal3:
4098
4145
  ...
4146
+ def dim(self) -> int:
4147
+ """
4148
+ Provided fixed dimension indim()if needed.
4149
+ """
4099
4150
  def equals(self, other: Gal3, tol: float) -> bool:
4100
4151
  """
4101
4152
  Check equality within tolerance.
@@ -10623,6 +10674,11 @@ class Pose2:
10623
10674
  def Align(a: numpy.ndarray[tuple[M, N], numpy.dtype[numpy.float64]], b: numpy.ndarray[tuple[M, N], numpy.dtype[numpy.float64]]) -> Pose2 | None:
10624
10675
  ...
10625
10676
  @staticmethod
10677
+ def Dim() -> int:
10678
+ """
10679
+ Static method to get the dimension (compile-time or dynamic)
10680
+ """
10681
+ @staticmethod
10626
10682
  @typing.overload
10627
10683
  def Expmap(xi: numpy.ndarray[tuple[M, typing.Literal[1]], numpy.dtype[numpy.float64]]) -> Pose2:
10628
10684
  """
@@ -10739,6 +10795,10 @@ class Pose2:
10739
10795
  ...
10740
10796
  def deserialize(self, serialized: str) -> None:
10741
10797
  ...
10798
+ def dim(self) -> int:
10799
+ """
10800
+ Provided fixed dimension indim()if needed.
10801
+ """
10742
10802
  def equals(self, pose: Pose2, tol: float) -> bool:
10743
10803
  """
10744
10804
  assert equality up to a tolerance
@@ -10852,6 +10912,10 @@ class Pose2:
10852
10912
  """
10853
10913
  translation
10854
10914
  """
10915
+ def vec(self) -> numpy.ndarray[tuple[typing.Literal[9], typing.Literal[1]], numpy.dtype[numpy.float64]]:
10916
+ """
10917
+ Vectorize the rotation matrix into a 9D vector.
10918
+ """
10855
10919
  def x(self) -> float:
10856
10920
  """
10857
10921
  get x
@@ -10872,6 +10936,11 @@ class Pose3:
10872
10936
  def Align(a: numpy.ndarray[tuple[M, N], numpy.dtype[numpy.float64]], b: numpy.ndarray[tuple[M, N], numpy.dtype[numpy.float64]]) -> Pose3 | None:
10873
10937
  ...
10874
10938
  @staticmethod
10939
+ def Dim() -> int:
10940
+ """
10941
+ Static method to get the dimension (compile-time or dynamic)
10942
+ """
10943
+ @staticmethod
10875
10944
  @typing.overload
10876
10945
  def Expmap(xi: numpy.ndarray[tuple[M, typing.Literal[1]], numpy.dtype[numpy.float64]]) -> Pose3:
10877
10946
  """
@@ -11018,6 +11087,10 @@ class Pose3:
11018
11087
  ...
11019
11088
  def deserialize(self, serialized: str) -> None:
11020
11089
  ...
11090
+ def dim(self) -> int:
11091
+ """
11092
+ Provided fixed dimension indim()if needed.
11093
+ """
11021
11094
  def equals(self, pose: Pose3, tol: float) -> bool:
11022
11095
  """
11023
11096
  assert equality up to a tolerance
@@ -11234,6 +11307,10 @@ class Pose3:
11234
11307
  """
11235
11308
  get translation
11236
11309
  """
11310
+ def vec(self) -> numpy.ndarray[tuple[typing.Literal[16], typing.Literal[1]], numpy.dtype[numpy.float64]]:
11311
+ """
11312
+ Return vectorized SE(3) matrix in column order.
11313
+ """
11237
11314
  def x(self) -> float:
11238
11315
  """
11239
11316
  get x
@@ -11498,9 +11575,7 @@ class PreintegratedRotation:
11498
11575
  def equals(self, other: PreintegratedRotation, tol: float) -> bool:
11499
11576
  ...
11500
11577
  def integrateCoriolis(self, rot_i: Rot3) -> numpy.ndarray[tuple[typing.Literal[3], typing.Literal[1]], numpy.dtype[numpy.float64]]:
11501
- """
11502
- Integrate coriolis correction in body frame rot_i.
11503
- """
11578
+ ...
11504
11579
  def integrateGyroMeasurement(self, measuredOmega: numpy.ndarray[tuple[M, typing.Literal[1]], numpy.dtype[numpy.float64]], biasHat: numpy.ndarray[tuple[M, typing.Literal[1]], numpy.dtype[numpy.float64]], deltaT: float) -> None:
11505
11580
  """
11506
11581
  Calculate an incremental rotation given the gyro measurement and a time interval, and update both deltaTij_ and deltaRij_.
@@ -12209,6 +12284,11 @@ class ReferenceFrameFactorPoint3Pose3(NoiseModelFactor):
12209
12284
  ...
12210
12285
  class Rot2:
12211
12286
  @staticmethod
12287
+ def Dim() -> int:
12288
+ """
12289
+ Static method to get the dimension (compile-time or dynamic)
12290
+ """
12291
+ @staticmethod
12212
12292
  def Expmap(v: numpy.ndarray[tuple[M, typing.Literal[1]], numpy.dtype[numpy.float64]]) -> Rot2:
12213
12293
  """
12214
12294
  Exponential map at identity - create a rotation from canonical coordinates.
@@ -12291,6 +12371,10 @@ class Rot2:
12291
12371
  """
12292
12372
  def deserialize(self, serialized: str) -> None:
12293
12373
  ...
12374
+ def dim(self) -> int:
12375
+ """
12376
+ Provided fixed dimension indim()if needed.
12377
+ """
12294
12378
  def equals(self, R: Rot2, tol: float) -> bool:
12295
12379
  """
12296
12380
  equals with an tolerance
@@ -12349,6 +12433,10 @@ class Rot2:
12349
12433
  """
12350
12434
  rotate point from world to rotated frame$ p^c = (R_c^w)^T p^w $
12351
12435
  """
12436
+ def vec(self) -> numpy.ndarray[tuple[typing.Literal[4], typing.Literal[1]], numpy.dtype[numpy.float64]]:
12437
+ """
12438
+ Vectorize the rotation matrix into a 4D vector.
12439
+ """
12352
12440
  class Rot3:
12353
12441
  @staticmethod
12354
12442
  def AxisAngle(axis: numpy.ndarray[tuple[typing.Literal[3], typing.Literal[1]], numpy.dtype[numpy.float64]], angle: float) -> Rot3:
@@ -12369,6 +12457,11 @@ class Rot3:
12369
12457
  Uses Full SVD to compute the orthogonal matrix, thus is highly accurate and robust. N. J. Higham. Matrix nearness problems and applications. In M. J. C. Gover and S. Barnett, editors, Applications of Matrix Theory, pages 1–27. Oxford University Press, 1989.
12370
12458
  """
12371
12459
  @staticmethod
12460
+ def Dim() -> int:
12461
+ """
12462
+ Static method to get the dimension (compile-time or dynamic)
12463
+ """
12464
+ @staticmethod
12372
12465
  def Expmap(v: numpy.ndarray[tuple[M, typing.Literal[1]], numpy.dtype[numpy.float64]]) -> Rot3:
12373
12466
  """
12374
12467
  Exponential map - create a rotation from canonical coordinates$ [R_x,R_y,R_z] $using Rodrigues' formula.
@@ -12503,6 +12596,10 @@ class Rot3:
12503
12596
  ...
12504
12597
  def deserialize(self, serialized: str) -> None:
12505
12598
  ...
12599
+ def dim(self) -> int:
12600
+ """
12601
+ Provided fixed dimension indim()if needed.
12602
+ """
12506
12603
  def equals(self, p: Rot3, tol: float) -> bool:
12507
12604
  """
12508
12605
  equals with an tolerance
@@ -12592,6 +12689,10 @@ class Rot3:
12592
12689
  """
12593
12690
  unrotate 3D direction from world frame to rotated coordinate frame
12594
12691
  """
12692
+ def vec(self) -> numpy.ndarray[tuple[typing.Literal[9], typing.Literal[1]], numpy.dtype[numpy.float64]]:
12693
+ """
12694
+ Vee maps from Lie algebra to tangent vector.
12695
+ """
12595
12696
  def xyz(self) -> numpy.ndarray[tuple[typing.Literal[3], typing.Literal[1]], numpy.dtype[numpy.float64]]:
12596
12697
  """
12597
12698
  Use RQ to calculate xyz angle representation.
@@ -12671,6 +12772,11 @@ class RotateFactor(NoiseModelFactor):
12671
12772
  """
12672
12773
  class SL4:
12673
12774
  @staticmethod
12775
+ def Dim() -> int:
12776
+ """
12777
+ Static method to get the dimension (compile-time or dynamic)
12778
+ """
12779
+ @staticmethod
12674
12780
  def Expmap(v: numpy.ndarray[tuple[M, typing.Literal[1]], numpy.dtype[numpy.float64]]) -> SL4:
12675
12781
  ...
12676
12782
  @staticmethod
@@ -12715,6 +12821,10 @@ class SL4:
12715
12821
  ...
12716
12822
  def deserialize(self, serialized: str) -> None:
12717
12823
  ...
12824
+ def dim(self) -> int:
12825
+ """
12826
+ Provided fixed dimension indim()if needed.
12827
+ """
12718
12828
  def equals(self, sl4: SL4, tol: float) -> bool:
12719
12829
  """
12720
12830
  assert equality up to a tolerance
@@ -12749,6 +12859,12 @@ class SL4:
12749
12859
  ...
12750
12860
  def serialize(self) -> str:
12751
12861
  ...
12862
+ def vec(self) -> numpy.ndarray[tuple[typing.Literal[16], typing.Literal[1]], numpy.dtype[numpy.float64]]:
12863
+ """
12864
+ Vectorize the matrix representation of a Lie group element.
12865
+
12866
+ The derivative H is the (N*N) x D Jacobian of this vectorization map. It is given by the formula H = (I_N ⊗ T) * P, where T is the N x N matrix of this group element, ⊗ is the Kronecker product, and P is the (N*N) x D matrix whose columns are the vectorized Lie algebra generators vec(Hat(e_j)). This can be computed efficiently via block-wise multiplication.
12867
+ """
12752
12868
  class SO3:
12753
12869
  @staticmethod
12754
12870
  def AxisAngle(axis: numpy.ndarray[tuple[M, typing.Literal[1]], numpy.dtype[numpy.float64]], theta: float) -> SO3:
@@ -12757,6 +12873,9 @@ class SO3:
12757
12873
  def ClosestTo(M: numpy.ndarray[tuple[M, N], numpy.dtype[numpy.float64]]) -> SO3:
12758
12874
  ...
12759
12875
  @staticmethod
12876
+ def Dim() -> int:
12877
+ ...
12878
+ @staticmethod
12760
12879
  def Expmap(v: numpy.ndarray[tuple[typing.Literal[3], typing.Literal[1]], numpy.dtype[numpy.float64]]) -> SO3:
12761
12880
  ...
12762
12881
  @staticmethod
@@ -12766,9 +12885,14 @@ class SO3:
12766
12885
  def FromMatrix(R: numpy.ndarray[tuple[M, N], numpy.dtype[numpy.float64]]) -> SO3:
12767
12886
  ...
12768
12887
  @staticmethod
12888
+ @typing.overload
12769
12889
  def Hat(xi: numpy.ndarray[tuple[typing.Literal[3], typing.Literal[1]], numpy.dtype[numpy.float64]]) -> numpy.ndarray[tuple[typing.Literal[3], typing.Literal[3]], numpy.dtype[numpy.float64]]:
12770
12890
  ...
12771
12891
  @staticmethod
12892
+ @typing.overload
12893
+ def Hat(xi: numpy.ndarray[tuple[M, typing.Literal[1]], numpy.dtype[numpy.float64]]) -> numpy.ndarray[tuple[typing.Literal[3], typing.Literal[3]], numpy.dtype[numpy.float64]]:
12894
+ ...
12895
+ @staticmethod
12772
12896
  def Identity() -> SO3:
12773
12897
  ...
12774
12898
  @staticmethod
@@ -12778,8 +12902,13 @@ class SO3:
12778
12902
  def LogmapDerivative(omega: numpy.ndarray[tuple[typing.Literal[3], typing.Literal[1]], numpy.dtype[numpy.float64]]) -> numpy.ndarray[tuple[typing.Literal[3], typing.Literal[3]], numpy.dtype[numpy.float64]]:
12779
12903
  ...
12780
12904
  @staticmethod
12905
+ @typing.overload
12781
12906
  def Vee(xi: numpy.ndarray[tuple[typing.Literal[3], typing.Literal[3]], numpy.dtype[numpy.float64]]) -> numpy.ndarray[tuple[typing.Literal[3], typing.Literal[1]], numpy.dtype[numpy.float64]]:
12782
12907
  ...
12908
+ @staticmethod
12909
+ @typing.overload
12910
+ def Vee(X: numpy.ndarray[tuple[M, N], numpy.dtype[numpy.float64]]) -> numpy.ndarray[tuple[typing.Literal[3], typing.Literal[1]], numpy.dtype[numpy.float64]]:
12911
+ ...
12783
12912
  @typing.overload
12784
12913
  def __init__(self) -> None:
12785
12914
  ...
@@ -12794,6 +12923,8 @@ class SO3:
12794
12923
  ...
12795
12924
  def compose(self, R: SO3) -> SO3:
12796
12925
  ...
12926
+ def dim(self) -> int:
12927
+ ...
12797
12928
  def equals(self, other: SO3, tol: float) -> bool:
12798
12929
  ...
12799
12930
  def expmap(self, v: numpy.ndarray[tuple[typing.Literal[3], typing.Literal[1]], numpy.dtype[numpy.float64]]) -> SO3:
@@ -12814,11 +12945,9 @@ class SO3:
12814
12945
  ...
12815
12946
  class SO4:
12816
12947
  @staticmethod
12817
- @typing.overload
12818
- def Expmap(v: numpy.ndarray[tuple[M, typing.Literal[1]], numpy.dtype[numpy.float64]]) -> SO4:
12948
+ def Dim() -> int:
12819
12949
  ...
12820
12950
  @staticmethod
12821
- @typing.overload
12822
12951
  def Expmap(v: numpy.ndarray[tuple[M, typing.Literal[1]], numpy.dtype[numpy.float64]]) -> SO4:
12823
12952
  ...
12824
12953
  @staticmethod
@@ -12834,7 +12963,7 @@ class SO4:
12834
12963
  def Logmap(p: SO4) -> numpy.ndarray[tuple[typing.Literal[6], typing.Literal[1]], numpy.dtype[numpy.float64]]:
12835
12964
  ...
12836
12965
  @staticmethod
12837
- def Vee(xi: numpy.ndarray[tuple[M, N], numpy.dtype[numpy.float64]]) -> numpy.ndarray[tuple[typing.Literal[6], typing.Literal[1]], numpy.dtype[numpy.float64]]:
12966
+ def Vee(X: numpy.ndarray[tuple[M, N], numpy.dtype[numpy.float64]]) -> numpy.ndarray[tuple[typing.Literal[6], typing.Literal[1]], numpy.dtype[numpy.float64]]:
12838
12967
  ...
12839
12968
  @typing.overload
12840
12969
  def __init__(self) -> None:
@@ -12850,6 +12979,8 @@ class SO4:
12850
12979
  ...
12851
12980
  def compose(self, Q: SO4) -> SO4:
12852
12981
  ...
12982
+ def dim(self) -> int:
12983
+ ...
12853
12984
  def equals(self, other: SO4, tol: float) -> bool:
12854
12985
  ...
12855
12986
  def expmap(self, v: numpy.ndarray[tuple[M, typing.Literal[1]], numpy.dtype[numpy.float64]]) -> SO4:
@@ -12870,6 +13001,9 @@ class SO4:
12870
13001
  ...
12871
13002
  class SOn:
12872
13003
  @staticmethod
13004
+ def Dim() -> int:
13005
+ ...
13006
+ @staticmethod
12873
13007
  @typing.overload
12874
13008
  def Expmap(v: numpy.ndarray[tuple[M, typing.Literal[1]], numpy.dtype[numpy.float64]]) -> SOn:
12875
13009
  ...
@@ -12893,7 +13027,7 @@ class SOn:
12893
13027
  def Logmap(p: SOn) -> numpy.ndarray[tuple[M, typing.Literal[1]], numpy.dtype[numpy.float64]]:
12894
13028
  ...
12895
13029
  @staticmethod
12896
- def Vee(xi: numpy.ndarray[tuple[M, N], numpy.dtype[numpy.float64]]) -> numpy.ndarray[tuple[M, typing.Literal[1]], numpy.dtype[numpy.float64]]:
13030
+ def Vee(X: numpy.ndarray[tuple[M, N], numpy.dtype[numpy.float64]]) -> numpy.ndarray[tuple[M, typing.Literal[1]], numpy.dtype[numpy.float64]]:
12897
13031
  ...
12898
13032
  def __getstate__(self) -> tuple:
12899
13033
  ...
@@ -12911,6 +13045,8 @@ class SOn:
12911
13045
  ...
12912
13046
  def deserialize(self, serialized: str) -> None:
12913
13047
  ...
13048
+ def dim(self) -> int:
13049
+ ...
12914
13050
  def equals(self, other: SOn, tol: float) -> bool:
12915
13051
  ...
12916
13052
  def expmap(self, v: numpy.ndarray[tuple[M, typing.Literal[1]], numpy.dtype[numpy.float64]]) -> SOn:
@@ -12991,7 +13127,9 @@ class ScenarioRunner:
12991
13127
  def gravity_n(self) -> numpy.ndarray[tuple[typing.Literal[3], typing.Literal[1]], numpy.dtype[numpy.float64]]:
12992
13128
  ...
12993
13129
  def imuSampleTime(self) -> float:
12994
- ...
13130
+ """
13131
+ The IMU sample time (i.e. the time between two IMU measurements)
13132
+ """
12995
13133
  def integrate(self, T: float, estimatedBias: imuBias.ConstantBias, corrupted: bool) -> PreintegratedImuMeasurements:
12996
13134
  """
12997
13135
  Integrate measurements for T seconds into a PIM.
@@ -12999,7 +13137,9 @@ class ScenarioRunner:
12999
13137
  def measuredAngularVelocity(self, t: float) -> numpy.ndarray[tuple[typing.Literal[3], typing.Literal[1]], numpy.dtype[numpy.float64]]:
13000
13138
  ...
13001
13139
  def measuredSpecificForce(self, t: float) -> numpy.ndarray[tuple[typing.Literal[3], typing.Literal[1]], numpy.dtype[numpy.float64]]:
13002
- ...
13140
+ """
13141
+ Specific force measured by accelerometer, corrupted by bias and noise.
13142
+ """
13003
13143
  def predict(self, pim: PreintegratedImuMeasurements, estimatedBias: imuBias.ConstantBias) -> NavState:
13004
13144
  """
13005
13145
  Predict predict given a PIM.
@@ -13513,7 +13653,7 @@ class Similarity2:
13513
13653
  @staticmethod
13514
13654
  def Dim() -> int:
13515
13655
  """
13516
- Dimensionality of tangent space = 4 DOF - used to autodetect sizes.
13656
+ Static method to get the dimension (compile-time or dynamic)
13517
13657
  """
13518
13658
  @staticmethod
13519
13659
  def Expmap(v: numpy.ndarray[tuple[M, typing.Literal[1]], numpy.dtype[numpy.float64]]) -> Similarity2:
@@ -13565,7 +13705,7 @@ class Similarity2:
13565
13705
  ...
13566
13706
  def dim(self) -> int:
13567
13707
  """
13568
- Dimensionality of tangent space = 4 DOF.
13708
+ Provided fixed dimension indim()if needed.
13569
13709
  """
13570
13710
  def equals(self, sim: Similarity2, tol: float) -> bool:
13571
13711
  """
@@ -13639,7 +13779,7 @@ class Similarity3:
13639
13779
  @staticmethod
13640
13780
  def Dim() -> int:
13641
13781
  """
13642
- Dimensionality of tangent space = 7 DOF - used to autodetect sizes.
13782
+ Static method to get the dimension (compile-time or dynamic)
13643
13783
  """
13644
13784
  @staticmethod
13645
13785
  def Expmap(v: numpy.ndarray[tuple[M, typing.Literal[1]], numpy.dtype[numpy.float64]]) -> Similarity3:
@@ -13696,7 +13836,7 @@ class Similarity3:
13696
13836
  ...
13697
13837
  def dim(self) -> int:
13698
13838
  """
13699
- Dimensionality of tangent space = 7 DOF.
13839
+ Provided fixed dimension indim()if needed.
13700
13840
  """
13701
13841
  def equals(self, sim: Similarity3, tol: float) -> bool:
13702
13842
  """
@@ -14941,16 +15081,10 @@ class StereoCamera:
14941
15081
  ...
14942
15082
  class StereoPoint2:
14943
15083
  @staticmethod
14944
- def Expmap(d: numpy.ndarray[tuple[M, typing.Literal[1]], numpy.dtype[numpy.float64]]) -> StereoPoint2:
14945
- ...
14946
- @staticmethod
14947
15084
  def Identity() -> StereoPoint2:
14948
15085
  """
14949
15086
  identity
14950
15087
  """
14951
- @staticmethod
14952
- def Logmap(p: StereoPoint2) -> numpy.ndarray[tuple[M, typing.Literal[1]], numpy.dtype[numpy.float64]]:
14953
- ...
14954
15088
  def __add__(self, arg0: StereoPoint2) -> StereoPoint2:
14955
15089
  ...
14956
15090
  def __getstate__(self) -> tuple:
@@ -14972,26 +15106,16 @@ class StereoPoint2:
14972
15106
  ...
14973
15107
  def __sub__(self, arg0: StereoPoint2) -> StereoPoint2:
14974
15108
  ...
14975
- def between(self, p2: StereoPoint2) -> StereoPoint2:
14976
- ...
14977
- def compose(self, p1: StereoPoint2) -> StereoPoint2:
14978
- ...
14979
15109
  def deserialize(self, serialized: str) -> None:
14980
15110
  ...
14981
15111
  def equals(self, q: StereoPoint2, tol: float) -> bool:
14982
15112
  """
14983
15113
  equals
14984
15114
  """
14985
- def inverse(self) -> StereoPoint2:
14986
- ...
14987
- def localCoordinates(self, t2: StereoPoint2) -> numpy.ndarray[tuple[M, typing.Literal[1]], numpy.dtype[numpy.float64]]:
14988
- ...
14989
15115
  def print(self, s: str = '') -> None:
14990
15116
  """
14991
15117
  print
14992
15118
  """
14993
- def retract(self, v: numpy.ndarray[tuple[M, typing.Literal[1]], numpy.dtype[numpy.float64]]) -> StereoPoint2:
14994
- ...
14995
15119
  def serialize(self) -> str:
14996
15120
  ...
14997
15121
  def uL(self) -> float:
Binary file
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gtsam-develop
3
- Version: 4.3a0.dev202508020718
3
+ Version: 4.3a0.dev202508081446
4
4
  Summary: Georgia Tech Smoothing And Mapping library
5
5
  Home-page: https://gtsam.org/
6
6
  Author: Frank Dellaert et. al.
@@ -149,9 +149,9 @@ In GTSAM 4 a new and more efficient implementation, based on integrating on the
149
149
 
150
150
  ## Additional Information
151
151
 
152
- There is a [`GTSAM users Google group`](https://groups.google.com/forum/#!forum/gtsam-users) for general discussion.
152
+ There is a [GTSAM users Google group](https://groups.google.com/forum/#!forum/gtsam-users) for general discussion.
153
153
 
154
- Read about important [`GTSAM-Concepts`](GTSAM-Concepts.md) here. A primer on GTSAM Expressions,
154
+ Read about important [GTSAM-Concepts](doc/GTSAM-Concepts.md) here. A primer on GTSAM Expressions,
155
155
  which support (superfast) automatic differentiation,
156
156
  can be found on the [GTSAM wiki on BitBucket](https://bitbucket.org/gtborg/gtsam/wiki/Home).
157
157
 
@@ -1,13 +1,13 @@
1
1
  gtsam/symbol_shorthand.py,sha256=HlTV-Z5aB5cXWT5AsbKOeWZIHoXQsH2W1S90ET-tidA,236
2
- gtsam/__init__.pyi,sha256=lABoLjp27yixsZCdAL3Zy0c6IPMeo0MQbOOfvLKj-E8,44348
2
+ gtsam/__init__.pyi,sha256=IxfebbnEm6t9abATPEPDpqqUu_IWMcHhgHZsivOjSY4,44348
3
3
  gtsam/gtsfm.py,sha256=Udlkb6o5iUk69uxBkb88-W1GLfu1g8iSuZlLu-RRU0o,202
4
- gtsam/gtsam.cpython-312-darwin.so,sha256=c6jCqcp0jK5fZ2UEbmVaJA4kjojvWBza3J_iIfuOat8,27785984
4
+ gtsam/gtsam.cpython-312-darwin.so,sha256=nnJwgXhkCb-p-QDv3XxprTOTlunPn-Kol0BAOQ07l7o,27819488
5
5
  gtsam/__init__.py,sha256=6G-WPnb_FMQEJXNDDAmrKrQPau7evtd5svhTmMqhYSI,2011
6
6
  gtsam/noiseModel.py,sha256=ybfIHa4sLXe78_k-Dib8nTaw34BRXqEDVtS2B9dzSO0,217
7
7
  gtsam/imuBias.py,sha256=tz3bOCFl29iMycbGFoF-ud6kRsJYjA7DJ2RJoKPFRU8,209
8
8
  gtsam/gtsam/utilities.pyi,sha256=-yn7_jeJbTa_3KJGgqcr_NDD70UhDZ8tYX2M2lPLmSQ,3384
9
9
  gtsam/gtsam/gtsfm.pyi,sha256=Onoh4CRaSYIQ0FID0vBkZeV7ESIhc2fh4rJGgaPY-ug,702
10
- gtsam/gtsam/__init__.pyi,sha256=FPVgJrBj3b8G3M2wkTchZ8RCFSR9DqaWn88Bzn0yQ9w,738515
10
+ gtsam/gtsam/__init__.pyi,sha256=AVitFCThx0hj4pNJsWzUc1z8dQf5aWzTCUqmhVivi4o,742585
11
11
  gtsam/gtsam/so3.pyi,sha256=UoDGISMgcStVTAtc_y6CmHXCtPJrJ7ju70z3ZH1OLR4,3939
12
12
  gtsam/gtsam/imuBias.pyi,sha256=UqK0nLVICpnyw8B8_Q1GgX-qRd6atlCXT6OZNffZ1ao,2797
13
13
  gtsam/gtsam/symbol_shorthand.pyi,sha256=iaQLf_-hch_4YTYbSWTLINKtIL9Mg7W7HKOMuCXp8Ok,991
@@ -129,10 +129,10 @@ gtsam/utils/test_case.py,sha256=3wIqAW5_smes95XUJgUjD4v3FXACYSVzQ1l6MMdwSkA,1848
129
129
  gtsam/utils/logging_optimizer.py,sha256=tRnzQKV4eT5djS0Ojy5J7OGu7oVRjZw7Jhjrx_VQVTU,4417
130
130
  gtsam/utils/generate_trajectory.py,sha256=_1TZWhpRKj8ha0FOEmqUpEzAt3KLgwqyZJ4ueFD2jmE,2663
131
131
  gtsam/.dylibs/libboost_thread.dylib,sha256=Zdt9bJonKZ6UqOr9vX46yIR7Ii7FQMAb25KFtictZxY,140096
132
- gtsam/.dylibs/libgtsam.4.3a0.dev202508020718.dylib,sha256=0kzD9GsuLr9bsxI9BKBbHOV-y9px1yOhftB_YXKpU6U,6881456
132
+ gtsam/.dylibs/libgtsam.4.3a0.dev202508081446.dylib,sha256=CPBuGBjt82KfQLFQCruvH2Wc_f6K4-gd-0pM4Pg4VPE,6881712
133
133
  gtsam/.dylibs/libboost_regex.dylib,sha256=OuKqIt11T7pWAk6xIICf7IqZWnp2hL8mf5Yv21l53H0,374624
134
+ gtsam/.dylibs/libgtsam_unstable.4.3a0.dev202508081446.dylib,sha256=smMXrye5iMWqP5n9LmvdRuOIdAzGu2qL0aXTghn4Xpc,1884704
134
135
  gtsam/.dylibs/libboost_serialization.dylib,sha256=TfkeoS_P_8cWumat96Q4LuMnGB_YFaSC-obPYM-JTao,420944
135
- gtsam/.dylibs/libgtsam_unstable.4.3a0.dev202508020718.dylib,sha256=_NGwND5_D6X-NC1CsFgJwnteE7lC1XIs5Kyais76knE,1884704
136
136
  gtsam/.dylibs/libboost_timer.dylib,sha256=cp2NxSdL2hk5jTL63h41uzLfCKJQ3uRyCU8WhfoEl0g,82416
137
137
  gtsam/.dylibs/libboost_filesystem.dylib,sha256=Fuh5k1wjz7-McEYOYjZGKedrYGsboXzTrf7GyXiEQiQ,199712
138
138
  gtsam/.dylibs/libcephes-gtsam.1.0.0.dylib,sha256=ISA3p6BaPYULDTy4lb9OL6526GfF1gM2n5EE9rvgNKs,209680
@@ -250,14 +250,14 @@ gtsam/Data/Balbianello/BalbianelloMedium-4.key.gz,sha256=P6tu3JmA0NKlcFYdgYczTOH
250
250
  gtsam/Data/Balbianello/BalbianelloMedium-1.key.gz,sha256=RgT7tVXXOwvDug20TW-9xtoeO3dSSPMF1n9DaKxdrIw,332878
251
251
  gtsam/Data/Balbianello/BalbianelloMedium-3.key.gz,sha256=yNMcyqwZCOj9FG-6qXQ9xhJjpM135cTBJYlOUBG0rnQ,296236
252
252
  gtsam/Data/Balbianello/BalbianelloMedium-5.key.gz,sha256=4veDrxRdLH8k1DIhgj1984MitZ7nAWoXDWTWyXuu7Lg,241361
253
- gtsam_develop-4.3a0.dev202508020718.dist-info/RECORD,,
254
- gtsam_develop-4.3a0.dev202508020718.dist-info/WHEEL,sha256=6EKLL8RwhYSnVMolr8rrjA-E-LykMW3Kt89lzquJzH8,138
255
- gtsam_develop-4.3a0.dev202508020718.dist-info/top_level.txt,sha256=DOnqfd8DN2HpG5-V5t32TjFOB_vcYuyOWyRsgeoANEo,30
256
- gtsam_develop-4.3a0.dev202508020718.dist-info/METADATA,sha256=AQqsvHo0Jzs8I42vYOzqyhIUnT32oqoQp0vq7D0MSqU,7767
257
253
  gtsam_unstable/__init__.py,sha256=FPc_oO5PFQZbrfpgugzQuI6LJfP1fzq82UQf_nuyGtk,30
258
- gtsam_unstable/gtsam_unstable.cpython-312-darwin.so,sha256=fSFpWeBjcG3nHJoTAUOtnMujm86W06qF5z9JwrpW_Nk,3197344
254
+ gtsam_unstable/gtsam_unstable.cpython-312-darwin.so,sha256=3Fyg7mmoibm-BkgiaSNIJRzf6oKQYYkmbhkhXQLF0Fc,3197344
259
255
  gtsam_unstable/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
260
256
  gtsam_unstable/tests/test_ProjectionFactorRollingShutter.py,sha256=t2l62uWoXfjrM8oH6ogV7M20WjTYKZ4CSferdurMIY0,2156
261
257
  gtsam_unstable/examples/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
262
258
  gtsam_unstable/examples/LocalizationExample.py,sha256=na47I1PQ_5Tenj8Wg2LBg3GaqP32O4yEb8jtRWKu0P8,2882
263
259
  gtsam_unstable/examples/TimeOfArrivalExample.py,sha256=uky5ps4Ng83C0Q_s2EAc64Af6iztQjXXdj3ahifRXoI,3737
260
+ gtsam_develop-4.3a0.dev202508081446.dist-info/RECORD,,
261
+ gtsam_develop-4.3a0.dev202508081446.dist-info/WHEEL,sha256=6EKLL8RwhYSnVMolr8rrjA-E-LykMW3Kt89lzquJzH8,138
262
+ gtsam_develop-4.3a0.dev202508081446.dist-info/top_level.txt,sha256=DOnqfd8DN2HpG5-V5t32TjFOB_vcYuyOWyRsgeoANEo,30
263
+ gtsam_develop-4.3a0.dev202508081446.dist-info/METADATA,sha256=bIfyA2X0TEmygLgaYnXUK6JAl_nFUcsDnUI9A9ikuFs,7767