simit-lang / simit

A language for computing on sparse systems
http://simit-lang.org
Other
452 stars 52 forks source link

Support for heterogeneous edge sets and function inlining #73

Closed stephenchouca closed 7 years ago

stephenchouca commented 7 years ago

Added full support for heterogeneous edge sets and named tuple types, the latter of which is needed for map assemblies over heterogeneous edge sets. This set of changes also adds support for the following syntactic sugar for declaring homogeneous edge sets:

extern V : set{Vertex};
extern E : set{Edge}(V*2);

Additionally, the compiler now supports calls from within Simit programs to functions that accept non-dense tensor arguments and functions that reference sets by inlining all such calls.