use crate::uint::{
u256::{u32x8_add, U256},
u512::U512,
};
use super::{round::round16, w_round::w_round16};
pub const fn compress(init: U256, mut w: U512) -> U256 {
let mut x = round16(init, &w, 0);
w = w_round16(w);
x = round16(x, &w, 1);
w = w_round16(w);
x = round16(x, &w, 2);
w = w_round16(w);
x = round16(x, &w, 3);
u32x8_add(&x, &init)
}