Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
PerlMonks  

Re^2: sub as mathematical function

by Anonymous Monk
on Sep 04, 2019 at 12:29 UTC ( #11105582=note: print w/replies, xml ) Need Help??


in reply to Re: sub as mathematical function
in thread sub as mathematical function

min(int(9*$x),8) is perfect thanks all :-)

Replies are listed 'Best First'.
Re^3: sub as mathematical function
by LanX (Archbishop) on Sep 04, 2019 at 13:08 UTC
    Oh ... off by max, again! ;-)

    update

    I wouldn't count on correct input though, and additional max seems safe

    DB<5> print $_,":",max(min(int(9*$_/18),8),0),"\n" for -2..20 -2:0 -1:0 0:0 1:0 2:1 3:1 4:2 5:2 6:3 7:3 8:4 9:4 10:5 11:5 12:6 13:6 14:7 15:7 16:8 17:8 18:8 19:8 20:8

    Cheers Rolf
    (addicted to the Perl Programming Language :)
    Wikisyntax for the Monastery FootballPerl is like chess, only without the dice

      The subexpression 9*X/18 == (9x)/18 == x/2. Therefore, max(min(int($_ / 2), 8, 0);


      Dave

        The core of the formula was 9*$v I was just trying to cover all edges cases for $v in a one liner.

        Cheers Rolf
        (addicted to the Perl Programming Language :)
        Wikisyntax for the Monastery FootballPerl is like chess, only without the dice

Re^3: sub as mathematical function
by rsFalse (Friar) on Sep 04, 2019 at 17:06 UTC
    >> min(int(9*$x),8)

    When number of intervals vary (not only 9), then this looks more general:
    my $intervals = 9; min( int( $intervals * $x ), $intervals - 1 )
    or:
    my $intervals = 9; int( $intervals * $x ) - int $x

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://11105582]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (9)
As of 2019-10-22 13:37 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Notices?