code: def pivot(M, i, j):
      """
      M is a matrix, and M[i, j] specifies the pivot element.
  
      All elements below M[i, j], in the j-th column, will
      be zeroed, if they are not already 0, according to
      Dodgson-Bareiss' integer preserving transformations.
  
      References
      ==========
      1. Akritas, A. G.: ``A new method for computing polynomial greatest
      common divisors and polynomial remainder sequences.''
      Numerische MatheMatik 52, 119-127, 1988.
  
      2. Akritas, A. G., G.I. Malaschonok and P.S. Vigklas: ``On a Theorem
      by Van Vleck Regarding Sturm Sequences.''
      Serdica Journal of Computing, 7, No 4, 101-134, 2013.
  
      """
      ma = M[:, :]  # copy of matrix M
      rs = ma.rows  # No. of rows
      cs = ma.cols  # No. of cols
      for r in range(i + 1, rs):
          if ma[r, j] != 0:
              for c in range(j + 1, cs):
                  ma[r, c] = ma[i, j] * ma[r, c] - ma[i, c] * ma[r, j]
              ma[r, j] = 0
      return ma
  
imports: from sympy.concrete.summations import summation
  from sympy.core.function import expand
  from sympy.core.numbers import nan
  from sympy.core.singleton import S
  from sympy.core.symbol import Dummy
  from sympy.functions.elementary.complexes import Abs, sign
  from sympy.functions.elementary.integers import floor
  from sympy.matrices.dense import eye, Matrix, zeros
  from sympy.printing.pretty.pretty import pretty_print
  from sympy.simplify.simplify import simplify
  from sympy.polys.domains import QQ
  from sympy.polys.polytools import degree, LC, Poly, pquo, quo, prem, rem
  from sympy.polys.polyerrors import PolynomialError
label_desc: Use image node_id 29 for calling a global function with example usage: pivot(M, i, j) and returns: ma