In fast_ica.rs, the exp function appears to have a bug in the exponentiation func, where the variable named exp stores
For
So shouldn't it be instead:
fn exp<A: Float>(x: &Array2<A>) -> (Array2<A>, Array1<A>) {
let exp = x.mapv(|x| (-x.powi(2) / A::cast(2.)).exp());
(
x * &exp,
(x.mapv(|x| A::cast(1.) - x.powi(2)) * &exp)
.mean_axis(Axis(1))
.unwrap(),
)
}