Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
 public SolverLinearGMRES(IAlgebraLinear <MatrixDataType> algebra)
 {
     this.algebra       = algebra;
     this.simple_solver = algebra.GetSimpleSolver();
 }