unnecessary index information
This commit is contained in:
parent
a2422ee02b
commit
b19f0d7473
|
@ -34,9 +34,6 @@ where
|
||||||
{
|
{
|
||||||
let some_val = Zero::zero();
|
let some_val = Zero::zero();
|
||||||
let mut scratchpad_values: Vec<T> = vec![some_val; b.pattern().minor_dim()];
|
let mut scratchpad_values: Vec<T> = vec![some_val; b.pattern().minor_dim()];
|
||||||
let mut scratchpad_indices: Vec<usize> = vec![0; b.pattern().minor_dim()];
|
|
||||||
let mut scratchpad_used: Vec<bool> = vec![false; b.pattern().minor_dim()];
|
|
||||||
let mut right_end = 0usize;
|
|
||||||
for i in 0..c.pattern().major_dim() {
|
for i in 0..c.pattern().major_dim() {
|
||||||
let a_lane_i = a.get_lane(i).unwrap();
|
let a_lane_i = a.get_lane(i).unwrap();
|
||||||
|
|
||||||
|
@ -48,26 +45,19 @@ where
|
||||||
for (j, b_kj) in b_lane_k.minor_indices().iter().zip(b_lane_k.values()) {
|
for (j, b_kj) in b_lane_k.minor_indices().iter().zip(b_lane_k.values()) {
|
||||||
// Determine the location in C to append the value
|
// Determine the location in C to append the value
|
||||||
scratchpad_values[*j] += alpha_aik.clone() * b_kj.clone();
|
scratchpad_values[*j] += alpha_aik.clone() * b_kj.clone();
|
||||||
if !scratchpad_used[*j] {
|
|
||||||
scratchpad_indices[right_end] = *j;
|
|
||||||
right_end += 1;
|
|
||||||
scratchpad_used[*j] = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// sort the indices, and then access the relevant indices (in sorted order) from values
|
// sort the indices, and then access the relevant indices (in sorted order) from values
|
||||||
// into C.
|
// into C.
|
||||||
scratchpad_indices[0..right_end].sort_unstable();
|
let (indices, values) = c_lane_i.indices_and_values_mut();
|
||||||
c_lane_i
|
|
||||||
.values_mut()
|
values
|
||||||
.iter_mut()
|
.iter_mut()
|
||||||
.zip(scratchpad_indices[0..right_end].iter())
|
.zip(indices)
|
||||||
.for_each(|(output_ref, index)| {
|
.for_each(|(output_ref, index)| {
|
||||||
*output_ref = beta.clone() * output_ref.clone() + scratchpad_values[*index].clone();
|
*output_ref = beta.clone() * output_ref.clone() + scratchpad_values[*index].clone();
|
||||||
scratchpad_used[*index] = false;
|
|
||||||
scratchpad_values[*index] = Zero::zero();
|
scratchpad_values[*index] = Zero::zero();
|
||||||
});
|
});
|
||||||
right_end = 0usize;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
Loading…
Reference in New Issue