/// <summary> /// Links vector elements. /// </summary> /// <param name="vector">The vector.</param> /// <param name="row">The row variable.</param> private void LinkElement(ISparseVector <T> vector, Bridge <int> row) { var loc = Solver.ExternalToInternal(new MatrixLocation(row.Local, row.Local)); // Do we need to create an element? var local_elt = vector.FindElement(loc.Row); if (local_elt == null) { // Check if solving will result in an element var first = vector.GetFirstInVector(); if (first == null || first.Index > Solver.Size - Solver.Degeneracy) { return; } local_elt = vector.GetElement(loc.Row); } if (local_elt == null) { return; } var parent_elt = Parent.Solver.GetElement(row.Global); _elements.Add(new Bridge <Element <T> >(local_elt, parent_elt)); }