Exemplo n.º 1
0
 public bool Equals(MethodsEnum obj)
 {
     if ((object)obj == null)
     {
         return(false);
     }
     return(StringComparer.OrdinalIgnoreCase.Equals(this.Value, obj.Value));
 }
Exemplo n.º 2
0
 private IQualitativeCriteria GetQualitativeConverter(MethodsEnum method)
 {
     if (method == MethodsEnum.SMART)
     {
         return(new SMARTQualitativeCriteria());
     }
     else
     {
         return(new QualitativeCriteriaBase());
     }
 }
Exemplo n.º 3
0
        private AlternativesBase GetAlternativesBases(MethodsEnum method)
        {
            List <ICriteria>       criterias    = (method == MethodsEnum.SMART ? _criterias.GetCriteriasAsSMART() : _criterias.GetCriterias());
            List <AlternativeBase> alternatives = _alternatives.GetAlternativeBases(criterias, GetQualitativeConverter(method));

            return(new AlternativesBase
            {
                Criterias = criterias,
                Alternatives = alternatives
            });
        }
 /// <summary>
 /// Создаёт решатель для метода с указанным логером
 /// </summary>
 /// <param name="type">Метод</param>
 /// <param name="Logger">Логер</param>
 /// <param name="Factorizer">Разложение</param>
 /// <param name="KrylovSubspaceDimension">Размерность подпространства Крылова</param>
 /// <returns></returns>
 public ISolver Spawn(String type, ILogger Logger, IFactorization Factorizer = null, int KrylovSubspaceDimension = 4)
 {
     try
     {
         MethodsEnum method = (MethodsEnum)Enum.Parse(typeof(MethodsEnum), type);
         if (Enum.IsDefined(typeof(MethodsEnum), method))
         {
             return(Spawn(method, Logger, Factorizer, KrylovSubspaceDimension));
         }
         else
         {
             return(null);
         }
     }
     catch (ArgumentException)
     {
         return(null);
     }
 }
Exemplo n.º 5
0
        /// <summary>
        /// Создаёт решатель для метода с указанным логером
        /// </summary>
        /// <param name="type">Метод</param>
        /// <param name="logger">Логер</param>
        /// <param name="factorizer">Разложение</param>
        /// <param name="krylovSubspaceDimension">Размерность подпространства Крылова</param>
        /// <returns></returns>
        public static ISolver Spawn(MethodsEnum type, ILogger logger, int krylovSubspaceDimension = 4)
        {
            IMethod method;

            switch (type)
            {
            case MethodsEnum.CGM: method = new CGM(); break;

            case MethodsEnum.GaussianSeidel: method = new GaussianSeidelMethod(); break;

            case MethodsEnum.Jacobi: method = new JacobiMethod(); break;

            case MethodsEnum.LOS: method = new LOS(); break;

            case MethodsEnum.BCGStab: method = new BCGStab(); break;

            default: return(null);
            }



            return(new LoggingSolver(method, logger));
        }
        /// <summary>
        /// Создаёт решатель для метода с указанным логером
        /// </summary>
        /// <param name="type">Метод</param>
        /// <param name="Logger">Логер</param>
        /// <param name="Factorizer">Разложение</param>
        /// <param name="KrylovSubspaceDimension">Размерность подпространства Крылова</param>
        /// <returns></returns>
        public ISolver Spawn(MethodsEnum type, ILogger Logger, IFactorization Factorizer = null, int KrylovSubspaceDimension = 4)
        {
            IMethod method = null;

            switch (type)
            {
            case MethodsEnum.CGMethod: break;

            case MethodsEnum.GaussianSeidelMethod: method = new GaussianSeidelMethod(); break;

            case MethodsEnum.JacobiMethod: method = new JacobiMethod(); break;

            case MethodsEnum.LOSMethod: break;

            case MethodsEnum.BCGStabMethod: break;

            case MethodsEnum.GMResMethod: break;

            default: return(null);
            }

            return(new LoggingSolver(method, Logger));
        }
Exemplo n.º 7
0
 public Matcher(MethodsEnum method, params string[] words)
 {
     _method = method;
     _words  = words;
 }