예제 #1
0
        /// <summary>
        /// Generalized And Operator
        /// </summary>
        /// <param name="d1"></param>
        /// <param name="d2"></param>
        /// <returns></returns>
        private double AndOp(double d1, double d2)
        {
            switch (_andOp)
            {
            case FISOperatorAnd.FISOpAnd_Min:
                return(FISOperators.Min(d1, d2));

            case FISOperatorAnd.FISOpAnd_Product:
                return(FISOperators.Product(d1, d2));

            default:
                throw new ArgumentException("Invalid operator");
            }
        }
예제 #2
0
        /// <summary>
        /// Generalized Implicator
        /// </summary>
        /// <param name="inMf"></param>
        /// <param name="outMf"></param>
        /// <param name="n"></param>
        /// <param name="weight"></param>
        public MemberFunction ImplicatorOp(MemberFunction inMf, double n, double weight)
        {
            switch (_implicator)
            {
            case FISImplicator.FISImp_Min:
                return(FISOperators.ImpMin(inMf, n, weight));

            case FISImplicator.FISImp_Product:
                return(FISOperators.ImpProduct(inMf, n, weight));

            default:
                throw new ArgumentException("Invalid operator");
            }
        }
예제 #3
0
        /// <summary>
        /// Generalized Or Operator
        /// </summary>
        /// <param name="d1"></param>
        /// <param name="d2"></param>
        /// <returns></returns>
        private double OrOp(double d1, double d2)
        {
            switch (_orOp)
            {
            case FISOperatorOr.FISOpOr_Max:
                return(FISOperators.Max(d1, d2));

            case FISOperatorOr.FISOpOr_Probor:
                return(FISOperators.ProbOr(d1, d2));

            default:
                throw new ArgumentException("Invalid operator");
            }
        }
예제 #4
0
        /// <summary>
        /// Generalized Aggregator
        /// </summary>
        /// <param name="inMf"></param>
        /// <param name="outMf"></param>
        private void AggregatorOp(MemberFunction inMf, MemberFunction outMf)
        {
            switch (_aggregator)
            {
            case FISAggregator.FISAgg_Max:
                FISOperators.AggMax(inMf, outMf);
                break;

            //case FISAggregator.FISAgg_Probor:
            //    FISOperators.AggProbor(inMf, outMf);
            //    break;
            case FISAggregator.FISAgg_Sum:
            default:
                throw new ArgumentException("Invalid operator");
            }
        }