pub trait TensorElementwise: TensorStructural {
Show 41 methods
// Required methods
fn add(&mut self, lhs: &Tensor, rhs: &Tensor) -> Result<Tensor>;
fn sub(&mut self, lhs: &Tensor, rhs: &Tensor) -> Result<Tensor>;
fn mul(&mut self, lhs: &Tensor, rhs: &Tensor) -> Result<Tensor>;
fn neg(&mut self, input: &Tensor) -> Result<Tensor>;
fn conj(&mut self, input: &Tensor) -> Result<Tensor>;
fn div(&mut self, lhs: &Tensor, rhs: &Tensor) -> Result<Tensor>;
fn abs(&mut self, input: &Tensor) -> Result<Tensor>;
fn sign(&mut self, input: &Tensor) -> Result<Tensor>;
fn maximum(&mut self, lhs: &Tensor, rhs: &Tensor) -> Result<Tensor>;
fn minimum(&mut self, lhs: &Tensor, rhs: &Tensor) -> Result<Tensor>;
fn compare(
&mut self,
lhs: &Tensor,
rhs: &Tensor,
dir: &CompareDir,
) -> Result<Tensor>;
fn select(
&mut self,
pred: &Tensor,
on_true: &Tensor,
on_false: &Tensor,
) -> Result<Tensor>;
fn clamp(
&mut self,
input: &Tensor,
lower: &Tensor,
upper: &Tensor,
) -> Result<Tensor>;
// Provided methods
fn elementwise_read_into(
&mut self,
op: ElementwiseReadOp,
inputs: &[TensorRead<'_>],
out: TensorWrite<'_>,
) -> Result<()> { ... }
fn add_read(
&mut self,
lhs: TensorRead<'_>,
rhs: TensorRead<'_>,
) -> Result<Tensor> { ... }
fn add_into(
&mut self,
lhs: &Tensor,
rhs: &Tensor,
out: TensorWrite<'_>,
) -> Result<()> { ... }
fn add_read_into(
&mut self,
lhs: TensorRead<'_>,
rhs: TensorRead<'_>,
out: TensorWrite<'_>,
) -> Result<()> { ... }
fn sub_read(
&mut self,
lhs: TensorRead<'_>,
rhs: TensorRead<'_>,
) -> Result<Tensor> { ... }
fn sub_into(
&mut self,
lhs: &Tensor,
rhs: &Tensor,
out: TensorWrite<'_>,
) -> Result<()> { ... }
fn sub_read_into(
&mut self,
lhs: TensorRead<'_>,
rhs: TensorRead<'_>,
out: TensorWrite<'_>,
) -> Result<()> { ... }
fn mul_read(
&mut self,
lhs: TensorRead<'_>,
rhs: TensorRead<'_>,
) -> Result<Tensor> { ... }
fn mul_into(
&mut self,
lhs: &Tensor,
rhs: &Tensor,
out: TensorWrite<'_>,
) -> Result<()> { ... }
fn mul_read_into(
&mut self,
lhs: TensorRead<'_>,
rhs: TensorRead<'_>,
out: TensorWrite<'_>,
) -> Result<()> { ... }
fn neg_read(&mut self, input: TensorRead<'_>) -> Result<Tensor> { ... }
fn neg_into(&mut self, input: &Tensor, out: TensorWrite<'_>) -> Result<()> { ... }
fn neg_read_into(
&mut self,
input: TensorRead<'_>,
out: TensorWrite<'_>,
) -> Result<()> { ... }
fn conj_read(&mut self, input: TensorRead<'_>) -> Result<Tensor> { ... }
fn conj_into(&mut self, input: &Tensor, out: TensorWrite<'_>) -> Result<()> { ... }
fn conj_read_into(
&mut self,
input: TensorRead<'_>,
out: TensorWrite<'_>,
) -> Result<()> { ... }
fn div_read(
&mut self,
lhs: TensorRead<'_>,
rhs: TensorRead<'_>,
) -> Result<Tensor> { ... }
fn div_into(
&mut self,
lhs: &Tensor,
rhs: &Tensor,
out: TensorWrite<'_>,
) -> Result<()> { ... }
fn div_read_into(
&mut self,
lhs: TensorRead<'_>,
rhs: TensorRead<'_>,
out: TensorWrite<'_>,
) -> Result<()> { ... }
fn rem(&mut self, lhs: &Tensor, _rhs: &Tensor) -> Result<Tensor> { ... }
fn rem_read(
&mut self,
lhs: TensorRead<'_>,
rhs: TensorRead<'_>,
) -> Result<Tensor> { ... }
fn abs_read(&mut self, input: TensorRead<'_>) -> Result<Tensor> { ... }
fn sign_read(&mut self, input: TensorRead<'_>) -> Result<Tensor> { ... }
fn maximum_read(
&mut self,
lhs: TensorRead<'_>,
rhs: TensorRead<'_>,
) -> Result<Tensor> { ... }
fn minimum_read(
&mut self,
lhs: TensorRead<'_>,
rhs: TensorRead<'_>,
) -> Result<Tensor> { ... }
fn compare_read(
&mut self,
lhs: TensorRead<'_>,
rhs: TensorRead<'_>,
dir: &CompareDir,
) -> Result<Tensor> { ... }
fn select_read(
&mut self,
pred: TensorRead<'_>,
on_true: TensorRead<'_>,
on_false: TensorRead<'_>,
) -> Result<Tensor> { ... }
fn clamp_read(
&mut self,
input: TensorRead<'_>,
lower: TensorRead<'_>,
upper: TensorRead<'_>,
) -> Result<Tensor> { ... }
}Expand description
Elementwise tensor operations.
§Examples
use tenferro_tensor::TensorElementwise;
fn accepts_elementwise<B: TensorElementwise>(_backend: &mut B) {}Required Methods§
Sourcefn add(&mut self, lhs: &Tensor, rhs: &Tensor) -> Result<Tensor>
fn add(&mut self, lhs: &Tensor, rhs: &Tensor) -> Result<Tensor>
§Errors
Returns crate::Error::Validation with a typed ValidationError source
for invalid shapes, ranks, axes, dtypes, or output metadata. It returns
crate::Error::BackendFailure or crate::Error::BackendSource when
backend execution or storage access cannot provide the requested result.
Sourcefn sub(&mut self, lhs: &Tensor, rhs: &Tensor) -> Result<Tensor>
fn sub(&mut self, lhs: &Tensor, rhs: &Tensor) -> Result<Tensor>
§Errors
Returns crate::Error::Validation with a typed ValidationError source
for invalid shapes, ranks, axes, dtypes, or output metadata. It returns
crate::Error::BackendFailure or crate::Error::BackendSource when
backend execution or storage access cannot provide the requested result.
Sourcefn mul(&mut self, lhs: &Tensor, rhs: &Tensor) -> Result<Tensor>
fn mul(&mut self, lhs: &Tensor, rhs: &Tensor) -> Result<Tensor>
§Errors
Returns crate::Error::Validation with a typed ValidationError source
for invalid shapes, ranks, axes, dtypes, or output metadata. It returns
crate::Error::BackendFailure or crate::Error::BackendSource when
backend execution or storage access cannot provide the requested result.
Sourcefn neg(&mut self, input: &Tensor) -> Result<Tensor>
fn neg(&mut self, input: &Tensor) -> Result<Tensor>
§Errors
Returns crate::Error::Validation with a typed ValidationError source
for invalid shapes, ranks, axes, dtypes, or output metadata. It returns
crate::Error::BackendFailure or crate::Error::BackendSource when
backend execution or storage access cannot provide the requested result.
Sourcefn conj(&mut self, input: &Tensor) -> Result<Tensor>
fn conj(&mut self, input: &Tensor) -> Result<Tensor>
§Errors
Returns crate::Error::Validation with a typed ValidationError source
for invalid shapes, ranks, axes, dtypes, or output metadata. It returns
crate::Error::BackendFailure or crate::Error::BackendSource when
backend execution or storage access cannot provide the requested result.
Sourcefn div(&mut self, lhs: &Tensor, rhs: &Tensor) -> Result<Tensor>
fn div(&mut self, lhs: &Tensor, rhs: &Tensor) -> Result<Tensor>
§Errors
Returns crate::Error::Validation with a typed ValidationError source
for invalid shapes, ranks, axes, dtypes, or output metadata. It returns
crate::Error::BackendFailure or crate::Error::BackendSource when
backend execution or storage access cannot provide the requested result.
Sourcefn abs(&mut self, input: &Tensor) -> Result<Tensor>
fn abs(&mut self, input: &Tensor) -> Result<Tensor>
§Errors
Returns crate::Error::Validation with a typed ValidationError source
for invalid shapes, ranks, axes, dtypes, or output metadata. It returns
crate::Error::BackendFailure or crate::Error::BackendSource when
backend execution or storage access cannot provide the requested result.
Sourcefn sign(&mut self, input: &Tensor) -> Result<Tensor>
fn sign(&mut self, input: &Tensor) -> Result<Tensor>
§Errors
Returns crate::Error::Validation with a typed ValidationError source
for invalid shapes, ranks, axes, dtypes, or output metadata. It returns
crate::Error::BackendFailure or crate::Error::BackendSource when
backend execution or storage access cannot provide the requested result.
Sourcefn maximum(&mut self, lhs: &Tensor, rhs: &Tensor) -> Result<Tensor>
fn maximum(&mut self, lhs: &Tensor, rhs: &Tensor) -> Result<Tensor>
§Errors
Returns crate::Error::Validation with a typed ValidationError source
for invalid shapes, ranks, axes, dtypes, or output metadata. It returns
crate::Error::BackendFailure or crate::Error::BackendSource when
backend execution or storage access cannot provide the requested result.
Sourcefn minimum(&mut self, lhs: &Tensor, rhs: &Tensor) -> Result<Tensor>
fn minimum(&mut self, lhs: &Tensor, rhs: &Tensor) -> Result<Tensor>
§Errors
Returns crate::Error::Validation with a typed ValidationError source
for invalid shapes, ranks, axes, dtypes, or output metadata. It returns
crate::Error::BackendFailure or crate::Error::BackendSource when
backend execution or storage access cannot provide the requested result.
Sourcefn compare(
&mut self,
lhs: &Tensor,
rhs: &Tensor,
dir: &CompareDir,
) -> Result<Tensor>
fn compare( &mut self, lhs: &Tensor, rhs: &Tensor, dir: &CompareDir, ) -> Result<Tensor>
§Errors
Returns crate::Error::Validation with a typed ValidationError source
for invalid shapes, ranks, axes, dtypes, or output metadata. It returns
crate::Error::BackendFailure or crate::Error::BackendSource when
backend execution or storage access cannot provide the requested result.
Sourcefn select(
&mut self,
pred: &Tensor,
on_true: &Tensor,
on_false: &Tensor,
) -> Result<Tensor>
fn select( &mut self, pred: &Tensor, on_true: &Tensor, on_false: &Tensor, ) -> Result<Tensor>
§Errors
Returns crate::Error::Validation with a typed ValidationError source
for invalid shapes, ranks, axes, dtypes, or output metadata. It returns
crate::Error::BackendFailure or crate::Error::BackendSource when
backend execution or storage access cannot provide the requested result.
Sourcefn clamp(
&mut self,
input: &Tensor,
lower: &Tensor,
upper: &Tensor,
) -> Result<Tensor>
fn clamp( &mut self, input: &Tensor, lower: &Tensor, upper: &Tensor, ) -> Result<Tensor>
§Errors
Returns crate::Error::Validation with a typed ValidationError source
for invalid shapes, ranks, axes, dtypes, or output metadata. It returns
crate::Error::BackendFailure or crate::Error::BackendSource when
backend execution or storage access cannot provide the requested result.
Provided Methods§
Sourcefn elementwise_read_into(
&mut self,
op: ElementwiseReadOp,
inputs: &[TensorRead<'_>],
out: TensorWrite<'_>,
) -> Result<()>
fn elementwise_read_into( &mut self, op: ElementwiseReadOp, inputs: &[TensorRead<'_>], out: TensorWrite<'_>, ) -> Result<()>
Execute an elementwise operation into caller-owned storage.
Backend implementations normally override this hook only to inject their explicit execution context and buffer policy. The default uses a serial host one-shot kernel and preserves the allocating fallback for device storage, dtype promotion, and broadcasting.
§Errors
Returns crate::Error::Validation when inputs has the wrong arity,
tensor metadata is invalid, or the destination overlaps an input.
Returns crate::Error::BackendSource when the strided kernel rejects
an eligible host operation. Errors from the allocating backend fallback
are preserved unchanged.
Sourcefn add_read(
&mut self,
lhs: TensorRead<'_>,
rhs: TensorRead<'_>,
) -> Result<Tensor>
fn add_read( &mut self, lhs: TensorRead<'_>, rhs: TensorRead<'_>, ) -> Result<Tensor>
Elementwise addition accepting either owned tensors or borrowed views.
Backends that implement this method must not silently move data across devices. A backend that cannot consume views should return an explicit backend error rather than materializing or transferring implicitly.
§Examples
use tenferro_tensor::{Tensor, TensorElementwise, TensorRead};
fn add_owned<B: TensorElementwise>(
backend: &mut B,
lhs: &Tensor,
rhs: &Tensor,
) -> tenferro_tensor::Result<Tensor> {
backend.add_read(TensorRead::from_tensor(lhs), TensorRead::from_tensor(rhs))
}§Errors
Returns crate::Error::Validation with a typed ValidationError source
for invalid shapes, ranks, axes, dtypes, or output metadata. It returns
crate::Error::BackendFailure or crate::Error::BackendSource when
backend execution or storage access cannot provide the requested result.
Sourcefn add_into(
&mut self,
lhs: &Tensor,
rhs: &Tensor,
out: TensorWrite<'_>,
) -> Result<()>
fn add_into( &mut self, lhs: &Tensor, rhs: &Tensor, out: TensorWrite<'_>, ) -> Result<()>
Overwrite caller-provided output with elementwise addition.
_into methods never accumulate into the previous output value.
§Examples
use tenferro_tensor::{Tensor, TensorElementwise, TensorWrite};
fn add_into<B: TensorElementwise>(
backend: &mut B,
lhs: &Tensor,
rhs: &Tensor,
mut out: Tensor,
) -> tenferro_tensor::Result<Tensor> {
backend.add_into(lhs, rhs, TensorWrite::from_tensor(&mut out))?;
Ok(out)
}§Errors
Returns crate::Error::Validation with a typed ValidationError source
for invalid shapes, ranks, axes, dtypes, or output metadata. It returns
crate::Error::BackendFailure or crate::Error::BackendSource when
backend execution or storage access cannot provide the requested result.
Sourcefn add_read_into(
&mut self,
lhs: TensorRead<'_>,
rhs: TensorRead<'_>,
out: TensorWrite<'_>,
) -> Result<()>
fn add_read_into( &mut self, lhs: TensorRead<'_>, rhs: TensorRead<'_>, out: TensorWrite<'_>, ) -> Result<()>
Overwrite caller-provided output with elementwise addition from reads.
§Examples
use tenferro_tensor::{TensorElementwise, TensorRead, TensorWrite};
fn add_read_into<B: TensorElementwise>(
backend: &mut B,
lhs: TensorRead<'_>,
rhs: TensorRead<'_>,
out: TensorWrite<'_>,
) -> tenferro_tensor::Result<()> {
backend.add_read_into(lhs, rhs, out)
}§Errors
Returns crate::Error::Validation with a typed ValidationError source
for invalid shapes, ranks, axes, dtypes, or output metadata. It returns
crate::Error::BackendFailure or crate::Error::BackendSource when
backend execution or storage access cannot provide the requested result.
Sourcefn sub_read(
&mut self,
lhs: TensorRead<'_>,
rhs: TensorRead<'_>,
) -> Result<Tensor>
fn sub_read( &mut self, lhs: TensorRead<'_>, rhs: TensorRead<'_>, ) -> Result<Tensor>
Elementwise subtraction accepting either owned tensors or borrowed views.
§Examples
use tenferro_tensor::{Tensor, TensorElementwise, TensorRead};
fn sub_owned<B: TensorElementwise>(
backend: &mut B,
lhs: &Tensor,
rhs: &Tensor,
) -> tenferro_tensor::Result<Tensor> {
backend.sub_read(TensorRead::from_tensor(lhs), TensorRead::from_tensor(rhs))
}§Errors
Returns crate::Error::Validation with a typed ValidationError source
for invalid shapes, ranks, axes, dtypes, or output metadata. It returns
crate::Error::BackendFailure or crate::Error::BackendSource when
backend execution or storage access cannot provide the requested result.
Sourcefn sub_into(
&mut self,
lhs: &Tensor,
rhs: &Tensor,
out: TensorWrite<'_>,
) -> Result<()>
fn sub_into( &mut self, lhs: &Tensor, rhs: &Tensor, out: TensorWrite<'_>, ) -> Result<()>
Overwrite caller-provided output with elementwise subtraction.
§Errors
Returns crate::Error::Validation with a typed ValidationError source
for invalid shapes, ranks, axes, dtypes, or output metadata. It returns
crate::Error::BackendFailure or crate::Error::BackendSource when
backend execution or storage access cannot provide the requested result.
Sourcefn sub_read_into(
&mut self,
lhs: TensorRead<'_>,
rhs: TensorRead<'_>,
out: TensorWrite<'_>,
) -> Result<()>
fn sub_read_into( &mut self, lhs: TensorRead<'_>, rhs: TensorRead<'_>, out: TensorWrite<'_>, ) -> Result<()>
Overwrite caller-provided output with elementwise subtraction from reads.
§Errors
Returns crate::Error::Validation with a typed ValidationError source
for invalid shapes, ranks, axes, dtypes, or output metadata. It returns
crate::Error::BackendFailure or crate::Error::BackendSource when
backend execution or storage access cannot provide the requested result.
Sourcefn mul_read(
&mut self,
lhs: TensorRead<'_>,
rhs: TensorRead<'_>,
) -> Result<Tensor>
fn mul_read( &mut self, lhs: TensorRead<'_>, rhs: TensorRead<'_>, ) -> Result<Tensor>
§Errors
Returns crate::Error::Validation with a typed ValidationError source
for invalid shapes, ranks, axes, dtypes, or output metadata. It returns
crate::Error::BackendFailure or crate::Error::BackendSource when
backend execution or storage access cannot provide the requested result.
Sourcefn mul_into(
&mut self,
lhs: &Tensor,
rhs: &Tensor,
out: TensorWrite<'_>,
) -> Result<()>
fn mul_into( &mut self, lhs: &Tensor, rhs: &Tensor, out: TensorWrite<'_>, ) -> Result<()>
Overwrite caller-provided output with elementwise multiplication.
§Errors
Returns crate::Error::Validation with a typed ValidationError source
for invalid shapes, ranks, axes, dtypes, or output metadata. It returns
crate::Error::BackendFailure or crate::Error::BackendSource when
backend execution or storage access cannot provide the requested result.
Sourcefn mul_read_into(
&mut self,
lhs: TensorRead<'_>,
rhs: TensorRead<'_>,
out: TensorWrite<'_>,
) -> Result<()>
fn mul_read_into( &mut self, lhs: TensorRead<'_>, rhs: TensorRead<'_>, out: TensorWrite<'_>, ) -> Result<()>
Overwrite caller-provided output with elementwise multiplication from reads.
§Errors
Returns crate::Error::Validation with a typed ValidationError source
for invalid shapes, ranks, axes, dtypes, or output metadata. It returns
crate::Error::BackendFailure or crate::Error::BackendSource when
backend execution or storage access cannot provide the requested result.
Sourcefn neg_read(&mut self, input: TensorRead<'_>) -> Result<Tensor>
fn neg_read(&mut self, input: TensorRead<'_>) -> Result<Tensor>
§Errors
Returns crate::Error::Validation with a typed ValidationError source
for invalid shapes, ranks, axes, dtypes, or output metadata. It returns
crate::Error::BackendFailure or crate::Error::BackendSource when
backend execution or storage access cannot provide the requested result.
Sourcefn neg_into(&mut self, input: &Tensor, out: TensorWrite<'_>) -> Result<()>
fn neg_into(&mut self, input: &Tensor, out: TensorWrite<'_>) -> Result<()>
Overwrite caller-provided output with elementwise negation.
§Errors
Returns crate::Error::Validation with a typed ValidationError source
for invalid shapes, ranks, axes, dtypes, or output metadata. It returns
crate::Error::BackendFailure or crate::Error::BackendSource when
backend execution or storage access cannot provide the requested result.
Sourcefn neg_read_into(
&mut self,
input: TensorRead<'_>,
out: TensorWrite<'_>,
) -> Result<()>
fn neg_read_into( &mut self, input: TensorRead<'_>, out: TensorWrite<'_>, ) -> Result<()>
Overwrite caller-provided output with elementwise negation from a read.
§Errors
Returns crate::Error::Validation with a typed ValidationError source
for invalid shapes, ranks, axes, dtypes, or output metadata. It returns
crate::Error::BackendFailure or crate::Error::BackendSource when
backend execution or storage access cannot provide the requested result.
Sourcefn conj_read(&mut self, input: TensorRead<'_>) -> Result<Tensor>
fn conj_read(&mut self, input: TensorRead<'_>) -> Result<Tensor>
§Errors
Returns crate::Error::Validation with a typed ValidationError source
for invalid shapes, ranks, axes, dtypes, or output metadata. It returns
crate::Error::BackendFailure or crate::Error::BackendSource when
backend execution or storage access cannot provide the requested result.
Sourcefn conj_into(&mut self, input: &Tensor, out: TensorWrite<'_>) -> Result<()>
fn conj_into(&mut self, input: &Tensor, out: TensorWrite<'_>) -> Result<()>
Overwrite caller-provided output with elementwise conjugation.
§Errors
Returns crate::Error::Validation with a typed ValidationError source
for invalid shapes, ranks, axes, dtypes, or output metadata. It returns
crate::Error::BackendFailure or crate::Error::BackendSource when
backend execution or storage access cannot provide the requested result.
Sourcefn conj_read_into(
&mut self,
input: TensorRead<'_>,
out: TensorWrite<'_>,
) -> Result<()>
fn conj_read_into( &mut self, input: TensorRead<'_>, out: TensorWrite<'_>, ) -> Result<()>
Overwrite caller-provided output with elementwise conjugation from a read.
§Errors
Returns crate::Error::Validation with a typed ValidationError source
for invalid shapes, ranks, axes, dtypes, or output metadata. It returns
crate::Error::BackendFailure or crate::Error::BackendSource when
backend execution or storage access cannot provide the requested result.
Sourcefn div_read(
&mut self,
lhs: TensorRead<'_>,
rhs: TensorRead<'_>,
) -> Result<Tensor>
fn div_read( &mut self, lhs: TensorRead<'_>, rhs: TensorRead<'_>, ) -> Result<Tensor>
§Errors
Returns crate::Error::Validation with a typed ValidationError source
for invalid shapes, ranks, axes, dtypes, or output metadata. It returns
crate::Error::BackendFailure or crate::Error::BackendSource when
backend execution or storage access cannot provide the requested result.
Sourcefn div_into(
&mut self,
lhs: &Tensor,
rhs: &Tensor,
out: TensorWrite<'_>,
) -> Result<()>
fn div_into( &mut self, lhs: &Tensor, rhs: &Tensor, out: TensorWrite<'_>, ) -> Result<()>
Overwrite caller-provided output with elementwise division.
§Errors
Returns crate::Error::Validation with a typed ValidationError source
for invalid shapes, ranks, axes, dtypes, or output metadata. It returns
crate::Error::BackendFailure or crate::Error::BackendSource when
backend execution or storage access cannot provide the requested result.
Sourcefn div_read_into(
&mut self,
lhs: TensorRead<'_>,
rhs: TensorRead<'_>,
out: TensorWrite<'_>,
) -> Result<()>
fn div_read_into( &mut self, lhs: TensorRead<'_>, rhs: TensorRead<'_>, out: TensorWrite<'_>, ) -> Result<()>
Overwrite caller-provided output with elementwise division from reads.
§Errors
Returns crate::Error::Validation with a typed ValidationError source
for invalid shapes, ranks, axes, dtypes, or output metadata. It returns
crate::Error::BackendFailure or crate::Error::BackendSource when
backend execution or storage access cannot provide the requested result.
Sourcefn rem(&mut self, lhs: &Tensor, _rhs: &Tensor) -> Result<Tensor>
fn rem(&mut self, lhs: &Tensor, _rhs: &Tensor) -> Result<Tensor>
Elementwise remainder.
The default is an explicit unsupported error so backend implementors can opt in without silent fallback.
§Examples
use tenferro_tensor::{Tensor, TensorElementwise};
fn rem_owned<B: TensorElementwise>(
backend: &mut B,
lhs: &Tensor,
rhs: &Tensor,
) -> tenferro_tensor::Result<Tensor> {
backend.rem(lhs, rhs)
}§Errors
Returns crate::Error::Validation with a typed ValidationError source
for invalid shapes, ranks, axes, dtypes, or output metadata. It returns
crate::Error::BackendFailure or crate::Error::BackendSource when
backend execution or storage access cannot provide the requested result.
Sourcefn rem_read(
&mut self,
lhs: TensorRead<'_>,
rhs: TensorRead<'_>,
) -> Result<Tensor>
fn rem_read( &mut self, lhs: TensorRead<'_>, rhs: TensorRead<'_>, ) -> Result<Tensor>
Elementwise remainder accepting owned tensors or borrowed views.
§Examples
use tenferro_tensor::{Tensor, TensorElementwise, TensorRead};
fn rem_read<B: TensorElementwise>(
backend: &mut B,
lhs: &Tensor,
rhs: &Tensor,
) -> tenferro_tensor::Result<Tensor> {
backend.rem_read(TensorRead::from_tensor(lhs), TensorRead::from_tensor(rhs))
}§Errors
Returns crate::Error::Validation with a typed ValidationError source
for invalid shapes, ranks, axes, dtypes, or output metadata. It returns
crate::Error::BackendFailure or crate::Error::BackendSource when
backend execution or storage access cannot provide the requested result.
Sourcefn abs_read(&mut self, input: TensorRead<'_>) -> Result<Tensor>
fn abs_read(&mut self, input: TensorRead<'_>) -> Result<Tensor>
§Errors
Returns crate::Error::Validation with a typed ValidationError source
for invalid shapes, ranks, axes, dtypes, or output metadata. It returns
crate::Error::BackendFailure or crate::Error::BackendSource when
backend execution or storage access cannot provide the requested result.
Sourcefn sign_read(&mut self, input: TensorRead<'_>) -> Result<Tensor>
fn sign_read(&mut self, input: TensorRead<'_>) -> Result<Tensor>
§Errors
Returns crate::Error::Validation with a typed ValidationError source
for invalid shapes, ranks, axes, dtypes, or output metadata. It returns
crate::Error::BackendFailure or crate::Error::BackendSource when
backend execution or storage access cannot provide the requested result.
Sourcefn maximum_read(
&mut self,
lhs: TensorRead<'_>,
rhs: TensorRead<'_>,
) -> Result<Tensor>
fn maximum_read( &mut self, lhs: TensorRead<'_>, rhs: TensorRead<'_>, ) -> Result<Tensor>
§Errors
Returns crate::Error::Validation with a typed ValidationError source
for invalid shapes, ranks, axes, dtypes, or output metadata. It returns
crate::Error::BackendFailure or crate::Error::BackendSource when
backend execution or storage access cannot provide the requested result.
Sourcefn minimum_read(
&mut self,
lhs: TensorRead<'_>,
rhs: TensorRead<'_>,
) -> Result<Tensor>
fn minimum_read( &mut self, lhs: TensorRead<'_>, rhs: TensorRead<'_>, ) -> Result<Tensor>
§Errors
Returns crate::Error::Validation with a typed ValidationError source
for invalid shapes, ranks, axes, dtypes, or output metadata. It returns
crate::Error::BackendFailure or crate::Error::BackendSource when
backend execution or storage access cannot provide the requested result.
Sourcefn compare_read(
&mut self,
lhs: TensorRead<'_>,
rhs: TensorRead<'_>,
dir: &CompareDir,
) -> Result<Tensor>
fn compare_read( &mut self, lhs: TensorRead<'_>, rhs: TensorRead<'_>, dir: &CompareDir, ) -> Result<Tensor>
§Errors
Returns crate::Error::Validation with a typed ValidationError source
for invalid shapes, ranks, axes, dtypes, or output metadata. It returns
crate::Error::BackendFailure or crate::Error::BackendSource when
backend execution or storage access cannot provide the requested result.
Sourcefn select_read(
&mut self,
pred: TensorRead<'_>,
on_true: TensorRead<'_>,
on_false: TensorRead<'_>,
) -> Result<Tensor>
fn select_read( &mut self, pred: TensorRead<'_>, on_true: TensorRead<'_>, on_false: TensorRead<'_>, ) -> Result<Tensor>
§Errors
Returns crate::Error::Validation with a typed ValidationError source
for invalid shapes, ranks, axes, dtypes, or output metadata. It returns
crate::Error::BackendFailure or crate::Error::BackendSource when
backend execution or storage access cannot provide the requested result.
Sourcefn clamp_read(
&mut self,
input: TensorRead<'_>,
lower: TensorRead<'_>,
upper: TensorRead<'_>,
) -> Result<Tensor>
fn clamp_read( &mut self, input: TensorRead<'_>, lower: TensorRead<'_>, upper: TensorRead<'_>, ) -> Result<Tensor>
§Errors
Returns crate::Error::Validation with a typed ValidationError source
for invalid shapes, ranks, axes, dtypes, or output metadata. It returns
crate::Error::BackendFailure or crate::Error::BackendSource when
backend execution or storage access cannot provide the requested result.