// weight A by alpha and B by 1-alpha if alpha == 1 then returns A private double[] weightedSum(double[] A, double[] B, double[] W) { assert ((A.length == B.length) && (A.length == W.length)) : "Warning!"; double[] C = new double[A.length]; for (int i = 0; i < A.length; i++) { C[i] = (1 - W[i]) * A[i] + W[i] * B[i]; if (C[i] == Double.NaN) { System.out.println("Warning generated NaN: T = " + T); LinAlg.print(W); } } return C; }