public float getI() {
        float input = 0f;
        for (int j = 0; j <  inputs.size(); j++) {
            FiringState fired = inputs.get(j).getFired();
            //fired == null indicates an External Connection which do not fire)
            if (fired == FiringState.DISABLED) {
                input += activation(inputs.get(j).getValue() * weights[j]);
            } else {
                input += inputs.get(j).getFired() == FiringState.FIRED ? weights[j] : 0f;
            }
        }
        if (Float.isNaN(input)) {
            return 0f;
        } else {
            return k * input;
        }
    }