Estou tentando comparar dois ndarray::Array1<Complex64>
usando a approx
caixa. Posso comparar duas f64
matrizes sem problemas:
#[test]
fn repro() {
let a = ndarray::array![1.0, 0.0];
let b = ndarray::array![1.0, 0.0];
assert!(a.abs_diff_eq(&b, 0.1));
}
mas, durante toda a minha vida, não posso comparar duas matrizes complexas:
#[test]
fn repro() {
let a = ndarray::array![
Complex64::new(1.0, 0.0)
];
let b = ndarray::array![
Complex64::new(1.0, 0.0)
];
assert!(a.abs_diff_eq(&b, 0.1));
}
com a mensagem de erro
--> src/lib.rs:85:31
|
85 | assert!(a.abs_diff_eq(&b, 0.1));
| ----------- ^^^^^^ the trait `approx::abs_diff_eq::AbsDiffEq<_>` is not implemented for `Complex<f64>`
| |
| required by a bound introduced by this call
Mas eu sei que essa característica está de fato implementada paraComplex<T>
e o recurso num-complex
está habilitado.
o que estou perdendo?
Acho que você está usando o recurso
"approx"
parandarray
. Você quer"approx-0_5"
.