/* This file was generated by scramble.py. */
#ifndef _PCODE_HEADER_GUARD_CODE_
#define _PCODE_HEADER_GUARD_CODE_
typedef struct BitCode BitCode;
#include "config.h"
#include "vector.h"
#include "util.h"
struct BitCode
/* None if unknown */
{
    char *algorithm;
    /* in bits, used for row-wise rotation */
    int w, h;
    /* the actual bits, 8 per byte */
    unsigned char *bits;
    bool has_mask;
};
int code_compare_bitwise(char const *c1, char const *c2, int n);
int code_compare_bitwise_masked(unsigned char const *c1, unsigned char const *m1, unsigned char const *c2, unsigned char const *m2, int n, int *m);
void bitrotatel(unsigned char *c, int n);
int code_compare_masked_bitoffset(int w, int h, unsigned char const *c1, unsigned char const *m1, unsigned char const *c2, unsigned char const *m2, int bit_offset, int *m);
int code_compare_masked(int w, int h, unsigned char const *c1, unsigned char const *m1, unsigned char const *c2, unsigned char const *m2, unsigned byte_offset, int *m);
int bitcode_compare(BitCode *code1, BitCode *code2, int bit_offset, int *m);
void put_uint32(Vector *v, uint32_t n);
uint32_t get_uint32(Vector *v, int bytepos);
Vector * bitcode_encode(BitCode *code);
BitCode * bitcode_decode(Vector *v);
BitCode * bitcode_from_file(char const *filename);
void bitcode_to_file(BitCode *bc, char const *filename);
#endif
/* This file was generated by scramble.py. */
