MCPcopy Create free account
hub / github.com/Open-Quant/openquant / cov2corr

Function cov2corr

crates/openquant/src/hrp.rs:202–222  ·  view source on GitHub ↗
(cov: &DMatrix<f64>)

Source from the content-addressed store, hash-verified

200}
201
202fn cov2corr(cov: &DMatrix<f64>) -> Result<DMatrix<f64>, HrpError> {
203 let n = cov.nrows();
204 if n == 0 || cov.ncols() != n {
205 return Err(HrpError::DimensionMismatch("covariance must be square"));
206 }
207 let mut std = vec![0.0; n];
208 for i in 0..n {
209 let v = cov[(i, i)];
210 if v <= 0.0 {
211 return Err(HrpError::NoData);
212 }
213 std[i] = v.sqrt();
214 }
215 let mut corr = DMatrix::zeros(n, n);
216 for i in 0..n {
217 for j in 0..n {
218 corr[(i, j)] = cov[(i, j)] / (std[i] * std[j]);
219 }
220 }
221 Ok(corr)
222}
223
224fn corr_to_distances(corr: &DMatrix<f64>) -> DMatrix<f64> {
225 let n = corr.nrows();

Callers 1

allocateMethod · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected