Main Page | Alphabetical List | Class List | Directories | File List | Class Members | File Members

Mini.hh

Go to the documentation of this file.
00001 
00029 #ifndef Mini_class
00030 #define Mini_class
00031 
00032 #include <gmpxx.h>
00033 #include <cmath>
00034 
00039 const int DIGITS_K_DEF = 4;
00044 const int DIGITS_SIZE_DEF = 3;
00045 
00050 class Mini
00051 {
00052         public:
00053                 
00058                 static void set_mini_word( int* noteArray, int k, char* binaryMiniWord1,
00059                         int noteOffValue, int* size_mem_mpz, int startKey);
00060 
00068                 static void ksub_rank ( int k, int* a, mpz_t rank );
00069 
00077                 static void ksub_unrank ( int k, int* a, mpz_t rank );
00078 
00085                 static int get_size_mem_int ( int value );
00086 
00093                 static int get_bin_digits_int ( int value );
00094 
00101                 static int get_size_mem_mpz ( mpz_t value );
00102 
00109                 static int get_bin_digits_mpz ( mpz_t number);
00110 
00124                 static void mpz_2_bin ( mpz_t value, int k, int note, char* mem_pointer );
00125                 
00138                 static void bin_2_mpz ( char* mem_pointer, int* k, mpz_t value, int* note);
00139                 
00145                 static void extract_size(char firstRead, int* size);
00146 
00152                 static void print_mem ( char* mem_pointer, int size_bin );
00153 
00159                 static void sort_array( int* noteArray, int size );
00160 
00167                 static void print_array( int* noteArray, int size, int startKey );
00168                 
00169 };
00170 
00176 inline
00177 int Mini::get_size_mem_int(int value)
00178 {
00179         return (int)ceil((double)(1 + DIGITS_K_DEF + DIGITS_SIZE_DEF + get_bin_digits_int(value))/(double)(8));
00180 }
00181 
00187 inline
00188 int  Mini::get_size_mem_mpz(mpz_t value)
00189 {
00190         return (int)ceil((double)(1 + DIGITS_K_DEF + DIGITS_SIZE_DEF + get_bin_digits_mpz(value))/(double)(8));
00191 }
00192 
00193 #endif
00194 

Generated on Mon Jun 13 22:06:59 2005 for Netmusic by  doxygen 1.4.3