forked from personal/squiggle.c
clean scratchpad, start quickselect
This commit is contained in:
parent
65007a6304
commit
4a24a6b935
|
@ -1,27 +0,0 @@
|
|||
|
||||
uint64_t xorshift64(uint64_t* seed)
|
||||
{
|
||||
// Algorithm "xor" from p. 4 of Marsaglia, "Xorshift RNGs"
|
||||
// <https://en.wikipedia.org/wiki/Xorshift>
|
||||
uint64_t x = *seed;
|
||||
x ^= x << 13;
|
||||
x ^= x >> 7;
|
||||
x ^= x << 17;
|
||||
return *seed = x;
|
||||
}
|
||||
|
||||
double sample_unit_uniform(uint64_t* seed)
|
||||
{
|
||||
// samples uniform from [0,1] interval.
|
||||
return ((double)xorshift64(seed)) / ((double)UINT64_MAX);
|
||||
}
|
||||
|
||||
double sample_unit_normal(uint64_t* seed)
|
||||
{
|
||||
// // See: <https://en.wikipedia.org/wiki/Box%E2%80%93Muller_transform>
|
||||
double u1 = sample_unit_uniform(seed);
|
||||
double u2 = sample_unit_uniform(seed);
|
||||
double z = sqrtf(-2.0 * log(u1)) * sin(2 * PI * u2);
|
||||
return z;
|
||||
}
|
||||
|
5
scratchpad/quickselect/makefile
Normal file
5
scratchpad/quickselect/makefile
Normal file
|
@ -0,0 +1,5 @@
|
|||
build:
|
||||
gcc quickselect.c -lm -o quickselect
|
||||
|
||||
run:
|
||||
./quickselect
|
BIN
scratchpad/quickselect/quickselect
Executable file
BIN
scratchpad/quickselect/quickselect
Executable file
Binary file not shown.
8
scratchpad/quickselect/quickselect.c
Normal file
8
scratchpad/quickselect/quickselect.c
Normal file
|
@ -0,0 +1,8 @@
|
|||
#include <math.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
int main(){
|
||||
printf("Hello world!\n");
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue
Block a user