pub struct MaxPlus;Expand description
⌈.+, the max-plus product of longest-path problems, at i64, f32 and f64. The module doc says how each target treats a NaN term.
Trait Implementations§
Source§impl Inner<f32> for MaxPlus
impl Inner<f32> for MaxPlus
Source§fn inner_into(
&self,
a: &[f32],
b: &[f32],
size: [usize; 3],
out: &mut [Self::Out],
)
fn inner_into( &self, a: &[f32], b: &[f32], size: [usize; 3], out: &mut [Self::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],
[oa, ob]: [Orientation; 2],
[m, k, n]: [usize; 3],
) -> Vec<Self::Out>where
T: Copy,
fn inner_ops(
&self,
a: &[T],
b: &[T],
[oa, ob]: [Orientation; 2],
[m, k, n]: [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>,
[oa, ob]: [Orientation; 2],
size: [usize; 3],
out: &mut [Self::Out],
)where
T: Element,
fn inner_mapped_into(
&self,
a: Mapped<'_, T>,
b: Mapped<'_, T>,
[oa, ob]: [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 MaxPlus
impl Inner<f64> for MaxPlus
Source§fn inner_into(
&self,
a: &[f64],
b: &[f64],
size: [usize; 3],
out: &mut [Self::Out],
)
fn inner_into( &self, a: &[f64], b: &[f64], size: [usize; 3], out: &mut [Self::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],
[oa, ob]: [Orientation; 2],
[m, k, n]: [usize; 3],
) -> Vec<Self::Out>where
T: Copy,
fn inner_ops(
&self,
a: &[T],
b: &[T],
[oa, ob]: [Orientation; 2],
[m, k, n]: [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>,
[oa, ob]: [Orientation; 2],
size: [usize; 3],
out: &mut [Self::Out],
)where
T: Element,
fn inner_mapped_into(
&self,
a: Mapped<'_, T>,
b: Mapped<'_, T>,
[oa, ob]: [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 MaxPlus
impl Inner<i64> for MaxPlus
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],
[oa, ob]: [Orientation; 2],
[m, k, n]: [usize; 3],
) -> Vec<Self::Out>where
T: Copy,
fn inner_ops(
&self,
a: &[T],
b: &[T],
[oa, ob]: [Orientation; 2],
[m, k, n]: [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>,
[oa, ob]: [Orientation; 2],
size: [usize; 3],
out: &mut [Self::Out],
)where
T: Element,
fn inner_mapped_into(
&self,
a: Mapped<'_, T>,
b: Mapped<'_, T>,
[oa, ob]: [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 MaxPlus
impl Freeze for MaxPlus
impl RefUnwindSafe for MaxPlus
impl Send for MaxPlus
impl Sync for MaxPlus
impl Unpin for MaxPlus
impl UnsafeUnpin for MaxPlus
impl UnwindSafe for MaxPlus
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