digraph IncludesInSingular4 { compound=true; edge [ arrowhead=open ]; graph [ // rankdir=TB; ]; pack = 0 ; packMode = "graph" ; subgraph "clusterlibpolys" { label="libpolys: math. data structures"; color = lightgray; style = filled; node [ fillcolor = white, style = filled, color = black, fontcolor=black]; { rank=same; misc ; reporter ; }; { rank=same; coeffs ; polys }; } ; subgraph "clusterlibSingular" { rank="max" ; label="libSingular:"; color = lightgray; style = filled; node [ fillcolor = white, style = filled, color = black, fontcolor=black]; interpreter [] ; subgraph "clusterMOD" { rank="min" ; label="Modules: dynamic and built-ins"; color = gray; // style = filled; node [ fillcolor = white, style = filled, color = black, fontcolor=black]; { rank=same; pyobject [color = gray]; gfanlib [color = gray]; polymake [color = gray]; singmathic [color = gray]; }; { rank=same; syzextra; bigintm; staticdemo; }; } subgraph "clusterMath" { rank="min" ; label="kernel: math. high level algorithms"; color = gray; // style = filled; node [ fillcolor = white, style = filled, color = black, fontcolor=black]; { rank=same; fglm; numeric; maps; kernelCommon; combinatorics; }; { rank=same; linear_algebra; spectrum; groebner_walk; GBEngine;}; oswrapper [color = gray]; } } ; subgraph "clusterinternals" { label="Supporting libraries:"; { rank=same; omalloc [ fillcolor=lightgrey, fontcolor=darkgreen, style=filled, color = black, shape=box ] ; libresources [ fillcolor=lightgrey, style=filled, color = black, shape=box ] ; } ; { rank=same; Gfanlib [ fillcolor=lightgrey, fontcolor=blue, style=filled, color = black, shape=box ] ; factory [ fillcolor=lightgrey, fontcolor=blue, style=filled, color = black, shape=box ] ; } ; subgraph "clusterexternals" { rank="min" ; node [ color=blue, fillcolor=lightgrey, fontcolor=blue, style=filled, shape=box ]; label="Externals:"; color=blue; { rank=same; GMP_OR_MPIR []; MPFR [] ; } ; { rank=same; NTL ; FLINT ; PolyMakeRTL; }; { rank=same; mathicgb; cddlib; Python2RTL; }; } ; } ; NTL -> GMP_OR_MPIR [style = "dotted"]; FLINT -> GMP_OR_MPIR [style = "dotted"]; cddlib -> GMP_OR_MPIR [style = "dotted"]; FLINT -> MPFR [style = "dotted"]; MPFR -> GMP_OR_MPIR [style = "dotted"]; factory -> FLINT []; factory -> GMP_OR_MPIR []; factory -> NTL []; factory -> omalloc; factory -> libresources; Singular -> interpreter []; interpreter -> numeric [lhead="clusterMath"]; // interpreter -> "..." [lhead="clusterMath"]; interpreter -> "syzextra" [dir=both, arrowtail="open", arrowhead="open", lhead="clusterMOD"]; syzextra -> kernelCommon [lhead="clusterMath", ltail="clusterMOD"]; polymake -> gfanlib []; gfanlib -> Gfanlib []; Gfanlib -> cddlib []; singmathic -> mathicgb []; pyobject -> Python2RTL []; polymake -> PolyMakeRTL []; kernelCommon -> polys [ltail="clusterlibSingular", lhead="clusterlibpolys"]; kernelCommon -> factory [ltail="clusterlibSingular"]; combinatorics -> kernelCommon []; GBEngine -> combinatorics []; fglm -> kernelCommon []; GBEngine -> kernelCommon []; groebner_walk -> kernelCommon []; linear_algebra -> kernelCommon []; maps -> kernelCommon []; numeric -> kernelCommon []; spectrum -> kernelCommon []; oswrapper -> kernelCommon []; polys -> coeffs [dir=both, arrowtail="open", arrowhead="open"] ; polys -> misc; polys -> reporter; polys -> factory []; reporter -> misc [dir=both, arrowtail="open", arrowhead="open"] ; coeffs -> NTL []; coeffs -> factory []; coeffs -> misc; coeffs -> reporter; misc -> libresources [ltail="clusterlibpolys"]; misc -> omalloc [ltail="clusterlibpolys"]; misc -> GMP_OR_MPIR [ltail="clusterlibpolys"]; } // dot -Tpng -o D.png Includes.dot // boxed = third party // filled = external // blue = math