Algorithm::FuzzyCmeans::Distance::Euclid - Algorithm::FuzzyCmeans::Distance::Euclid documentation


Algorithm-FuzzyCmeans documentation Contained in the Algorithm-FuzzyCmeans distribution.

Index


Code Index:

NAME

Top

Algorithm::FuzzyCmeans::Distance::Euclicd

DESCRIPTION

Top

Calculate the euclid distance between input vectors.

AUTHOR

Top

Mizuki Fujisawa <fujisawa@bayon.cc>

LICENSE

Top

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.


Algorithm-FuzzyCmeans documentation Contained in the Algorithm-FuzzyCmeans distribution.

package Algorithm::FuzzyCmeans::Distance::Euclid;

use strict;
use warnings;
use base qw(Algorithm::FuzzyCmeans::Distance);

sub distance {
    my ($self, $vec1, $vec2) = @_;
    my %keys;
    map { $keys{$_} = 1 } keys %{ $vec1 };
    map { $keys{$_} = 1 } keys %{ $vec2 };
    my $dist;
    foreach my $key (keys %keys) {
        my $val1 = $vec1->{$key} || 0;
        my $val2 = $vec2->{$key} || 0;
        $dist += ($val1 - $val2) ** 2;
    }
    return $dist;
}

1;

__END__