A Prime Question
Hey guys, thought I’d quickly dump an application i’m working on that graphs primes as a novelty wave (like mckennas time wave zero I ching hexagram mathematics).
It’s really a hoot. And it wil be interesting to analyse the patterns of hexagramical novelty in primes further. (block comparison) bit comparison, nth comparison, volume graph comparison. wave comparison.. even considering graphing the grid as a wave form to try and find any resonances. Anyways, lots of odd ideas and stuff.. so on with the code. The intellectual, security, as well as social implications of predicting primes or graphing the novelty of them could very well be the most undervalued cryptography technology there ever could, would or will be.
very early days yet, this isn’t even my first alpha, just a play in SDL DLL to see what it can do for prime calcs in C++. we’ll see.

#include <stdlib.h>
#if defined(_MSC_VER)
#include “SDL.h”
#else
#include “SDL/SDL.h”
#endif
#include<math.h>
#include<iostream.h>int primes[] = {2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,
103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,
227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,
353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,
487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,
631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,
773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,
937,941,947,953,967,971,977,983,991,997,1009,1013,1019,1021,1031,1033,1039,1049,1051,
1061,1063,1069,1087,1091,1093,1097,1103,1109,1117,1123,1129,1151,1153,1163,1171,1181,
1187,1193,1201,1213,1217,1223,1229,1231,1237,1249,1259,1277,1279,1283,1289,1291,1297,
1301,1303,1307,1319,1321,1327,1361,1367,1373,1381,1399,1409,1423,1427,1429,1433,1439,
1447,1451,1453,1459,1471,1481,1483,1487,1489,1493,1499,1511,1523,1531,1543,1549,1553,
1559,1567,1571,1579,1583,1597,1601,1607,1609,1613,1619,1621,1627,1637,1657,1663,1667,
1669,1693,1697,1699,1709,1721,1723,1733,1741,1747,1753,1759,1777,1783,1787,1789,1801,
1811,1823,1831,1847,1861,1867,1871,1873,1877,1879,1889,1901,1907,1913,1931,1933,1949,1951,
1973,1979,1987,1993,1997,1999,2003,2011,2017,2027,2029,2039,2053,2063,2069,2081,2083,
2087,2089,2099,2111,2113,2129,2131,2137,2141,2143,2153,2161,2179,2203,2207,2213,2221,
2237,2239,2243,2251,2267,2269,2273,2281,2287,2293,2297,2309,2311,2333,2339,2341};
SDL_Surface *screen;
// sprites tutorial but im using DNA sprite
/*
const unsigned char sprite[] =
{0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0};void drawsprite(int x, int y, unsigned int color)
{
int i, j, c, yofs;
yofs = y * (screen->pitch / 4) + x;
for (i = 0, c = 0; i < 16; i++)
{
for (j = 0; j < 16; j++, c++)
{
if (sprite[c])
{
((unsigned int*)screen->pixels)[yofs + j] = color;
}
}
yofs += (screen->pitch / 4);
}
}
*/void putpixel(int x, int y, int color)
{
unsigned int *ptr = (unsigned int*)screen->pixels;
int lineoffset = y * (screen->pitch / 4);
ptr[lineoffset + x] = color;
}int nextprime(int nth)
{
return primes[nth];
}void render()
{
// Lock surface if needed
if (SDL_MUSTLOCK(screen))
if (SDL_LockSurface(screen) < 0)
return;// Ask SDL for the time in milliseconds
int tick = SDL_GetTicks();// Declare a couple of variables
int i, j, yofs, ofs;// Draw to screen
/*
yofs = 0;
for (i = 0; i < 480; i++)
{
for (j = 0, ofs = yofs; j < 640; j++, ofs++)
{
((unsigned int*)screen->pixels)[ofs] = i * i + j * j + tick;
}
yofs += screen->pitch / 4;
}
*/// grid creation
for (int z=0; z < 768 ; z=z+5)
{for (int y = 0 ; y < 1024 ; y=y+5)
{
putpixel(y, z, 0xff0000);
}}
/* draw lines in graph
for (int n=1; n < 480; n++)
{
putpixel(2, n, 0xffffff);
}
*/// draw the first 10 primes
/*putpixel(1,2, 0xffffff);
putpixel(2,3, 0xffffff);
putpixel(3,5, 0xffffff);
putpixel(4,7, 0xffffff);
putpixel(5,11, 0xffffff);
putpixel(6,13, 0xffffff);
*/// grab nth rotation and the nextprime for the first 10 primes
// x axis = n , y axis = prime
for (int n=0; n < 135; n++)
{putpixel(n,nextprime(n),0xffffff);
}// method 2 and an idea on ‘block correlation’
// measure the block correlation between the previous n prime 0-125 to u prime 125-200 , and comparing block starting at
// correlation axis (i.e. x,125px)(correlate correction for nextprime(correlation)
// x axis = u(aka n), y axis= prime)
int correlation;
for (int u=125; u<200; u++)
{
correlation = u - 125;
putpixel(nextprime(correlation),u,0xffffff);
}// Unlock if needed
if (SDL_MUSTLOCK(screen))
SDL_UnlockSurface(screen);// Tell SDL to update the whole screen
SDL_UpdateRect(screen, 0, 0, 1024, 768);
}// Entry point
int main(int argc, char *argv[])
{
// Initialize SDL’s subsystems - in this case, only video.
if ( SDL_Init(SDL_INIT_VIDEO) < 0 )
{
fprintf(stderr, “Unable to init SDL: %sn”, SDL_GetError());
exit(1);
}// Register SDL_Quit to be called at exit; makes sure things are
// cleaned up when we quit.
atexit(SDL_Quit);// Attempt to create a 640×480 window with 32bit pixels.
screen = SDL_SetVideoMode(1024, 768, 32, SDL_SWSURFACE);// If we fail, return error.
if ( screen == NULL )
{
fprintf(stderr, “Unable to set 640×480 video: %sn”, SDL_GetError());
exit(1);
}// Main loop: loop forever.
while (1)
{
// Render stuff
render();// Poll for events, and handle the ones we care about.
SDL_Event event;
while (SDL_PollEvent(&event))
{
switch (event.type)
{
case SDL_KEYDOWN:
break;
case SDL_KEYUP:
// If escape is pressed, return (and thus, quit)
if (event.key.keysym.sym == SDLK_ESCAPE)
return 0;
break;
case SDL_QUIT:
return(0);
}
}
}
return 0;
}