#include "Main.h" void GraphKernelAllRootPairs::SetParameters(RootedGraphKernel &rootedGraphKernel) { _rootedGraphKernel = &rootedGraphKernel; } double GraphKernelAllRootPairs::Evaluate(const Graph &g0, const Graph &g1) const { double result = 0.0; _rootedGraphKernel->SetGraphs(g0, g1); for(UINT g0NodeIndex = 0; g0NodeIndex < g0.nodes().Length(); g0NodeIndex++) { const Node &n0 = g0.nodes()[g0NodeIndex]; for(UINT g1NodeIndex = 0; g1NodeIndex < g1.nodes().Length(); g1NodeIndex++) { const Node &n1 = g1.nodes()[g1NodeIndex]; double term = _rootedGraphKernel->Evaluate(n0, n1); result += term; } } return result; }