Commit 3dba220
committed
perf: compute Twist3.Ad() directly instead of via a throwaway SE3
Ad() was self.SE3().Ad() -- constructs a full validated SE3 object
just to immediately extract its array and discard the object. Computes
the same result directly (trexp then tr2adjoint, skipping the SE3
constructor/validation overhead): bit-identical output, ~1.4x faster.
No existing test covered Ad() at all; added one first (hand-verified
pure-rotation and pure-translation cases, plus a cross-check against
SE3.Ad() over 20 random transforms) and confirmed it passes unchanged
against both the old and new implementation.1 parent 8b83c1f commit 3dba220
2 files changed
Lines changed: 30 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
887 | 887 | | |
888 | 888 | | |
889 | 889 | | |
890 | | - | |
891 | | - | |
| 890 | + | |
| 891 | + | |
| 892 | + | |
892 | 893 | | |
893 | 894 | | |
894 | 895 | | |
895 | | - | |
| 896 | + | |
896 | 897 | | |
897 | 898 | | |
898 | 899 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
179 | 179 | | |
180 | 180 | | |
181 | 181 | | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
182 | 208 | | |
183 | 209 | | |
184 | 210 | | |
| |||
0 commit comments