math: some style cleanup.

db4
John Benediktsson 2013-03-21 08:54:14 -07:00
parent e6db6bb813
commit 684c2793e7
3 changed files with 13 additions and 11 deletions

View File

@ -11,7 +11,8 @@ TUPLE: range
<PRIVATE <PRIVATE
: sign/mod ( x y -- z w ) [ [ /i ] 2keep pick * - ] keep 0 < [ neg ] when ; inline : sign/mod ( x y -- z w )
[ [ /i ] 2keep pick * - ] keep 0 < [ neg ] when ; inline
PRIVATE> PRIVATE>
@ -22,7 +23,8 @@ PRIVATE>
M: range length ( seq -- n ) length>> ; inline M: range length ( seq -- n ) length>> ; inline
M: range nth-unsafe ( n range -- obj ) [ step>> * ] keep from>> + ; inline M: range nth-unsafe ( n range -- obj )
[ step>> * ] keep from>> + ; inline
! We want M\ tuple hashcode, not M\ sequence hashcode here! ! We want M\ tuple hashcode, not M\ sequence hashcode here!
! sequences hashcode is O(n) in number of elements ! sequences hashcode is O(n) in number of elements

View File

@ -59,17 +59,17 @@ HELP: sinc
{ $notes { $snippet "0 sinc" } " is the limit value of 1." } ; { $notes { $snippet "0 sinc" } " is the limit value of 1." } ;
HELP: linspace[a,b) HELP: linspace[a,b)
{ $values { "a" number } { "b" number } { "points" number } { "seq" sequence } } { $values { "a" number } { "b" number } { "length" integer } { "seq" sequence } }
{ $description "Return evenly spaced numbers over an interval " { $snippet "[a,b)" } "." } ; { $description "Return evenly spaced numbers over an interval " { $snippet "[a,b)" } "." } ;
HELP: linspace[a,b] HELP: linspace[a,b]
{ $values { "a" number } { "b" number } { "points" number } { "seq" sequence } } { $values { "a" number } { "b" number } { "length" integer } { "seq" sequence } }
{ $description "Return evenly spaced numbers over an interval " { $snippet "[a,b]" } "." } ; { $description "Return evenly spaced numbers over an interval " { $snippet "[a,b]" } "." } ;
HELP: logspace[a,b) HELP: logspace[a,b)
{ $values { "a" number } { "b" number } { "points" number } { "base" number } { "seq" sequence } } { $values { "a" number } { "b" number } { "length" integer } { "base" number } { "seq" sequence } }
{ $description "Return evenly spaced numbers on a log scaled interval " { $snippet "[base^a,base^b)" } "." } ; { $description "Return evenly spaced numbers on a log scaled interval " { $snippet "[base^a,base^b)" } "." } ;
HELP: logspace[a,b] HELP: logspace[a,b]
{ $values { "a" number } { "b" number } { "points" number } { "base" number } { "seq" sequence } } { $values { "a" number } { "b" number } { "length" integer } { "base" number } { "seq" sequence } }
{ $description "Return evenly spaced numbers on a log scaled interval " { $snippet "[base^a,base^b]" } "." } ; { $description "Return evenly spaced numbers on a log scaled interval " { $snippet "[base^a,base^b]" } "." } ;

View File

@ -202,23 +202,23 @@ PRIVATE>
<PRIVATE <PRIVATE
: steps ( from to point -- from to step ) : steps ( a b length -- a b step )
[ 2dup swap - ] dip / ; inline [ 2dup swap - ] dip / ; inline
PRIVATE> PRIVATE>
: linspace[a,b) ( a b points -- seq ) : linspace[a,b) ( a b length -- seq )
steps ,b) <range> ; steps ,b) <range> ;
: linspace[a,b] ( a b points -- seq ) : linspace[a,b] ( a b length -- seq )
{ {
{ [ dup 1 < ] [ 3drop { } ] } { [ dup 1 < ] [ 3drop { } ] }
{ [ dup 1 = ] [ 2drop 1array ] } { [ dup 1 = ] [ 2drop 1array ] }
[ 1 - steps <range> ] [ 1 - steps <range> ]
} cond ; } cond ;
: logspace[a,b) ( a b points base -- seq ) : logspace[a,b) ( a b length base -- seq )
[ linspace[a,b) ] dip swap n^v ; [ linspace[a,b) ] dip swap n^v ;
: logspace[a,b] ( a b points base -- seq ) : logspace[a,b] ( a b length base -- seq )
[ linspace[a,b] ] dip swap n^v ; [ linspace[a,b] ] dip swap n^v ;