Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- let leading_row = thetas
- .iter()
- .enumerate()
- .filter_map(|(i, b)| {
- if let Some(sb) = b {
- Some((i, sb))
- } else {
- None
- }
- })
- .min_by(|(_, x), (_, y)| x.partial_cmp(y).unwrap())
- .ok_or(SimplexError::NoSolutions)?
- .0;
- println!("lead_row\n{:.2}", &leading_row);
- // update leading row
- let lead_element = table_datas[(leading_row, leading_column + 1)];
- azip!((row_elem in &mut table_datas.index_axis_mut(Axis(0), leading_row))
- *row_elem = *row_elem / lead_element);
- let l_row = table_datas.index_axis(Axis(0), leading_row).to_owned();
- let l_col = table_datas
- .index_axis(Axis(1), leading_column + 1)
- .to_owned();
- // update everything else
- azip!((index (i, j), data in &mut table_datas)
- *data = if i != leading_row { *data - l_row[j] * l_col[i] } else { *data });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement