removed some unnecessary code
This commit is contained in:
parent
d4cba8f76f
commit
bffc316f87
|
@ -118,7 +118,8 @@ impl<T:RealField, const D: usize> Rotation<T,D> where
|
|||
pub fn general_pow(self, t:T) -> Self {
|
||||
if D<=1 { return self; }
|
||||
|
||||
// println!("r:{}", self);
|
||||
println!("r:{}", self);
|
||||
println!("{}", self.clone().into_inner().hessenberg().unpack_h());
|
||||
|
||||
//taking the (real) schur form is guaranteed to produce a block-diagonal matrix
|
||||
//where each block is either a 1 (if there's no rotation in that axis) or a 2x2
|
||||
|
@ -165,56 +166,3 @@ impl<T:RealField, const D: usize> Rotation<T,D> where
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
|
||||
use super::*;
|
||||
use std::f64::consts::PI;
|
||||
|
||||
const EPS: f64 = 2E-10;
|
||||
|
||||
#[test]
|
||||
fn rot_pow() {
|
||||
|
||||
let r1 = Rotation2::new(0.0);
|
||||
let r2 = Rotation2::new(PI/4.0);
|
||||
let r3 = Rotation2::new(PI/2.0);
|
||||
|
||||
assert_relative_eq!(r1.general_pow(0.5), r1, epsilon=EPS);
|
||||
assert_relative_eq!(r3.general_pow(0.5), r2, epsilon=EPS);
|
||||
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn basis_rot() {
|
||||
|
||||
const D:usize = 4;
|
||||
|
||||
let basis_blades = |n| (0..n).flat_map(
|
||||
move |i| (i..n).map(move |j| (i,j))
|
||||
).filter(|(i,j)| i!=j);
|
||||
|
||||
for (i1,j1) in basis_blades(D) {
|
||||
|
||||
for (i2,j2) in basis_blades(D) {
|
||||
|
||||
if i1==i2 || j1==j2 || i1==j2 || j1==i2 { continue; }
|
||||
|
||||
let r1 = Rotation::<_,D>::basis_rot(i1,j1,PI/4.0) *
|
||||
Rotation::<_,D>::basis_rot(i2,j2,PI/4.0);
|
||||
let r2 = Rotation::<_,D>::basis_rot(i1,j1,PI/2.0) *
|
||||
Rotation::<_,D>::basis_rot(i2,j2,PI/2.0);
|
||||
|
||||
println!("{}{}",r1,r2);
|
||||
|
||||
assert_relative_eq!(r2.general_pow(0.5), r1, epsilon=EPS);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue