Skip to content

Commit 69cb3d9

Browse files
committed
Add compress/_z to Dual/Compensated
1 parent d43600c commit 69cb3d9

2 files changed

Lines changed: 32 additions & 0 deletions

File tree

crates/thermite-compensated/src/lib.rs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1408,6 +1408,22 @@ impl<V: CompensatedFloatVector> GenericVector for Compensated<V> {
14081408
}
14091409
}
14101410

1411+
#[inline(always)]
1412+
fn compress(self, mask: Self::Mask) -> Self {
1413+
Self {
1414+
value: self.value.compress(mask),
1415+
error: self.error.compress(mask),
1416+
}
1417+
}
1418+
1419+
#[inline(always)]
1420+
fn compress_z(self, mask: Self::Mask) -> Self {
1421+
Self {
1422+
value: self.value.compress_z(mask),
1423+
error: self.error.compress_z(mask),
1424+
}
1425+
}
1426+
14111427

14121428
fn map<F>(mut self, f: F) -> Self
14131429
where

crates/thermite-dual/src/vector.rs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -576,6 +576,22 @@ impl<V: DualFloatVector, const N: usize> GenericVector for Dual<V, N> {
576576
}
577577
}
578578

579+
#[inline(always)]
580+
fn compress(self, mask: Self::Mask) -> Self {
581+
Self {
582+
re: self.re.compress(mask),
583+
dual: array_each!([V::ZERO; N], |j| self.dual[j].compress(mask)),
584+
}
585+
}
586+
587+
#[inline(always)]
588+
fn compress_z(self, mask: Self::Mask) -> Self {
589+
Self {
590+
re: self.re.compress_z(mask),
591+
dual: array_each!([V::ZERO; N], |j| self.dual[j].compress_z(mask)),
592+
}
593+
}
594+
579595
#[inline(always)] fn map<F>(mut self, f: F) -> Self
580596
where
581597
F: Fn(Self::Element) -> Self::Element,

0 commit comments

Comments
 (0)