:py:mod:`mipcandy.data.geometric`
=================================

.. py:module:: mipcandy.data.geometric

.. autodoc2-docstring:: mipcandy.data.geometric
   :allowtitles:

Module Contents
---------------

Functions
~~~~~~~~~

.. list-table::
   :class: autosummary longtable
   :align: left

   * - :py:obj:`ensure_num_dimensions <mipcandy.data.geometric.ensure_num_dimensions>`
     - .. autodoc2-docstring:: mipcandy.data.geometric.ensure_num_dimensions
          :summary:
   * - :py:obj:`orthographic_views <mipcandy.data.geometric.orthographic_views>`
     - .. autodoc2-docstring:: mipcandy.data.geometric.orthographic_views
          :summary:
   * - :py:obj:`aggregate_orthographic_views <mipcandy.data.geometric.aggregate_orthographic_views>`
     - .. autodoc2-docstring:: mipcandy.data.geometric.aggregate_orthographic_views
          :summary:
   * - :py:obj:`crop <mipcandy.data.geometric.crop>`
     - .. autodoc2-docstring:: mipcandy.data.geometric.crop
          :summary:

API
~~~

.. py:function:: ensure_num_dimensions(x: torch.Tensor, num_dimensions: int, *, append_before: bool = True) -> torch.Tensor
   :canonical: mipcandy.data.geometric.ensure_num_dimensions

   .. autodoc2-docstring:: mipcandy.data.geometric.ensure_num_dimensions

.. py:function:: orthographic_views(x: torch.Tensor, reduction: typing.Literal[mean, sum] = 'mean') -> tuple[torch.Tensor, torch.Tensor, torch.Tensor]
   :canonical: mipcandy.data.geometric.orthographic_views

   .. autodoc2-docstring:: mipcandy.data.geometric.orthographic_views

.. py:function:: aggregate_orthographic_views(d: torch.Tensor, h: torch.Tensor, w: torch.Tensor) -> torch.Tensor
   :canonical: mipcandy.data.geometric.aggregate_orthographic_views

   .. autodoc2-docstring:: mipcandy.data.geometric.aggregate_orthographic_views

.. py:function:: crop(t: torch.Tensor, bbox: typing.Sequence[int]) -> torch.Tensor
   :canonical: mipcandy.data.geometric.crop

   .. autodoc2-docstring:: mipcandy.data.geometric.crop
