uniform and normal distributed random floats. uniform is done the lame way for now
							parent
							
								
									fdab677ef5
								
							
						
					
					
						commit
						6ea5ccd881
					
				| 
						 | 
					@ -3,7 +3,7 @@
 | 
				
			||||||
USING: alien.c-types kernel math namespaces sequences
 | 
					USING: alien.c-types kernel math namespaces sequences
 | 
				
			||||||
io.backend io.binary combinators system vocabs.loader
 | 
					io.backend io.binary combinators system vocabs.loader
 | 
				
			||||||
summary math.bitwise byte-vectors fry byte-arrays
 | 
					summary math.bitwise byte-vectors fry byte-arrays
 | 
				
			||||||
math.ranges ;
 | 
					math.ranges math.constants math.functions ;
 | 
				
			||||||
IN: random
 | 
					IN: random
 | 
				
			||||||
 | 
					
 | 
				
			||||||
SYMBOL: system-random-generator
 | 
					SYMBOL: system-random-generator
 | 
				
			||||||
| 
						 | 
					@ -69,6 +69,17 @@ PRIVATE>
 | 
				
			||||||
: with-secure-random ( quot -- )
 | 
					: with-secure-random ( quot -- )
 | 
				
			||||||
    secure-random-generator get swap with-random ; inline
 | 
					    secure-random-generator get swap with-random ; inline
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					: uniform-random-float ( min max -- n )
 | 
				
			||||||
 | 
					    64 random-bits >float [ over - 2.0 -64 ^ * ] dip
 | 
				
			||||||
 | 
					    * + ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					: normal-random-float ( mean sigma -- n )
 | 
				
			||||||
 | 
					    0.0 1.0 uniform-random-float
 | 
				
			||||||
 | 
					    0.0 1.0 uniform-random-float
 | 
				
			||||||
 | 
					    [ 2 pi * * cos ]
 | 
				
			||||||
 | 
					    [ 1.0 swap - log -2.0 * sqrt ]
 | 
				
			||||||
 | 
					    bi* * * + ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
USE: vocabs.loader
 | 
					USE: vocabs.loader
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue