Make CsrMatrix/CscMatrix::pattern() return reference
This commit is contained in:
parent
4420237ede
commit
8b7b836a37
|
@ -275,8 +275,8 @@ impl<T> CscMatrix<T> {
|
||||||
// Take an Arc to the pattern, which might be the sole reference to the data after
|
// Take an Arc to the pattern, which might be the sole reference to the data after
|
||||||
// taking the values. This is important, because it might let us avoid cloning the data
|
// taking the values. This is important, because it might let us avoid cloning the data
|
||||||
// further below.
|
// further below.
|
||||||
let pattern = self.pattern();
|
let pattern = self.sparsity_pattern;
|
||||||
let values = self.take_values();
|
let values = self.values;
|
||||||
|
|
||||||
// Try to take the pattern out of the `Arc` if possible,
|
// Try to take the pattern out of the `Arc` if possible,
|
||||||
// otherwise clone the pattern.
|
// otherwise clone the pattern.
|
||||||
|
@ -292,8 +292,8 @@ impl<T> CscMatrix<T> {
|
||||||
/// The sparsity pattern is stored internally inside an `Arc`. This allows users to re-use
|
/// The sparsity pattern is stored internally inside an `Arc`. This allows users to re-use
|
||||||
/// the same sparsity pattern for multiple matrices without storing the same pattern multiple
|
/// the same sparsity pattern for multiple matrices without storing the same pattern multiple
|
||||||
/// times in memory.
|
/// times in memory.
|
||||||
pub fn pattern(&self) -> Arc<SparsityPattern> {
|
pub fn pattern(&self) -> &Arc<SparsityPattern> {
|
||||||
Arc::clone(&self.sparsity_pattern)
|
&self.sparsity_pattern
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -275,8 +275,8 @@ impl<T> CsrMatrix<T> {
|
||||||
// Take an Arc to the pattern, which might be the sole reference to the data after
|
// Take an Arc to the pattern, which might be the sole reference to the data after
|
||||||
// taking the values. This is important, because it might let us avoid cloning the data
|
// taking the values. This is important, because it might let us avoid cloning the data
|
||||||
// further below.
|
// further below.
|
||||||
let pattern = self.pattern();
|
let pattern = self.sparsity_pattern;
|
||||||
let values = self.take_values();
|
let values = self.values;
|
||||||
|
|
||||||
// Try to take the pattern out of the `Arc` if possible,
|
// Try to take the pattern out of the `Arc` if possible,
|
||||||
// otherwise clone the pattern.
|
// otherwise clone the pattern.
|
||||||
|
@ -292,8 +292,8 @@ impl<T> CsrMatrix<T> {
|
||||||
/// The sparsity pattern is stored internally inside an `Arc`. This allows users to re-use
|
/// The sparsity pattern is stored internally inside an `Arc`. This allows users to re-use
|
||||||
/// the same sparsity pattern for multiple matrices without storing the same pattern multiple
|
/// the same sparsity pattern for multiple matrices without storing the same pattern multiple
|
||||||
/// times in memory.
|
/// times in memory.
|
||||||
pub fn pattern(&self) -> Arc<SparsityPattern> {
|
pub fn pattern(&self) -> &Arc<SparsityPattern> {
|
||||||
Arc::clone(&self.sparsity_pattern)
|
&self.sparsity_pattern
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -202,6 +202,6 @@ proptest! {
|
||||||
let c_dense = a_dense + b_dense;
|
let c_dense = a_dense + b_dense;
|
||||||
let c_csr = CsrMatrix::from(&c_dense);
|
let c_csr = CsrMatrix::from(&c_dense);
|
||||||
|
|
||||||
prop_assert_eq!(&pattern_result, &*c_csr.pattern());
|
prop_assert_eq!(&pattern_result, c_csr.pattern().as_ref());
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue