protected override void Clear()
 {
     if (P != null)
     {
         Array.Clear(P, 0, P.Length);
         P = null;
     }
     if (G != null)
     {
         Array.Clear(G, 0, G.Length);
         G = null;
     }
     if (Y != null)
     {
         Array.Clear(Y, 0, Y.Length);
         Y = null;
     }
     if (dh != null)
     {
                         #if !BOOTSTRAP_BASIC
         dh.Dispose();
                         #endif
         dh = null;
     }
 }