/// <summary> /// Convertit le circuit en porte (produit matriciel des portes représenttant les lignes) /// </summary> /// <param name="name"></param> /// <returns>Gate</returns> public Gate GetCircuitGate(string name) { return(new Gate(name, Gate.Add(FuncTools.Map(GetRowGate, rows)))); }
/// <summary> /// Evalue partiellement le circuit jusquà la ligne de numéro spécifié /// </summary> /// <param name="till_row"></param> /// <returns>State</returns> public State Evaluate(int till_row) { State entry = GetEntryState(); return(new State(LinearAlgebra.Mult(entry.Vector, Gate.Add(FuncTools.Map(GetRowGate, FuncTools.Take(till_row + 1, rows))).Matrix))); }
/// <summary> /// Convertit le circuit en porte (produit matriciel des portes représenttant les lignes). /// </summary> /// <returns>Gate</returns> public Gate GetCircuitGate() { return(Gate.Add(FuncTools.Map(GetRowGate, rows))); }