let repartition_plate = function (x:int) ->
 match x with
 | negatif when x <= 0 -> [| 1. ; 0. |]
 | grand when grand >= 127 -> [| 0. ; 1. |]
 | _ ->
  begin
   let y = ref 1. in
    if x land 1 > 0 then
     y := !y *. Data.pas ;
    if x land 2 > 0 then
     y := !y *. Data.pas2 ;
    if x land 4 > 0 then
     y := !y *. Data.pas4 ;
    if x land 8 > 0 then
     y := !y *. Data.pas8 ;
    if x land 16 > 0 then
     y := !y *. Data.pas16 ;
    if x land 32 > 0 then
     y := !y *. Data.pas32 ;
    if x land 64 > 0 then
     y := !y *. Data.pas64 ;
    let z = 1. -. !y in
     [| !y ; z |] ;
  end