cossin: tighten test
This commit is contained in:
parent
1805961d5d
commit
cd289687ea
|
@ -11,7 +11,7 @@ include!(concat!(env!("OUT_DIR"), "/cossin_table.rs"));
|
||||||
///
|
///
|
||||||
/// # Returns
|
/// # Returns
|
||||||
/// The cos and sin values of the provided phase as a `(i32, i32)`
|
/// The cos and sin values of the provided phase as a `(i32, i32)`
|
||||||
/// tuple. With a 7-bit deep LUT there is 1e-5 max and 6e-8 RMS error
|
/// tuple. With a 7-bit deep LUT there is 9e-6 max and 6e-8 RMS error
|
||||||
/// in each quadrature over 20 bit phase.
|
/// in each quadrature over 20 bit phase.
|
||||||
pub fn cossin(phase: i32) -> (i32, i32) {
|
pub fn cossin(phase: i32) -> (i32, i32) {
|
||||||
// Phase bits excluding the three highest MSB
|
// Phase bits excluding the three highest MSB
|
||||||
|
@ -81,7 +81,7 @@ mod tests {
|
||||||
#[test]
|
#[test]
|
||||||
fn cossin_error_max_rms_all_phase() {
|
fn cossin_error_max_rms_all_phase() {
|
||||||
// Constant amplitude error due to LUT data range.
|
// Constant amplitude error due to LUT data range.
|
||||||
const AMPLITUDE: f64 = ((1i64 << 31) - (1i64 << 15)) as _;
|
const AMPLITUDE: f64 = (1i64 << 31) as f64 - 0.85 * (1i64 << 15) as f64;
|
||||||
const MAX_PHASE: f64 = (1i64 << 32) as _;
|
const MAX_PHASE: f64 = (1i64 << 32) as _;
|
||||||
let mut rms_err = (0f64, 0f64);
|
let mut rms_err = (0f64, 0f64);
|
||||||
let mut sum_err = (0f64, 0f64);
|
let mut sum_err = (0f64, 0f64);
|
||||||
|
@ -144,7 +144,7 @@ mod tests {
|
||||||
assert!(rms_err.0.sqrt() < 6e-8);
|
assert!(rms_err.0.sqrt() < 6e-8);
|
||||||
assert!(rms_err.1.sqrt() < 6e-8);
|
assert!(rms_err.1.sqrt() < 6e-8);
|
||||||
|
|
||||||
assert!(max_err.0 < 1.1e-5);
|
assert!(max_err.0 < 9e-6);
|
||||||
assert!(max_err.1 < 1.1e-5);
|
assert!(max_err.1 < 9e-6);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue