pub trait Numeric<B>: BasicOps<B>{
Show 56 methods
// Required methods
fn add(lhs: Self::Primitive, rhs: Self::Primitive) -> Self::Primitive;
fn add_scalar<E>(lhs: Self::Primitive, rhs: E) -> Self::Primitive
where E: ElementConversion;
fn sub(lhs: Self::Primitive, rhs: Self::Primitive) -> Self::Primitive;
fn sub_scalar<E>(lhs: Self::Primitive, rhs: E) -> Self::Primitive
where E: ElementConversion;
fn div(lhs: Self::Primitive, rhs: Self::Primitive) -> Self::Primitive;
fn div_scalar<E>(lhs: Self::Primitive, rhs: E) -> Self::Primitive
where E: ElementConversion;
fn remainder_scalar<E>(lhs: Self::Primitive, rhs: E) -> Self::Primitive
where E: ElementConversion;
fn mul(lhs: Self::Primitive, rhs: Self::Primitive) -> Self::Primitive;
fn mul_scalar<E>(lhs: Self::Primitive, rhs: E) -> Self::Primitive
where E: ElementConversion;
fn neg(tensor: Self::Primitive) -> Self::Primitive;
fn sign(tensor: Self::Primitive) -> Self::Primitive;
fn zeros(shape: Shape, device: &<B as Backend>::Device) -> Self::Primitive;
fn ones(shape: Shape, device: &<B as Backend>::Device) -> Self::Primitive;
fn full<E>(
shape: Shape,
fill_value: E,
device: &<B as Backend>::Device,
) -> Self::Primitive
where E: ElementConversion;
fn sum(tensor: Self::Primitive) -> Self::Primitive;
fn sum_dim(tensor: Self::Primitive, dim: usize) -> Self::Primitive;
fn prod(tensor: Self::Primitive) -> Self::Primitive;
fn prod_dim(tensor: Self::Primitive, dim: usize) -> Self::Primitive;
fn mean(tensor: Self::Primitive) -> Self::Primitive;
fn mean_dim(tensor: Self::Primitive, dim: usize) -> Self::Primitive;
fn equal_elem(
lhs: Self::Primitive,
rhs: Self::Elem,
) -> <B as Backend>::BoolTensorPrimitive;
fn not_equal_elem(
lhs: Self::Primitive,
rhs: Self::Elem,
) -> <B as Backend>::BoolTensorPrimitive;
fn greater(
lhs: Self::Primitive,
rhs: Self::Primitive,
) -> <B as Backend>::BoolTensorPrimitive;
fn greater_elem(
lhs: Self::Primitive,
rhs: Self::Elem,
) -> <B as Backend>::BoolTensorPrimitive;
fn greater_equal(
lhs: Self::Primitive,
rhs: Self::Primitive,
) -> <B as Backend>::BoolTensorPrimitive;
fn greater_equal_elem(
lhs: Self::Primitive,
rhs: Self::Elem,
) -> <B as Backend>::BoolTensorPrimitive;
fn lower(
lhs: Self::Primitive,
rhs: Self::Primitive,
) -> <B as Backend>::BoolTensorPrimitive;
fn lower_elem(
lhs: Self::Primitive,
rhs: Self::Elem,
) -> <B as Backend>::BoolTensorPrimitive;
fn lower_equal(
lhs: Self::Primitive,
rhs: Self::Primitive,
) -> <B as Backend>::BoolTensorPrimitive;
fn lower_equal_elem(
lhs: Self::Primitive,
rhs: Self::Elem,
) -> <B as Backend>::BoolTensorPrimitive;
fn mask_where(
tensor: Self::Primitive,
mask: <B as Backend>::BoolTensorPrimitive,
source: Self::Primitive,
) -> Self::Primitive;
fn mask_fill(
tensor: Self::Primitive,
mask: <B as Backend>::BoolTensorPrimitive,
value: Self::Elem,
) -> Self::Primitive;
fn gather(
dim: usize,
tensor: Self::Primitive,
indices: <B as Backend>::IntTensorPrimitive,
) -> Self::Primitive;
fn scatter(
dim: usize,
tensor: Self::Primitive,
indices: <B as Backend>::IntTensorPrimitive,
values: Self::Primitive,
) -> Self::Primitive;
fn select(
tensor: Self::Primitive,
dim: usize,
indices: Tensor<B, 1, Int>,
) -> Self::Primitive;
fn select_assign(
tensor: Self::Primitive,
dim: usize,
indices: Tensor<B, 1, Int>,
values: Self::Primitive,
) -> Self::Primitive;
fn argmax(
tensor: Self::Primitive,
dim: usize,
) -> <B as Backend>::IntTensorPrimitive;
fn argmin(
tensor: Self::Primitive,
dim: usize,
) -> <B as Backend>::IntTensorPrimitive;
fn max(tensor: Self::Primitive) -> Self::Primitive;
fn max_dim(tensor: Self::Primitive, dim: usize) -> Self::Primitive;
fn max_dim_with_indices(
tensor: Self::Primitive,
dim: usize,
) -> (Self::Primitive, <B as Backend>::IntTensorPrimitive);
fn min(tensor: Self::Primitive) -> Self::Primitive;
fn min_dim(tensor: Self::Primitive, dim: usize) -> Self::Primitive;
fn min_dim_with_indices(
tensor: Self::Primitive,
dim: usize,
) -> (Self::Primitive, <B as Backend>::IntTensorPrimitive);
fn clamp(
tensor: Self::Primitive,
min: Self::Elem,
max: Self::Elem,
) -> Self::Primitive;
fn clamp_min(tensor: Self::Primitive, min: Self::Elem) -> Self::Primitive;
fn clamp_max(tensor: Self::Primitive, max: Self::Elem) -> Self::Primitive;
fn abs(tensor: Self::Primitive) -> Self::Primitive;
fn powf(lhs: Self::Primitive, rhs: Self::Primitive) -> Self::Primitive;
fn powi(lhs: Self::Primitive, rhs: Self::Primitive) -> Self::Primitive;
fn powf_scalar<E>(lhs: Self::Primitive, rhs: E) -> Self::Primitive
where E: ElementConversion;
fn powi_scalar<E>(lhs: Self::Primitive, rhs: E) -> Self::Primitive
where E: ElementConversion;
fn random(
shape: Shape,
distribution: Distribution,
device: &<B as Backend>::Device,
) -> Self::Primitive;
fn sort(
tensor: Self::Primitive,
dim: usize,
descending: bool,
) -> Self::Primitive;
fn sort_with_indices(
tensor: Self::Primitive,
dim: usize,
descending: bool,
) -> (Self::Primitive, <Int as TensorKind<B>>::Primitive);
fn argsort(
tensor: Self::Primitive,
dim: usize,
descending: bool,
) -> <Int as TensorKind<B>>::Primitive;
}
Expand description
Trait that list all operations that can be applied on all numerical tensors.
§Warnings
This is an internal trait, use the public API provided by tensor struct.
Required Methods§
fn add(lhs: Self::Primitive, rhs: Self::Primitive) -> Self::Primitive
fn add(lhs: Self::Primitive, rhs: Self::Primitive) -> Self::Primitive
Adds two tensors together.
§Arguments
lhs
- The left hand side tensor.rhs
- The right hand side tensor.
§Returns
The sum of the two tensors.
§Remarks
This is a low-level function used internally by the library to call different backend functions with static dispatch. It is not designed for direct usage by users, and not recommended to import or use this function directly.
For adding tensors, users should prefer the Tensor::add function, which is more high-level and designed for public use.
fn add_scalar<E>(lhs: Self::Primitive, rhs: E) -> Self::Primitivewhere
E: ElementConversion,
fn add_scalar<E>(lhs: Self::Primitive, rhs: E) -> Self::Primitivewhere
E: ElementConversion,
Adds a scalar to a tensor element-wise.
§Arguments
lhs
- The left hand side tensor.rhs
- The right hand side scalar.
§Returns
The sum of the tensor and the scalar.
§Remarks
This is a low-level function used internally by the library to call different backend functions with static dispatch. It is not designed for direct usage by users, and not recommended to import or use this function directly.
For adding a scalar to a tensor, users should prefer the Tensor::add_scalar function, which is more high-level and designed for public use.
fn sub(lhs: Self::Primitive, rhs: Self::Primitive) -> Self::Primitive
fn sub(lhs: Self::Primitive, rhs: Self::Primitive) -> Self::Primitive
Subtracts two tensors.
§Arguments
lhs
- The left hand side tensor.rhs
- The right hand side tensor.
§Returns
The difference of the two tensors.
§Remarks
This is a low-level function used internally by the library to call different backend functions with static dispatch. It is not designed for direct usage by users, and not recommended to import or use this function directly.
For subtracting tensors, users should prefer the Tensor::sub function, which is more high-level and designed for public use.
fn sub_scalar<E>(lhs: Self::Primitive, rhs: E) -> Self::Primitivewhere
E: ElementConversion,
fn sub_scalar<E>(lhs: Self::Primitive, rhs: E) -> Self::Primitivewhere
E: ElementConversion,
Subtracts a scalar from a tensor element-wise.
§Arguments
lhs
- The left hand side tensor.rhs
- The right hand side scalar.
§Returns
The difference of the tensor and the scalar.
§Remarks
This is a low-level function used internally by the library to call different backend functions with static dispatch. It is not designed for direct usage by users, and not recommended to import or use this function directly.
For subtracting a scalar from a tensor, users should prefer the Tensor::sub_scalar function, which is more high-level and designed for public use.
fn div(lhs: Self::Primitive, rhs: Self::Primitive) -> Self::Primitive
fn div(lhs: Self::Primitive, rhs: Self::Primitive) -> Self::Primitive
Divides two tensors.
§Arguments
lhs
- The left hand side tensor.rhs
- The right hand side tensor.
§Returns
The quotient of the two tensors.
§Remarks
This is a low-level function used internally by the library to call different backend functions with static dispatch. It is not designed for direct usage by users, and not recommended to import or use this function directly.
For dividing tensors, users should prefer the Tensor::div function, which is more high-level and designed for public use.
fn div_scalar<E>(lhs: Self::Primitive, rhs: E) -> Self::Primitivewhere
E: ElementConversion,
fn div_scalar<E>(lhs: Self::Primitive, rhs: E) -> Self::Primitivewhere
E: ElementConversion,
Divides a tensor by a scalar element-wise.
§Arguments
lhs
- The left hand side tensor.rhs
- The right hand side scalar.
§Returns
The quotient of the tensor and the scalar.
§Remarks
This is a low-level function used internally by the library to call different backend functions with static dispatch. It is not designed for direct usage by users, and not recommended to import or use this function directly.
For dividing a tensor by a scalar, users should prefer the Tensor::div_scalar function, which is more high-level and designed for public use.
fn remainder_scalar<E>(lhs: Self::Primitive, rhs: E) -> Self::Primitivewhere
E: ElementConversion,
fn remainder_scalar<E>(lhs: Self::Primitive, rhs: E) -> Self::Primitivewhere
E: ElementConversion,
Computes the modulus element-wise. The result has the same sign as the divisor rhs and its absolute value is less than that of the divisor.
§Arguments
lhs
- The dividend.rhs
- The divisor.
§Returns
The modulus of the input tensor with the divisor.
§Remarks
This is a low-level function used internally by the library to call different backend functions with static dispatch. It is not designed for direct usage by users, and not recommended to import or use this function directly.
For performing the modulus operation, users should prefer the Tensor::remainder_scalar function, which is more high-level and designed for public use.
fn mul(lhs: Self::Primitive, rhs: Self::Primitive) -> Self::Primitive
fn mul(lhs: Self::Primitive, rhs: Self::Primitive) -> Self::Primitive
Multiplies two tensors.
§Arguments
lhs
- The left hand side tensor.rhs
- The right hand side tensor.
§Returns
The product of the two tensors.
§Remarks
This is a low-level function used internally by the library to call different backend functions with static dispatch. It is not designed for direct usage by users, and not recommended to import or use this function directly.
For multiplying tensors, users should prefer the Tensor::mul function, which is more high-level and designed for public use.
fn mul_scalar<E>(lhs: Self::Primitive, rhs: E) -> Self::Primitivewhere
E: ElementConversion,
fn mul_scalar<E>(lhs: Self::Primitive, rhs: E) -> Self::Primitivewhere
E: ElementConversion,
Multiplies a tensor by a scalar element-wise.
§Arguments
lhs
- The left hand side tensor.rhs
- The right hand side scalar.
§Returns
The product of the tensor and the scalar.
§Remarks
This is a low-level function used internally by the library to call different backend functions with static dispatch. It is not designed for direct usage by users, and not recommended to import or use this function directly.
For multiplying a tensor by a scalar, users should prefer the Tensor::mul_scalar function, which is more high-level and designed for public use.
fn neg(tensor: Self::Primitive) -> Self::Primitive
fn neg(tensor: Self::Primitive) -> Self::Primitive
Negates a tensor.
§Arguments
tensor
- The tensor to negate.
§Returns
The negated tensor.
§Remarks
This is a low-level function used internally by the library to call different backend functions with static dispatch. It is not designed for direct usage by users, and not recommended to import or use this function directly.
For negating a tensor, users should prefer the Tensor::neg function, which is more high-level and designed for public use.
fn sign(tensor: Self::Primitive) -> Self::Primitive
fn sign(tensor: Self::Primitive) -> Self::Primitive
Returns the signs of the elements of a tensor.
§Arguments
tensor
- The tensor.
§Returns
The signs of the elements of the tensor.
§Remarks
This is a low-level function used internally by the library to call different backend functions with static dispatch. It is not designed for direct usage by users, and not recommended to import or use this function directly.
For getting the signs of the elements of a tensor, users should prefer the Tensor::sign function, which is more high-level and designed for public use.
fn zeros(shape: Shape, device: &<B as Backend>::Device) -> Self::Primitive
fn zeros(shape: Shape, device: &<B as Backend>::Device) -> Self::Primitive
Creates a tensor filled with zeros.
§Arguments
shape
- The shape of the tensor.device
- The device on which the tensor will be allocated.
§Returns
The tensor filled with zeros.
§Remarks
This is a low-level function used internally by the library to call different backend functions with static dispatch. It is not designed for direct usage by users, and not recommended to import or use this function directly.
For creating a tensor filled with zeros, users should prefer the Tensor::zeros function, which is more high-level and designed for public use.
fn ones(shape: Shape, device: &<B as Backend>::Device) -> Self::Primitive
fn ones(shape: Shape, device: &<B as Backend>::Device) -> Self::Primitive
Creates a tensor filled with ones.
§Arguments
shape
- The shape of the tensor.device
- The device on which the tensor will be allocated.
§Returns
The tensor filled with ones.
§Remarks
This is a low-level function used internally by the library to call different backend functions with static dispatch. It is not designed for direct usage by users, and not recommended to import or use this function directly.
For creating a tensor filled with ones, users should prefer the Tensor::ones function, which is more high-level and designed for public use.
fn full<E>(
shape: Shape,
fill_value: E,
device: &<B as Backend>::Device,
) -> Self::Primitivewhere
E: ElementConversion,
fn full<E>(
shape: Shape,
fill_value: E,
device: &<B as Backend>::Device,
) -> Self::Primitivewhere
E: ElementConversion,
Creates a tensor filled with elements equal to the given value.
§Arguments
shape
- The shape of the tensor.fill_value
- The value with which to fill the tensordevice
- The device on which the tensor will be allocated.
§Returns
The tensor filled with elements equal to the given value
§Remarks
This is a low-level function used internally by the library to call different backend functions with static dispatch. It is not designed for direct usage by users, and not recommended to import or use this function directly.
For creating a tensor filled with a specific value, users should prefer the Tensor::full function, which is more high-level and designed for public use.
fn sum(tensor: Self::Primitive) -> Self::Primitive
fn sum(tensor: Self::Primitive) -> Self::Primitive
Sums all the elements of the tensor.
§Arguments
tensor
- The tensor to sum.
§Returns
The sum of all the elements of the tensor.
§Remarks
This is a low-level function used internally by the library to call different backend functions with static dispatch. It is not designed for direct usage by users, and not recommended to import or use this function directly.
For summing all the elements of a tensor, users should prefer the Tensor::sum function, which is more high-level and designed for public use.
fn sum_dim(tensor: Self::Primitive, dim: usize) -> Self::Primitive
fn sum_dim(tensor: Self::Primitive, dim: usize) -> Self::Primitive
Sums all the elements of the tensor along a dimension.
§Arguments
tensor
- The tensor to sum.dim
- The dimension along which to sum.
§Returns
The sum of all the elements of the tensor along the specified dimension.
§Remarks
This is a low-level function used internally by the library to call different backend functions with static dispatch. It is not designed for direct usage by users, and not recommended to import or use this function directly.
For summing all the elements of a tensor along a dimension, users should prefer the Tensor::sum_dim function, which is more high-level and designed for public use.
fn prod(tensor: Self::Primitive) -> Self::Primitive
fn prod(tensor: Self::Primitive) -> Self::Primitive
Computes the product of all the elements of the tensor.
§Arguments
tensor
- The tensor to compute the product of.
§Returns
The product of all the elements of the tensor.
§Remarks
This is a low-level function used internally by the library to call different backend functions with static dispatch. It is not designed for direct usage by users, and not recommended to import or use this function directly.
For computing the product of all the elements of a tensor, users should prefer the Tensor::prod function, which is more high-level and designed for public use.
fn prod_dim(tensor: Self::Primitive, dim: usize) -> Self::Primitive
fn prod_dim(tensor: Self::Primitive, dim: usize) -> Self::Primitive
Computes the product of all the elements of the tensor along a dimension.
§Arguments
tensor
- The tensor to compute the product of.dim
- The dimension along which to compute the product.
§Returns
The product of all the elements of the tensor along the specified dimension.
§Remarks
This is a low-level function used internally by the library to call different backend functions with static dispatch. It is not designed for direct usage by users, and not recommended to import or use this function directly.
For computing the product of all the elements of a tensor along a dimension, users should prefer the Tensor::prod_dim function, which is more high-level and designed for public use.
fn mean(tensor: Self::Primitive) -> Self::Primitive
fn mean(tensor: Self::Primitive) -> Self::Primitive
Computes the mean of all the elements of the tensor.
§Arguments
tensor
- The tensor to compute the mean of.
§Returns
The mean of all the elements of the tensor.
§Remarks
This is a low-level function used internally by the library to call different backend functions with static dispatch. It is not designed for direct usage by users, and not recommended to import or use this function directly.
For computing the mean of all the elements of a tensor, users should prefer the Tensor::mean function, which is more high-level and designed for public use.
fn mean_dim(tensor: Self::Primitive, dim: usize) -> Self::Primitive
fn mean_dim(tensor: Self::Primitive, dim: usize) -> Self::Primitive
Computes the mean of all the elements of the tensor along a dimension.
§Arguments
tensor
- The tensor to compute the mean of.dim
- The dimension along which to compute the mean.
§Returns
The mean of all the elements of the tensor along the specified dimension.
§Remarks
This is a low-level function used internally by the library to call different backend functions with static dispatch. It is not designed for direct usage by users, and not recommended to import or use this function directly.
For computing the mean of all the elements of a tensor along a dimension, users should prefer the Tensor::mean_dim function, which is more high-level and designed for public use.
fn equal_elem(
lhs: Self::Primitive,
rhs: Self::Elem,
) -> <B as Backend>::BoolTensorPrimitive
fn equal_elem( lhs: Self::Primitive, rhs: Self::Elem, ) -> <B as Backend>::BoolTensorPrimitive
Element-wise equality between two tensors.
§Arguments
lhs
- The left hand side tensor.rhs
- The right hand side tensor.
§Returns
A boolean tensor with the same shape as the input tensors, where each element is true if the corresponding elements of the input tensors are equal, and false otherwise.
§Remarks
This is a low-level function used internally by the library to call different backend functions with static dispatch. It is not designed for direct usage by users, and not recommended to import or use this function directly.
For element-wise equality between two tensors, users should prefer the Tensor::equal_elem function, which is more high-level and designed for public use.
fn not_equal_elem(
lhs: Self::Primitive,
rhs: Self::Elem,
) -> <B as Backend>::BoolTensorPrimitive
fn not_equal_elem( lhs: Self::Primitive, rhs: Self::Elem, ) -> <B as Backend>::BoolTensorPrimitive
Element-wise non-equality between two tensors.
§Arguments
lhs
- The left hand side tensor.rhs
- The right hand side tensor.
§Returns
A boolean tensor with the same shape as the input tensors, where each element is true if the corresponding elements of the input tensors are equal, and false otherwise.
§Remarks
This is a low-level function used internally by the library to call different backend functions with static dispatch. It is not designed for direct usage by users, and not recommended to import or use this function directly.
For element-wise non-equality between two tensors, users should prefer the Tensor::not_equal_elem function, which is more high-level and designed for public use.
fn greater(
lhs: Self::Primitive,
rhs: Self::Primitive,
) -> <B as Backend>::BoolTensorPrimitive
fn greater( lhs: Self::Primitive, rhs: Self::Primitive, ) -> <B as Backend>::BoolTensorPrimitive
Element-wise greater than comparison between two tensors.
§Arguments
lhs
- The left hand side tensor.rhs
- The right hand side tensor.
§Returns
A boolean tensor with the same shape as the input tensors, where each element is true if the corresponding element of the left hand side tensor is greater than the corresponding element of the right hand side tensor, and false otherwise.
§Remarks
This is a low-level function used internally by the library to call different backend functions with static dispatch. It is not designed for direct usage by users, and not recommended to import or use this function directly.
For element-wise greater than comparison between two tensors, users should prefer the Tensor::greater function, which is more high-level and designed for public use.
fn greater_elem(
lhs: Self::Primitive,
rhs: Self::Elem,
) -> <B as Backend>::BoolTensorPrimitive
fn greater_elem( lhs: Self::Primitive, rhs: Self::Elem, ) -> <B as Backend>::BoolTensorPrimitive
Element-wise greater than comparison between a tensor and a scalar.
§Arguments
lhs
- The left hand side tensor.rhs
- The right hand side scalar.
§Returns
A boolean tensor with the same shape as the input tensor, where each element is true if the corresponding element of the left hand side tensor is greater than the right hand side scalar, and false otherwise.
§Remarks
This is a low-level function used internally by the library to call different backend functions with static dispatch. It is not designed for direct usage by users, and not recommended to import or use this function directly.
For element-wise greater than comparison between a tensor and a scalar, users should prefer the Tensor::greater_elem function, which is more high-level and designed for public use.
fn greater_equal(
lhs: Self::Primitive,
rhs: Self::Primitive,
) -> <B as Backend>::BoolTensorPrimitive
fn greater_equal( lhs: Self::Primitive, rhs: Self::Primitive, ) -> <B as Backend>::BoolTensorPrimitive
Element-wise greater than or equal comparison between two tensors.
§Arguments
lhs
- The left hand side tensor.rhs
- The right hand side tensor.
§Returns
A boolean tensor with the same shape as the input tensors, where each element is true if the corresponding element of the left hand side tensor is greater than or equal to the corresponding element of the right hand side tensor, and false otherwise.
§Remarks
This is a low-level function used internally by the library to call different backend functions with static dispatch. It is not designed for direct usage by users, and not recommended to import or use this function directly.
For element-wise greater than or equal comparison between two tensors, users should prefer the Tensor::greater_equal function, which is more high-level and designed for public use.
fn greater_equal_elem(
lhs: Self::Primitive,
rhs: Self::Elem,
) -> <B as Backend>::BoolTensorPrimitive
fn greater_equal_elem( lhs: Self::Primitive, rhs: Self::Elem, ) -> <B as Backend>::BoolTensorPrimitive
Element-wise greater than or equal comparison between a tensor and a scalar.
§Arguments
lhs
- The left hand side tensor.rhs
- The right hand side scalar.
§Returns
A boolean tensor with the same shape as the input tensor, where each element is true if the corresponding element of the left hand side tensor is greater than or equal to the right hand side scalar, and false otherwise.
§Remarks
This is a low-level function used internally by the library to call different backend functions with static dispatch. It is not designed for direct usage by users, and not recommended to import or use this function directly.
For element-wise greater than or equal comparison between a tensor and a scalar, users should prefer the Tensor::greater_equal_elem function, which is more high-level and designed for public use.
fn lower(
lhs: Self::Primitive,
rhs: Self::Primitive,
) -> <B as Backend>::BoolTensorPrimitive
fn lower( lhs: Self::Primitive, rhs: Self::Primitive, ) -> <B as Backend>::BoolTensorPrimitive
Element-wise less than comparison between two tensors.
§Arguments
lhs
- The left hand side tensor.rhs
- The right hand side tensor.
§Returns
A boolean tensor with the same shape as the input tensors, where each element is true if the corresponding element of the left hand side tensor is less than the corresponding element of the right hand side tensor, and false otherwise.
§Remarks
This is a low-level function used internally by the library to call different backend functions with static dispatch. It is not designed for direct usage by users, and not recommended to import or use this function directly.
For element-wise less than comparison between two tensors, users should prefer the Tensor::lower function, which is more high-level and designed for public use.
fn lower_elem(
lhs: Self::Primitive,
rhs: Self::Elem,
) -> <B as Backend>::BoolTensorPrimitive
fn lower_elem( lhs: Self::Primitive, rhs: Self::Elem, ) -> <B as Backend>::BoolTensorPrimitive
Element-wise less than comparison between a tensor and a scalar.
§Arguments
lhs
- The left hand side tensor.rhs
- The right hand side scalar.
§Returns
A boolean tensor with the same shape as the input tensor, where each element is true if the corresponding element of the left hand side tensor is less than the right hand side scalar, and false otherwise.
§Remarks
This is a low-level function used internally by the library to call different backend functions with static dispatch. It is not designed for direct usage by users, and not recommended to import or use this function directly.
For element-wise less than comparison between a tensor and a scalar, users should prefer the Tensor::lower_elem function, which is more high-level and designed for public use.
fn lower_equal(
lhs: Self::Primitive,
rhs: Self::Primitive,
) -> <B as Backend>::BoolTensorPrimitive
fn lower_equal( lhs: Self::Primitive, rhs: Self::Primitive, ) -> <B as Backend>::BoolTensorPrimitive
Element-wise less than or equal comparison between two tensors.
§Arguments
lhs
- The left hand side tensor.rhs
- The right hand side tensor.
§Returns
A boolean tensor with the same shape as the input tensors, where each element is true if the corresponding element of the left hand side tensor is less than or equal to the corresponding element of the right hand side tensor, and false otherwise.
§Remarks
This is a low-level function used internally by the library to call different backend functions with static dispatch. It is not designed for direct usage by users, and not recommended to import or use this function directly.
For element-wise less than or equal comparison between two tensors, users should prefer the Tensor::lower_equal function, which is more high-level and designed for public use.
fn lower_equal_elem(
lhs: Self::Primitive,
rhs: Self::Elem,
) -> <B as Backend>::BoolTensorPrimitive
fn lower_equal_elem( lhs: Self::Primitive, rhs: Self::Elem, ) -> <B as Backend>::BoolTensorPrimitive
Element-wise less than or equal comparison between a tensor and a scalar.
§Arguments
lhs
- The left hand side tensor.rhs
- The right hand side scalar.
§Returns
A boolean tensor with the same shape as the input tensor, where each element is true if the corresponding element of the left hand side tensor is less than or equal to the right hand side scalar, and false otherwise.
§Remarks
This is a low-level function used internally by the library to call different backend functions with static dispatch. It is not designed for direct usage by users, and not recommended to import or use this function directly.
For element-wise less than or equal comparison between a tensor and a scalar, users should prefer the Tensor::lower_equal_elem function, which is more high-level and designed for public use.
fn mask_where(
tensor: Self::Primitive,
mask: <B as Backend>::BoolTensorPrimitive,
source: Self::Primitive,
) -> Self::Primitive
fn mask_where( tensor: Self::Primitive, mask: <B as Backend>::BoolTensorPrimitive, source: Self::Primitive, ) -> Self::Primitive
Selects elements from a tensor based on a boolean mask.
§Arguments
tensor
- The tensor to select elements from if the corresponding element of the mask is true.mask
- The boolean mask to use for selecting elements.source
- The tensor to select elements from when the corresponding element of the mask is false.
§Returns
A tensor with the same shape as the input tensors, where each element is taken from the corresponding element of the left hand side tensor if the corresponding element of the mask is true, and from the corresponding element of the right hand side tensor otherwise.
§Remarks
This is a low-level function used internally by the library to call different backend functions with static dispatch. It is not designed for direct usage by users, and not recommended to import or use this function directly.
For selecting elements from a tensor based on a boolean mask, users should prefer the Tensor::mask_where function, which is more high-level and designed for public use.
fn mask_fill(
tensor: Self::Primitive,
mask: <B as Backend>::BoolTensorPrimitive,
value: Self::Elem,
) -> Self::Primitive
fn mask_fill( tensor: Self::Primitive, mask: <B as Backend>::BoolTensorPrimitive, value: Self::Elem, ) -> Self::Primitive
Fills elements of a tensor based on a boolean mask.
§Arguments
tensor
- The tensor where will be overwritten with the value when the corresponding element of the mask is true.mask
- The boolean mask to use for filling elements.value
- The value to fill elements with when the corresponding element of the mask is true.
§Returns
A tensor with the same shape as the input tensors, where each element is taken from the corresponding element unmodified if the corresponding element of the mask is false, and filled with the value otherwise.
§Remarks
This is a low-level function used internally by the library to call different backend functions with static dispatch. It is not designed for direct usage by users, and not recommended to import or use this function directly.
For filling elements of a tensor based on a boolean mask, users should prefer the Tensor::mask_fill function, which is more high-level and designed for public use.
fn gather(
dim: usize,
tensor: Self::Primitive,
indices: <B as Backend>::IntTensorPrimitive,
) -> Self::Primitive
fn gather( dim: usize, tensor: Self::Primitive, indices: <B as Backend>::IntTensorPrimitive, ) -> Self::Primitive
Gathers elements from a tensor along an axis.
§Arguments
dim
- The axis along which to gather elements.tensor
- The tensor to gather elements from.indices
- The indices of the elements to gather.
§Returns
A tensor with the same shape as the input tensor, where each element is taken from the corresponding element of the input tensor at the corresponding index along the specified axis.
§Remarks
This is a low-level function used internally by the library to call different backend functions with static dispatch. It is not designed for direct usage by users, and not recommended to import or use this function directly.
For gathering elements from a tensor along an axis, users should prefer the Tensor::gather function, which is more high-level and designed for public use.
fn scatter(
dim: usize,
tensor: Self::Primitive,
indices: <B as Backend>::IntTensorPrimitive,
values: Self::Primitive,
) -> Self::Primitive
fn scatter( dim: usize, tensor: Self::Primitive, indices: <B as Backend>::IntTensorPrimitive, values: Self::Primitive, ) -> Self::Primitive
Scatters elements into a tensor along an axis.
§Arguments
dim
- The axis along which to scatter elements.tensor
- The tensor to scatter elements into.indices
- The indices of the elements to scatter.values
- The values to scatter into the tensor.
§Returns
A tensor with the same shape as the input tensor, where each element is taken from the corresponding element of the input tensor at the corresponding index along the specified axis, except for the elements at the specified indices, which are taken from the corresponding element of the values tensor.
§Remarks
This is a low-level function used internally by the library to call different backend functions with static dispatch. It is not designed for direct usage by users, and not recommended to import or use this function directly.
For scattering elements into a tensor along an axis, users should prefer the Tensor::scatter function, which is more high-level and designed for public use.
fn select(
tensor: Self::Primitive,
dim: usize,
indices: Tensor<B, 1, Int>,
) -> Self::Primitive
fn select( tensor: Self::Primitive, dim: usize, indices: Tensor<B, 1, Int>, ) -> Self::Primitive
Select tensor elements along the given dimension corresponding for the given indices.
§Arguments
tensor
- The tensor to select elements from.dim
- The axis along which to select elements.indices
- The indices of the elements to select.
§Returns
A tensor with the same shape as the input tensor, where each element is taken from the corresponding element of the input tensor at the corresponding index along the specified axis.
§Remarks
This is a low-level function used internally by the library to call different backend functions with static dispatch. It is not designed for direct usage by users, and not recommended to import or use this function directly.
For selecting elements from a tensor along an axis, users should prefer the Tensor::select function, which is more high-level and designed for public use.
fn select_assign(
tensor: Self::Primitive,
dim: usize,
indices: Tensor<B, 1, Int>,
values: Self::Primitive,
) -> Self::Primitive
fn select_assign( tensor: Self::Primitive, dim: usize, indices: Tensor<B, 1, Int>, values: Self::Primitive, ) -> Self::Primitive
Assign the selected elements along the given dimension corresponding to the given indices from the value tensor.
§Arguments
tensor
- The tensor to assign elements to.dim
- The axis along which to assign elements.indices
- The indices of the elements to assign.values
- The values to assign to the tensor.
§Returns
A tensor with the same shape as the input tensor, where each element is taken from the corresponding element of the input tensor at the corresponding index along the specified axis, except for the elements at the specified indices, which are taken from the corresponding element of the values tensor.
§Remarks
This is a low-level function used internally by the library to call different backend functions with static dispatch. It is not designed for direct usage by users, and not recommended to import or use this function directly.
For assigning elements to a tensor along an axis, users should prefer the Tensor::select_assign function, which is more high-level and designed for public use.
fn argmax(
tensor: Self::Primitive,
dim: usize,
) -> <B as Backend>::IntTensorPrimitive
fn argmax( tensor: Self::Primitive, dim: usize, ) -> <B as Backend>::IntTensorPrimitive
Gets the indices of the maximum elements of a tensor along an axis.
§Arguments
dim
- The axis along which to get the indices of the maximum elements.tensor
- The tensor to get the indices of the maximum elements from.
§Returns
A tensor with the same shape as the input tensor, where each element is the index of the maximum element of the input tensor at the corresponding index along the specified axis.
§Remarks
This is a low-level function used internally by the library to call different backend functions with static dispatch. It is not designed for direct usage by users, and not recommended to import or use this function directly.
For getting the indices of the maximum elements of a tensor along an axis, users should prefer the Tensor::argmax function, which is more high-level and designed for public use.
fn argmin(
tensor: Self::Primitive,
dim: usize,
) -> <B as Backend>::IntTensorPrimitive
fn argmin( tensor: Self::Primitive, dim: usize, ) -> <B as Backend>::IntTensorPrimitive
Gets the indices of the minimum elements of a tensor along an axis.
§Arguments
dim
- The axis along which to get the indices of the minimum elements.tensor
- The tensor to get the indices of the minimum elements from.
§Returns
A tensor with the same shape as the input tensor, where each element is the index of the minimum element of the input tensor at the corresponding index along the specified axis.
§Remarks
This is a low-level function used internally by the library to call different backend functions with static dispatch. It is not designed for direct usage by users, and not recommended to import or use this function directly.
For getting the indices of the minimum elements of a tensor along an axis, users should prefer the Tensor::argmin function, which is more high-level and designed for public use.
fn max(tensor: Self::Primitive) -> Self::Primitive
fn max(tensor: Self::Primitive) -> Self::Primitive
Gets the maximum elements of a tensor along an axis.
§Arguments
dim
- The axis along which to get the maximum elements.
§Returns
A single-element tensor containing the maximum element of the input tensor.
§Remarks
This is a low-level function used internally by the library to call different backend functions with static dispatch. It is not designed for direct usage by users, and not recommended to import or use this function directly.
For getting the maximum elements of a tensor along an axis, users should prefer the Tensor::max function, which is more high-level and designed for public use.
fn max_dim(tensor: Self::Primitive, dim: usize) -> Self::Primitive
fn max_dim(tensor: Self::Primitive, dim: usize) -> Self::Primitive
Gets the maximum elements of a tensor along an axis.
§Arguments
tensor
- The tensor to get the maximum elements from.dim
- The axis along which to get the maximum elements.
§Returns
A tensor with the same shape as the input tensor, where each element is the maximum element
§Remarks
This is a low-level function used internally by the library to call different backend functions with static dispatch. It is not designed for direct usage by users, and not recommended to import or use this function directly.
For getting the maximum elements of a tensor along an axis, users should prefer the Tensor::max_dim function, which is more high-level and designed for public use.
fn max_dim_with_indices(
tensor: Self::Primitive,
dim: usize,
) -> (Self::Primitive, <B as Backend>::IntTensorPrimitive)
fn max_dim_with_indices( tensor: Self::Primitive, dim: usize, ) -> (Self::Primitive, <B as Backend>::IntTensorPrimitive)
Gets the maximum elements of a tensor along an axis.
§Arguments
tensor
- The tensor to get the maximum elements from.dim
- The axis along which to get the maximum elements.
§Returns
A tuple containing the maximum element of the input tensor, and a tensor with the same shape as the input tensor, where each element is the index of the maximum element of the input tensor at the corresponding index along the specified axis.
§Remarks
This is a low-level function used internally by the library to call different backend functions with static dispatch. It is not designed for direct usage by users, and not recommended to import or use this function directly.
For getting the maximum elements of a tensor along an axis, users should prefer the Tensor::max_dim_with_indices function, which is more high-level and designed for public use.
fn min(tensor: Self::Primitive) -> Self::Primitive
fn min(tensor: Self::Primitive) -> Self::Primitive
Gets the minimum elements of a tensor along an axis.
§Arguments
tensor
- The tensor to get the minimum elements from.
§Returns
A single-element tensor containing the minimum element of the input tensor.
§Remarks
This is a low-level function used internally by the library to call different backend functions with static dispatch. It is not designed for direct usage by users, and not recommended to import or use this function directly.
For getting the minimum elements of a tensor along an axis, users should prefer the Tensor::min function, which is more high-level and designed for public use.
fn min_dim(tensor: Self::Primitive, dim: usize) -> Self::Primitive
fn min_dim(tensor: Self::Primitive, dim: usize) -> Self::Primitive
Gets the minimum elements of a tensor along an axis.
§Arguments
tensor
- The tensor to get the minimum elements from.dim
- The axis along which to get the minimum elements.
§Returns
A tensor with the same shape as the input tensor, where each element is the minimum element of the input tensor at the corresponding index along the specified axis.
§Remarks
This is a low-level function used internally by the library to call different backend functions with static dispatch. It is not designed for direct usage by users, and not recommended to import or use this function directly.
For getting the minimum elements of a tensor along an axis, users should prefer the Tensor::min_dim function, which is more high-level and designed for public use.
fn min_dim_with_indices(
tensor: Self::Primitive,
dim: usize,
) -> (Self::Primitive, <B as Backend>::IntTensorPrimitive)
fn min_dim_with_indices( tensor: Self::Primitive, dim: usize, ) -> (Self::Primitive, <B as Backend>::IntTensorPrimitive)
Gets the minimum elements and indices of a tensor along an axis.
§Arguments
tensor
- The tensor to get the minimum elements from.
§Returns
A tensor with the same shape as the input tensor and corresponding indices, where each element is the minimum element of the input tensor at the corresponding index along the specified axis.
§Remarks
This is a low-level function used internally by the library to call different backend functions with static dispatch. It is not designed for direct usage by users, and not recommended to import or use this function directly.
For getting the minimum elements of a tensor along an axis, users should prefer the Tensor::min_dim_with_indices function, which is more high-level and designed for public use.
fn clamp(
tensor: Self::Primitive,
min: Self::Elem,
max: Self::Elem,
) -> Self::Primitive
fn clamp( tensor: Self::Primitive, min: Self::Elem, max: Self::Elem, ) -> Self::Primitive
Clamp the tensor between the given min and max values.
§Arguments
min
- The minimum value.max
- The maximum value.
§Returns
A new tensor with the values clamped between the given min and max values.
§Remarks
This is a low-level function used internally by the library to call different backend functions with static dispatch. It is not designed for direct usage by users.
For clamping a tensor between the given min and max values, users should prefer the Tensor::clamp function, which is more high-level and designed for public use.
fn clamp_min(tensor: Self::Primitive, min: Self::Elem) -> Self::Primitive
fn clamp_min(tensor: Self::Primitive, min: Self::Elem) -> Self::Primitive
Clamps a tensor under a minimum value.
§Arguments
tensor
- The tensor to clamp.min
- The minimum value.
§Returns
A new tensor with the values clamped under the given min value.
§Remarks
This is a low-level function used internally by the library to call different backend functions with static dispatch. It is not designed for direct usage by users.
For clamping a tensor under a minimum value, users should prefer the Tensor::clamp_min function, which is more high-level and designed for public use.
fn clamp_max(tensor: Self::Primitive, max: Self::Elem) -> Self::Primitive
fn clamp_max(tensor: Self::Primitive, max: Self::Elem) -> Self::Primitive
Clamps a tensor over a maximum value.
§Arguments
tensor
- The tensor to clamp.max
- The maximum value.
§Returns
A new tensor with the values clamped over the given max value.
§Remarks
This is a low-level function used internally by the library to call different backend functions with static dispatch. It is not designed for direct usage by users.
For clamping a tensor over a maximum value, users should prefer the Tensor::clamp_max function, which is more high-level and designed for public use.
fn abs(tensor: Self::Primitive) -> Self::Primitive
fn abs(tensor: Self::Primitive) -> Self::Primitive
Calculate absolute value on all elements of a tensor
§Arguments
tensor
- The tensor to apply abs to.
§Returns
A tensor with absolute values.
§Remarks
This is a low-level function used internally by the library to call different backend functions with static dispatch. It is not designed for direct usage by users, and not recommended to import or use this function directly.
For calculating abs of the elements of a tensor, users should prefer the Tensor::abs function, which is more high-level and designed for public use.
fn powf(lhs: Self::Primitive, rhs: Self::Primitive) -> Self::Primitive
fn powf(lhs: Self::Primitive, rhs: Self::Primitive) -> Self::Primitive
Element-wise power of a tensor to a float tensor
§Arguments
tensor
- The tensor to apply power to.power
- The power to apply to the tensor.
fn powi(lhs: Self::Primitive, rhs: Self::Primitive) -> Self::Primitive
fn powi(lhs: Self::Primitive, rhs: Self::Primitive) -> Self::Primitive
Element-wise power of a tensor
§Arguments
tensor
- The tensor to apply power to.power
- The power to apply to the tensor.
fn powf_scalar<E>(lhs: Self::Primitive, rhs: E) -> Self::Primitivewhere
E: ElementConversion,
fn powf_scalar<E>(lhs: Self::Primitive, rhs: E) -> Self::Primitivewhere
E: ElementConversion,
Element-wise power of a tensor to a scalar float
§Arguments
tensor
- The tensor to apply power to.power
- The power to apply to the tensor.
fn powi_scalar<E>(lhs: Self::Primitive, rhs: E) -> Self::Primitivewhere
E: ElementConversion,
fn powi_scalar<E>(lhs: Self::Primitive, rhs: E) -> Self::Primitivewhere
E: ElementConversion,
Element-wise power of a tensor to a scalar int
§Arguments
tensor
- The tensor to apply power to.power
- The power to apply to the tensor.
fn random(
shape: Shape,
distribution: Distribution,
device: &<B as Backend>::Device,
) -> Self::Primitive
fn random( shape: Shape, distribution: Distribution, device: &<B as Backend>::Device, ) -> Self::Primitive
Create a random tensor.
§Arguments
shape
- The shape of the output tensor.distribution
- The distribution used to sample.device
- The device to use.
§Returns
A new tensor.
§Remarks
This is a low-level function used internally by the library to call different backend functions with static dispatch. It is not designed for direct usage by users, and not recommended to import or use this function directly.
Users should prefer the Tensor::random function, which is more high-level and designed for public use.
fn sort(
tensor: Self::Primitive,
dim: usize,
descending: bool,
) -> Self::Primitive
fn sort( tensor: Self::Primitive, dim: usize, descending: bool, ) -> Self::Primitive
Sort the elements of the input tensor
by value along a given dimension.
This sort is unstable (i.e., may reorder equal elements).
§Arguments
tensor
- The input tensor.dim
- The axis along which to sort.descending
- The sorting order.
§Returns
A tensor with the same shape as the input tensor, where the elements are sorted by value.
§Remarks
This is a low-level function used internally by the library to call different backend functions with static dispatch. It is not designed for direct usage by users, and not recommended to import or use this function directly.
Users should prefer the Tensor::sort function, which is more high-level and designed for public use.
fn sort_with_indices(
tensor: Self::Primitive,
dim: usize,
descending: bool,
) -> (Self::Primitive, <Int as TensorKind<B>>::Primitive)
fn sort_with_indices( tensor: Self::Primitive, dim: usize, descending: bool, ) -> (Self::Primitive, <Int as TensorKind<B>>::Primitive)
Sort the elements of the input tensor
by value along a given dimension.
This sort is unstable (i.e., may reorder equal elements).
§Arguments
tensor
- The input tensor.dim
- The axis along which to sort.descending
- The sorting order.
§Returns
A tensor with the same shape as the input tensor and corresponding indices, where the elements are sorted by value and the indices map back to the original input tensor.
§Remarks
This is a low-level function used internally by the library to call different backend functions with static dispatch. It is not designed for direct usage by users, and not recommended to import or use this function directly.
For sorting the elements of a tensor, users should prefer the Tensor::sort_with_indices function, which is more high-level and designed for public use.
fn argsort(
tensor: Self::Primitive,
dim: usize,
descending: bool,
) -> <Int as TensorKind<B>>::Primitive
fn argsort( tensor: Self::Primitive, dim: usize, descending: bool, ) -> <Int as TensorKind<B>>::Primitive
Returns the indices that sort the elements of the input tensor
by value along a given dimension.
This sort is unstable (i.e., may reorder equal elements).
§Arguments
tensor
- The input tensor.dim
- The axis along which to sort.descending
- The sorting order.
§Returns
A tensor with the same shape as the input tensor the indices map back to the original input tensor.
§Remarks
This is a low-level function used internally by the library to call different backend functions with static dispatch. It is not designed for direct usage by users, and not recommended to import or use this function directly.
Users should prefer the Tensor::argsort function, which is more high-level and designed for public use.