<commit_before>"""
Vectorized operations, tensors with named dimensions.

This package provides a common interface for tensor operations.
Is internally uses NumPy, TensorFlow or PyTorch.

Provides

* A tensor base class with multiple implementations
* A NumPy-like API for mathematical operations over tensors as well as tensor generation

The provided operations are not implemented directly.
Instead, they delegate the actual computation to either NumPy, TensorFlow or PyTorch, depending on the configuration.
This allows the user to write simulation code once and have it run with various computation backends.

Main classes:

* Tensor
* Shape
"""

from .backend import DYNAMIC_BACKEND, set_precision, Solve, LinearSolve
from .backend._scipy_backend import SCIPY_BACKEND

from . import _extrapolation as extrapolation
from ._extrapolation import Extrapolation

from ._config import GLOBAL_AXIS_ORDER

from ._shape import Shape, spatial_shape, infer_shape, EMPTY_SHAPE, batch_shape, channel_shape, shape
from ._tensors import tensor, Tensor, Tensor as Tensor
from ._functions import (
    is_tensor, as_tensor,
    copy,
    print_ as print,
    transpose,
    zeros, ones, fftfreq, random_normal, random_uniform, meshgrid,  # creation operators (use default backend)
    batch_stack, spatial_stack, channel_stack, unstack, concat,
    pad, spatial_pad,
    join_dimensions,
    prod,
    divide_no_nan,
    where, nonzero,
    sum_ as sum, mean, std,
    zeros_like, ones_like,<commit_msg>fix double import<commit_after>"""
Vectorized operations, tensors with named dimensions.

This package provides a common interface for tensor operations.
Is internally uses NumPy, TensorFlow or PyTorch.

Provides

* A tensor base class with multiple implementations
* A NumPy-like API for mathematical operations over tensors as well as tensor generation

The provided operations are not implemented directly.
Instead, they delegate the actual computation to either NumPy, TensorFlow or PyTorch, depending on the configuration.
This allows the user to write simulation code once and have it run with various computation backends.

Main classes:

* Tensor
* Shape
"""

from .backend import DYNAMIC_BACKEND, set_precision, Solve, LinearSolve
from .backend._scipy_backend import SCIPY_BACKEND

from . import _extrapolation as extrapolation
from ._extrapolation import Extrapolation

from ._config import GLOBAL_AXIS_ORDER

from ._shape import Shape, spatial_shape, infer_shape, EMPTY_SHAPE, batch_shape, channel_shape, shape
from ._tensors import tensor, Tensor
from ._functions import (
    is_tensor, as_tensor,
    copy,
    print_ as print,
    transpose,
    zeros, ones, fftfreq, random_normal, random_uniform, meshgrid,  # creation operators (use default backend)
    batch_stack, spatial_stack, channel_stack, unstack, concat,
    pad, spatial_pad,
    join_dimensions,
    prod,
    divide_no_nan,
    where, nonzero,
    sum_ as sum, mean, std,
    zeros_like, ones_like,
{'fraction_non_alphanumeric': 0.05218855218855219, 'fraction_numerical': 0.0, 'mean_word_length': 4.802734375, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3786399', 'n_tokens_mistral': 843, 'n_tokens_neox': 818, 'n_words': 338}