I have been working on an implementation for a new key management scheme. It involves a lot number theory and linear algebra over a finite field. I initially tried to use the GP/Pari C library (and a couple of more), but it has a very low-level programming API and documentation is not satisfactory either. However, it is really easy use as a command-line tool, but I wanted a library to embed in my C++ code. Then, a colleague of mine suggested using NTL. NTL C++ library is really helpful for such work. This library is well documented and easy to use.