argmin-math 0.5.1

argmin math abstractions
Documentation
use crate::ArgminTranspose;
use faer::{Mat, MatRef, Shape};
use faer_traits::Conjugate;

impl<'a, E, R, C> ArgminTranspose<MatRef<'a, E, C, R>> for MatRef<'a, E, R, C>
where
    R: Shape,
    C: Shape,
{
    #[inline]
    fn t(self) -> MatRef<'a, E, C, R> {
        self.transpose()
    }
}

impl<E> ArgminTranspose<Mat<E>> for MatRef<'_, E>
where
    E: Conjugate<Canonical = E>,
{
    #[inline]
    fn t(self) -> Mat<E> {
        self.transpose().to_owned()
    }
}

impl<E> ArgminTranspose<Mat<E>> for Mat<E>
where
    E: Conjugate<Canonical = E>,
{
    #[inline]
    fn t(self) -> Mat<E> {
        self.transpose().to_owned()
    }
}

impl<'a, E> ArgminTranspose<MatRef<'a, E>> for &'a Mat<E> {
    #[inline]
    fn t(self) -> MatRef<'a, E> {
        self.transpose()
    }
}