X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=lib%2FSub%2FNary.pm;h=d5a96452a1418f7a0e3382d3e9c32d7ae33151f9;hb=462a647c8b471a029c5dc2527bd4b78e64d93cee;hp=6dc1820a15ae53e3b170fbbb64ebf2f0d9e1f7f8;hpb=2edec20dc456a6756846bbac264a99b9d6892848;p=perl%2Fmodules%2FSub-Nary.git diff --git a/lib/Sub/Nary.pm b/lib/Sub/Nary.pm index 6dc1820..d5a9645 100644 --- a/lib/Sub/Nary.pm +++ b/lib/Sub/Nary.pm @@ -178,41 +178,6 @@ sub name ($) { $n eq 'null' ? substr(ppname($_[0]->targ), 3) : $n } -sub normalize ($) { - my $r = $_[0]; - return unless defined $r; - return { 0 => 1 } unless keys %$r; - my $total = count $r; - return { map { $_ => $r->{$_} / $total } keys %$r }; -} - -sub scale { - my ($c, $r) = @_; - return unless defined $r; - return (ref $r) ? { map { $_ => $r->{$_} * $c } keys %$r } : { $r => $c }; -} - -sub combine { - reduce {{ - my %res; - my $la = delete $a->{list}; - my $lb = delete $b->{list}; - if (defined $la || defined $lb) { - $la ||= 0; - $lb ||= 0; - $res{list} = $la + $lb - $la * $lb; - } - while (my ($ka, $va) = each %$a) { - $ka = int $ka; - while (my ($kb, $vb) = each %$b) { - my $key = $ka + int $kb; - $res{$key} += $va * $vb; - } - } - \%res - }} map { (ref) ? $_ : { $_ => 1 } } grep defined, @_; -} - sub power { my ($p, $n, $c) = @_; return unless defined $p;