public bool Equals(MethodsEnum obj) { if ((object)obj == null) { return(false); } return(StringComparer.OrdinalIgnoreCase.Equals(this.Value, obj.Value)); }
private IQualitativeCriteria GetQualitativeConverter(MethodsEnum method) { if (method == MethodsEnum.SMART) { return(new SMARTQualitativeCriteria()); } else { return(new QualitativeCriteriaBase()); } }
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); } }
/// <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)); }
public Matcher(MethodsEnum method, params string[] words) { _method = method; _words = words; }