public static IClassicalBit[] encodeArrayBitByBasis(bool[] data, IClassicalBasis basis)
        {
            int total = data.Length;
            IClassicalBit[] result = new IClassicalBit[total];

            for (int counter = 0; counter < total; counter++)
            {
                result[counter] = encodeBitByBasis(data[counter], basis);
            }

            return result;
        }
 // ENCODE
 public static IClassicalBit encodeBitByBasis(bool data, IClassicalBasis basis)
 {
     IClassicalBit result = generateBit(false);
     result.setBit(data);
     return result;
 }
 // INITIALIZATE
 public override void Initialize()
 {
     base.Initialize();
     ReferenceBasis = FactoryClassicalBasis.UsualBasis;
 }
 //static public IClassicalString generateString(IClassicalString data)
 //{
 //    return new ClBasicString(data);
 //}
 // DECODE
 public static bool decodeBitByBasis(IClassicalBit data, IClassicalBasis basis)
 {
     data.ReferenceBasis = basis;
     return data.getBit(); ;
 }
 public ClBasisDebugger(IClassicalBasis basis)
     : base()
 {
     _basis = basis;
 }