33 #ifndef GRAPHCHI_FUNCTIONALAPI_DEF
34 #define GRAPHCHI_FUNCTIONALAPI_DEF
42 #include "graphchi_types.hpp"
54 template <
typename FVertexDataType,
typename FEdgeDataType>
57 typedef FVertexDataType VertexDataType;
58 typedef FEdgeDataType EdgeDataType;
65 virtual VertexDataType reset() = 0;
70 virtual EdgeDataType plus(VertexDataType curval, EdgeDataType toadd) = 0;
93 template <
class KERNEL>
99 = convert_if_notexists<typename FunctionalProgramProxySemisync<KERNEL>::EdgeDataType>(filename, get_option_string(
"nshards",
"auto"));
101 typename FunctionalProgramProxySemisync<KERNEL>::EdgeDataType,
103 engine(filename, nshards,
false, _m);
106 engine.set_modifies_inedges(
false);
107 engine.set_modifies_outedges(
true);
108 engine.run(program, niters);
122 template <
class KERNEL>
126 = convert_if_notexists<typename FunctionalProgramProxyBulkSync<KERNEL>::EdgeDataType>(filename, get_option_string(
"nshards",
"auto"));
130 engine(filename, nshards,
false, _m);
131 engine.set_modifies_inedges(
false);
132 engine.set_modifies_outedges(
true);
133 engine.set_enable_deterministic_parallelism(
false);
134 engine.run(program, niters);