void FillM(int len, Integral.Funct f1, Integral.Funct f2) { if (len <= bufferSize) { return; } double[,] Mb = new double[len, len]; double[] Bb = new double[len]; for (int i = 0; i < bufferSize; i++) { for (int j = 0; j < bufferSize; j++) { Mb[i, j] = M[i, j]; } Bb[i] = B[i]; } for (int i = bufferSize; i < len; i++) { for (int j = 0; j < i + 1; j++) { Mb[i, j] = IntegralF(i, j, f1); Mb[j, i] = Mb[i, j]; } Bb[i] = IntegralF(i, i, f2); } B = new double[len]; M = new double[len, len]; bufferSize = len; Bb.CopyTo(B, 0); Array.Copy(Mb, M, Mb.LongLength); }
double IntegralF(int k, int t, Integral.Funct f) { return(Integral.DefineIntegral(epsilonInt, x1, x2, f, k, t)); }