fn find_node(&mut self, clr: &[f64; 3]) -> usize {
for i in 0..SPECIAL_NODES {
if &self.weights[i] == clr {
fn find_node(&mut self, clr: &[f64; 3]) -> usize {
for i in 0..SPECIAL_NODES {
if &self.weights[i] == clr {
pub fn learn(&mut self, src: &[Pixel]) {
let mut bias_radius = (256 / 8) << 6;
let alphadec = (30 + (self.factor - 1) / 3) as f64;
pub fn learn(&mut self, src: &[Pixel]) {
let mut bias_radius = (256 / 8) << 6;
let alphadec = (30 + (self.factor - 1) / 3) as f64;
let idx = self.find_node(&clr);
if idx >= SPECIAL_NODES {
let new_alpha = alphadec / initial_alpha;
let idx = self.find_node(&clr);
if idx >= SPECIAL_NODES {
let new_alpha = alphadec / initial_alpha;