code: def abcd_normalize(A=None, B=None, C=None, D=None):
      """Check state-space matrices and ensure they are two-dimensional.
  
      If enough information on the system is provided, that is, enough
      properly-shaped arrays are passed to the function, the missing ones
      are built from this information, ensuring the correct number of
      rows and columns. Otherwise a ValueError is raised.
  
      Parameters
      ----------
      A, B, C, D : array_like, optional
          State-space matrices. All of them are None (missing) by default.
          See `ss2tf` for format.
  
      Returns
      -------
      A, B, C, D : array
          Properly shaped state-space matrices.
  
      Raises
      ------
      ValueError
          If not enough information on the system was provided.
  
      """
      A, B, C, D = map(_atleast_2d_or_none, (A, B, C, D))
  
      MA, NA = _shape_or_none(A)
      MB, NB = _shape_or_none(B)
      MC, NC = _shape_or_none(C)
      MD, ND = _shape_or_none(D)
  
      p = _choice_not_none(MA, MB, NC)
      q = _choice_not_none(NB, ND)
      r = _choice_not_none(MC, MD)
      if p is None or q is None or r is None:
          raise ValueError("Not enough information on the system.")
  
      A, B, C, D = map(_none_to_empty_2d, (A, B, C, D))
      A = _restore(A, (p, p))
      B = _restore(B, (p, q))
      C = _restore(C, (r, p))
      D = _restore(D, (r, q))
  
      return A, B, C, D
  
file_path: catboost/contrib/python/scipy/py2/scipy/signal/lti_conversion.py
imports: from __future__ import division, print_function, absolute_import
  import numpy
  import numpy
  from numpy import r_, eye, atleast_2d, poly, dot, asarray, product, zeros, array, outer
  from scipy import linalg
  from .filter_design import tf2zpk, zpk2tf, normalize
label_desc: Use image node_id 7 for calling a global function with example usage: abcd_normalize(A, B, C, D) and returns: A,  B,  C,  D