A model for this must provide:

template <class ForwardIterator, class OutputIterator>
int fo ( ForwardIterator first , ForwardIterator last , OutputIterator result )
computes a basis of the linear space spanned by the vectors in A = tuple [first,last) and returns it via an iterator range starting in result. The returned iterator marks the end of the output.
Precondition: A contains vectors of the same dimension d.
Requirement: The value type of ForwardIterator and OutputIterator is Kernel::Vector_d.