#include "encoder.h"
#include "encoderlib.h"
void encode(int N, int M[])
{
int i;
int j;
for(i=0; i<N; i++){
for(j=0; j<(M[i] >> 6) & 3; j++){send(i*4);}
for(j=0; j<(M[i] >> 4) & 3; j++){send(i*4+1);}
for(j=0; j<(M[i] >> 2) & 3; j++){send(i*4+2);}
for(j=0; j<(M[i] >> 0) & 3; j++){send(i*4+3);}
}
}
#include "decoder.h"
#include "decoderlib.h"
#include <map>
void decode(int N, int L, int X[])
{
int i, b, out_b;
std::map<int,int> index_parrot;
for(i=0; i<L; i++) {
b = X[i];
index_parrot[b]++;
}
for(i=0; i<N; i++){
out_b = index_parrot[i*4]*64 + index_parrot[i*4+1]*16 + index_parrot[i*4+2]*4 + index_parrot[i*4+3];
output(out_b);
}
}