#include <vector>
#include <string>
Ir al código fuente de este archivo.
Namespaces | |
namespace | Mt77 |
Definiciones | |
#define | Eliass_hpp |
Funciones | |
unsigned int | techo_logb2 (unsigned long x) |
unsigned int | piso_logb2 (unsigned int x) |
unsigned long | pot2 (unsigned int e) |
string | bin2ascii (string bs) |
string | vb2ascii (vector< bool > &vb) |
string | vb2bin (vector< bool > &vb) |
string | vb2str (vector< bool > &vb) |
vector< bool > | str2vb (string s) |
void | codifica_unario (unsigned long x, vector< bool > &vb) |
unsigned long | decodifica_unario (vector< bool > &vb) |
void | pone_un_entero (unsigned long x, unsigned int nbits, vector< bool > &vb) |
unsigned long | toma_un_entero (unsigned int nbits, vector< bool > &vb) |
void | codifica_elias_gama (unsigned int x, vector< bool > &vb) |
unsigned long | decodifica_elias_gama (vector< bool > &vb) |
unsigned long | lee_elias_gama (std::istream &is) throw (string) |
unsigned long | lee_elias_gama2 (std::istream &is) throw (string) |
void | escribe_elias_gama (std::ostream &os, unsigned int n) |
void | escribe_elias_gama2 (std::ostream &os, unsigned int n) |
unsigned int | long_elias_gama (unsigned long n) |
void | codifica_binaria_minima (unsigned long x, unsigned int n, vector< bool > &vb) |
unsigned long | decodifica_binaria_minima (unsigned int n, vector< bool > &vb) |
Tomados de: Compression and coding algorithms Escrito por Alistair Moffat, Andrew Turpin
Definición en el archivo Elias.hpp.
string bin2ascii | ( | string | bs | ) |
Representación de un binario como cadena imprimible de unos y ceros con espacios cada 8 digitos
void codifica_binaria_minima | ( | unsigned long | x, | |
unsigned int | n, | |||
vector< bool > & | vb | |||
) |
Convierte un entero menor o igual a n a su codificación binaria mínima
Definición en la línea 663 del archivo Elias.cpp.
Hace referencia a ASSERT, pone_un_entero(), pot2(), y techo_logb2().
Referenciado por EliasCasoPrueba::prueba_codifica_binaria_minima().
void codifica_elias_gama | ( | unsigned int | x, | |
vector< bool > & | vb | |||
) |
Convierte x a su codificación Gama de Elias.
Definición en la línea 283 del archivo Elias.cpp.
Hace referencia a ASSERT, codifica_unario(), piso_logb2(), pone_un_entero(), y pot2().
Referenciado por escribe_elias_gama(), y EliasCasoPrueba::prueba_codifica_elias_gama().
void codifica_unario | ( | unsigned long | x, | |
vector< bool > & | vb | |||
) |
Codifica entero largo x en unario como vector de booleanos
Definición en la línea 206 del archivo Elias.cpp.
Hace referencia a ASSERT.
Referenciado por codifica_elias_gama(), y EliasCasoPrueba::prueba_unario().
unsigned long decodifica_binaria_minima | ( | unsigned int | n, | |
vector< bool > & | vb | |||
) |
Convierte vb de codificación binaria mínima con máximo n a entero
Definición en la línea 678 del archivo Elias.cpp.
Hace referencia a ASSERT, pot2(), techo_logb2(), y toma_un_entero().
Referenciado por EliasCasoPrueba::prueba_decodifica_binaria_minima().
unsigned long decodifica_elias_gama | ( | vector< bool > & | vb | ) |
Convierte de codificaico gamma de Elias a entero
Definición en la línea 293 del archivo Elias.cpp.
Hace referencia a ASSERT, decodifica_unario(), pot2(), y toma_un_entero().
Referenciado por lee_elias_gama(), y EliasCasoPrueba::prueba_decodifica_elias_gama().
unsigned long decodifica_unario | ( | vector< bool > & | vb | ) |
Decodifica unario en vector de booleanos a entero
Definición en la línea 218 del archivo Elias.cpp.
Hace referencia a ASSERT.
Referenciado por decodifica_elias_gama(), y EliasCasoPrueba::prueba_unario().
void escribe_elias_gama | ( | std::ostream & | os, | |
unsigned int | n | |||
) |
Escribe al flujo os un entero en codificación gama de Elias.
os | Flujo de salida | |
n | Número por escribir |
os | Flujo de salida | |
n | Número por escribir |
Definición en la línea 541 del archivo Elias.cpp.
Hace referencia a ASSERT, y codifica_elias_gama().
Referenciado por numC(), y EliasCasoPrueba::prueba_escribe_elias_gama().
void escribe_elias_gama2 | ( | std::ostream & | os, | |
unsigned int | n | |||
) |
Escribe rapidamente al flujo os un entero en codificación gama de Elias.
os | Flujo de salida | |
n | Número por escribir |
Definición en la línea 575 del archivo Elias.cpp.
Hace referencia a ASSERT, y piso_logb2().
Referenciado por escribePos(), y EliasCasoPrueba::prueba_escribe_elias_gama2().
unsigned long lee_elias_gama | ( | std::istream & | is | ) | throw (string) |
Lee un número en codificación elias gama de un flujo.
is | flujo de entrada |
Definición en la línea 310 del archivo Elias.cpp.
Hace referencia a decodifica_elias_gama(), y errorFormato().
Referenciado por cNum(), y EliasCasoPrueba::prueba_lee_elias_gama().
unsigned long lee_elias_gama2 | ( | std::istream & | is | ) | throw (string) |
Lee rapidamente un número en codificación elias gama de un flujo.
is | flujo de entrada |
Definición en la línea 437 del archivo Elias.cpp.
Hace referencia a ASSERT, y errorFormato().
Referenciado por leePos(), y EliasCasoPrueba::prueba_lee_elias_gama2().
unsigned int long_elias_gama | ( | unsigned long | n | ) |
Retorna espacio que requeriría en un flujo codificar un número en codificación gama de Elías
n | número |
Definición en la línea 652 del archivo Elias.cpp.
Hace referencia a ASSERT, y piso_logb2().
Referenciado por longPos(), y EliasCasoPrueba::prueba_long_elias_gama().
unsigned int piso_logb2 | ( | unsigned int | n | ) |
Piso de logaritmo en base 2
http://en.wikipedia.org/wiki/Binary_logarithm
Definición en la línea 60 del archivo Elias.cpp.
Hace referencia a ASSERT.
Referenciado por codifica_elias_gama(), escribe_elias_gama2(), long_elias_gama(), y EliasCasoPrueba::prueba_piso_logb2().
void pone_un_entero | ( | unsigned long | x, | |
unsigned int | nbits, | |||
vector< bool > & | vb | |||
) |
Convierte un entero a binario de máximo nbits digitos
Definición en la línea 237 del archivo Elias.cpp.
Hace referencia a ASSERT, y pot2().
Referenciado por codifica_binaria_minima(), codifica_elias_gama(), y EliasCasoPrueba::prueba_pone_un_entero().
unsigned long pot2 | ( | unsigned int | e | ) |
Potencia de 2, pot2(e) es 2^e
Definición en la línea 86 del archivo Elias.cpp.
Hace referencia a ASSERT.
Referenciado por codifica_binaria_minima(), codifica_elias_gama(), decodifica_binaria_minima(), decodifica_elias_gama(), pone_un_entero(), EliasCasoPrueba::prueba_escribe_elias_gama(), EliasCasoPrueba::prueba_escribe_elias_gama2(), EliasCasoPrueba::prueba_lee_elias_gama(), EliasCasoPrueba::prueba_lee_elias_gama2(), EliasCasoPrueba::prueba_long_elias_gama(), y EliasCasoPrueba::prueba_pot2().
vector<bool> str2vb | ( | string | s | ) |
Convierte de cadena de unos y ceros a vector de booleanos
Definición en la línea 190 del archivo Elias.cpp.
Referenciado por EliasCasoPrueba::prueba_decodifica_binaria_minima(), EliasCasoPrueba::prueba_decodifica_elias_gama(), y EliasCasoPrueba::prueba_toma_un_entero().
unsigned int techo_logb2 | ( | unsigned long | x | ) |
Techo de logaritmo en base 2
Definición en la línea 29 del archivo Elias.cpp.
Hace referencia a ASSERT.
Referenciado por codifica_binaria_minima(), decodifica_binaria_minima(), y EliasCasoPrueba::prueba_techo_logb2().
unsigned long toma_un_entero | ( | unsigned int | nbits, | |
vector< bool > & | vb | |||
) |
Convierte un binario de máximo nbits digitos a entero
Definición en la línea 255 del archivo Elias.cpp.
Hace referencia a ASSERT.
Referenciado por decodifica_binaria_minima(), decodifica_elias_gama(), y EliasCasoPrueba::prueba_toma_un_entero().
string vb2ascii | ( | vector< bool > & | vb | ) |
Representación de un vector de booleanos como cadena imprimible de unos y ceros, con espacios cada 8 digitos
string vb2bin | ( | vector< bool > & | vb | ) |
Convierte de vector de booelanos a binario
string vb2str | ( | vector< bool > & | vb | ) |
Convierte de vector de booleanos a cadena de unos y ceros
Definición en la línea 177 del archivo Elias.cpp.
Referenciado por EliasCasoPrueba::prueba_codifica_binaria_minima(), EliasCasoPrueba::prueba_codifica_elias_gama(), EliasCasoPrueba::prueba_pone_un_entero(), y EliasCasoPrueba::prueba_unario().