pub fn mul_vector<M, V>(m: M, v: V) -> V::Concrete where
M: ScalarArrayVal,
M::Row: Dim<V::Scalar>,
M::Dim: TwoDim<V::Scalar, V::Row> + Dim<<M::Scalar as Mul<V::Scalar>>::Output>,
V: VecArrayVal<Row = M::Row> + HasConcreteVecArray<<M::Scalar as Mul<<V as ScalarArray>::Scalar>>::Output, M::Dim>,
<V::Row as Array<V::Scalar>>::Type: Clone,
M::Scalar: Mul<V::Scalar>,
<M::Scalar as Mul<V::Scalar>>::Output: Add<Output = <M::Scalar as Mul<V::Scalar>>::Output>,
<V as HasConcreteScalarArray<<M::Scalar as Mul<V::Scalar>>::Output, M::Dim>>::Concrete: ConcreteVecArray,
<M::Row as HasSmaller>::Smaller: Array<M::Scalar> + Array<V::Scalar>,
<M::Dim as HasSmaller>::Smaller: Array<<M::Row as Array<M::Scalar>>::Type> + Array<<V::Row as Array<V::Scalar>>::Type> + Array<<M::Scalar as Mul<V::Scalar>>::Output>,