# 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. |