pub struct MinPlus;Expand description
⌊.+, the min-plus product of shortest-path problems, at i64, f32 and f64. Its minimum treats NaN as MaxPlus’s maximum does.
Trait Implementations§
Source§impl Inner<f32> for MinPlus
impl Inner<f32> for MinPlus
Source§fn inner_into(
&self,
a: &[f32],
b: &[f32],
size: [usize; 3],
out: &mut [<MinPlus as Inner<f32>>::Out],
)
fn inner_into( &self, a: &[f32], b: &[f32], size: [usize; 3], out: &mut [<MinPlus as Inner<f32>>::Out], )
The
m×n inner product of a, an m×k matrix, and b, a k×n matrix, both row-major, written row-major into out, which holds m×n items. size is [m, k, n]. Where k is 0, each result is the identity of f. An integer result that doesn’t fit its type panics, where checked_into gives false.Source§fn inner(&self, a: &[T], b: &[T], size: [usize; 3]) -> Vec<Self::Out>
fn inner(&self, a: &[T], b: &[T], size: [usize; 3]) -> Vec<Self::Out>
inner_into’s results, as a new row-major matrix.Source§fn checked_into(
&self,
a: &[T],
b: &[T],
size: [usize; 3],
out: &mut [Self::Out],
) -> bool
fn checked_into( &self, a: &[T], b: &[T], size: [usize; 3], out: &mut [Self::Out], ) -> bool
inner_into, or false where an integer result doesn’t fit its type, for callers that keep integers exact or report overflow. Where it gives true, out holds the exact results. Floats always give true.Source§fn inner_ops(
&self,
a: &[T],
b: &[T],
_: [Orientation; 2],
_: [usize; 3],
) -> Vec<Self::Out>where
T: Copy,
fn inner_ops(
&self,
a: &[T],
b: &[T],
_: [Orientation; 2],
_: [usize; 3],
) -> Vec<Self::Out>where
T: Copy,
inner of the matrices that a and b give in the orientations given, with size [m, k, n] for those matrices. A transposed a holds a k×m matrix, row-major, and gives its m×k transpose. This default copies a transposed operand into its orientation. Float and complex PlusTimes read it in place.Source§fn inner_mapped(
&self,
a: Mapped<'_, T>,
b: Mapped<'_, T>,
orientations: [Orientation; 2],
size: [usize; 3],
) -> Vec<Self::Out>where
T: Element,
fn inner_mapped(
&self,
a: Mapped<'_, T>,
b: Mapped<'_, T>,
orientations: [Orientation; 2],
size: [usize; 3],
) -> Vec<Self::Out>where
T: Element,
inner_mapped_into’s results, as a new row-major matrix.Source§fn inner_mapped_into(
&self,
a: Mapped<'_, T>,
b: Mapped<'_, T>,
_: [Orientation; 2],
size: [usize; 3],
out: &mut [Self::Out],
)where
T: Element,
fn inner_mapped_into(
&self,
a: Mapped<'_, T>,
b: Mapped<'_, T>,
_: [Orientation; 2],
size: [usize; 3],
out: &mut [Self::Out],
)where
T: Element,
inner_into of operands whose items come through mappings, as Mapped describes. This default reads each operand whole and copies transposed operands into their orientations. Float and complex PlusTimes read an operand that isn’t held in order one block of its stored rows at a time and multiply each block as it’s read. Only one block of that operand then exists at once.Source§impl Inner<f64> for MinPlus
impl Inner<f64> for MinPlus
Source§fn inner_into(
&self,
a: &[f64],
b: &[f64],
size: [usize; 3],
out: &mut [<MinPlus as Inner<f64>>::Out],
)
fn inner_into( &self, a: &[f64], b: &[f64], size: [usize; 3], out: &mut [<MinPlus as Inner<f64>>::Out], )
The
m×n inner product of a, an m×k matrix, and b, a k×n matrix, both row-major, written row-major into out, which holds m×n items. size is [m, k, n]. Where k is 0, each result is the identity of f. An integer result that doesn’t fit its type panics, where checked_into gives false.Source§fn inner(&self, a: &[T], b: &[T], size: [usize; 3]) -> Vec<Self::Out>
fn inner(&self, a: &[T], b: &[T], size: [usize; 3]) -> Vec<Self::Out>
inner_into’s results, as a new row-major matrix.Source§fn checked_into(
&self,
a: &[T],
b: &[T],
size: [usize; 3],
out: &mut [Self::Out],
) -> bool
fn checked_into( &self, a: &[T], b: &[T], size: [usize; 3], out: &mut [Self::Out], ) -> bool
inner_into, or false where an integer result doesn’t fit its type, for callers that keep integers exact or report overflow. Where it gives true, out holds the exact results. Floats always give true.Source§fn inner_ops(
&self,
a: &[T],
b: &[T],
_: [Orientation; 2],
_: [usize; 3],
) -> Vec<Self::Out>where
T: Copy,
fn inner_ops(
&self,
a: &[T],
b: &[T],
_: [Orientation; 2],
_: [usize; 3],
) -> Vec<Self::Out>where
T: Copy,
inner of the matrices that a and b give in the orientations given, with size [m, k, n] for those matrices. A transposed a holds a k×m matrix, row-major, and gives its m×k transpose. This default copies a transposed operand into its orientation. Float and complex PlusTimes read it in place.Source§fn inner_mapped(
&self,
a: Mapped<'_, T>,
b: Mapped<'_, T>,
orientations: [Orientation; 2],
size: [usize; 3],
) -> Vec<Self::Out>where
T: Element,
fn inner_mapped(
&self,
a: Mapped<'_, T>,
b: Mapped<'_, T>,
orientations: [Orientation; 2],
size: [usize; 3],
) -> Vec<Self::Out>where
T: Element,
inner_mapped_into’s results, as a new row-major matrix.Source§fn inner_mapped_into(
&self,
a: Mapped<'_, T>,
b: Mapped<'_, T>,
_: [Orientation; 2],
size: [usize; 3],
out: &mut [Self::Out],
)where
T: Element,
fn inner_mapped_into(
&self,
a: Mapped<'_, T>,
b: Mapped<'_, T>,
_: [Orientation; 2],
size: [usize; 3],
out: &mut [Self::Out],
)where
T: Element,
inner_into of operands whose items come through mappings, as Mapped describes. This default reads each operand whole and copies transposed operands into their orientations. Float and complex PlusTimes read an operand that isn’t held in order one block of its stored rows at a time and multiply each block as it’s read. Only one block of that operand then exists at once.Source§impl Inner<i64> for MinPlus
impl Inner<i64> for MinPlus
Source§fn inner_into(&self, a: &[i64], b: &[i64], size: [usize; 3], out: &mut [i64])
fn inner_into(&self, a: &[i64], b: &[i64], size: [usize; 3], out: &mut [i64])
The
m×n inner product of a, an m×k matrix, and b, a k×n matrix, both row-major, written row-major into out, which holds m×n items. size is [m, k, n]. Where k is 0, each result is the identity of f. An integer result that doesn’t fit its type panics, where checked_into gives false.Source§fn checked_into(
&self,
a: &[i64],
b: &[i64],
size: [usize; 3],
out: &mut [i64],
) -> bool
fn checked_into( &self, a: &[i64], b: &[i64], size: [usize; 3], out: &mut [i64], ) -> bool
inner_into, or false where an integer result doesn’t fit its type, for callers that keep integers exact or report overflow. Where it gives true, out holds the exact results. Floats always give true.Source§fn inner(&self, a: &[T], b: &[T], size: [usize; 3]) -> Vec<Self::Out>
fn inner(&self, a: &[T], b: &[T], size: [usize; 3]) -> Vec<Self::Out>
inner_into’s results, as a new row-major matrix.Source§fn inner_ops(
&self,
a: &[T],
b: &[T],
_: [Orientation; 2],
_: [usize; 3],
) -> Vec<Self::Out>where
T: Copy,
fn inner_ops(
&self,
a: &[T],
b: &[T],
_: [Orientation; 2],
_: [usize; 3],
) -> Vec<Self::Out>where
T: Copy,
inner of the matrices that a and b give in the orientations given, with size [m, k, n] for those matrices. A transposed a holds a k×m matrix, row-major, and gives its m×k transpose. This default copies a transposed operand into its orientation. Float and complex PlusTimes read it in place.Source§fn inner_mapped(
&self,
a: Mapped<'_, T>,
b: Mapped<'_, T>,
orientations: [Orientation; 2],
size: [usize; 3],
) -> Vec<Self::Out>where
T: Element,
fn inner_mapped(
&self,
a: Mapped<'_, T>,
b: Mapped<'_, T>,
orientations: [Orientation; 2],
size: [usize; 3],
) -> Vec<Self::Out>where
T: Element,
inner_mapped_into’s results, as a new row-major matrix.Source§fn inner_mapped_into(
&self,
a: Mapped<'_, T>,
b: Mapped<'_, T>,
_: [Orientation; 2],
size: [usize; 3],
out: &mut [Self::Out],
)where
T: Element,
fn inner_mapped_into(
&self,
a: Mapped<'_, T>,
b: Mapped<'_, T>,
_: [Orientation; 2],
size: [usize; 3],
out: &mut [Self::Out],
)where
T: Element,
inner_into of operands whose items come through mappings, as Mapped describes. This default reads each operand whole and copies transposed operands into their orientations. Float and complex PlusTimes read an operand that isn’t held in order one block of its stored rows at a time and multiply each block as it’s read. Only one block of that operand then exists at once.Auto Trait Implementations§
impl Forget for MinPlus
impl Freeze for MinPlus
impl RefUnwindSafe for MinPlus
impl Send for MinPlus
impl Sync for MinPlus
impl Unpin for MinPlus
impl UnsafeUnpin for MinPlus
impl UnwindSafe for MinPlus
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more