code: def clip_to_ndc(
      point_clip_space: type_alias.TensorLike, name: str = "clip_to_ndc"
  ) -> tf.Tensor:
      """Transforms points from clip to normalized device coordinates (ndc).
  
      Note:
        In the following, A1 to An are optional batch dimensions.
  
      Args:
        point_clip_space: A tensor of shape `[A1, ..., An, 4]`, where the last
          dimension represents points in clip space.
        name: A name for this op. Defaults to "clip_to_ndc".
  
      Raises:
        ValueError: If `point_clip_space` is not of size 4 in its last dimension.
  
      Returns:
        A tensor of shape `[A1, ..., An, 3]`, containing `point_clip_space` in
        normalized device coordinates.
      """
      with tf.name_scope(name):
          point_clip_space = tf.convert_to_tensor(
              value=point_clip_space
          )
  
          shape.check_static(
              tensor=point_clip_space,
              tensor_name="point_clip_space",
              has_dim_equals=(-1, 4),
          )
  
          w = point_clip_space[..., -1:]
          return point_clip_space[..., :3] / w
  
file_path: graphics/tensorflow_graphics/rendering/opengl/math.py
imports: from typing import Tuple
  import tensorflow
  from tensorflow_graphics.geometry.transformation import look_at
  from tensorflow_graphics.math.interpolation import weighted
  from tensorflow_graphics.rendering.camera import perspective
  from tensorflow_graphics.util import asserts
  from tensorflow_graphics.util import export_api
  from tensorflow_graphics.util import shape
  from tensorflow_graphics.util import type_alias
label_desc: Use image node_id 3 for calling a global function with example usage: clip_to_ndc(point_clip_space, name) and returns: unknown