use sprs::{TriMatI, CsMatI};
use ndarray::{Array1};
pub(crate) fn diagonal_augmentation(graphtrip : &mut TriMatI<f64, usize>, weight : f64) -> CsMatI<f64, usize> {
let shape = graphtrip.shape();
log::debug!("diagonal_augmentation received shape {:?}", shape);
assert_eq!(shape.0, shape.1);
let mut rowmax = Array1::<f64>::zeros(shape.0);
let mut trip_iter = graphtrip.triplet_iter();
while let Some(triplet) = trip_iter.next() {
if *triplet.0 > rowmax[triplet.1.0] {
rowmax[triplet.1.0] = *triplet.0
}
}
for i in 0..shape.0 {
if weight > 0. {
graphtrip.add_triplet(i,i, weight);
}
}
graphtrip.to_csr()
}