Example #1
0
        public static DotGraph ToGraphViz(this GaNumMapBilinearTree bilinearMap, bool showFullGraph = false, bool showLeafValues = false)
        {
            var dotGraph = DotGraph.Directed("Graph");

            dotGraph.AddQuadTree(bilinearMap.BasisBladesMapTree, showFullGraph);

            if (!showLeafValues)
            {
                return(dotGraph);
            }

            foreach (var leafPair in bilinearMap.BasisBladesMapTree.LeafValuePairs)
            {
                var dotHtmlTable = DotUtils.Table();
                dotHtmlTable.SetBorder(0);
                dotHtmlTable.SetCellBorder(1);
                var dotHtmlRow = dotHtmlTable.AddRow();
                var mv         = leafPair.Item3;

                foreach (var term in mv.Terms)
                {
                    var columnTable = DotUtils.Table();
                    columnTable.SetBorder(0);
                    columnTable.SetCellBorder(0);
                    columnTable.AddRow(
                        term.Key.PatternToString(mv.VSpaceDimension).ToHtmlString()
                        );
                    columnTable.AddRow(term.Value.ToString("G"));

                    dotHtmlRow.AddCell(columnTable);
                }

                var parentNodeName =
                    leafPair.Item1.PatternToString(bilinearMap.DomainVSpaceDimension) + ", " +
                    leafPair.Item2.PatternToString(bilinearMap.DomainVSpaceDimension);
                var node = dotGraph.AddNode("coef" + parentNodeName);

                node.SetLabel(dotHtmlTable);
                node.SetShape(DotNodeShape.Note);
                node.SetStyle(DotNodeStyle.Solid);
                node.SetColor(DotColor.Rgb(Color.Black));
                node.SetFontColor(DotColor.Rgb(Color.Black));

                var dotEdge = node.AddEdgeFrom(parentNodeName);
                dotEdge.SetArrowHead(DotArrowType.Inv);
                dotEdge.SetArrowTail(DotArrowType.Inv);
                dotEdge.SetStyle(DotEdgeStyle.Solid);
                dotEdge.SetColor(DotColor.Rgb(Color.Black));
                dotEdge.SetFontColor(DotColor.Rgb(Color.Black));
            }

            return(dotGraph);
        }
Example #2
0
        public static GaNumMapBilinearTree ToTreeMap(this IGaNumMapBilinear bilinearMap)
        {
            var resultMap = GaNumMapBilinearTree.Create(
                bilinearMap.DomainVSpaceDimension,
                bilinearMap.TargetVSpaceDimension
                );

            foreach (var basisBladeMapping in bilinearMap.BasisBladesMaps())
            {
                var id1 = basisBladeMapping.Item1;
                var id2 = basisBladeMapping.Item2;
                var mv  = basisBladeMapping.Item3;

                resultMap.SetBasisBladesMap(id1, id2, mv);
            }

            return(resultMap);
        }
Example #3
0
 private long OpTreeTableSize()
 {
     return(GaNumMapBilinearTree.CreateFromOuterProduct(Frame).SizeInBytes());
 }