Added some comments about trigrams and quadgrams
This commit is contained in:
		
							parent
							
								
									5d64ac37c5
								
							
						
					
					
						commit
						5238e1ade8
					
				
							
								
								
									
										98
									
								
								varicode.cpp
									
									
									
									
									
								
							
							
						
						
									
										98
									
								
								varicode.cpp
									
									
									
									
									
								
							| @ -77,18 +77,25 @@ QRegularExpression directed_re("^" | ||||
| 
 | ||||
| QMap<QChar, QString> hufftable = { | ||||
|     // char   code                 weight
 | ||||
|     // 3 bits
 | ||||
|     { ' '    , "000"          }, // 1300
 | ||||
|     { 'E'    , "001"          }, // 1270.2
 | ||||
| 
 | ||||
|     // 4 bits
 | ||||
|     { 'T'    , "1100"         }, // 905.6
 | ||||
|     { 'A'    , "1010"         }, // 816.7
 | ||||
|     { 'O'    , "0111"         }, // 750.7
 | ||||
|     { 'I'    , "0101"         }, // 696.6
 | ||||
|     { 'N'    , "0100"         }, // 674.9
 | ||||
| 
 | ||||
|     // 5 bits
 | ||||
|     { 'S'    , "11111"        }, // 632.7
 | ||||
|     { 'H'    , "11110"        }, // 609.4
 | ||||
|     { 'R'    , "11101"        }, // 598.7
 | ||||
|     { 'D'    , "10111"        }, // 425.3
 | ||||
|     { 'L'    , "10110"        }, // 402.5
 | ||||
| 
 | ||||
|     // 6 bits
 | ||||
|     { 'C'    , "111001"       }, // 278.2
 | ||||
|     { 'U'    , "111000"       }, // 275.8
 | ||||
|     { 'M'    , "110111"       }, // 240.6
 | ||||
| @ -99,6 +106,8 @@ QMap<QChar, QString> hufftable = { | ||||
|     { 'Y'    , "011010"       }, // 197.4
 | ||||
|     { 'P'    , "011001"       }, // 192.9
 | ||||
|     { 'B'    , "011000"       }, // 149.2
 | ||||
| 
 | ||||
|     // 7 bits
 | ||||
|     { '\\'   , "0110111"      }, // 100     <- escape
 | ||||
|     { '.'    , "1000000"      }, // 100
 | ||||
|     { '0'    , "1000001"      }, // 100
 | ||||
| @ -114,11 +123,19 @@ QMap<QChar, QString> hufftable = { | ||||
|     { '?'    , "1001011"      }, // 100
 | ||||
|     { '/'    , "1101010"      }, // 100
 | ||||
|     { 'V'    , "0110110"      }, // 97.8
 | ||||
| 
 | ||||
|     // 8 bits
 | ||||
|     { 'K'    , "11010111"     }, // 77.2
 | ||||
| 
 | ||||
|     // 10 bits
 | ||||
|     { 'J'    , "1101011010"   }, // 15.3
 | ||||
|     { 'X'    , "1101011001"   }, // 15.0
 | ||||
| 
 | ||||
|     // 11 bits
 | ||||
|     { 'Z'    , "11010110110"  }, // 7.4
 | ||||
|     { ':'    , "11010110000"  }, // 5
 | ||||
| 
 | ||||
|     // 12 bits
 | ||||
|     { '+'    , "110101100011" }, // 5
 | ||||
|     { '-'    , "110101101110" }, // 5
 | ||||
|     { '!'    , "110101101111" }, // 5
 | ||||
| @ -130,6 +147,62 @@ QMap<QChar, QString> hufftable = { | ||||
|     */ | ||||
| }; | ||||
| 
 | ||||
| /*
 | ||||
| Most common trigrams: | ||||
| the = 12 bits | ||||
| and = 13 bits | ||||
| tha = 13 bits | ||||
| ent = 11 bits | ||||
| ing = 14 bits | ||||
| ion = 12 bits | ||||
| tio = 12 bits | ||||
| for = 15 bits ** | ||||
| nde = 12 bits | ||||
| has = 14 bits | ||||
| nce = 13 bits | ||||
| edt = 12 bits | ||||
| tis = 13 bits | ||||
| oft = 14 bits | ||||
| sth = 14 bits | ||||
| men = 13 bits | ||||
| her = 13 bits | ||||
| hat = 13 bits | ||||
| his = 14 bits | ||||
| ere = 11 bits | ||||
| ter = 12 bits | ||||
| was = 15 bits ** | ||||
| you = 16 bits ** | ||||
| ith = 13 bits | ||||
| ver = 15 bits ** | ||||
| all = 14 bits | ||||
| wit = 14 bits | ||||
| thi = 13 bits | ||||
| 
 | ||||
| quadgrams: | ||||
| that = 17 bits | ||||
| ther = 17 bits | ||||
| with = 18 bits | ||||
| tion = 16 bits | ||||
| here = 16 bits | ||||
| ould = 20 bits ** | ||||
| ight = 19 bits | ||||
| have = 19 bits | ||||
| hich = 20 bits ** | ||||
| whic = 21 bits ** | ||||
| this = 18 bits | ||||
| thin = 18 bits | ||||
| they = 18 bits | ||||
| atio = 16 bits | ||||
| ever = 18 bits | ||||
| from = 21 bits ** | ||||
| ough = 21 bits ** | ||||
| were = 17 bits | ||||
| hing = 18 bits | ||||
| ment = 17 bits | ||||
| 
 | ||||
| */ | ||||
| 
 | ||||
| 
 | ||||
| /*
 | ||||
| original: Space \\ ? / : - + ! | ||||
| needed: ^,&@#$%'"()<>|*[]{}=;_~` | ||||
| @ -161,8 +234,8 @@ QMap<QString, QChar> huffescapes = { | ||||
|     {  "\\0",   '`'  }, | ||||
| 
 | ||||
| #if 0 | ||||
|     // reserved <= 14 bits
 | ||||
|     {  "\\1",   '' }, | ||||
|     // 14 bits
 | ||||
|     {  "\\1",   ''  }, | ||||
|     {  "\\2",   ''  }, | ||||
|     {  "\\3",   ''  }, | ||||
|     {  "\\4",   ''  }, | ||||
| @ -174,7 +247,28 @@ QMap<QString, QChar> huffescapes = { | ||||
|     {  "\\?",   ''  }, | ||||
|     {  "\\/",   ''  }, | ||||
|     {  "\\V",   ''  }, | ||||
| 
 | ||||
|     // 15 bits
 | ||||
|     {  "\\K"  , ''  }, | ||||
| 
 | ||||
|     // 17 bits
 | ||||
|     {  "\\J"  , ''  }, | ||||
|     {  "\\X"  , ''  }, | ||||
| 
 | ||||
|     // 18 bits
 | ||||
|     {  "\\Z"  , ''  }, | ||||
|     {  "\\:"  , ''  }, | ||||
| 
 | ||||
|     // 19 bits
 | ||||
|     {  "\\+"  , ''  }, | ||||
|     {  "\\-"  , ''  }, | ||||
|     {  "\\!"  , ''  }, | ||||
| #endif | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| }; | ||||
| 
 | ||||
| QChar ESC = '\\';   // Escape char
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Jordan Sherer
						Jordan Sherer