title: What are the most widely used C++ vector/matrix math/linear algebra libraries, and their cost and benefit tradeoffs?
body: <p>It seems that many projects slowly come upon a need to do matrix math, and fall into the trap of first building some vector classes and slowly adding in functionality until they get caught building a half-assed custom linear algebra library, and depending on it. </p>
  
  <p>I'd like to avoid that while not building in a dependence on some tangentially related library (e.g. OpenCV, OpenSceneGraph). </p>
  
  <p>What are the commonly used matrix math/linear algebra libraries out there, and why would decide to use one over another? Are there any that would be advised against using for some reason? I am specifically using this in a geometric/time context*(2,3,4 Dim)* but may be using higher dimensional data in the future. </p>
  
  <p>I'm looking for differences with respect to any of: API, speed, memory use, breadth/completeness, narrowness/specificness, extensibility, and/or maturity/stability.</p>
  
  <h2>Update</h2>
  
  <p>I ended up using Eigen3 which I am extremely happy with.</p>