public void AnyText(_GithubMarkdown_Memo _memo, int _index, _GithubMarkdown_Args _args) { // PLUS 1 int _start_i1 = _index; var _res1 = Enumerable.Empty <MarkdownElementBase>(); label1: // AND 2 int _start_i2 = _index; // NOT 3 int _start_i3 = _index; // OR 4 int _start_i4 = _index; // LITERAL '\n' _ParseLiteralChar(_memo, ref _index, '\n'); // OR shortcut if (_memo.Results.Peek() == null) { _memo.Results.Pop(); _index = _start_i4; } else { goto label4; } // LITERAL '\r' _ParseLiteralChar(_memo, ref _index, '\r'); label4: // OR int _dummy_i4 = _index; // no-op for label // NOT 3 var _r3 = _memo.Results.Pop(); _memo.Results.Push(_r3 == null ? new _GithubMarkdown_Item(_start_i3, _memo.InputEnumerable) : null); _index = _start_i3; // AND shortcut if (_memo.Results.Peek() == null) { _memo.Results.Push(null); goto label2; } // ANY _ParseAny(_memo, ref _index); label2: // AND var _r2_2 = _memo.Results.Pop(); var _r2_1 = _memo.Results.Pop(); if (_r2_1 != null && _r2_2 != null) { _memo.Results.Push(new _GithubMarkdown_Item(_start_i2, _index, _memo.InputEnumerable, _r2_1.Results.Concat(_r2_2.Results).Where(_NON_NULL), true)); } else { _memo.Results.Push(null); _index = _start_i2; } // PLUS 1 var _r1 = _memo.Results.Pop(); if (_r1 != null) { _res1 = _res1.Concat(_r1.Results); goto label1; } else { if (_index > _start_i1) { _memo.Results.Push(new _GithubMarkdown_Item(_start_i1, _index, _memo.InputEnumerable, _res1.Where(_NON_NULL), true)); } else { _memo.Results.Push(null); } } // ACT var _r0 = _memo.Results.Peek(); if (_r0 != null) { _memo.Results.Pop(); _memo.Results.Push(new _GithubMarkdown_Item(_r0.StartIndex, _r0.NextIndex, _memo.InputEnumerable, _Thunk(_IM_Result => { string match = Input(_IM_Result); GeneralElement text = new GeneralElement(ElementType.InlineText); text.TextContent = match; return(text); }, _r0), true)); } }
public void HeadText(_GithubMarkdown_Memo _memo, int _index, _GithubMarkdown_Args _args) { // STAR 1 int _start_i1 = _index; var _res1 = Enumerable.Empty <MarkdownElementBase>(); label1: // AND 2 int _start_i2 = _index; // NOT 3 int _start_i3 = _index; // CALLORVAR LineBreak _GithubMarkdown_Item _r4; _r4 = _MemoCall(_memo, "LineBreak", _index, LineBreak, null); if (_r4 != null) { _index = _r4.NextIndex; } // NOT 3 var _r3 = _memo.Results.Pop(); _memo.Results.Push(_r3 == null ? new _GithubMarkdown_Item(_start_i3, _memo.InputEnumerable) : null); _index = _start_i3; // AND shortcut if (_memo.Results.Peek() == null) { _memo.Results.Push(null); goto label2; } // ANY _ParseAny(_memo, ref _index); label2: // AND var _r2_2 = _memo.Results.Pop(); var _r2_1 = _memo.Results.Pop(); if (_r2_1 != null && _r2_2 != null) { _memo.Results.Push(new _GithubMarkdown_Item(_start_i2, _index, _memo.InputEnumerable, _r2_1.Results.Concat(_r2_2.Results).Where(_NON_NULL), true)); } else { _memo.Results.Push(null); _index = _start_i2; } // STAR 1 var _r1 = _memo.Results.Pop(); if (_r1 != null) { _res1 = _res1.Concat(_r1.Results); goto label1; } else { _memo.Results.Push(new _GithubMarkdown_Item(_start_i1, _index, _memo.InputEnumerable, _res1.Where(_NON_NULL), true)); } // ACT var _r0 = _memo.Results.Peek(); if (_r0 != null) { _memo.Results.Pop(); _memo.Results.Push(new _GithubMarkdown_Item(_r0.StartIndex, _r0.NextIndex, _memo.InputEnumerable, _Thunk(_IM_Result => { string match = Input(_IM_Result); GeneralElement text = new GeneralElement(ElementType.InlineText); text.TextContent = match; return(text); }, _r0), true)); } }
public void InlineText(_GithubMarkdown_Memo _memo, int _index, _GithubMarkdown_Args _args) { // AND 1 int _start_i1 = _index; // NOT 2 int _start_i2 = _index; // CALLORVAR StartSymbol _GithubMarkdown_Item _r3; _r3 = _MemoCall(_memo, "StartSymbol", _index, StartSymbol, null); if (_r3 != null) { _index = _r3.NextIndex; } // NOT 2 var _r2 = _memo.Results.Pop(); _memo.Results.Push(_r2 == null ? new _GithubMarkdown_Item(_start_i2, _memo.InputEnumerable) : null); _index = _start_i2; // AND shortcut if (_memo.Results.Peek() == null) { _memo.Results.Push(null); goto label1; } // PLUS 4 int _start_i4 = _index; var _res4 = Enumerable.Empty <MarkdownElementBase>(); label4: // AND 5 int _start_i5 = _index; // NOT 6 int _start_i6 = _index; // OR 7 int _start_i7 = _index; // LITERAL '\n' _ParseLiteralChar(_memo, ref _index, '\n'); // OR shortcut if (_memo.Results.Peek() == null) { _memo.Results.Pop(); _index = _start_i7; } else { goto label7; } // LITERAL '\r' _ParseLiteralChar(_memo, ref _index, '\r'); label7: // OR int _dummy_i7 = _index; // no-op for label // NOT 6 var _r6 = _memo.Results.Pop(); _memo.Results.Push(_r6 == null ? new _GithubMarkdown_Item(_start_i6, _memo.InputEnumerable) : null); _index = _start_i6; // AND shortcut if (_memo.Results.Peek() == null) { _memo.Results.Push(null); goto label5; } // ANY _ParseAny(_memo, ref _index); label5: // AND var _r5_2 = _memo.Results.Pop(); var _r5_1 = _memo.Results.Pop(); if (_r5_1 != null && _r5_2 != null) { _memo.Results.Push(new _GithubMarkdown_Item(_start_i5, _index, _memo.InputEnumerable, _r5_1.Results.Concat(_r5_2.Results).Where(_NON_NULL), true)); } else { _memo.Results.Push(null); _index = _start_i5; } // PLUS 4 var _r4 = _memo.Results.Pop(); if (_r4 != null) { _res4 = _res4.Concat(_r4.Results); goto label4; } else { if (_index > _start_i4) { _memo.Results.Push(new _GithubMarkdown_Item(_start_i4, _index, _memo.InputEnumerable, _res4.Where(_NON_NULL), true)); } else { _memo.Results.Push(null); } } label1: // AND var _r1_2 = _memo.Results.Pop(); var _r1_1 = _memo.Results.Pop(); if (_r1_1 != null && _r1_2 != null) { _memo.Results.Push(new _GithubMarkdown_Item(_start_i1, _index, _memo.InputEnumerable, _r1_1.Results.Concat(_r1_2.Results).Where(_NON_NULL), true)); } else { _memo.Results.Push(null); _index = _start_i1; } // ACT var _r0 = _memo.Results.Peek(); if (_r0 != null) { _memo.Results.Pop(); _memo.Results.Push(new _GithubMarkdown_Item(_r0.StartIndex, _r0.NextIndex, _memo.InputEnumerable, _Thunk(_IM_Result => { string match = Input(_IM_Result); GeneralElement text = new GeneralElement(ElementType.InlineText); text.TextContent = match; return(text); }, _r0), true)); } }
public void Paragraph(_GithubMarkdown_Memo _memo, int _index, _GithubMarkdown_Args _args) { _GithubMarkdown_Item text = null; // CALLORVAR AnyText _GithubMarkdown_Item _r2; _r2 = _MemoCall(_memo, "AnyText", _index, AnyText, null); if (_r2 != null) { _index = _r2.NextIndex; } // BIND text text = _memo.Results.Peek(); // ACT var _r0 = _memo.Results.Peek(); if (_r0 != null) { _memo.Results.Pop(); _memo.Results.Push(new _GithubMarkdown_Item(_r0.StartIndex, _r0.NextIndex, _memo.InputEnumerable, _Thunk(_IM_Result => { GeneralElement para = new GeneralElement(ElementType.Paragraph); para.AddChildElement(text.Results.First()); return(para); }, _r0), true)); } }
public void BlankLine(_GithubMarkdown_Memo _memo, int _index, _GithubMarkdown_Args _args) { // AND 1 int _start_i1 = _index; // AND 2 int _start_i2 = _index; // CALLORVAR LineBreak _GithubMarkdown_Item _r3; _r3 = _MemoCall(_memo, "LineBreak", _index, LineBreak, null); if (_r3 != null) { _index = _r3.NextIndex; } // AND shortcut if (_memo.Results.Peek() == null) { _memo.Results.Push(null); goto label2; } // STAR 4 int _start_i4 = _index; var _res4 = Enumerable.Empty <MarkdownElementBase>(); label4: // CALLORVAR WS _GithubMarkdown_Item _r5; _r5 = _MemoCall(_memo, "WS", _index, WS, null); if (_r5 != null) { _index = _r5.NextIndex; } // STAR 4 var _r4 = _memo.Results.Pop(); if (_r4 != null) { _res4 = _res4.Concat(_r4.Results); goto label4; } else { _memo.Results.Push(new _GithubMarkdown_Item(_start_i4, _index, _memo.InputEnumerable, _res4.Where(_NON_NULL), true)); } label2: // AND var _r2_2 = _memo.Results.Pop(); var _r2_1 = _memo.Results.Pop(); if (_r2_1 != null && _r2_2 != null) { _memo.Results.Push(new _GithubMarkdown_Item(_start_i2, _index, _memo.InputEnumerable, _r2_1.Results.Concat(_r2_2.Results).Where(_NON_NULL), true)); } else { _memo.Results.Push(null); _index = _start_i2; } // AND shortcut if (_memo.Results.Peek() == null) { _memo.Results.Push(null); goto label1; } // CALLORVAR LineBreak _GithubMarkdown_Item _r6; _r6 = _MemoCall(_memo, "LineBreak", _index, LineBreak, null); if (_r6 != null) { _index = _r6.NextIndex; } label1: // AND var _r1_2 = _memo.Results.Pop(); var _r1_1 = _memo.Results.Pop(); if (_r1_1 != null && _r1_2 != null) { _memo.Results.Push(new _GithubMarkdown_Item(_start_i1, _index, _memo.InputEnumerable, _r1_1.Results.Concat(_r1_2.Results).Where(_NON_NULL), true)); } else { _memo.Results.Push(null); _index = _start_i1; } // ACT var _r0 = _memo.Results.Peek(); if (_r0 != null) { _memo.Results.Pop(); _memo.Results.Push(new _GithubMarkdown_Item(_r0.StartIndex, _r0.NextIndex, _memo.InputEnumerable, _Thunk(_IM_Result => { GeneralElement blank = new GeneralElement(ElementType.BlankLine); return(blank); }, _r0), true)); } }
public void BlockquoteSymbol(_GithubMarkdown_Memo _memo, int _index, _GithubMarkdown_Args _args) { // AND 1 int _start_i1 = _index; // CALLORVAR LegalStartSpace _GithubMarkdown_Item _r3; _r3 = _MemoCall(_memo, "LegalStartSpace", _index, LegalStartSpace, null); if (_r3 != null) { _index = _r3.NextIndex; } // QUES if (_memo.Results.Peek() == null) { _memo.Results.Pop(); _memo.Results.Push(new _GithubMarkdown_Item(_index, _memo.InputEnumerable)); } // AND shortcut if (_memo.Results.Peek() == null) { _memo.Results.Push(null); goto label1; } // PLUS 4 int _start_i4 = _index; var _res4 = Enumerable.Empty <MarkdownElementBase>(); label4: // LITERAL '>' _ParseLiteralChar(_memo, ref _index, '>'); // PLUS 4 var _r4 = _memo.Results.Pop(); if (_r4 != null) { _res4 = _res4.Concat(_r4.Results); goto label4; } else { if (_index > _start_i4) { _memo.Results.Push(new _GithubMarkdown_Item(_start_i4, _index, _memo.InputEnumerable, _res4.Where(_NON_NULL), true)); } else { _memo.Results.Push(null); } } label1: // AND var _r1_2 = _memo.Results.Pop(); var _r1_1 = _memo.Results.Pop(); if (_r1_1 != null && _r1_2 != null) { _memo.Results.Push(new _GithubMarkdown_Item(_start_i1, _index, _memo.InputEnumerable, _r1_1.Results.Concat(_r1_2.Results).Where(_NON_NULL), true)); } else { _memo.Results.Push(null); _index = _start_i1; } // ACT var _r0 = _memo.Results.Peek(); if (_r0 != null) { _memo.Results.Pop(); _memo.Results.Push(new _GithubMarkdown_Item(_r0.StartIndex, _r0.NextIndex, _memo.InputEnumerable, _Thunk(_IM_Result => { string match = Input(_IM_Result); GeneralElement text = new GeneralElement(ElementType.InlineText); text.TextContent = match; return(text); }, _r0), true)); } }
public void HeadSymbol(_GithubMarkdown_Memo _memo, int _index, _GithubMarkdown_Args _args) { // PLUS 1 int _start_i1 = _index; var _res1 = Enumerable.Empty <MarkdownElementBase>(); label1: // LITERAL '#' _ParseLiteralChar(_memo, ref _index, '#'); // PLUS 1 var _r1 = _memo.Results.Pop(); if (_r1 != null) { _res1 = _res1.Concat(_r1.Results); goto label1; } else { if (_index > _start_i1) { _memo.Results.Push(new _GithubMarkdown_Item(_start_i1, _index, _memo.InputEnumerable, _res1.Where(_NON_NULL), true)); } else { _memo.Results.Push(null); } } // ACT var _r0 = _memo.Results.Peek(); if (_r0 != null) { _memo.Results.Pop(); _memo.Results.Push(new _GithubMarkdown_Item(_r0.StartIndex, _r0.NextIndex, _memo.InputEnumerable, _Thunk(_IM_Result => { string match = Input(_IM_Result); GeneralElement text = new GeneralElement(ElementType.InlineText); text.TextContent = match; return(text); }, _r0), true)); } }
public static double[] Solve(double[,] data) { data = (double[, ])data.Clone(); //The method mustn't change an argument // varOrder - array for variables' order int[] varOrder = new int[data.GetLength(1) - 1]; for (int i = 0; i < varOrder.Length; ++i) { varOrder[i] = i; } // Print equations printEqs(data, varOrder, "Initial system of linear equations:"); Console.WriteLine("Gaussian elimination with the general element in rows\n"); // Main loop for (int i = 0; i < data.GetLength(0); ++i) { Console.WriteLine("Step #{0}", i + 1); //Looking for the general element GeneralElement generalElement = new GeneralElement(); for (int j = i; j < data.GetLength(1) - 1; ++j) { if (Math.Abs(data[i, j]) - generalElement.absVal > 1e-10) { generalElement.setPoint(i, j, data[i, j]); } } Console.WriteLine(generalElement); if (!generalElement.isSet) // Its mean every a-coefficient in row = 0 { throw new NoSolutionException(); } // Row reduction for (int k = 0; k < data.GetLength(0); ++k) { if (k != generalElement.row) { double m = -data[k, generalElement.col] / generalElement.val; for (int j = 0; j < data.GetLength(1); ++j) { data[k, j] += data[generalElement.row, j] * m; } } } // Print intermediate results printEqs(data, varOrder, "Row reduction:"); // Change variables' order if (i != generalElement.col) { swap <int>(ref varOrder[generalElement.col], ref varOrder[i]); for (int k = 0; k < data.GetLength(0); ++k) { swap <double>(ref data[k, generalElement.col], ref data[k, i]); } printEqs(data, varOrder, "Changing variables' order:"); } } // Getting variables' values double[] answers = new double[data.GetLength(0)]; for (int i = 0; i < data.GetLength(0); ++i) { answers[varOrder[i]] = data[i, data.GetLength(1) - 1] / data[i, i]; } return(answers); }