Понять код DirectXmath.h XMMatrix Decompose

Мне нужно перенести данную функцию в C# код, чтобы избавиться от зависимости.

Я понимаю в плюсах не очень сильно, достаточно для чтения проекта, но данный код мне не сильно понятен. Во первых не до конца знаком с предметной областью, а во вторых код для меня выглядит весьма запутанным из-за большого количества define, union и странного для меня переопределения одних и тех же типов XMVECTOR в XFVECTOR и т.д.

Так же я не понимаю что происходит когда в методе взятия длинны передается число(ppvBase[0][0]), а аргументы принимает вектор.

Если переходить в методы которые вызываются в методе Decompose, все еще печальней.

Кто может помочь, рассказать что делает этот код по строчкам? В каких случаях вызывается тот или иной define? И как вообще это работает?

P.S. у меня есть подозрение, что это алгоритм полярной декомпозиции, просто написанный специально для более быстрой работе на железе, через спец функции.

Спасибо.