MCPcopy Index your code
hub / github.com/SingleRust/SingleRust / convert_arrayd_to_array2_f64

Function convert_arrayd_to_array2_f64

src/shared/mod.rs:313–333  ·  view source on GitHub ↗
(arrayd: &ArrayD<T>)

Source from the content-addressed store, hash-verified

311}
312
313fn convert_arrayd_to_array2_f64<T: NumericOps>(arrayd: &ArrayD<T>) -> anyhow::Result<Array2<f64>> {
314 let shape = arrayd.shape();
315
316 match shape.len() {
317 1 => Err(anyhow!("The ArrayD must have at least two dimensions!")),
318 2 => Ok(arrayd
319 .mapv(|x| NumCast::from(x).unwrap_or_else(f64::zero))
320 .into_dimensionality::<Ix2>()?),
321 _ => {
322 let rows = shape[0];
323 let cols = shape[1..].iter().product();
324 let flat_data: Vec<f64> = arrayd
325 .iter()
326 .map(|&x| NumCast::from(x).unwrap_or_else(f64::zero))
327 .collect();
328
329 let data = Array2::from_shape_vec((rows, cols), flat_data)?;
330 Ok(data)
331 }
332 }
333}
334
335fn convert_to_array_f64_csc<T: NumericOps>(
336 csc: &CscMatrix<T>,

Callers 1

Calls

no outgoing calls

Tested by

no test coverage detected