SYMBOL INDEX (422 symbols across 26 files) FILE: docs/utils/__init__.py function display_np_arrays_as_images (line 7) | def display_np_arrays_as_images(): function guess (line 37) | def guess(x): FILE: einops/__init__.py class EinopsError (line 8) | class EinopsError(RuntimeError): FILE: einops/_backends.py function get_backend (line 22) | def get_backend(tensor) -> "AbstractBackend": class AbstractBackend (line 65) | class AbstractBackend: method is_appropriate_type (line 70) | def is_appropriate_type(self, tensor): method from_numpy (line 74) | def from_numpy(self, x): method to_numpy (line 77) | def to_numpy(self, x): method create_symbol (line 80) | def create_symbol(self, shape): method eval_symbol (line 83) | def eval_symbol(self, symbol, symbol_value_pairs): method arange (line 87) | def arange(self, start, stop): method shape (line 91) | def shape(self, x): method reshape (line 95) | def reshape(self, x, shape): method transpose (line 98) | def transpose(self, x, axes): method reduce (line 101) | def reduce(self, x, operation, axes): method stack_on_zeroth_dimension (line 104) | def stack_on_zeroth_dimension(self, tensors: list): method add_axis (line 107) | def add_axis(self, x, new_position): method add_axes (line 110) | def add_axes(self, x, n_axes, pos2len): method tile (line 117) | def tile(self, x, repeats): method concat (line 121) | def concat(self, tensors, axis: int): method is_float_type (line 126) | def is_float_type(self, x): method layers (line 131) | def layers(self): method __repr__ (line 134) | def __repr__(self): method einsum (line 137) | def einsum(self, pattern, *x): class UnknownSize (line 141) | class UnknownSize: method __floordiv__ (line 144) | def __floordiv__(self, other): method __eq__ (line 147) | def __eq__(self, other): method __mul__ (line 150) | def __mul__(self, other): method __rmul__ (line 153) | def __rmul__(self, other): method __hash__ (line 156) | def __hash__(self): class NumpyBackend (line 160) | class NumpyBackend(AbstractBackend): method __init__ (line 163) | def __init__(self): method is_appropriate_type (line 168) | def is_appropriate_type(self, tensor): method from_numpy (line 171) | def from_numpy(self, x): method to_numpy (line 174) | def to_numpy(self, x): method arange (line 177) | def arange(self, start, stop): method stack_on_zeroth_dimension (line 180) | def stack_on_zeroth_dimension(self, tensors: list): method tile (line 183) | def tile(self, x, repeats): method concat (line 186) | def concat(self, tensors, axis: int): method is_float_type (line 189) | def is_float_type(self, x): method add_axis (line 192) | def add_axis(self, x, new_position): method einsum (line 195) | def einsum(self, pattern, *x): class JaxBackend (line 199) | class JaxBackend(NumpyBackend): method __init__ (line 202) | def __init__(self): method from_numpy (line 210) | def from_numpy(self, x): method to_numpy (line 213) | def to_numpy(self, x): class TorchBackend (line 217) | class TorchBackend(AbstractBackend): method __init__ (line 220) | def __init__(self): method is_appropriate_type (line 227) | def is_appropriate_type(self, tensor): method from_numpy (line 230) | def from_numpy(self, x): method to_numpy (line 237) | def to_numpy(self, x): method arange (line 240) | def arange(self, start, stop): method reduce (line 243) | def reduce(self, x, operation, reduced_axes): method transpose (line 260) | def transpose(self, x, axes): method stack_on_zeroth_dimension (line 263) | def stack_on_zeroth_dimension(self, tensors: list): method add_axes (line 266) | def add_axes(self, x, n_axes, pos2len): method tile (line 273) | def tile(self, x, repeats): method concat (line 276) | def concat(self, tensors, axis: int): method add_axis (line 279) | def add_axis(self, x, new_position): method is_float_type (line 282) | def is_float_type(self, x): method layers (line 285) | def layers(self): method einsum (line 290) | def einsum(self, pattern, *x): class CupyBackend (line 294) | class CupyBackend(AbstractBackend): method __init__ (line 297) | def __init__(self): method is_appropriate_type (line 302) | def is_appropriate_type(self, tensor): method from_numpy (line 305) | def from_numpy(self, x): method to_numpy (line 308) | def to_numpy(self, x): method arange (line 311) | def arange(self, start, stop): method stack_on_zeroth_dimension (line 314) | def stack_on_zeroth_dimension(self, tensors: list): method tile (line 317) | def tile(self, x, repeats): method concat (line 320) | def concat(self, tensors, axis: int): method add_axis (line 323) | def add_axis(self, x, new_position): method is_float_type (line 326) | def is_float_type(self, x): method einsum (line 329) | def einsum(self, pattern, *x): class HashableTuple (line 333) | class HashableTuple: method __init__ (line 336) | def __init__(self, elements: tuple): method __iter__ (line 339) | def __iter__(self): method __len__ (line 342) | def __len__(self): method __getitem__ (line 345) | def __getitem__(self, item): class TensorflowBackend (line 351) | class TensorflowBackend(AbstractBackend): method __init__ (line 354) | def __init__(self): method is_appropriate_type (line 359) | def is_appropriate_type(self, tensor): method from_numpy (line 362) | def from_numpy(self, x): method to_numpy (line 366) | def to_numpy(self, x): method arange (line 370) | def arange(self, start, stop): method shape (line 373) | def shape(self, x): method reduce (line 388) | def reduce(self, x, operation, axes): method reshape (line 391) | def reshape(self, x, shape): method transpose (line 394) | def transpose(self, x, axes): method stack_on_zeroth_dimension (line 397) | def stack_on_zeroth_dimension(self, tensors: list): method tile (line 400) | def tile(self, x, repeats): method concat (line 403) | def concat(self, tensors, axis: int): method add_axis (line 406) | def add_axis(self, x, new_position): method is_float_type (line 409) | def is_float_type(self, x): method layers (line 412) | def layers(self): method einsum (line 417) | def einsum(self, pattern, *x): class TFKerasBackend (line 421) | class TFKerasBackend(AbstractBackend): method __init__ (line 424) | def __init__(self): method is_appropriate_type (line 431) | def is_appropriate_type(self, tensor): method create_symbol (line 434) | def create_symbol(self, shape): method eval_symbol (line 437) | def eval_symbol(self, symbol, symbol_value_pairs): method arange (line 441) | def arange(self, start, stop): method shape (line 444) | def shape(self, x): method reduce (line 448) | def reduce(self, x, operation, axes): method reshape (line 451) | def reshape(self, x, shape): method transpose (line 454) | def transpose(self, x, axes): method stack_on_zeroth_dimension (line 457) | def stack_on_zeroth_dimension(self, tensors: list): method tile (line 460) | def tile(self, x, repeats): method concat (line 463) | def concat(self, tensors, axis: int): method add_axis (line 466) | def add_axis(self, x, new_position): method is_float_type (line 469) | def is_float_type(self, x): method layers (line 472) | def layers(self): class OneFlowBackend (line 478) | class OneFlowBackend(AbstractBackend): method __init__ (line 481) | def __init__(self): method is_appropriate_type (line 486) | def is_appropriate_type(self, tensor): method from_numpy (line 489) | def from_numpy(self, x): method to_numpy (line 496) | def to_numpy(self, x): method arange (line 499) | def arange(self, start, stop): method reduce (line 502) | def reduce(self, x, operation, reduced_axes): method transpose (line 514) | def transpose(self, x, axes): method stack_on_zeroth_dimension (line 517) | def stack_on_zeroth_dimension(self, tensors: list): method add_axes (line 520) | def add_axes(self, x, n_axes, pos2len): method tile (line 527) | def tile(self, x, repeats): method concat (line 530) | def concat(self, tensors, axis: int): method add_axis (line 533) | def add_axis(self, x, new_position): method is_float_type (line 536) | def is_float_type(self, x): method layers (line 539) | def layers(self): method einsum (line 544) | def einsum(self, pattern, *x): class PaddleBackend (line 548) | class PaddleBackend(AbstractBackend): method __init__ (line 551) | def __init__(self): method is_appropriate_type (line 556) | def is_appropriate_type(self, tensor): method from_numpy (line 559) | def from_numpy(self, x): method to_numpy (line 564) | def to_numpy(self, x): method arange (line 567) | def arange(self, start, stop): method reduce (line 570) | def reduce(self, x, operation, axes): method transpose (line 577) | def transpose(self, x, axes): method add_axes (line 580) | def add_axes(self, x, n_axes, pos2len): method stack_on_zeroth_dimension (line 587) | def stack_on_zeroth_dimension(self, tensors: list): method reshape (line 590) | def reshape(self, x, shape): method tile (line 593) | def tile(self, x, repeats): method concat (line 596) | def concat(self, tensors, axis: int): method add_axis (line 599) | def add_axis(self, x, new_position): method is_float_type (line 602) | def is_float_type(self, x): method layers (line 605) | def layers(self): method einsum (line 610) | def einsum(self, pattern, *x): method shape (line 613) | def shape(self, x): class TinygradBackend (line 617) | class TinygradBackend(AbstractBackend): method __init__ (line 620) | def __init__(self): method is_appropriate_type (line 625) | def is_appropriate_type(self, tensor): method from_numpy (line 628) | def from_numpy(self, x): method to_numpy (line 631) | def to_numpy(self, x): method arange (line 634) | def arange(self, start, stop): method shape (line 637) | def shape(self, x): method reshape (line 640) | def reshape(self, x, shape): method transpose (line 643) | def transpose(self, x, axes): method reduce (line 646) | def reduce(self, x, operation, axes): method stack_on_zeroth_dimension (line 651) | def stack_on_zeroth_dimension(self, tensors: list): method add_axis (line 654) | def add_axis(self, x, new_position): method tile (line 657) | def tile(self, x, repeats): method concat (line 660) | def concat(self, tensors, axis: int): method is_float_type (line 663) | def is_float_type(self, x): method einsum (line 666) | def einsum(self, pattern, *x): class PyTensorBackend (line 670) | class PyTensorBackend(AbstractBackend): method __init__ (line 673) | def __init__(self): method is_appropriate_type (line 678) | def is_appropriate_type(self, tensor): method is_float_type (line 681) | def is_float_type(self, x): method from_numpy (line 684) | def from_numpy(self, x): method to_numpy (line 687) | def to_numpy(self, x): method create_symbol (line 690) | def create_symbol(self, shape): method eval_symbol (line 695) | def eval_symbol(self, symbol, symbol_value_pairs): method arange (line 698) | def arange(self, start, stop): method shape (line 701) | def shape(self, x): method stack_on_zeroth_dimension (line 708) | def stack_on_zeroth_dimension(self, tensors: list): method tile (line 711) | def tile(self, x, repeats): method concat (line 714) | def concat(self, tensors, axis: int): method add_axis (line 717) | def add_axis(self, x, new_position): method einsum (line 720) | def einsum(self, pattern, *x): class MLXBackend (line 724) | class MLXBackend(AbstractBackend): method __init__ (line 729) | def __init__(self): method is_appropriate_type (line 736) | def is_appropriate_type(self, tensor): method from_numpy (line 739) | def from_numpy(self, x): method to_numpy (line 742) | def to_numpy(self, x): method arange (line 747) | def arange(self, start, stop): method stack_on_zeroth_dimension (line 750) | def stack_on_zeroth_dimension(self, tensors: list): method add_axis (line 753) | def add_axis(self, x, new_position): method tile (line 756) | def tile(self, x, repeats): method concat (line 759) | def concat(self, tensors, axis: int): method is_float_type (line 762) | def is_float_type(self, x): method einsum (line 765) | def einsum(self, pattern, *x): FILE: einops/_torch_specific.py class TorchJitBackend (line 20) | class TorchJitBackend: method reduce (line 27) | def reduce(x: torch.Tensor, operation: str, reduced_axes: list[int]): method transpose (line 44) | def transpose(x, axes: list[int]): method stack_on_zeroth_dimension (line 48) | def stack_on_zeroth_dimension(tensors: list[torch.Tensor]): method tile (line 52) | def tile(x, repeats: list[int]): method add_axes (line 56) | def add_axes(x, n_axes: int, pos2len: dict[int, int]): method is_float_type (line 64) | def is_float_type(x): method shape (line 68) | def shape(x): method reshape (line 72) | def reshape(x, shape: list[int]): function apply_for_scriptable_torch (line 77) | def apply_for_scriptable_torch( function allow_ops_in_compiled_graph (line 102) | def allow_ops_in_compiled_graph(): FILE: einops/array_api.py function reduce (line 7) | def reduce(tensor: Tensor, pattern: str, reduction: Reduction, **axes_le... function repeat (line 35) | def repeat(tensor: Tensor, pattern: str, **axes_lengths) -> Tensor: function rearrange (line 39) | def rearrange(tensor: Tensor, pattern: str, **axes_lengths) -> Tensor: function asnumpy (line 43) | def asnumpy(tensor: Tensor): function pack (line 52) | def pack(tensors: Sequence[Tensor], pattern: str) -> tuple[Tensor, list[... function unpack (line 72) | def unpack(tensor: Tensor, packed_shapes: list[Shape], pattern: str) -> ... FILE: einops/einops.py function _product (line 29) | def _product(sequence: list[int]) -> int: function _reduce_axes (line 37) | def _reduce_axes(tensor, reduction_type: Reduction, reduced_axes: list[i... function _optimize_transformation (line 50) | def _optimize_transformation(init_shapes, reduced_axes, axes_reordering,... class TransformRecipe (line 114) | class TransformRecipe: method __init__ (line 123) | def __init__( function _reconstruct_from_shape_uncached (line 155) | def _reconstruct_from_shape_uncached( function _apply_recipe (line 230) | def _apply_recipe( function _apply_recipe_array_api (line 255) | def _apply_recipe_array_api( function _prepare_transformation_recipe (line 290) | def _prepare_transformation_recipe( function _prepare_recipes_for_all_dims (line 445) | def _prepare_recipes_for_all_dims( function reduce (line 461) | def reduce(tensor: list[Tensor], pattern: str, reduction: Reduction, **a... function reduce (line 465) | def reduce(tensor: Tensor, pattern: str, reduction: Reduction, **axes_le... function reduce (line 468) | def reduce(tensor: Union[Tensor, list[Tensor]], pattern: str, reduction:... function rearrange (line 554) | def rearrange(tensor: list[Tensor], pattern: str, **axes_lengths: Size) ... function rearrange (line 558) | def rearrange(tensor: Tensor, pattern: str, **axes_lengths: Size) -> Ten... function rearrange (line 561) | def rearrange(tensor: Union[Tensor, list[Tensor]], pattern: str, **axes_... function repeat (line 620) | def repeat(tensor: list[Tensor], pattern: str, **axes_lengths: Size) -> ... function repeat (line 624) | def repeat(tensor: Tensor, pattern: str, **axes_lengths: Size) -> Tensor... function repeat (line 627) | def repeat(tensor: Union[Tensor, list[Tensor]], pattern: str, **axes_len... function parse_shape (line 677) | def parse_shape(x: Tensor, pattern: str) -> dict: function _enumerate_directions (line 740) | def _enumerate_directions(x): function asnumpy (line 766) | def asnumpy(tensor: Tensor) -> np_ndarray: function _validate_einsum_axis_name (line 779) | def _validate_einsum_axis_name(axis_name): function _compactify_pattern_for_einsum (line 796) | def _compactify_pattern_for_einsum(pattern: str) -> str: function einsum (line 850) | def einsum(tensor: Tensor, pattern: str, /) -> Tensor: ... function einsum (line 854) | def einsum(tensor1: Tensor, tensor2: Tensor, pattern: str, /) -> Tensor:... function einsum (line 858) | def einsum(tensor1: Tensor, tensor2: Tensor, tensor3: Tensor, pattern: s... function einsum (line 862) | def einsum(tensor1: Tensor, tensor2: Tensor, tensor3: Tensor, tensor4: T... function einsum (line 865) | def einsum(*tensors_and_pattern: Union[Tensor, str]) -> Tensor: FILE: einops/layers/__init__.py class RearrangeMixin (line 9) | class RearrangeMixin: method __init__ (line 19) | def __init__(self, pattern: str, **axes_lengths: Any) -> None: method __repr__ (line 27) | def __repr__(self) -> str: method multirecipe (line 33) | def multirecipe(self) -> dict[int, TransformRecipe]: method _apply_recipe (line 41) | def _apply_recipe(self, x): method __getstate__ (line 51) | def __getstate__(self): method __setstate__ (line 54) | def __setstate__(self, state): class ReduceMixin (line 58) | class ReduceMixin: method __init__ (line 69) | def __init__(self, pattern: str, reduction: str, **axes_lengths: Any): method __repr__ (line 77) | def __repr__(self): method multirecipe (line 83) | def multirecipe(self) -> dict[int, TransformRecipe]: method _apply_recipe (line 91) | def _apply_recipe(self, x): method __getstate__ (line 101) | def __getstate__(self): method __setstate__ (line 104) | def __setstate__(self, state): FILE: einops/layers/_einmix.py function _report_axes (line 10) | def _report_axes(axes: set, report_message: str): class _EinmixMixin (line 15) | class _EinmixMixin: method __init__ (line 16) | def __init__(self, pattern: str, weight_shape: str, bias_shape: Option... method initialize_einmix (line 67) | def initialize_einmix(self, pattern: str, weight_shape: str, bias_shap... method _create_rearrange_layers (line 187) | def _create_rearrange_layers( method _create_parameters (line 196) | def _create_parameters(self, weight_shape, weight_bound, bias_shape, b... method __repr__ (line 200) | def __repr__(self): class _EinmixDebugger (line 210) | class _EinmixDebugger(_EinmixMixin): method _create_rearrange_layers (line 213) | def _create_rearrange_layers( method _create_parameters (line 225) | def _create_parameters(self, weight_shape, weight_bound, bias_shape, b... FILE: einops/layers/flax.py class Reduce (line 14) | class Reduce(nn.Module): method setup (line 19) | def setup(self): method __call__ (line 22) | def __call__(self, input): class Rearrange (line 26) | class Rearrange(nn.Module): method setup (line 30) | def setup(self): method __call__ (line 33) | def __call__(self, input): class EinMix (line 37) | class EinMix(nn.Module, _EinmixMixin): method setup (line 43) | def setup(self): method _create_parameters (line 51) | def _create_parameters(self, weight_shape, weight_bound, bias_shape, b... method _create_rearrange_layers (line 59) | def _create_rearrange_layers( method __call__ (line 74) | def __call__(self, input): FILE: einops/layers/oneflow.py class Rearrange (line 11) | class Rearrange(RearrangeMixin, flow.nn.Module): method forward (line 12) | def forward(self, input): class Reduce (line 16) | class Reduce(ReduceMixin, flow.nn.Module): method forward (line 17) | def forward(self, input): class EinMix (line 21) | class EinMix(_EinmixMixin, flow.nn.Module): method _create_parameters (line 22) | def _create_parameters(self, weight_shape, weight_bound, bias_shape, b... method _create_rearrange_layers (line 31) | def _create_rearrange_layers( method forward (line 46) | def forward(self, input): FILE: einops/layers/paddle.py class Rearrange (line 11) | class Rearrange(RearrangeMixin, paddle.nn.Layer): method forward (line 12) | def forward(self, input): class Reduce (line 16) | class Reduce(ReduceMixin, paddle.nn.Layer): method forward (line 17) | def forward(self, input): class EinMix (line 21) | class EinMix(_EinmixMixin, paddle.nn.Layer): method _create_parameters (line 22) | def _create_parameters(self, weight_shape, weight_bound, bias_shape, b... method _create_rearrange_layers (line 34) | def _create_rearrange_layers( method forward (line 49) | def forward(self, input): FILE: einops/layers/tensorflow.py class Rearrange (line 25) | class Rearrange(RearrangeMixin, Layer): method build (line 26) | def build(self, input_shape): method call (line 29) | def call(self, inputs): method get_config (line 32) | def get_config(self): class Reduce (line 36) | class Reduce(ReduceMixin, Layer): method build (line 37) | def build(self, input_shape): method call (line 40) | def call(self, inputs): method get_config (line 43) | def get_config(self): class EinMix (line 47) | class EinMix(_EinmixMixin, Layer): method _create_parameters (line 48) | def _create_parameters(self, weight_shape, weight_bound, bias_shape, b... method _create_rearrange_layers (line 53) | def _create_rearrange_layers( method build (line 68) | def build(self, input_shape): method call (line 85) | def call(self, inputs): method get_config (line 95) | def get_config(self): FILE: einops/layers/torch.py class Rearrange (line 13) | class Rearrange(RearrangeMixin, torch.nn.Module): method forward (line 14) | def forward(self, input): method _apply_recipe (line 18) | def _apply_recipe(self, x): class Reduce (line 23) | class Reduce(ReduceMixin, torch.nn.Module): method forward (line 24) | def forward(self, input): method _apply_recipe (line 28) | def _apply_recipe(self, x): class EinMix (line 33) | class EinMix(_EinmixMixin, torch.nn.Module): method _create_parameters (line 34) | def _create_parameters(self, weight_shape, weight_bound, bias_shape, b... method _create_rearrange_layers (line 45) | def _create_rearrange_layers( method forward (line 60) | def forward(self, input): FILE: einops/packing.py function analyze_pattern (line 15) | def analyze_pattern(pattern: str, opname: str) -> tuple[int, int, int]: function pack (line 34) | def pack(tensors: Sequence[Tensor], pattern: str) -> tuple[Tensor, list[... function prod (line 91) | def prod(x: Shape) -> int: function unpack (line 98) | def unpack(tensor: Tensor, packed_shapes: list[Shape], pattern: str) -> ... FILE: einops/parsing.py class AnonymousAxis (line 10) | class AnonymousAxis: method __init__ (line 13) | def __init__(self, value: str): method __repr__ (line 21) | def __repr__(self): class ParsedExpression (line 25) | class ParsedExpression: method __init__ (line 31) | def __init__(self, expression: str, *, allow_underscore: bool = False,... method flat_axes_order (line 113) | def flat_axes_order(self) -> list: method has_composed_axes (line 121) | def has_composed_axes(self) -> bool: method check_axis_name_return_reason (line 129) | def check_axis_name_return_reason(name: str, allow_underscore: bool = ... method check_axis_name (line 152) | def check_axis_name(name: str) -> bool: FILE: einops/tests/__init__.py function find_names_of_all_frameworks (line 23) | def find_names_of_all_frameworks() -> list[str]: function unparse_backends (line 36) | def unparse_backends(backend_names: list[str]) -> tuple[str, str]: function parse_backends_to_test (line 45) | def parse_backends_to_test() -> list[str]: function is_backend_tested (line 57) | def is_backend_tested(backend: str) -> bool: function collect_test_backends (line 64) | def collect_test_backends(symbolic=False, layers=False) -> list[_backend... FILE: einops/tests/run_tests.py function run (line 13) | def run(cmd, **env): function main (line 22) | def main(): FILE: einops/tests/test_einsum.py class Arguments (line 11) | class Arguments: method __init__ (line 12) | def __init__(self, *args: Any, **kargs: Any): method __call__ (line 16) | def __call__(self, function: Callable): function test_layer (line 169) | def test_layer(): function test_functional (line 198) | def test_functional(): function test_functional_symbolic (line 233) | def test_functional_symbolic(): function test_functional_errors (line 265) | def test_functional_errors(): FILE: einops/tests/test_examples.py function test_rearrange_examples (line 9) | def test_rearrange_examples(): function tensor_train_example_numpy (line 153) | def tensor_train_example_numpy(): function test_pytorch_yolo_fragment (line 194) | def test_pytorch_yolo_fragment(): FILE: einops/tests/test_layers.py function test_rearrange_imperative (line 37) | def test_rearrange_imperative(): function test_rearrange_symbolic (line 69) | def test_rearrange_symbolic(): function test_reduce_imperative (line 110) | def test_reduce_imperative(): function test_reduce_symbolic (line 151) | def test_reduce_symbolic(): function create_torch_model (line 177) | def create_torch_model(use_reduce=False, add_scripted_layer=False): function test_torch_layer (line 204) | def test_torch_layer(): function test_torch_layers_scripting (line 230) | def test_torch_layers_scripting(): function test_keras_layer (line 244) | def test_keras_layer(): function test_flax_layers (line 308) | def test_flax_layers(): function test_einmix_decomposition (line 359) | def test_einmix_decomposition(): function test_einmix_restrictions (line 449) | def test_einmix_restrictions(): FILE: einops/tests/test_ops.py function test_collapsed_ellipsis_errors_out (line 44) | def test_collapsed_ellipsis_errors_out(): function test_ellipsis_ops_numpy (line 55) | def test_ellipsis_ops_numpy(): function check_op_against_numpy (line 73) | def check_op_against_numpy(backend, numpy_input, pattern, axes_lengths, ... function test_ellipsis_ops_imperative (line 100) | def test_ellipsis_ops_imperative(): function test_rearrange_array_api (line 117) | def test_rearrange_array_api(): function test_reduce_array_api (line 132) | def test_reduce_array_api(): function test_rearrange_consistency_numpy (line 148) | def test_rearrange_consistency_numpy(): function test_rearrange_permutations_numpy (line 186) | def test_rearrange_permutations_numpy(): function test_reduction_imperatives (line 214) | def test_reduction_imperatives(): function test_reduction_symbolic (line 250) | def test_reduction_symbolic(): function test_reduction_stress_imperatives (line 303) | def test_reduction_stress_imperatives(): function test_reduction_with_callable_imperatives (line 335) | def test_reduction_with_callable_imperatives(): function test_enumerating_directions (line 386) | def test_enumerating_directions(): function test_concatenations_and_stacking (line 400) | def test_concatenations_and_stacking(): function test_gradients_imperatives (line 419) | def test_gradients_imperatives(): function test_tiling_imperatives (line 446) | def test_tiling_imperatives(): function test_tiling_symbolic (line 463) | def test_tiling_symbolic(): function check_reversion (line 497) | def check_reversion(x, repeat_pattern, **sizes): function test_repeat_numpy (line 508) | def test_repeat_numpy(): function test_repeat_imperatives (line 517) | def test_repeat_imperatives(): function test_repeat_symbolic (line 530) | def test_repeat_symbolic(): function test_repeat_array_api (line 544) | def test_repeat_array_api(): function test_anonymous_axes (line 572) | def test_anonymous_axes(): function test_list_inputs (line 578) | def test_list_inputs(): function test_torch_compile_with_dynamic_shape (line 595) | def test_torch_compile_with_dynamic_shape(): function bit_count (line 624) | def bit_count(x): function test_reduction_imperatives_booleans (line 628) | def test_reduction_imperatives_booleans(): FILE: einops/tests/test_other.py function test_doctests_examples (line 20) | def test_doctests_examples(): function test_backends_installed (line 26) | def test_backends_installed(): function test_optimize_transformations_numpy (line 56) | def test_optimize_transformations_numpy(): function test_parse_shape_imperative (line 93) | def test_parse_shape_imperative(): function test_underscore (line 102) | def test_underscore(): function test_underscore_one (line 109) | def test_underscore_one(): function test_underscore_several (line 116) | def test_underscore_several(): function test_repeating (line 123) | def test_repeating(): function test_ellipsis (line 132) | def test_ellipsis(): function test_parse_with_anonymous_axes (line 153) | def test_parse_with_anonymous_axes(): function test_failures (line 166) | def test_failures(): function test_parse_shape_symbolic (line 193) | def test_parse_shape_symbolic(backend): function test_parse_shape_symbolic_ellipsis (line 221) | def test_parse_shape_symbolic_ellipsis(backend): function test_is_float_type (line 246) | def test_is_float_type(): function test_torch_compile_for_functions (line 257) | def test_torch_compile_for_functions(): function test_torch_compile_for_layers (line 308) | def test_torch_compile_for_layers(): function test_einops_threading (line 353) | def test_einops_threading(): FILE: einops/tests/test_packing.py function pack_unpack (line 12) | def pack_unpack(xs, pattern): function unpack_and_pack (line 20) | def unpack_and_pack(x, ps, pattern: str): function unpack_and_pack_against_numpy (line 28) | def unpack_and_pack_against_numpy(x, ps, pattern: str): class CaptureException (line 54) | class CaptureException: method __enter__ (line 55) | def __enter__(self): method __exit__ (line 58) | def __exit__(self, exc_type, exc_val, exc_tb): function test_numpy_trivial (line 63) | def test_numpy_trivial(H=13, W=17): class UnpackTestCase (line 123) | class UnpackTestCase: method dim (line 127) | def dim(self): method selfcheck (line 130) | def selfcheck(self): function test_pack_unpack_with_numpy (line 146) | def test_pack_unpack_with_numpy(): function test_pack_unpack_against_numpy (line 209) | def test_pack_unpack_against_numpy(): function test_pack_unpack_array_api (line 273) | def test_pack_unpack_array_api(): FILE: einops/tests/test_parsing.py class AnonymousAxisPlaceholder (line 9) | class AnonymousAxisPlaceholder: method __init__ (line 10) | def __init__(self, value: int): method __eq__ (line 14) | def __eq__(self, other): method __hash__ (line 17) | def __hash__(self): function test_anonymous_axes (line 21) | def test_anonymous_axes(): function test_elementary_axis_name (line 30) | def test_elementary_axis_name(): function test_invalid_expressions (line 51) | def test_invalid_expressions(): function test_parse_expression (line 84) | def test_parse_expression(): FILE: scripts/convert_readme.py function replace_with_video_tag (line 10) | def replace_with_video_tag(line: str): FILE: scripts/test_notebooks.py function render_notebook (line 21) | def render_notebook(filename: Path, replacements: dict[str, str]) -> str: function test_notebook_1 (line 42) | def test_notebook_1(): function test_notebook_2_with_all_backends (line 47) | def test_notebook_2_with_all_backends(): function test_notebook_3 (line 58) | def test_notebook_3(): function test_notebook_4 (line 63) | def test_notebook_4():