private static MarkdownTable CreateTable(int n) { var gaSpaceDim = n.ToGaSpaceDimension(); var idsList = GMacMathUtils.BasisBladeIDs(n).ToArray(); var mdOverheadTable = new MarkdownTable(); var firstColumn = mdOverheadTable.AddColumn("op", MarkdownTableColumnAlignment.Left); firstColumn.AddRange( idsList .Skip(1) .Select(termsCount => termsCount + " Terms") ); var newTreeOverheadColumn = mdOverheadTable.AddColumn( "New Tree", MarkdownTableColumnAlignment.Right, "New Binary Tree" ); var hashOverheadColumn = mdOverheadTable.AddColumn( "Hash", MarkdownTableColumnAlignment.Right, "Hash Table" ); var treeOverheadColumn = mdOverheadTable.AddColumn( "Tree", MarkdownTableColumnAlignment.Right, "Binary Tree" ); var arrayOverheadColumn = mdOverheadTable.AddColumn( "Array", MarkdownTableColumnAlignment.Right, "Array" ); for (var termsCount = 1; termsCount < gaSpaceDim; termsCount++) { var sizeInfo = new MultivectorSizeInfo( gaSpaceDim, idsList.Take(termsCount) ); newTreeOverheadColumn.Add(sizeInfo.NewTreeOverheadPerTerm.ToString(LongFmt)); hashOverheadColumn.Add(sizeInfo.HashOverheadPerTerm.ToString(LongFmt)); treeOverheadColumn.Add(sizeInfo.TreeOverheadPerTerm.ToString(LongFmt)); arrayOverheadColumn.Add(sizeInfo.ArrayOverheadPerTerm.ToString(LongFmt)); } return(mdOverheadTable); }
public static MarkdownTable ToMarkdownTable <T>(this IEnumerable <T> items, bool useAsColumnTitles) { var table = new MarkdownTable(); var itemsText = items.Select(r => r.ToString()).ToArray(); if (useAsColumnTitles) { var c = 0; foreach (var item in itemsText) { table.AddColumn((c++).ToString(), item); } } var column = table.AddColumn("0"); column.AddRange(itemsText); return(table); }
public static MarkdownTable ToMarkdownTable <T>(params T[] items) { var rowCount = items.Length; var table = new MarkdownTable(); var column = table.AddColumn("0"); for (var r = 0; r < rowCount; r++) { column.Add(items[r].ToString()); } return(table); }
public MarkdownTable ToMarkdownTable() { var mdComposer = new MarkdownTable(); foreach (var term in _coefSumsTable) { var mdColumn = mdComposer.AddColumn( term.Key.BasisBladeIndexedName(), MarkdownTableColumnAlignment.Left, term.Key.BasisBladeIndexedName() ); mdColumn.AddRange(term.Value.TermsText); } return(mdComposer); }
public static MarkdownTable ToMarkdownTable <T>(this T[,] items) { var rowCount = items.GetUpperBound(0); var colCount = items.GetUpperBound(1); var table = new MarkdownTable(); for (var c = 0; c < colCount; c++) { var column = table.AddColumn(c.ToString()); for (var r = 0; r < rowCount; r++) { column.Add(items[r, c].ToString()); } } return(table); }
public override string ToString() { var composer = new MarkdownComposer(); composer .AppendHeader("Source Text:", 2) .AppendLine(SourceText) .AppendLine(); composer .AppendHeader($"Contains messages: {ContainsMessages}", 2); if (ContainsMessages) { composer .IncreaseIndentation() .AppendLine(MessagesText) .DecreaseIndentation() .AppendLine(); } composer .AppendHeader($"Contains tree root: {ContainsParseTreeRoot}", 2) .AppendLine(); if (ContainsParseTreeRoot) { var nodesStack = new Stack <ParseTreeNode>(); nodesStack.Push(ParseTreeRoot); var levelsStack = new Stack <int>(); levelsStack.Push(0); var indexStack = new Stack <List <int> >(); indexStack.Push(new List <int>()); var mdTableComposer = new MarkdownTable(); mdTableComposer.AddColumn("Path Index", MarkdownTableColumnAlignment.Left, "Path Index"); mdTableComposer.AddColumn("Node", MarkdownTableColumnAlignment.Left, "Node"); mdTableComposer.AddColumn("Token", MarkdownTableColumnAlignment.Left, "Token"); while (nodesStack.Count > 0) { var node = nodesStack.Pop(); var level = levelsStack.Pop(); var indexList = indexStack.Pop(); var indexText = indexList.Concatenate(",", "[", "]"); var sourceTextStart = node.Span.Location.Position; var sourceTextLength = node.Span.Length; var sourceText = SourceText.Substring(sourceTextStart, sourceTextLength); mdTableComposer[0].Add(indexText); mdTableComposer[1].Add("".PadLeft(level * 2) + node); mdTableComposer[2].Add(node.FindTokenAndGetText()); //mdTableComposer[2].Add(sourceText); if (node.ChildNodes.Count == 0) { continue; } var childLevel = level + 1; var childNodes = ((IEnumerable <ParseTreeNode>)node.ChildNodes).Reverse(); var childIndex = node.ChildNodes.Count - 1; foreach (var childNode in childNodes) { nodesStack.Push(childNode); levelsStack.Push(childLevel); var childIndexList = new List <int>(indexList) { childIndex }; indexStack.Push(childIndexList); childIndex--; } } composer.AppendAtNewLine(mdTableComposer.ToString()); } return(composer.ToString()); }
private void ProjectiveTables() { MdSparsityTable = new MarkdownTable(); var firstColumn = MdSparsityTable.AddColumn("op", MarkdownTableColumnAlignment.Left); firstColumn.Add("Geometric Product - Multivectors"); firstColumn.Add("Geometric Product - Terms"); firstColumn.Add("Scalar Product - Multivectors"); firstColumn.Add("Scalar Product - Terms"); firstColumn.Add("Left Contraction Product - Multivectors"); firstColumn.Add("Left Contraction Product - Terms"); MdSizeTable = new MarkdownTable(); firstColumn = MdSizeTable.AddColumn("op", MarkdownTableColumnAlignment.Left); firstColumn.Add("Geometric Product - Hash"); firstColumn.Add("Geometric Product - Tree"); firstColumn.Add("Geometric Product - Array"); firstColumn.Add("Geometric Product - Combinations"); firstColumn.Add("Scalar Product - Hash"); firstColumn.Add("Scalar Product - Tree"); firstColumn.Add("Scalar Product - Array"); firstColumn.Add("Scalar Product - Combinations"); firstColumn.Add("Left Contraction Product - Hash"); firstColumn.Add("Left Contraction Product - Tree"); firstColumn.Add("Left Contraction Product - Array"); firstColumn.Add("Left Contraction Product - Combinations"); for (var n = MinVSpaceDimension; n <= MaxVSpaceDimension; n++) { Console.Out.WriteLine("Projective Frame " + n); Frame = GaSymFrame.CreateProjective(n); var sparsityColumn = MdSparsityTable.AddColumn( "n" + n, MarkdownTableColumnAlignment.Right, n.ToString() ); var sizeColumn = MdSizeTable.AddColumn( "n" + n, MarkdownTableColumnAlignment.Right, n.ToString() ); var t = GpHashTableSize(); sparsityColumn.Add(t.Item2.ToString(LongFmt)); sparsityColumn.Add(t.Item3.ToString(LongFmt)); sizeColumn.Add(t.Item1.ToString(LongFmt)); sizeColumn.Add(GpTreeTableSize().ToString(LongFmt)); sizeColumn.Add(GpArrayTableSize().ToString(LongFmt)); sizeColumn.Add(GpCoefSumsTableSize().ToString(LongFmt)); t = SpSparseTableSize(); sparsityColumn.Add(t.Item2.ToString(LongFmt)); sparsityColumn.Add(t.Item3.ToString(LongFmt)); sizeColumn.Add(t.Item1.ToString(LongFmt)); sizeColumn.Add(SpTreeTableSize().ToString(LongFmt)); sizeColumn.Add(SpArrayTableSize().ToString(LongFmt)); sizeColumn.Add(SpCoefSumsTableSize().ToString(LongFmt)); t = LcpHashTableSize(); sparsityColumn.Add(t.Item2.ToString(LongFmt)); sparsityColumn.Add(t.Item3.ToString(LongFmt)); sizeColumn.Add(t.Item1.ToString(LongFmt)); sizeColumn.Add(LcpTreeTableSize().ToString(LongFmt)); sizeColumn.Add(LcpArrayTableSize().ToString(LongFmt)); sizeColumn.Add(LcpCoefSumsTableSize().ToString(LongFmt)); } }