In short, It does the same thing as GNU-gsl `gnewton` solver for finding roots of a system of non-linear system.
The standard caveats apply when finding the multi-dimensional roots.
The templated class (must be compiled with -std=c++11). It uses boost::numeric::ublas library.
The code is available here:
The header file contains the class, file `test_root_finding.cpp` shows how to use it.