Есть ли хорошая реализация алгоритма для вычисления  свертки двух диапазонов в С++ STL (или даже повышения)?
то есть с прототипом (свертка двух диапазонов a..b и c..d):
template< class Iterator >
void convolution(Iterator a, Iterator b, Iterator c, Iterator d);
 который изменяет диапазон a..b
