public DeconvolutionKrylov(IAlgebraLinear <MatrixType> algebra, ITemplateBasisFunction template, IFunction <double, double> input_function, double[] signal_sample_times) { this.algebra = algebra; this.solver = new SolverLinearGMRES <MatrixType>(algebra); this.basis_function_list = new List <IFunction <double, double> >(); double[,] forward_array = new double[signal_sample_times.Length, signal_sample_times.Length]; for (int column_index = 0; column_index < signal_sample_times.Length; column_index++) { IFunction <double, double> basis_function = template.Generate(input_function, signal_sample_times, column_index); basis_function_list.Add(basis_function); for (int row_index = 0; row_index < signal_sample_times.Length; row_index++) { forward_array[row_index, column_index] = basis_function.Compute(signal_sample_times[row_index]); } } forward_matrix = algebra.Create(forward_array); }
public SolverLinearGMRES(IAlgebraLinear <MatrixDataType> algebra) { this.algebra = algebra; this.simple_solver = algebra.GetSimpleSolver(); }