Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

Infinite Compression Explained

Name: FrozenVoid 2009-06-24 10:03

Because most of you don't read my blog,(i don't read random blogs as well) and have so much questions about what i'm doing with my programs, i'll write it here:
All of the programs(about 6 developed so far) despite wildly varying routines are targeted to generate large integers.
These integers are not files. Following transformations occurs:
encode
1.file is converted to large integer X(arbitrary length).
2.X multiplied by some scale factor e.g. 10e1000 to get a lower bound
2.(X+1)by some scale factor e.g. 10e1000 to get an uppper bound
3.a search is performed for finding numbers inside that range which are easy to represent via formula.
4.if number(s) found its saved to a file.
decode:
1.a formula is supplied with number(s) and filesize
2.the formula generates an integer/float, which is then divided by scale factor(e.g. 10e1000).
3.the first filesize bytes are then written to output.

the proces isn't perfected yet, because the formulas currently used in my programs either too slow to search or cuttoff at float precision(for non-integer parameters)
________________________________________________
http://xs135.xs.to/xs135/09042/av922.jpg
orbis terrarum delenda est

Name: Anonymous 2009-06-24 10:07

/prog/ - Invisible Poster's blog

Name: Anonymous 2009-06-24 10:23

>>1
float precision
rational arithmetic d00d

Name: Anonymous 2009-06-24 10:35

Because most of you don't read my blog,(i don't read random blogs as well) and have so much questions about what i'm doing with my programs, i'll write it here:
Questions from who? Let me understand, because we DON'T read your blog, you post your blogs content here, because we read /prog/, and therefore we'll also read your blogs content. Am I right on this?

file is converted to large integer X(arbitrary length).
By which method? Do you have arbitrary time and memory as well?

2.(X+1)by some scale factor e.g. 10e1000 to get an uppper bound

You have two steps labeled '2'. What is the meaning of this? What does this sentence say? I don't understand it. by some scalar factor what?

3.a search is performed for finding numbers inside that range which are easy to represent via formula.
You're going to search the representation of a number for known patterns then? This method can't be infinitely applied.


Sorry, you're wack. Your algorithm does not work, and it's certainly not 'infinite'.

Name: FrozenVoid 2009-06-24 10:38

>>3 floats can be used in intermediate representation:
suppose i'm compressing a byte(it impossible of course to compress anything that small)
its value is 77 the process is a follows
multiply 77*1000=77000=lowerbound
multiply (77+1)*1000=78000=upperbound
all the numbers between 77000.0000000000...1 and 77999.99999999.... are in the range
finding parameters for formula is next:
 formula e.g. 2^16.25 generates 77935.87748881833, 16.25 and 2(ommited if single power is used) are saved to file
the formula then calculates  77935.87748881833/10000=77.93587748881832 who first byte is 77 which is printed.
________________________________________
http://xs135.xs.to/xs135/09042/av922.jpg
orbis terrarum delenda est

Name: FrozenVoid 2009-06-24 10:43

