template<class T, class C = double, class Alloc = default_allocator<T>>
class madness::XNonlinearSolver< T, C, Alloc >
Generalized version of NonlinearSolver not limited to a single madness function.
This solves the equation where u and r are both of type T and inner products between two items of type T produce a number of type C (defaulting to double). The type T must support storage in an STL vector, scaling by a constant of type C, inplace addition (+=), subtraction, allocation with value zero, and inner products computed with the interface inner(a,b). Have a look in examples/testsolver.cc for a simple but complete example, and in examples/h2dynamic.cc for a more complex example.
I've not yet tested with anything except C=double and I think that the KAIN routine will need extending for anything else.