The July 2012 release of the Xbox 360 XDK includes a new version of XNA Math, version 2.05. We are making it available here for Windows developers. The update is subject to the same EULA as the DirectX SDK (June 2010) release.
What's New
XNA Math version 2.05 includes:
XMVectorSwizzle
XMVectorPermute
XMVectorShiftLeft
XMVectorRotateLeft
XMVectorRotateRight
XMVectorInsert
XM_STRICT_XMMATRIX
XMMATRIX
size_t
XMMatrixInverse
XMBYTEN4
XMBYTE4
XMUBYTEN4
XMUBYTE4
See XNA Math version 2.04 for details on what changed previously compared to XNA Math version 2.03 in the DirectX SDK (June 2010) release.
Why update XNA Math?
The DirectXMath library that ships as part of the Windows 8.0 SDK and Visual Studio 2012 RC is the recommended latest version of "XNA Math". You can think of it as "XNAMath version 3.x". It is very similar although it does have a number of 'breaking' changes (there's a migration guide as well), requires Visual Studio 2010 or later, and is not available for the Xbox 360.
The primary purpose for the XNA Math version 2.05 update is for developers who need to maintain compatibility with the Xbox 360 version in the XDK or VS 2008, but want to prepare for migration to DirectXMath or support compiling with either math library.
XNAMath / DirectXMath Portability Recommendations
For an example of how to use this, see DirectXTex which builds with either DirectXMath or using the USE_XNAMATH define with XNA Math version 2.05. Here are some guidelines for achieving this:
USE_XNAMATH
XM_STRICT_VECTOR4
XM_STRICT_MATRIX
XMVECTOR
XM_PERMUTE_?
XM_SWIZZLE_?
typedef
using namespace