Subscripted View for Fixed-Sized Matrices and Vectors
- Dominant language
- Swift
- Stars
- 118
- Forks
- 14
- PR merge metrics
- No merged PRs in 30d
Description
When implementing the chordal initialization I found out that it is almost essential that we have:
1. a mutable, subscripted view into the fixed-size matrices;
2. methods like `MatrixN.zero` and `MatrixN.identity`.
Otherwise I end up writing code like this:
```
let M9: Jacobian9x9_2 = Array9([
Tuple2(Vector9(-1,0,0,0,0,0,0,0,0), Vector9(Rij.s00,Rij.s01,Rij.s02,0,0,0,0,0,0)),
Tuple2(Vector9(0,-1,0,0,0,0,0,0,0), Vector9(Rij.s10,Rij.s11,Rij.s12,0,0,0,0,0,0)),
Tuple2(Vector9(0,0,-1,0,0,0,0,0,0), Vector9(Rij.s20,Rij.s21,Rij.s22,0,0,0,0,0,0)),
Tuple2(Vector9(0,0,0,-1,0,0,0,0,0), Vector9(0,0,0,Rij.s00,Rij.s01,Rij.s02,0,0,0)),
Tuple2(Vector9(0,0,0,0,-1,0,0,0,0), Vector9(0,0,0,Rij.s10,Rij.s11,Rij.s12,0,0,0)),
Tuple2(Vector9(0,0,0,0,0,-1,0,0,0), Vector9(0,0,0,Rij.s20,Rij.s21,Rij.s22,0,0,0)),
Tuple2(Vector9(0,0,0,0,0,0,-1,0,0), Vector9(0,0,0,0,0,0,Rij.s00,Rij.s01,Rij.s02)),
Tuple2(Vector9(0,0,0,0,0,0,0,-1,0), Vector9(0,0,0,0,0,0,Rij.s10,Rij.s11,Rij.s12)),
Tuple2(Vector9(0,0,0,0,0,0,0,0,-1), Vector9(0,0,0,0,0,0,Rij.s20,Rij.s21,Rij.s22))
])
```
Moreover, it becomes almost impossible to write code when I try to implement SVD for 3x3 rotation matrices as I cannot write stuff like `A[0, 0]`, and I cannot dynamically index the matrix in for loops...
I am not sure if this design is good in a "Swifty" sense, so please correct me if I make silly mistakes!
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.