>>4
[1]"By which method? Do you have arbitrary time and memory as well?"
each byte is converted to decimal and multiplied by 256^position in file.
In current programs it takes 1 second per 100 bytes.(there are libraries which can convert the file in 0.0000001 seconds but they don't work with my compilers, e.g. MPI and GMP)
[2]"You have two steps labeled '2'".
 its insignificant, as they both specify the range.
[3]"You're going to search the representation of a number for known patterns then?"
I'm searching for any numbers which fit inside the range. floats, integers,etc
The formula is to find any of the (infinitely many with appropriate scale factor) numbers which can be computed via formula.
 
 



_____________________________________
http://xs135.xs.to/xs135/09042/av922.jpg
orbis terrarum delenda est

Name: Anonymous 2009-06-24 10:46

>>5
suppose i'm compressing a byte(it impossible of course to compress anything that small)

Formal proof for this? Actually it is possible to compress a byte if the container is larger, like it is possible to compress a nibble if the container is a byte.

formula e.g. 2^16.25 generates 77935.87748881833, 16.25 and 2(ommited if single power is used) are saved to file

In which format is 16.25 represented with less bits than 77? If you don't realize the instant stupidity of your statement, I don't want to waste any more time with you.

Name: why so decimal? 2009-06-24 10:46

>>5
*1000
Just use *1024 and use shift operators.

Name: FrozenVoid 2009-06-24 10:50

>>8 I know about shifts, its decimal only example. regardless.
scale factor is just a determiner for range:
77 can be expanded to any (actually infinity many) ranges without storing any scale factor data.
e.g. 77= 770.0000.. to 779.9999...=7700.000.... to 7799.99999=etc
just the filesize is stored,as its the number of [first]bytes which are relevant.



_________________________________
http://xs135.xs.to/xs135/09042/av922.jpg
orbis terrarum delenda est

Name: Anonymous 2009-06-24 10:50

>>6
each byte is converted to decimal and multiplied by 256^position in file.

Bytes are converted to decimal? What? Do you store its decimal representation in a string then? What does it mean to convert a byte to decimal? Why do you have to do this to multiply the bytes value with 256^position? Do you know what you're talking about?

In current programs it takes 1 second per 100 bytes.

Irrelevant. This is a non-working algorithm, so you're either lying or you're mistakingly interpreting the results of your code as correct.

I'm searching for any numbers which fit inside the range. floats, integers,etc

I do understand the algorithm. You suppose there's a number k between i and j which can be represented by an expression smaller than the representation of the value v, which is i/d.

Formal proof for this? Your whole algorithm is based on this logic. Can you prove this is true? In fact, it's not. You can give up now, or waste more of your time.

Name: FrozenVoid 2009-06-24 11:02

>>10 I appreciate only constructive criticism. The programs are in development.
There is no "Formal proof", i'm just coding better search mechanisms and improving precision.
When the final program will be ready, it will be optimized and work seamlessly.
The current general representation of algorithms that i explore is >>1 and if you want details of past code
like that "1 second per 100 bytes". its at http://frozenvoid.blogspot.com/2009/06/static-search-with-float-power.html




_____________________________________
http://xs135.xs.to/xs135/09042/av922.jpg
orbis terrarum delenda est

Name: Anonymous 2009-06-24 11:04

0. v: positive integer
1. v = i/d
2. j = i + d
3. i <= k <= j
4. k -> v
5. size(k) <= size(v)


Is what you suggest. For all v?! This simple algorithm, you suppose, has never been thought by anyone else, it is now conceived by you, in a moment of epiphany after reading SICP no doubt, and now, after possessing such knowledge, you FOUND THE ALGORITHM THAT NOT ONLY REPRESENTS ANY NUMBER IN LESS BITS, BUT IT ALSO RUNS FAST! WOW! You also want us to accept it as is, and you don't provide any proof, formal or informal. IN FACT, YOU DON'T PROVIDE EVEN A HINT THAT YOU'VE DONE SUCH WORK OR THINKING.


A CROOK, YOU ARE.

Name: Anonymous 2009-06-24 11:08

>>11
I can't read that link! Get some damn formatting.

Name: Anonymous 2009-06-24 11:09

>>12
sure is gettan trolled in here

Name: Anonymous 2009-06-24 11:15

>>11
I appreciate only constructive criticism
I appreciate people who admit their mistakes.

The programs are in development.
Programs? There's many of them? What's the difference of each?

When the final program will be ready, it will be optimized and work seamlessly.
What optimization methods do you have in mind? *WHY* will it work seamlessly? Is this a guarantee coming from you or you actually have some evidence for this? You seem certain about something you have no proof of. That's a belief, a delusion. Remember when I said that some posts ago?

I looked at your code, and I can't read it. I don't plan to learn about a bignum library and reindent your code just to show you this which you're trying to do can't work. Plus, your code has many bugs and I'm wondering if you can write C without bugs at all.

Name: Anonymous 2009-06-24 11:59

>>13
>>15
EXPERT SEEING HIS POSTS

Name: Anonymous 2009-06-24 13:13

>>12,15

come on FV, share your wisdom with us, bump, for once.

Name: FrozenVoid 2009-06-24 13:52

I'm currently working on bytes_to_decimal_string conversion optimizations(old one was too slow).
the function is meant to convert file to integer in fastest possible time(so i'm not using mapm for it).


_________________________________________________
http://xs135.xs.to/xs135/09042/av922.jpg
orbis terrarum delenda est

Name: Anonymous 2009-06-24 14:05

>>18
First: why decimal, second: WHY A STRING

WHAT THE HELL IS WRONG WITH YOU!!!

Name: FrozenVoid 2009-06-24 14:19

MAPM library expects its input in decimal ASCII strings only(its output is decimal only too).
old method was to pass bytes and buffer positions to mapm functions to multiply them one by one(which is slow ).
I'm trying to find a method to convert to decimal faster. this is the old code:

char *inpbuf=malloc(filesize); fread(inpbuf,1,filesize,input); fclose(input);
M_APM decstr=m_apm_init();m_apm_set_string(decstr,filler);
if(DEBUG){printf(CONVERTMSG);}
//store multiplier,store current byte,current byte multiply,current decstr copy,
M_APM pow2store=m_apm_init();m_apm_set_string(pow2store,filler);
M_APM pow2base=m_apm_init();M_APM bytexpow=m_apm_init();m_apm_set_string(bytexpow,filler);
M_APM decstrcopy=m_apm_init();m_apm_set_string(decstrcopy,filler);
//byte multiplier (2^8)^(pos from end:0=1) first bit=1,
M_APM pow2exp=m_apm_init();m_apm_set_long(pow2exp,TWOLONG);
unsigned long int curbyte;unsigned long int curpow;unsigned long int pos;

for(pos=(filesize-1);pos;pos--){
curbyte=(unsigned long int)inpbuf[pos];
if(DEBUG){if(pos%CONVERTCHUNKSIZE==0){printf("Processed %u of %u bytes\n",filesize-pos,filesize);}}
//curent byte as int
m_apm_set_long(pow2base,curbyte);
//this is multiplier for current byte (2^8)^pos=2^(pos*8)
m_apm_integer_pow_nr(pow2store,pow2exp,8*((filesize-pos)-1));
m_apm_multiply(bytexpow, pow2base, pow2store);
m_apm_copy(decstrcopy,decstr);
m_apm_add(decstr,decstrcopy,bytexpow);}
printf("Processed %u of %u bytes\n",filesize-pos,filesize);
if(DEBUG){printf(CONVERTOK);}
m_apm_copy(decstrcopy,decstr);




_______________________________________________
http://xs135.xs.to/xs135/09042/av922.jpg
orbis terrarum delenda est

Name: Anonymous 2009-06-24 14:21

>>20
Fuck me. [code] tags please? Also, you use an inordinate number of superfluous curly braces.

Name: FrozenVoid 2009-06-24 14:25

>>21 I always use curly braces, be it C,JavaScript or Haskell



_______________________________
http://xs135.xs.to/xs135/09042/av922.jpg
orbis terrarum delenda est

Name: FrozenVoid 2009-06-24 14:31

If GMP or MPI compiled with my code, i would dedicate more time to search algorithms.


_____________________________________
http://xs135.xs.to/xs135/09042/av922.jpg
orbis terrarum delenda est

Name: Anonymous 2009-06-24 14:32

Troll or retard, you decide.

Name: Anonymous 2009-06-24 15:05

I'm interested in helping this along because I'd like to see what happens when the the pleasure of realizing finally comes.

Name: Anonymous 2009-06-24 15:07

"GRUNNER"

Name: FrozenVoid 2009-06-24 15:09

>>25
 Can you explained why DMC says this:
 
OPTLINK (R) for Win32  Release 8.00.1
Copyright (C) Digital Mars 1989-2004  All rights reserved.
D:\Program Files\dm\bin\..\lib\gmp.lib Offset 00000H Record Type 0021
 Error 138: Module or Dictionary corrupt


_____________________________________
http://xs135.xs.to/xs135/09042/av922.jpg
orbis terrarum delenda est

Name: Anonymous 2009-06-24 15:16

>>27
LOL WTF are you using DMC for? And Windows nonetheless! A Linux box is a programmer's box. The only programming worth being done in Windows is .NET programming; fuck MFC/Win32. If you're just writing a command-line program, you'd be better off using Linux and GCC.

Name: FrozenVoid 2009-06-24 15:21

>>28 Unfortunately i can't get GCC to work. The install seems corrupted.
"Linux box is a programmer's box". Programming is more of a hobby for me.

________________________________________________
http://xs135.xs.to/xs135/09042/av922.jpg
orbis terrarum delenda est

Name: FrozenVoid 2009-06-24 15:25

I like those aspects of programming which assists with hacking or provide immediate entertainment/utility(like e.g. data compression or screensavers). Programmers for sake of writing programs isn't appealing to me much.

______________________________________
http://xs135.xs.to/xs135/09042/av922.jpg
orbis terrarum delenda est

Name: Anonymous 2009-06-24 15:28

>>30
immediate entertainment [...] screensavers
You just made me laugh for the first time.

Name: FrozenVoid 2009-06-24 15:31

>>31 Especially those fractal screensavers. Click on the .scr file and watch.

__________________________________
http://xs135.xs.to/xs135/09042/av922.jpg
orbis terrarum delenda est

Name: Anonymous 2009-06-24 15:37

>>31
you should get out more

Name: Anonymous 2009-06-24 15:42

>>33
No, as in, that's the first time I found him funny.

Name: FrozenVoid 2009-06-24 16:17

Progress report : I'm trying to get into M_APM struct format to copy bytes there(these dirty hacks will probably crash), instead of slow conversions.



___________________________________
http://xs135.xs.to/xs135/09042/av922.jpg
orbis terrarum delenda est

Name: FrozenVoid 2009-06-24 16:27

Apparently M_APM.m_apm_data uses bytes->[x][x] digits conversion.i.e. 100 digits per byte. and will also require a conversion



______________________________________________
http://xs135.xs.to/xs135/09042/av922.jpg
orbis terrarum delenda est

Name: Anonymous 2009-06-24 16:29

>>30
hacking
You keep using that word.  I don't think you could hack you're way out of a wet paper dick.

Name: FrozenVoid 2009-06-24 16:30

something like [byte/10]:[byte%10] should work.brb.



___________________________________
http://xs135.xs.to/xs135/09042/av922.jpg
orbis terrarum delenda est

Name: Anonymous 2009-06-24 16:42

The cognitive dissonance I'm getting from this thread causes anxiety within me. It seems like such a silly idea, but I don't have the wherewithal to prove that this can't possibly work.

So I'll give you a month to try "wow" us with something. A working demo, benchmarks, a complete pen-and-paper encoding and decoding session, ANYTHING.

Thank you very much indeed.

Name: Anonymous 2009-06-24 16:45

To the OP: have you posted on comp.compression or comp.theory about this? Wouldn't it be a good idea to first check if the idea is sound, in the interest of not wasting time?

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List