code: def quad_genz_keister_18(order):
      
      order = sorted(GENZ_KEISTER_18.keys())[order]
  
      abscissas, weights = GENZ_KEISTER_18[order]
      abscissas = numpy.array(abscissas)
      weights = numpy.array(weights)
  
      weights /= numpy.sum(weights)
      abscissas *= numpy.sqrt(2)
  
      return abscissas, weights
docs: Hermite Genz-Keister 18 rule.
  
      Args:
          order (int):
              The quadrature order. Must be in the interval (0, 8).
  
      Returns:
          (:py:data:typing.Tuple[numpy.ndarray, numpy.ndarray]):
              Abscissas and weights
  
      Examples:
          >>> abscissas, weights = quad_genz_keister_18(1)
          >>> print(numpy.around(abscissas, 4))
          [-1.7321  0.      1.7321]
          >>> print(numpy.around(weights, 4))
          [0.1667 0.6667 0.1667]