Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
insensatus [2013/03/19 12:59] zashi |
insensatus [2016/03/07 18:07] zashi |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | {{tag>software c}} | ||
+ | ====== Insensatus ====== | ||
+ | Insensatus is the codename for the irrational compression algorithm. Insensatus is a compression algorithm that matches the nigh-random byte strings of well compressed data to subsections of irrational numbers. | ||
+ | |||
+ | The core idea is that irrational numbers are actually random and given enough time and computational power all strings can be represented with 3 numbers: the base, number we're taking the squareroot of; the offset, where to start looking in the number; and the length, how many digits/characters to use from the irrational number. | ||
+ | |||
+ | The trick is to find these numbers for a string and have the total space required to store the numbers be less than the total space of the string being compressed. | ||
+ | |||
+ | ===== Implementation/Design Challenges ===== | ||
+ | |||
+ | The C language's doubles are not large nor precise enough to actually do the calculations required, plus I need to convert from base-10 to base-256. Thus I decided to write my own base-256 library. |