code: def from_euler_with_small_angles_approximation(
      angles: type_alias.TensorLike,
      name: str = "rotation_matrix_2d_from_euler_with_small_angles_approximation",
  ) -> tf.Tensor:
      r"""Converts an angle to a 2d rotation matrix under the small angle assumption.
  
    Under the small angle assumption, $$\sin(x)$$ and $$\cos(x)$$ can be
    approximated by their second order Taylor expansions, where
    $$\sin(x) \approx x$$ and $$\cos(x) \approx 1 - \frac{x^2}{2}$$. The 2d
    rotation matrix will then be approximated as
  
    $$
    \mathbf{R} =
    \begin{bmatrix}
    1.0 - 0.5\theta^2 & -\theta \\
    \theta & 1.0 - 0.5\theta^2
    \end{bmatrix}.
    $$
  
     In the current implementation, the smallness of the angles is not verified.
  
    Note:
      The resulting matrix rotates points in the $$xy$$-plane counterclockwise.
  
    Note:
      In the following, A1 to An are optional batch dimensions.
  
    Args:
      angles: A tensor of shape `[A1, ..., An, 1]`, where the last dimension
        represents a small angle in radians.
      name: A name for this op that defaults to
        "rotation_matrix_2d_from_euler_with_small_angles_approximation".
  
    Returns:
      A tensor of shape `[A1, ..., An, 2, 2]`, where the last dimension represents
      a 2d rotation matrix.
  
    Raises:
      ValueError: If the shape of `angle` is not supported.
    """
      with tf.name_scope(name):
          angles = tf.convert_to_tensor(value=angles)
  
          shape.check_static(
              tensor=angles,
              tensor_name="angles",
              has_dim_equals=(-1, 1),
          )
  
          cos_angle = 1.0 - 0.5 * angles * angles
          sin_angle = angles
          matrix = tf.stack(
              (cos_angle, -sin_angle, sin_angle, cos_angle), axis=-1
          )  # pyformat: disable
          output_shape = tf.concat(
              (tf.shape(input=angles)[:-1], (2, 2)), axis=-1
          )
          return tf.reshape(matrix, shape=output_shape)
  
file_path: graphics/tensorflow_graphics/geometry/transformation/rotation_matrix_2d.py
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  from typing import Optional
  from six.moves import range
  import tensorflow
  from tensorflow_graphics.geometry.transformation import rotation_matrix_common
  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 2 for calling a global function with example usage: from_euler_with_small_angles_approximation(angles, name) and returns: tf