Drop second attempt at static matrices
I couldn't get this one working, and the first attempt seems fine.
This commit is contained in:
parent
fb51e00503
commit
d864ab5abe
@ -1,7 +1,5 @@
|
||||
use nalgebra::{*, allocator::Allocator};
|
||||
use std::f64::consts::{PI, E};
|
||||
/*use std::ops::Sub;*/
|
||||
/*use typenum::{B1, UInt, UTerm};*/
|
||||
|
||||
/* dynamic matrices */
|
||||
pub fn rand_eigval_series(dim: usize, time_res: usize) -> Vec<OVector<Complex<f64>, Dyn>> {
|
||||
@ -105,42 +103,3 @@ pub fn rand_eigval_series(dim: usize, time_res: usize) -> Vec<OVector<Complex<f6
|
||||
}
|
||||
eigval_series
|
||||
}*/
|
||||
|
||||
/* another attempt at static matrices. i couldn't get the types to work out */
|
||||
/*pub fn random_eigval_series<const N: usize>(time_res: usize) -> Vec<OVector<Complex<f64>, Const<N>>>
|
||||
where
|
||||
Const<N>: ToTypenum,
|
||||
<Const<N> as ToTypenum>::Typenum: Sub<UInt<UTerm, B1>>,
|
||||
<<Const<N> as ToTypenum>::Typenum as Sub<UInt<UTerm, B1>>>::Output: ToConst
|
||||
{
|
||||
// initialize the random matrix
|
||||
/*let mut rand_mat = SMatrix::<f64, N, N>::zeros();
|
||||
for n in 0..N*N {
|
||||
rand_mat[n] = E*((n*n) as f64) % 2.0 - 1.0;
|
||||
}*/
|
||||
let rand_mat = OMatrix::<f64, Const<N>, Const<N>>::from_fn(|j, k| {
|
||||
let n = j*N + k;
|
||||
E*((n*n) as f64) % 2.0 - 1.0
|
||||
});
|
||||
|
||||
// initialize the rotation step
|
||||
let mut rot_step = OMatrix::<f64, Const<N>, Const<N>>::identity();
|
||||
let max_freq = 4;
|
||||
for n in (0..N).step_by(2) {
|
||||
let ang = PI * ((n % max_freq) as f64) / (time_res as f64);
|
||||
let ang_cos = ang.cos();
|
||||
let ang_sin = ang.sin();
|
||||
rot_step[(n, n)] = ang_cos;
|
||||
rot_step[(n+1, n)] = ang_sin;
|
||||
rot_step[(n, n+1)] = -ang_sin;
|
||||
rot_step[(n+1, n+1)] = ang_cos;
|
||||
}
|
||||
|
||||
// find the eigenvalues
|
||||
let mut eigvals = Vec::<OVector<Complex<f64>, Const<N>>>::with_capacity(time_res);
|
||||
unsafe { eigvals.set_len(time_res); }
|
||||
for t in 0..time_res {
|
||||
eigvals[t] = rand_mat.complex_eigenvalues();
|
||||
}
|
||||
eigvals
|
||||
}*/
|
Loading…
Reference in New Issue
Block a user