faer 0.24.0

linear algebra library
Documentation
use crate::assert;
use crate::internal_prelude::*;
pub fn inverse_scratch<I: Index, T: ComplexField>(
	dim: usize,
	par: Par,
) -> StackReq {
	_ = par;
	super::solve::solve_in_place_scratch::<I, T>(dim, dim, par)
}
#[track_caller]
pub fn inverse<I: Index, T: ComplexField>(
	out: MatMut<'_, T>,
	L: MatRef<'_, T>,
	diagonal: DiagRef<'_, T>,
	subdiagonal: DiagRef<'_, T>,
	perm: PermRef<'_, I>,
	par: Par,
	stack: &mut MemStack,
) {
	let n = L.nrows();
	assert!(all(
		out.nrows() == n,
		out.ncols() == n,
		L.nrows() == n,
		L.ncols() == n,
		diagonal.dim() == n,
		subdiagonal.dim() == n,
		perm.len() == n,
	));
	let mut out = out;
	out.fill(zero());
	out.rb_mut().diagonal_mut().fill(one());
	super::solve::solve_in_place(
		L,
		diagonal,
		subdiagonal,
		perm,
		out.rb_mut(),
		par,
		stack,
	);
}