[01;34mwith[m PragmARC[31m.[mRem_Nn_Wrapper[31m;[m
[01;34muse[m PragmARC[31m.[mRem_Nn_Wrapper[31m;[m
[01;34mwith[m Text_Io[31m;[m
[01;34muse[m Text_Io[31m;[m
[01;34mpackage[m [01;34mbody[m Libsens[31m.[mNeural_Generator [01;34mis[m                        
   
   
   [01;34mgeneric[m
      Size [31m:[m natural[31m;[m
      [01;34mtype[m Item_Type [01;34mis[m[31m(<>);[m
   [01;34mpackage[m Generic_Extended_Binary_Code [01;34mis[m
      [01;34msubtype[m Code_Type [01;34mis[m [01;30mNode_Set[m[31m([m[35m1[m[31m..[mSize[31m);[m
      Code_Init [31m:[m Code_Type [31m:=[m [31m([m[01;34mothers[m [31m=>[m [35m0.0[m[31m);[m
      
      [01;34mfunction[m [01;30mCode_of[m[31m([mItem [31m:[m [01;34min[m Item_Type[31m)[m [01;34mreturn[m Code_Type[31m;[m
      [01;34mfunction[m [01;30mItem_Of[m[31m([mCode [31m:[m [01;34min[m Code_Type[31m)[m [01;34mreturn[m Item_Type[31m;[m
      
   [01;34mend[m Generic_Extended_Binary_Code[31m;[m
   [01;34mpackage[m [01;34mbody[m Generic_Extended_Binary_Code [01;34mis[m
   


   
   [01;34mfunction[m [01;30mCode_of[m[31m([mItem [31m:[m [01;34min[m Item_Type[31m)[m [01;34mreturn[m Code_Type [01;34mis[m
      Code [31m:[m Code_Type [31m:=[m Code_Init[31m;[m
      Pos [31m:[m Natural [31m:=[m Item_Type'[01;30mPos[m[31m([mItem[31m);[m
   [01;34mbegin[m
      [01;34mif[m Pos [31m=[m [35m0[m [01;34mthen[m
   	 [01;34mreturn[m Code_Init[31m;[m
      [01;34melse[m
   	 [01;34mfor[m Index [01;34min[m [01;34mreverse[m Code_Type'[01;34mRange[m [01;34mloop[m
   	    [01;34mif[m [01;30mReal[m[31m([mPos [01;34mrem[m [35m2[m[31m)[m [31m/=[m [35m1.0[m [01;34mthen[m
   	       [01;30mCode[m[31m([mindex[31m)[m [31m:=[m [35m0.0[m[31m;[m
   	    [01;34melse[m
   	       [01;30mCode[m[31m([mindex[31m)[m [31m:=[m [35m1.0[m[31m;[m
   	    [01;34mend[m [01;34mif[m[31m;[m
   	    Pos [31m:=[m Pos[31m/[m[35m2[m[31m;[m
   	 [01;34mend[m [01;34mloop[m[31m;[m
   	 [01;34mreturn[m Code[31m;[m
      [01;34mend[m [01;34mif[m[31m;[m
   [01;34mend[m Code_of[31m;[m

   [01;34mfunction[m [01;30mItem_Of[m[31m([mCode [31m:[m [01;34min[m Code_Type[31m)[m [01;34mreturn[m Item_Type [01;34mis[m
      Pos [31m:[m Natural [31m:=[m [35m0[m[31m;[m
   [01;34mbegin[m
      [01;34mfor[m I [01;34min[m [01;34mreverse[m Code_Type'[01;34mRange[m [01;34mloop[m
   	 [01;34mif[m [01;30mCode[m[31m([mI[31m)[m [31m=[m [35m1.0[m [01;34mthen[m
   	    Pos [31m:=[m Pos [31m+[m [35m2[m[31m**([mCode_Type'Length[31m-[mI[31m);[m
   	 [01;34melse[m
   	    [01;34mnull[m[31m;[m
   	 [01;34mend[m [01;34mif[m[31m;[m
      [01;34mend[m [01;34mloop[m[31m;[m
      [01;34mreturn[m Item_Type'[01;30mVal[m[31m([mPos[31m);[m
   [01;34mend[m Item_Of[31m;[m
   [01;34mend[m Generic_Extended_Binary_Code[31m;[m

   [01;34msubtype[m Gm_Range [01;34mis[m Natural [01;34mrange[m [35m0[m[31m..[m[35m127[m[31m;[m
   
   [01;34mpackage[m Note_Code [01;34mis[m [01;34mnew[m [01;30mGeneric_Extended_Binary_Code[m[31m([m[35m7[m[31m,[m Gm_Range[31m);[m
   [01;34muse[m Note_Code[31m;[m
   
   [01;34mtype[m Chord_array [01;34mis[m [01;34marray[m [31m([m[35m1[m[31m..[m[35m6[m[31m)[m [01;34mof[m Gm_Range[31m;[m
   [01;34mtype[m Chords_Set_array [01;34mis[m [01;34marray[m [31m([m[35m1[m[31m..[m[35m12[m[31m)[m [01;34mof[m Chord_Array[31m;[m
   
   Chords_Set [31m:[m Chords_Set_Array [31m:=[m
     [31m([m
      [31m([m[35m64[m[31m,[m [35m68[m[31m,[m [35m73[m[31m,[m [35m0[m[31m,[m [35m0[m[31m,[m [35m0[m[31m),[m
      [31m([m[35m66[m[31m,[m [35m71[m[31m,[m [35m75[m[31m,[m [35m0[m[31m,[m [35m0[m[31m,[m [35m0[m[31m),[m
      [31m([m[35m66[m[31m,[m [35m71[m[31m,[m [35m75[m[31m,[m [35m80[m[31m,[m [35m0[m[31m,[m [35m0[m[31m),[m
      [31m([m[35m68[m[31m,[m [35m75[m[31m,[m [35m80[m[31m,[m [35m83[m[31m,[m [35m0[m[31m,[m [35m0[m[31m),[m
      [31m([m[35m68[m[31m,[m [35m75[m[31m,[m [35m80[m[31m,[m [35m83[m[31m,[m [35m85[m[31m,[m [35m0[m[31m),[m
      [31m([m[35m75[m[31m,[m [35m80[m[31m,[m [35m83[m[31m,[m [35m86[m[31m,[m [35m90[m[31m,[m [35m0[m[31m),[m
      [31m([m[35m75[m[31m,[m [35m80[m[31m,[m [35m83[m[31m,[m [35m86[m[31m,[m [35m90[m[31m,[m [35m92[m[31m),[m
      [31m([m[35m80[m[31m,[m [35m83[m[31m,[m [35m86[m[31m,[m [35m90[m[31m,[m [35m92[m[31m,[m [35m95[m[31m),[m
      [31m([m[35m80[m[31m,[m [35m83[m[31m,[m [35m86[m[31m,[m [35m90[m[31m,[m [35m92[m[31m,[m [35m95[m[31m),[m
      [31m([m[35m68[m[31m,[m [35m75[m[31m,[m [35m80[m[31m,[m [35m83[m[31m,[m [35m0[m[31m,[m [35m0[m[31m),[m
      [31m([m[35m75[m[31m,[m [35m80[m[31m,[m [35m83[m[31m,[m [35m86[m[31m,[m [35m90[m[31m,[m [35m0[m[31m),[m
      [31m([m[35m64[m[31m,[m [35m68[m[31m,[m [35m73[m[31m,[m [35m0[m[31m,[m [35m0[m[31m,[m [35m0[m[31m));[m

   [01;34mprocedure[m [01;30mRand_Init[m[31m([mSamples [31m:[m [01;34min[m [01;34mout[m Samples_Type[31m)[m [01;34mis[m
      Polyphony [31m:[m Natural [31m:=[m [35m0[m[31m;[m
      Float_Gen [31m:[m Generator[31m;[m
      Code [31m:[m Code_Type [31m:=[m [31m([m[01;34mothers[m [31m=>[m [35m0.0[m[31m);[m
      Item [31m:[m Gm_Range [31m:=[m [35m0[m[31m;[m
   [01;34mbegin[m
      Samples [31m:=[m [31m([m[01;34mothers[m [31m=>[m [31m([m[01;34mothers[m [31m=>[m [35m0.0[m[31m));[m
      [01;34mfor[m I [01;34min[m Chords_set'[01;34mRange[m [01;34mloop[m
	 [01;30mPut_Line[m[31m([m[31m"line "[m [31m&[m [32mInteger[m'[01;30mImage[m[31m([mI[31m));[m
	 [01;34mfor[m J [01;34min[m Chord_Array'[01;34mrange[m [01;34mloop[m	   
	    Code [31m:=[m [31m([m[01;34mothers[m [31m=>[m [35m0.0[m[31m);[m
	    Code [31m:=[m [01;30mCode_Of[m[31m([m[01;30mChords_Set[m[31m([mI[31m)([mJ[31m));[m
	    [01;34mfor[m K [01;34min[m Code'[01;34mrange[m [01;34mloop[m
	       
	       [01;30mSamples[m[31m([mI[31m)(([mJ[31m-[m[35m1[m[31m)*[m[35m7[m[31m+[mK[31m)[m [31m:=[m [01;30mCode[m[31m([mK[31m);[m
	    [01;34mend[m [01;34mloop[m[31m;[m
	    Code [31m:=[m [31m([m[01;34mothers[m [31m=>[m [35m0.0[m[31m);[m
	    Code [31m:=[m [01;30mCode_Of[m[31m([m[35m100[m[31m);[m
	    [01;34mfor[m K [01;34min[m Code'[01;34mrange[m [01;34mloop[m
	       
	       [01;30mSamples[m[31m([mI[31m)(([mJ[31m-[m[35m1[m[31m)*[m[35m7[m[31m+[m[35m7[m[31m+[mK[31m)[m [31m:=[m [01;30mCode[m[31m([mK[31m);[m
	    [01;34mend[m [01;34mloop[m[31m;[m
	    Code [31m:=[m [31m([m[01;34mothers[m [31m=>[m [35m0.0[m[31m);[m
	    Code [31m:=[m [01;30mCode_Of[m[31m([m[35m8[m[31m);[m
	    [01;34mfor[m K [01;34min[m Code'[01;34mrange[m [01;34mloop[m
	       
	       [01;30mSamples[m[31m([mI[31m)(([mJ[31m-[m[35m1[m[31m)*[m[35m7[m[31m+[m[35m14[m[31m+[mK[31m)[m [31m:=[m [01;30mCode[m[31m([mK[31m);[m
	    [01;34mend[m [01;34mloop[m[31m;[m
	 [01;34mend[m [01;34mloop[m[31m;[m
      [01;34mend[m [01;34mloop[m[31m;[m
   [01;34mend[m Rand_Init[31m;[m
   
   [31m--  procedure Rand_Init(Samples : in out Samples_Type) is[m
   [31m--     Polyphony : Natural := 0;[m
   [31m--     Float_Gen : Generator;[m
   [31m--  begin[m
   [31m--     Reset(Float_Gen);[m
   [31m--     for I in Samples'Range loop[m
   [31m--  	 for J in reverse 1..Network_Size loop	   [m
   [31m--  	    if Real(Random(Float_Gen)) >= 0.5 then[m
   [31m--  	       Samples(I)(J) := 1.0;[m
	       
   [31m--  	    else[m
   [31m--  	       Samples(I)(J) := 0.0;[m
   [31m--  	    end if;	    [m
   [31m--  	 end loop;[m
	 
   [31m--     end loop;[m
   [31m--  end Rand_Init;[m
   
   Chord [31m:[m Chord_Array [31m:=[m [31m([m[35m66[m[31m,[m [35m71[m[31m,[m [35m75[m[31m,[m [35m80[m[31m,[m [35m0[m[31m,[m [35m0[m[31m);[m
   
   [01;34mfunction[m Problem_Rand [01;34mreturn[m Node_Set [01;34mis[m
      Set [31m:[m [01;30mNode_Set[m[31m([m[35m1[m[31m..[mNetwork_Size[31m)[m [31m:=[m [31m([m[01;34mothers[m [31m=>[m [35m0.0[m[31m);[m      
      Code [31m:[m Code_Type [31m:=[m [31m([m[01;34mothers[m [31m=>[m [35m0.0[m[31m);[m
   [01;34mbegin[m      
      [01;34mfor[m I [01;34min[m chord'[01;34mRange[m [01;34mloop[m
	 [01;30mPut_Line[m[31m([m[31m"TOTO 0"[m[31m);[m
	 Code [31m:=[m [31m([m[01;34mothers[m [31m=>[m [35m0.0[m[31m);[m
	 Code [31m:=[m [01;30mCode_Of[m[31m([m[01;30mChord[m[31m([mI[31m));[m
	 [01;34mfor[m J [01;34min[m Code'[01;34mRange[m [01;34mloop[m
	    [01;30mSet[m[31m(([mI[31m-[m[35m1[m[31m)*[m[35m7[m[31m+[mJ[31m)[m [31m:=[m [01;30mCode[m[31m([mJ[31m);[m
	    
	 [01;34mend[m [01;34mloop[m[31m;[m
	 [01;30mPut_Line[m[31m([m[31m"TOTO 1"[m[31m);[m
	 Code [31m:=[m [31m([m[01;34mothers[m [31m=>[m [35m0.0[m[31m);[m
	 Code [31m:=[m [01;30mCode_Of[m[31m([m[35m100[m[31m);[m
	 [01;34mfor[m K [01;34min[m Code'[01;34mrange[m [01;34mloop[m
	    
	    [01;30mSet[m[31m(([mI[31m-[m[35m1[m[31m)*[m[35m7[m[31m+[m[35m7[m[31m+[mK[31m)[m [31m:=[m [01;30mCode[m[31m([mK[31m);[m
	 [01;34mend[m [01;34mloop[m[31m;[m
	 [01;30mPut_Line[m[31m([m[31m"TOTO 2"[m[31m);[m
	 Code [31m:=[m [31m([m[01;34mothers[m [31m=>[m [35m0.0[m[31m);[m
	 Code [31m:=[m [01;30mCode_Of[m[31m([m[35m8[m[31m);[m
	 [01;34mfor[m K [01;34min[m Code'[01;34mrange[m [01;34mloop[m
	    
	    [01;30mSet[m[31m(([mI[31m-[m[35m1[m[31m)*[m[35m7[m[31m+[m[35m14[m[31m+[mK[31m)[m [31m:=[m [01;30mCode[m[31m([mK[31m);[m
	 [01;34mend[m [01;34mloop[m[31m;[m
	 [01;30mPut_Line[m[31m([m[31m"TOTO 3"[m[31m);[m
      [01;34mend[m [01;34mloop[m[31m;[m
      [01;34mreturn[m Set[31m;[m
   [01;34mend[m Problem_Rand[31m;[m
   
   
[01;34mend[m Libsens[31m.[mNeural_Generator[31m;[m

