[01;34mwith[m Ada[31m.[mNumerics[31m.[mDiscrete_Random[31m;[m
[01;34muse[m Ada[31m.[mNumerics[31m;[m
[01;34mgeneric[m
   
   Max_B_Inf [31m:[m Positive[31m;[m
   Max_B_Sup [31m:[m Positive[31m;[m
   Min_Class_Id [31m:[m Positive[31m;[m
   Min_Value_Id [31m:[m Positive[31m;[m
   Min_Data_ID  [31m:[m Positive[31m;[m
   Max_Class_Id [31m:[m Positive[31m;[m
   Max_Value_Id [31m:[m Positive[31m;[m
   Max_Data_ID  [31m:[m Positive[31m;[m
[01;34mpackage[m Libsens[31m.[mFrame [01;34mis[m
      
   [01;34msubtype[m Class_Id_Type [01;34mis[m Natural [01;34mrange[m Min_Class_Id[31m..[mMax_Class_Id[31m;[m
   
   [01;34mpackage[m Random_Class_Id [01;34mis[m [01;34mnew[m Ada[31m.[mNumerics[31m.[m[01;30mDiscrete_Random[m[31m([mClass_Id_Type[31m);[m   
   
   [01;34msubtype[m Value_Id_Type [01;34mis[m Natural [01;34mrange[m Min_value_Id[31m..[mMax_Value_Id[31m;[m
   
   [01;34mpackage[m Random_Value_Id [01;34mis[m [01;34mnew[m Ada[31m.[mNumerics[31m.[m[01;30mDiscrete_Random[m[31m([mValue_Id_Type[31m);[m
   
   
   [01;34msubtype[m Data_Id_Type [01;34mis[m Natural [01;34mrange[m Min_Data_Id[31m..[mMax_Data_Id[31m;[m
   
   [01;34mpackage[m Random_Data_Id [01;34mis[m [01;34mnew[m Ada[31m.[mNumerics[31m.[m[01;30mDiscrete_Random[m[31m([mData_Id_Type[31m);[m
   
   
   
   [31m-- Element : Description of Object[m
   [01;34mtype[m Digit_Type [01;34mis[m
      [01;34mrecord[m
	 Class_Id [31m:[m Class_Id_Type [31m:=[m Class_Id_Type'First[31m;[m
	 Value_Id [31m:[m Value_Id_Type [31m:=[m Value_Id_Type'First[31m;[m
	 Data_Id  [31m:[m Data_Id_Type [31m:=[m Data_Id_Type'First[31m;[m
      [01;34mend[m [01;34mrecord[m[31m;[m      
   
   Digit_Default [31m:[m [01;34mconstant[m Digit_Type [31m:=[m [31m([mClass_Id_Type[31m'First, Value_Id_Type'[mFirst[31m,[m Data_Id_Type'First[31m);[m
      
   [01;34mtype[m Digit_Random_Generator_Type [01;34mis[m
      [01;34mrecord[m
	 Class_Id_Gen [31m:[m Random_Class_Id[31m.[mGenerator[31m;[m
	 Value_Id_Gen [31m:[m Random_Value_Id[31m.[mGenerator[31m;[m
	 Data_Id_Gen [31m:[m Random_Data_Id[31m.[mGenerator[31m;[m
      [01;34mend[m [01;34mrecord[m[31m;[m
   
   [01;34mfunction[m [01;30mDigit_Random[m[31m([mDigit_Random_Generator [31m:[m [01;34min[m Digit_Random_Generator_Type[31m)[m [01;34mreturn[m Digit_Type[31m;[m
         
   [31m-- knot of series.[m
   [01;34mtype[m Position_Type [01;34mis[m
      [01;34mrecord[m
	 Digit [31m:[m Digit_Type[31m;[m
	 Temp  [31m:[m Digit_Type[31m;[m
      [01;34mend[m [01;34mrecord[m[31m;[m
   
   [31m--  Use case : "to succed"[m
   [01;34mfunction[m [01;30mTo_Succed[m [31m([mOld_Position [31m:[m [01;34min[m Position_Type[31m;[m
   		       Successor    [31m:[m [01;34min[m Digit_Type[31m)[m [01;34mreturn[m Position_Type[31m;[m
   
   
   [01;34mtype[m Digital_Gap_Buffer_Type [01;34mis[m
      [01;34mrecord[m
	 Position  [31m:[m Position_Type[31m;[m
	 Successor [31m:[m Digit_Type[31m;[m
      [01;34mend[m [01;34mrecord[m[31m;[m	  
   		
   [01;34mtype[m Digital_Series_Gap_Buffer_Type [01;34mis[m [01;34marray[m [31m([mNatural [01;34mrange[m [31m<>)[m [01;34mof[m Digital_Gap_Buffer_Type[31m;[m
   
   
   [01;34mtype[m Frame_Type [01;34mis[m
      [01;34mrecord[m	 
	 Digital_Series [31m:[m [01;30mDigital_Series_Gap_Buffer_Type[m[31m([mMax_B_Inf[31m..[mMax_B_Sup[31m);[m
	 B_Inf   [31m:[m Natural [31m:=[m Max_B_Inf[31m;[m
	 B_Sup   [31m:[m Natural [31m:=[m Max_B_inf[31m;[m
      [01;34mend[m [01;34mrecord[m[31m;[m   
   
   [01;34mpackage[m Frame_Rand [01;34mis[m
      
      [01;34mfunction[m Frame_Random [01;34mreturn[m Frame_Type[31m;[m
      [01;34mprocedure[m Reset[31m;[m
   [01;34mprivate[m
      
      
      
      Digit_Generator [31m:[m Digit_Random_Generator_Type[31m;[m
      
      
      [01;34msubtype[m Frame_Range_Type [01;34mis[m Positive [01;34mrange[m Max_B_Inf[31m..[mMax_B_Sup[31m;[m
      
      [01;34mpackage[m Frame_Range_Rand [01;34mis[m [01;34mnew[m Ada[31m.[mNumerics[31m.[m[01;30mDiscrete_Random[m[31m([mFrame_Range_Type[31m);[m
      
      Frame_Range_Gen [31m:[m Frame_Range_Rand[31m.[mGenerator[31m;[m
      
      [01;34mprocedure[m [01;30mRandom[m [31m([mB_Inf           [31m:[m [01;34min[m Natural[31m;[m
			B_Sup           [31m:[m [01;34min[m Natural[31m;[m
			Digit_Generator [31m:[m [01;34min[m Digit_Random_Generator_Type[31m;[m
			Frame           [31m:[m    [01;34mout[m Frame_type[31m);[m
   
      
   [01;34mend[m Frame_Rand[31m;[m
   
   
   [01;34mfunction[m [01;30mFrame_Fitness[m [31m([mFrame [31m:[m [01;34min[m Frame_Type[31m)[m [01;34mreturn[m [32mFloat[m[31m;[m
   
   [01;34mfunction[m [01;30mFrame_Mate[m [31m([mLeft_Frame [31m:[m [01;34min[m Frame_Type[31m;[m
			Right_Frame [31m:[m [01;34min[m Frame_Type[31m)[m [01;34mreturn[m Frame_Type[31m;[m
   
   [01;34mprocedure[m [01;30mFrame_Mutate[m [31m([mOld_Frame [31m:[m [01;34min[m [01;34mout[m Frame_Type[31m);[m
         
[01;34mend[m Libsens[31m.[mFrame[31m;[m
