Extends the partner search from 1 partner to up to MAX_MU_MIMO_PARTNERS=3
partners, totalling 4 UEs per slot — one per orthogonal x2 class of the
4-port Type I rank-1 codebook.
Orthogonality test relaxed: any distinct x2 (with same x1) is accepted.
The 4 codewords w_(x1,n) for n=0..3 are mutually orthogonal because
they share spatial vector v_x1 and differ only in co-phasing j^n;
<w_a, w_b> = 0 for any a != b.
Each partner gets a distinct DMRS port:
leader -> port 1000 (CDM group 0, mask 0x1)
partner 0 -> port 1001 (CDM group 0, mask 0x2)
partner 1 -> port 1002 (CDM group 1, mask 0x4)
partner 2 -> port 1003 (CDM group 1, mask 0x8)
numDmrsCdmGrpsNoData=2 reserves both DMRS groups.
Class-uniqueness tracked via classes_used bitmask: each successive
partner must be from an unused x2 class.
Pair log: "[nakaolab MU-MIMO] F.S N-way pair RNTI A (x2=0) + RNTI B
(x2=1) + ... on RBs [..]"
Result on rfsim with 9 UEs cycling 4 classes:
8069 total pairings observed
920 4-way (all 4 classes co-scheduled)
2756 3-way
4404 2-way