math: some style cleanup.
							parent
							
								
									e6db6bb813
								
							
						
					
					
						commit
						684c2793e7
					
				| 
						 | 
				
			
			@ -11,7 +11,8 @@ TUPLE: range
 | 
			
		|||
 | 
			
		||||
<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>
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -22,7 +23,8 @@ PRIVATE>
 | 
			
		|||
 | 
			
		||||
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!
 | 
			
		||||
! sequences hashcode is O(n) in number of elements
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -59,17 +59,17 @@ HELP: sinc
 | 
			
		|||
{ $notes { $snippet "0 sinc" } " is the limit value of 1." } ;
 | 
			
		||||
 | 
			
		||||
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)" } "." } ;
 | 
			
		||||
 | 
			
		||||
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]" } "." } ;
 | 
			
		||||
 | 
			
		||||
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)" } "." } ;
 | 
			
		||||
 | 
			
		||||
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]" } "." } ;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -202,23 +202,23 @@ PRIVATE>
 | 
			
		|||
 | 
			
		||||
<PRIVATE
 | 
			
		||||
 | 
			
		||||
: steps ( from to point -- from to step )
 | 
			
		||||
: steps ( a b length -- a b step )
 | 
			
		||||
    [ 2dup swap - ] dip / ; inline
 | 
			
		||||
 | 
			
		||||
PRIVATE>
 | 
			
		||||
 | 
			
		||||
: linspace[a,b) ( a b points -- seq )
 | 
			
		||||
: linspace[a,b) ( a b length -- seq )
 | 
			
		||||
    steps ,b) <range> ;
 | 
			
		||||
 | 
			
		||||
: linspace[a,b] ( a b points -- seq )
 | 
			
		||||
: linspace[a,b] ( a b length -- seq )
 | 
			
		||||
    {
 | 
			
		||||
        { [ dup 1 < ] [ 3drop { } ] }
 | 
			
		||||
        { [ dup 1 = ] [ 2drop 1array ] }
 | 
			
		||||
        [ 1 - steps <range> ]
 | 
			
		||||
    } cond ;
 | 
			
		||||
 | 
			
		||||
: logspace[a,b) ( a b points base -- seq )
 | 
			
		||||
: logspace[a,b) ( a b length base -- seq )
 | 
			
		||||
    [ 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 ;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue