Speed: 151-170 million cycles per frame render.
C Version 1.0 can be downloaded here http://pastebin.com/ET72dQM7
Latest JavaScript version(Acid 8) is @ http://pastebin.com/Y3gYPdVB
Comment/critique/improve/suggest more hacks,features and tricks to improve v1.0
Its not a direct port, but a reimplementation to capitalize on C features.
Name:
Anonymous2011-11-08 5:31
FrozenVoid: Attack of the Autism
FrozenVoid: How to become an Equation
FrozenVoid: Putting the "redefining" in redefining
FrozenVoid: Haven't had my coffee yet
FrozenVoid: It's only useful if you can reinvent it
FrozenVoid: Yiff Yaff
FrozenVoid: Happy Hanukkah
FrozenVoid: GC is shit
FrozenVoid: 'penis.exe'
FrozenVoid: Dog cocks taste funny
FrozenVoid: Jews are humans too
FrozenVoid: I want to talk to my lawyer
Name:
Anonymous2011-11-08 6:10
ITT: SteamingShit is retarded, as usual
Name:
Anonymous2011-11-08 6:25
inline unsigned long long rdtsc(){__asm{RDTSC}}
Great way to make your program not only rely on a specific compiler but also a small specific set of architectures.
for (i = 0; i < 1920; i++)
txcos[i] = cos (txarray[i]);
for (i = 0; i < 1920; i++)
txsin[i] = sin (txarray[i]);
for (i = 0; i < 1920; i++)
txcospi1[i] = cos (txarray[i] * cospi[1]);
for (i = 0; i < 1920; i++)
txcospi2[i] = cos (txarray[i] * cospi[2]);
for (i = 0; i < 1920; i++)
txcospi3[i] = cos (txarray[i] * cospi[3]);
for (i = 0, curx = 0, cury = 0; i < framx; i++)
{
txcosdiff[i] =
((txcos[curx] * framecos[cury] - txsin[curx] * framesin[cury]) +
7) * 0.5;
for (i = 0; i < 1080; i++)
tysin1[i] = sinpi[1] * tyarray[i];
for (i = 0; i < 1080; i++)
tysin2[i] = sinpi[2] * tyarray[i];
for (i = 0; i < 1080; i++)
tysin3[i] = sinpi[3] * tyarray[i];
for (i = 0; i < 1080; i++)
tysin1cos[i] = cos (tysin1[i]);
for (i = 0; i < 1080; i++)
tysin2cos[i] = cos (tysin2[i]);
for (i = 0; i < 1080; i++)
tysin3cos[i] = cos (tysin3[i]);
for (i = 0; i < 1080; i++)
tysin1sin[i] = sin (tysin1[i]);
for (i = 0; i < 1080; i++)
tysin2sin[i] = sin (tysin2[i]);
for (i = 0; i < 1080; i++)
tysin3sin[i] = sin (tysin3[i]);
unsigned int globs, globa;
unsigned int nsize = 1080 * 1920;
>>123
Also known as "almost every desktop in existence since 1993"
Name:
Anonymous2011-11-08 15:16
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
#include <float.h>
#include <math.h>
#include <limits.h>
#include <string.h>
#include <stdarg.h>
#include <memory.h>
#include <time.h>
#define A default
#define A2 atan2
#define Ab abs
#define Ac acos
#define Ae atexit
#define Af atof
#define Ai atoi
#define Al atol
#define Am asctime
#define Ao abort
#define Ar assert
#define As asin
#define At atan
#define B break
#define Bs bsearch
#define C case
#define Ca calloc
#define Ce ceil
#define Ch cosh
#define Cl clock
#define Ci ctime
#define Cm strcmp
#define Cn strcspn
#define Co cos
#define Cp strcpy
#define Cs strcoll
#define Ct strcat
#define D do
#define Df difftime
#define Di div
#define E else
#define Ep exp
#define Ex exit
#define F for
#define F10 long double
#define F2 short float
#define F4 float
#define F8 double
#define Fa fabs
#define Fc fclose
#define Fd fread
#define Fe fgets
#define Ff fflush
#define Fg fgetc
#define Fi fprintf
#define Fk fseek
#define Fl floor
#define Fm ftell
#define Fo fopen
#define Fp fgetpos
#define Fq freopen
#define Fr free
#define Fs fscanf
#define Ft fputs
#define Fu fputc
#define Fv ferror
#define Fw fwrite
#define Fx frexp
#define Fy feof
#define Fz fsetpos
#define G goto
#define Gc getc
#define Ge gets
#define Gh getchar
#define Gm gmtime
#define Gn getenv
#define I if
#define Ia itoa
#define Ib isblank
#define Ic iscntrl
#define Id isdigit
#define Ig isgraph
#define Ih isalpha
#define Il islower
#define In isalnum
#define Ip isprint
#define Is isspace
#define It ispunct
#define Iu isupper
#define Ix isxdigit
#define K enum
#define L0 log10
#define La ltoa
#define Lb labs
#define Ld ldiv
#define Le strlen
#define Lj longjmp
#define Ln(x) sizeof(x)/sizeof((x)[0])
#define Lo log
#define Lt localtime
#define Lx ldexp
#define M int main(int argc, char **argv)
#define Ma malloc
#define Mc memcpy
#define Mf modf
#define Mh memchr
#define Mm memcmp
#define Mo memmove
#define Ms memset
#define Mt mktime
#define N sizeof
#define Nc strncat
#define Nm strncmp
#define Np trncpy
#define O const
#define Od strtod
#define Ol strtol
#define P printf
#define Pb strpbrk
#define Pc putc
#define Pe perror
#define Ph putchar
#define Pu puts
#define Pw pow
#define Q register
#define Qs qsort
#define R return
#define R0 return 0
#define Ra realloc
#define Rc strrchr
#define Rd rand
#define Re remove
#define Rn rename
#define Rr strerror
#define Rs strspn
#define Rw rewind
#define S switch
#define S1 signed char
#define S2 signed short
#define S4 signed int
#define S8 signed long long
#define Sb setbuf
#define Sc strchr
#define Sd srand
#define Sh sinh
#define Si sin
#define Sj setjmp
#define Sm strftime
#define Sp sprintf
#define Sr sqrt
#define Ss sscanf
#define St strstr
#define Su struct
#define Sv setvbuf
#define Sy system
#define T continue
#define Ta tan
#define Th tanh
#define Ti time
#define Tl tolower
#define Tm tmpfile
#define Tn tmpnam
#define To strtok
#define Tu toupper
#define U union
#define U1 unsigned char
#define U2 unsigned short
#define U4 unsigned int
#define U8 unsigned long long
#define Ug ungetc
#define Ul strtoul
#define V void
#define W while
#define Wp wprintf
#define Ws wscanf
#define X static
#define Xf strxfrm
#define Y typedef
#define Z scanf
//=======Redraw new frame
for(currframe=0;currframe<MAXFRAMES;currframe++){
//(-a)<<(a<0)+ a<<(a>0)
c=STDOFFSET;cury=0;globs=0;;
fcurcos=framecos[currframe];
fcursin=framesin[currframe];
starttime=rdtsc();
for(y=0;y<height;y++){ //y+=(y<h)
for(x=0,globa=0;x<width;x++){// x+=(x<w);
s=(prodadd[globs]*fcurcos)-(prodsub[globs++]*fcursin)+txcosdiff[(globa)+currframe];
//(abs(temp1+(temp1&1)-r1)*maxcolor)
shaf=(s+magc);//shaf== int(floored+magc)
shaf-=magc;//shaf=int -magc=floor(s)
s=fabs(s-shaf);//s= s-floor(s); return fraction
//s-((*shf)&1)
s=s>1?2-s:s;
s=(s*0xff)+maga;//maga =magc without bias(TruncToInt)
bitmap[c++]=*schar;globa+=MAXFRAMES;
}}
//write file to output. directory
endtime=rdtsc();avg+=endtime-starttime;
printf("Created frame:%d in %llu cycles \n",currframe,endtime-starttime);
sprintf(filename,"%s/frame%d.bmp",FRAMEDIR,currframe);
FILE* cfile=fopen(filename,"wb");
if(!cfile){perror("File error");}
fwrite(bitmap,1,FILESIZE,cfile);fclose(cfile);}
printf("\nAverage frame: in %llu cycles\n",avg/MAXFRAMES);
elapse(Program total run);}
/*
batch file used for this file:
==================
@echo off
..\dmc -Jm -v2 -ff -o+all quasi.c
quasi
copy quasi.c archivedq\%random%%random%%random%quasi.c
rem requires imageMagick installed "convert imagename" is the
rem which is converting bitmap to gifs(use your own path).
rem "C:\Program Files\ImageMagick-6.7.3-Q8\convert.exe" -coalesce -adjoin -delay 25 -compress LZW -quality 10 frames\fr* webanim.gif
rem reference frame for correct render(!not exactly acid 8.js since it uses other cos/sin);
fc/b frames\Ref.bmp frames\frame0.bmp|more
*/
Name:
Anonymous2011-11-09 7:21
wtf why are you obfuscating it you retard
#define v0 void
dumbest shit ive ever seen
Name:
FrozenAutist!BYmn6QVNCw2011-11-09 7:59
/* i'm going to be rich and famous */
#define v01 long int*
/* all the bitches i can fuck */
#define ab83 unsigned double long
/* it feels great to reinvent things */
#define _br5t58 long long
/* have you considered giving me all of your moniez, pl0x */
#define HYPERSTRUCT_ALAS(x) typedef struct x {
/* why are you still using LUNIX, or WINDO$E (oh sheeit that was clever i used a dollar sign to show how much i micro$oft dislike (hahahahaGAGAGAGA again i'm so clever!)) */
#define HYPERSTRUCT_MAZELTOV(x) } x;