Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine

Re: [OT] Normalizing the return result of an exponential formula

by kennethk (Abbot)
on Apr 14, 2011 at 18:00 UTC ( #899499=note: print w/replies, xml ) Need Help??

in reply to [OT] Normalizing the return result of an exponential formula

Based on your post and discussion with BrowserUk, my first thought is a Gaussian - see Normal_distribution. The functional form gives you a width parameter and the normalization is known, so it will satisfy your importance and radius requirements. You could probably implement your boost parameter by modifying the exponent on x. Perhaps something like:
#!/usr/bin/perl -w use warnings; use strict; sub boost { my ($x, $importance, $radius, $drop) = @_; return $importance * exp( -($x/$radius)**$drop ); } my $imp = 1000; my $rad = 100; my $drop = 1; for (map 2**$_, 1..15) { my $boost = boost($_, $imp, $rad, $drop); my $bar = "@" x ($boost/$imp*50); printf "%6d %s %.1f\n", $_, $bar, $boost; } __END__ 2 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 980.2 4 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 960.8 8 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 923.1 16 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 852.1 32 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 726.1 64 @@@@@@@@@@@@@@@@@@@@@@@@@@ 527.3 128 @@@@@@@@@@@@@ 278.0 256 @@@ 77.3 512 6.0 1024 0.0 2048 0.0 4096 0.0 8192 0.0 16384 0.0 32768 0.0

Update: Fixed typo in call order.

Replies are listed 'Best First'.
Re^2: [OT] Normalizing the return result of an exponential formula
by clinton (Priest) on Apr 14, 2011 at 18:09 UTC
    kennethk that looks like just the ticket! Many thanks

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://899499]
[marioroy]: Is List::Util::XS a core Perl module?
[stevieb]: corelist List::Util::XS says "List::Util::XS was first released with perl v5.10.1"
[stevieb]: so yes, since v5.10.1 :)
[MidLifeXis]: According to [metaperl:// corelist], Perl 5.10.1
Lady_Aleena blurbles. One of her favorite modiles is now in "maintenance mode" in favor of a new fangled module.
[MidLifeXis]: D'oh. Slow out of the gate.
[marioroy]: Thanks stevieb, MidLifeXis.
[MidLifeXis]: corelist Typo. Wow. Time to go, fingers are malfunctioning.
[marioroy]: Thanks MidLifeXis. Leaned another thing about Perl. Wow.

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (10)
As of 2017-05-24 17:54 GMT
Find Nodes?
    Voting Booth?