public double run(double[] inputValues) {

		double[] net = new double[1024];
		double[] signet = new double[1024];
		double[] input = new double[1024];
		double out;

		int inputCount = getLayers().get(0).getCount();
		int hiddenCount = getLayers().get(1).getCount();

		//inputNeuronsNumber => not very efficient
		for(int i=0; i<inputCount; i++) {
			input[i] = inputValues[i];
		}

		for(int i=0; i<hiddenCount; i++) {
			net[i] = 1 * weights[0][i];
			for(int j=0; j<inputCount; j++) {
				net[i] += input[j] * weights[j+1][i];   // j+1 car bias
			}

		}

		for(int i=0; i<hiddenCount; i++) {
			signet[i] = activationfunction.calculate(net[i]);
		}

		out  = 1 * weights[0][hiddenCount];

		for(int i=0; i<hiddenCount; i++) {
			out += signet[i] * weights[i+1][hiddenCount]; //i+1 a cause du bias
		}

		out = activationfunction.calculate(out);

		return out;
	}