from einx._src.frontend.types import Tensor

from einx._src.frontend.ops import id

from einx._src.frontend.ops import sum
from einx._src.frontend.ops import mean
from einx._src.frontend.ops import var
from einx._src.frontend.ops import std
from einx._src.frontend.ops import prod
from einx._src.frontend.ops import count_nonzero
from einx._src.frontend.ops import any
from einx._src.frontend.ops import all
from einx._src.frontend.ops import max
from einx._src.frontend.ops import min
from einx._src.frontend.ops import logsumexp

from einx._src.frontend.ops import add
from einx._src.frontend.ops import subtract
from einx._src.frontend.ops import multiply
from einx._src.frontend.ops import true_divide
from einx._src.frontend.ops import floor_divide
from einx._src.frontend.ops import divide
from einx._src.frontend.ops import logical_and
from einx._src.frontend.ops import logical_or
from einx._src.frontend.ops import where
from einx._src.frontend.ops import maximum
from einx._src.frontend.ops import minimum
from einx._src.frontend.ops import less
from einx._src.frontend.ops import less_equal
from einx._src.frontend.ops import greater
from einx._src.frontend.ops import greater_equal
from einx._src.frontend.ops import equal
from einx._src.frontend.ops import not_equal
from einx._src.frontend.ops import logaddexp

from einx._src.frontend.ops import dot

from einx._src.frontend.ops import get_at
from einx._src.frontend.ops import set_at
from einx._src.frontend.ops import add_at
from einx._src.frontend.ops import subtract_at

from einx._src.frontend.ops import softmax
from einx._src.frontend.ops import log_softmax
from einx._src.frontend.ops import sort
from einx._src.frontend.ops import argsort
from einx._src.frontend.ops import flip
from einx._src.frontend.ops import roll

from einx._src.frontend.ops import argmax
from einx._src.frontend.ops import argmin

from einx._src.frontend.removed_ops import rearrange
from einx._src.frontend.removed_ops import vmap
from einx._src.frontend.removed_ops import vmap_with_axis
from einx._src.frontend.removed_ops import reduce
from einx._src.frontend.removed_ops import elementwise
from einx._src.frontend.removed_ops import arange

from einx._src.frontend.util import matches
from einx._src.frontend.util import solve
from einx._src.frontend.util import solve_shapes
from einx._src.frontend.util import solve_axes
from einx._src.frontend.util import check

from einx._src.frontend.impl import numpy

del numpy
from einx._src.frontend.impl import torch

del torch
from einx._src.frontend.impl import jax

del jax
from einx._src.frontend.impl import mlx

del mlx
from einx._src.frontend.impl import tensorflow

del tensorflow
from einx._src.frontend.impl import arrayapi

del arrayapi
from einx._src.frontend.impl import tinygrad

del tinygrad

from . import backend
from . import numpy
from . import jax
from . import torch
from . import mlx
from . import tensorflow
from . import arrayapi
from . import tinygrad

from . import errors
from . import experimental

__version__ = "0.4.2"
