TEA tested implementation

needs testing with biased plaintext vectors
results:
bias 95%, set change freq 5
64 rounds, 20000 generaci
	AvgAvg: 0.508434
	AvgMax: 0.518352
	AvgMin: 0.502794

1 round, 2000 gen
	AvgAvg: 0.718974
	AvgMax: 0.72043
	AvgMin: 0.718206

1 round, 20000 gen
	AvgAvg: 0.801228
	AvgMax: 0.801774
	AvgMin: 0.800839

2 rounds, 2000 gen
	AvgAvg: 0.554607
	AvgMax: 0.558646
	AvgMin: 0.55205

2 rounds, 20000 gen
	AvgAvg: 0.572846
	AvgMax: 0.575172
	AvgMin: 0.571193

3 rounds, 2000 gen
	AvgAvg: 0.525605
	AvgMax: 0.530579
	AvgMin: 0.522171

3 rounds, 10000 gen
	AvgAvg: 0.534312
	AvgMax: 0.539281
	AvgMin: 0.531063

3 rund, 30000 gen
	AvgAvg: 0.512283
	AvgMax: 0.521471
	AvgMin: 0.50678

5 rounds, 2000 gen
	AvgAvg: 0.508607
	AvgMax: 0.519754
	AvgMin: 0.502129

5 rounds, 20000 gen
	AvgAvg: 0.507294
	AvgMax: 0.51786
	AvgMin: 0.501144

change state freq 50
1 round, 2000gen:
	AvgAvg: 0.748345
	AvgMax: 0.752275
	AvgMin: 0.747163

change state freq 200
1 round, 30000gen:
	AvgAvg: 0.832002
	AvgMax: 0.833783
	AvgMin: 0.83126

change state freq 200
2 rounds, 30000gen:
	AvgAvg: 0.621831
	AvgMax: 0.62465
	AvgMin: 0.62075

Used config.xml:

<?xml version="1.0" ?>
<EACIRC>
    <NOTES>tea test</NOTES>
    <MAIN>
        <PROJECT>100</PROJECT> <!-- estream -->
        <EVALUATOR>25</EVALUATOR>
        <EVALUATOR_PRECISION>10</EVALUATOR_PRECISION>
        <RECOMMENCE_COMPUTATION>0</RECOMMENCE_COMPUTATION>
        <LOAD_INITIAL_POPULATION>0</LOAD_INITIAL_POPULATION>
        <NUM_GENERATIONS>30000</NUM_GENERATIONS>
        <SAVE_STATE_FREQ>1000</SAVE_STATE_FREQ>
    </MAIN>
    <OUTPUTS>
        <GRAPH_FILES>1</GRAPH_FILES>
        <INTERMEDIATE_CIRCUITS>1</INTERMEDIATE_CIRCUITS>
        <ALLOW_PRUNNING>0</ALLOW_PRUNNING>
        <SAVE_TEST_VECTORS>0</SAVE_TEST_VECTORS>
    </OUTPUTS>
    <RANDOM>
        <USE_FIXED_SEED>0</USE_FIXED_SEED>
        <SEED>123456789</SEED>
        <BIAS_RNDGEN_FACTOR>95</BIAS_RNDGEN_FACTOR>
        <USE_NET_SHARE>0</USE_NET_SHARE>
        <QRNG_PATH>../qrng/;C:/RNG/;D:/RandomData/</QRNG_PATH>
        <QRNG_MAX_INDEX>192</QRNG_MAX_INDEX>
    </RANDOM>
    <CUDA>
        <ENABLED>0</ENABLED>
        <SOMETHING>something</SOMETHING>
    </CUDA>
    <GA>
        <EVOLUTION_OFF>0</EVOLUTION_OFF>
        <PROB_MUTATION>0.05</PROB_MUTATION>
        <MUTATE_FUNCTIONS>1</MUTATE_FUNCTIONS>
        <MUTATE_CONNECTORS>1</MUTATE_CONNECTORS>
        <PROB_CROSSING>0.5</PROB_CROSSING>
        <POPULATION_SIZE>20</POPULATION_SIZE>
        <REPLACEMENT_SIZE>13</REPLACEMENT_SIZE>
    </GA>
    <CIRCUIT>
        <NUM_LAYERS>5</NUM_LAYERS>
        <SIZE_LAYER>8</SIZE_LAYER>
        <SIZE_INPUT>16</SIZE_INPUT>
        <SIZE_OUTPUT>2</SIZE_OUTPUT>
        <NUM_CONNECTORS>4</NUM_CONNECTORS>
        <USE_MEMORY>0</USE_MEMORY>
        <SIZE_MEMORY>2</SIZE_MEMORY>
        <ALLOWED_FUNCTIONS>
            <FNC_NOP>1</FNC_NOP>
            <FNC_CONS>1</FNC_CONS>
            <FNC_AND>1</FNC_AND>
            <FNC_NAND>1</FNC_NAND>
            <FNC_OR>1</FNC_OR>
            <FNC_XOR>1</FNC_XOR>
            <FNC_NOR>1</FNC_NOR>
            <FNC_NOT>1</FNC_NOT>
            <FNC_SHIL>1</FNC_SHIL>
            <FNC_SHIR>1</FNC_SHIR>
            <FNC_ROTL>1</FNC_ROTL>
            <FNC_ROTR>1</FNC_ROTR>
            <FNC_EQ>1</FNC_EQ>
            <FNC_LT>1</FNC_LT>
            <FNC_GT>1</FNC_GT>
            <FNC_LEQ>1</FNC_LEQ>
            <FNC_GEQ>1</FNC_GEQ>
            <FNC_BSLC>1</FNC_BSLC>
            <FNC_READ>1</FNC_READ>
            <FNC_EXT>0</FNC_EXT>
        </ALLOWED_FUNCTIONS>
    </CIRCUIT>
    <TEST_VECTORS>
        <INPUT_LENGTH>16</INPUT_LENGTH>
        <OUTPUT_LENGTH>2</OUTPUT_LENGTH>
        <SET_SIZE>1000</SET_SIZE>
        <SET_CHANGE_FREQ>200</SET_CHANGE_FREQ>
        <EVALUATE_BEFORE_TEST_VECTOR_CHANGE>0</
        <EVALUATE_EVERY_STEP>0</EVALUATE_EVERY_STEP>
    </TEST_VECTORS>
    <ESTREAM>
        <USAGE_TYPE>101</USAGE_TYPE>
        <CIPHER_INIT_FREQ>0</CIPHER_INIT_FREQ> <!-- no need to reinit
tea -->
        <ALGORITHM_1>23</ALGORITHM_1> <!-- tea -->
        <ALGORITHM_2>99</ALGORITHM_2> <!-- qrng -->
        <BALLANCED_TEST_VECTORS>1</BALLANCED_TEST_VECTORS>
        <LIMIT_NUM_OF_ROUNDS>1</LIMIT_NUM_OF_ROUNDS>
        <ROUNDS_ALG_1>2</ROUNDS_ALG_1>
        <ROUNDS_ALG_2>0</ROUNDS_ALG_2>
        <PLAINTEXT_TYPE>3</PLAINTEXT_TYPE> <!-- stream of biased random
data -->
        <KEY_TYPE>2</KEY_TYPE>
        <IV_TYPE>0</IV_TYPE>
        <GENERATE_STREAM>0</GENERATE_STREAM>
        <STREAM_SIZE>1024</STREAM_SIZE>
    </ESTREAM>
</EACIRC>