
Genetic Engine Version 1.0
--------------------------

 (DWORD)Ge_main(DWORD Options,
                BYTE *pGene1,
                BYTE *pGene2,
                DWORD iSizeOfGene1,
                DWORD iMutationRate,
                DWORD iCrossOverRate,
                DWORD iMutPacketSize,
                DWORD iCrossPacketSize,
                DWORD iRndNumber,
                DWORD iSeed,
                DWORD iPrimeNumber1,
                DWORD iPrimeNumber2
               )


 Paramtres:
 -----------

 DWORD Options          --> options
 BYTE *pGene1           --> pointeur sur le dbut d'un buffer contenant un gne
 BYTE *pGene2           --> pointeur sur le dbut d'un deuxime gne (facultatif)
 DWORD iSizeOfGene1     --> taille du gne point par pGene1
 DWORD iMutationRate    --> nombre d'octets  muter par groupe (facultatif)
 DWORD iCrossOverRate   --> nombre d'octets  permuter pa groupes (facultatif)
 DWORD iMutPacketSize   --> taille des groupes (facultatif)
 DWORD iCrossPacketSize --> taille des groupes (facultatif)
 DWORD iRndNumber       --> nombre quelconque choisit par l'appelant
 DWORD iSeed            --> graine (facultatif)
 DWORD iPrimeNumber1    --> grand nombre premier (facultatif)
 DWORD iPrimeNumber2    --> grand nombre premier (< iPrimeNumber1) (facultatif)

 Ge_Main Retourne 0 si pas d'erreurs, 1 sinon.

Options disponibles:
--------------------

CMD_CREATE            crer un nouveau gne

CMD_MUTATE            utiliser un gne existant (point par pGene1) et appliquer des mutations

CMD_CROSSOVER         utiliser un gne existant (point par pGene1) et appliquer un crossing-over
                      avec un gne n2 (point par pGene2)

CMD_CCROSSOVER        utiliser un gne existant (point par pGene1) et appliquer un crossing-over
                      avec un gne n2  crer (buffer point par pGene2)

CMD_MUTATE_CROSSOVER  utiliser un gne existant (point par pGene1) et appliquer des mutations
                      puis appliquer un crossing-over avec un gne n2 (point par pGene2)

CMD_CROSSOVER_MUTATE  utiliser un gne existant (point par pGene1) et appliquer un
                      crossing-over avec un gne n2 (point par pGene2) puis appliquer
                      appliquer des mutations au gne point par pGene1

CMD_MUTATE_CCROSSOVER utiliser un gne existant (point par pGene1) et appliquer des mutations
                      puis appliquer un crossing-over avec un gne n2  crer (point par pGene2)

CMD_CCROSSOVER_MUTATE utiliser un gne existant (point par pGene1) et appliquer un
                      crossing-over avec un gne n2  crer (point par pGene2) puis
                      appliquer des mutations au gne point par pGene1

 Exemple d'utilisation:
 ----------------------

 .386p
 .387
 .model flat, stdcall

 .data
 Pad db 0

 .code
 Exemple:
   ....
   ....
   ....
   xor eax, eax
   push 14449d
   push 43691d
   push eax
   push 533d
   push eax
   push eax
   push eax
   push eax
   push ebx
   push eax
   push edi        ;edi --> pointeur sur un buffer de ebx octets
   push CMD_CREATE ;crer un gne
   call Ge_Main
   cmp eax, GE_ERROR
   je ExitExemple
   ....
   ....
   ....
 ExitExemple:
   ....
   ....
   ....
 include Ge.inc
 include GeHeader.inc
 Exemple end
