public Circuit CreateCircuit() { CircuitContext circuitContext = new CircuitContext( _numberOfAndGates, _numberOfXorGates, _numberOfNotGates, _nextInputIndex, _nextOutputIndex ); return(new Circuit(_outputGates, circuitContext)); }
public Circuit CreateCircuit() { CircuitContext circuitContext = new CircuitContext( _nextAndGateId, _nextXorGateId, _nextNotGateId, _nextInputGateId, _nextOutputGateId ); return(new Circuit(_outputGates, circuitContext)); }
public Task <T> EvaluateNotGate(Task <T> value, GateContext gateContext, CircuitContext circuitContext) { return(value.ContinueWith(task => _innerEvaluator.EvaluateNotGate(task.Result, gateContext, circuitContext))); }
public Task <T> EvaluateXorGate(Task <T> leftValue, Task <T> rightValue, GateContext gateContext, CircuitContext circuitContext) { return(Task.WhenAll(leftValue, rightValue).ContinueWith( task => _innerEvaluator.EvaluateXorGate(task.Result[0], task.Result[1], gateContext, circuitContext) )); }
public abstract void Evaluate <T>( ICircuitEvaluator <T> evaluator, EvaluationState <T> evaluationState, CircuitContext circuitContext );
public EvaluationState(T[] input, CircuitContext context) { _input = input; _output = new T[context.NumberOfOutputGates]; _gateEvaluationValues = new IdMapping <Optional <T> >(Optional <T> .Empty, context.NumberOfGates); }
public Bit EvaluateNotGate(Bit value, GateContext gateContext, CircuitContext circuitContext) { return(~value); }
public Bit EvaluateXorGate(Bit leftValue, Bit rightValue, GateContext gateContext, CircuitContext circuitContext) { return(leftValue ^ rightValue); }
public Circuit(IReadOnlyList <OutputGate> outputGates, CircuitContext context) { OutputGates = outputGates; Context = context; }