Exemplo n.º 1
0
            public ToParametric2D(MulticastDelegate funcX, MulticastDelegate funcY)
            {
                _funcX = funcX as RealFunction;
                _funcY = funcY as RealFunction;

                _cFuncX = funcX as ConstantFunction;
                _cFuncY = funcY as ConstantFunction;
            }
Exemplo n.º 2
0
		public Constant(ConstantFunction function) 
		{
			if (function == null)
				throw new ArgumentNullException("function");

			_function = function;		
			base._delegate = _function;
			base._definitionType = DefinitionType.Numerical;
		}
Exemplo n.º 3
0
        public Constant(ConstantFunction function)
        {
            if (function == null)
            {
                throw new ArgumentNullException("function");
            }

            _function            = function;
            base._delegate       = _function;
            base._definitionType = DefinitionType.Numerical;
        }
Exemplo n.º 4
0
        // TODO : Add constant function and trapeziodal
        private static IFuzzyFunction defineFunction(Match match)
        {
            string value = match.Groups[3].Value;

            string[] functionParameters = match.Groups[4].Value.Split(' ');

            NumberStyles numberStyles = NumberStyles.AllowParentheses |
                                        NumberStyles.AllowTrailingSign |
                                        NumberStyles.Float |
                                        NumberStyles.AllowThousands |
                                        NumberStyles.AllowExponent;

            if (value == "gaussmf")
            {
                GaussianFunction function = new GaussianFunction();
                function.Center    = Double.Parse(functionParameters[1].ToUpper(), numberStyles, CultureInfo.InvariantCulture);
                function.Steepness = Double.Parse(functionParameters[0].ToUpper(), numberStyles, CultureInfo.InvariantCulture);

                return(function);
            }
            else if (value == "trimf")
            {
                TriangleFunction function = new TriangleFunction();
                function.LeftPoint   = Double.Parse(functionParameters[0].ToUpper(), numberStyles, CultureInfo.InvariantCulture);
                function.MiddlePoint = Double.Parse(functionParameters[1].ToUpper(), numberStyles, CultureInfo.InvariantCulture);
                function.RightPoint  = Double.Parse(functionParameters[2].ToUpper(), numberStyles, CultureInfo.InvariantCulture);

                return(function);
            }
            else if (value == "constant")
            {
                ConstantFunction function = new ConstantFunction();

                function.ConstValue = Double.Parse(functionParameters[0].ToUpper(), numberStyles);

                return(function);
            }
            else if (value == "trapmf")
            {
                TrapezoidalFunction function = new TrapezoidalFunction();

                function.LeftBottomPoint  = Double.Parse(functionParameters[0].ToUpper(), numberStyles, CultureInfo.InvariantCulture);
                function.LeftTopPoint     = Double.Parse(functionParameters[1].ToUpper(), numberStyles, CultureInfo.InvariantCulture);
                function.RightTopPoint    = Double.Parse(functionParameters[2].ToUpper(), numberStyles, CultureInfo.InvariantCulture);
                function.RightBottomPoint = Double.Parse(functionParameters[3].ToUpper(), numberStyles, CultureInfo.InvariantCulture);

                return(function);
            }
            else
            {
                throw new FuzzyLogicException("Unknown function");
            }
        }
Exemplo n.º 5
0
		public Constant(string expression) 
		{
			if (expression == null)
				throw new ArgumentNullException("expression");

			_expressionTree = new ExpressionTree(_expression);

			if (_expressionTree.Variables.Length != 0)
				throw new ArgumentException("Constant function cant have any variable in expression","expression");

			_expression = expression;

			ExpressionCompiler compiler = new ExpressionCompiler(_expressionTree);
			_function = (ConstantFunction) compiler.CreateDelegate(typeof(ConstantFunction));			

			base._delegate = _function;
			base._definitionType = DefinitionType.Analytic;
		}
Exemplo n.º 6
0
        public Constant(string expression)
        {
            if (expression == null)
            {
                throw new ArgumentNullException("expression");
            }

            _expressionTree = new ExpressionTree(_expression);

            if (_expressionTree.Variables.Length != 0)
            {
                throw new ArgumentException("Constant function cant have any variable in expression", "expression");
            }

            _expression = expression;

            ExpressionCompiler compiler = new ExpressionCompiler(_expressionTree);

            _function = (ConstantFunction)compiler.CreateDelegate(typeof(ConstantFunction));

            base._delegate       = _function;
            base._definitionType = DefinitionType.Analytic;
        }
Exemplo n.º 7
0
 private void Do(ref uint A, ref uint B, ref uint C, ref uint D, uint X, int s, uint T, ConstantFunction F)
 {
     A = B + (Calc.Logic.Function.ROL((A + F(B, C, D) + X + T), s));
 }
Exemplo n.º 8
0
        public InteractiveSeries Execute(double price, double time, int barNum)
        {
            int barsCount = ContextBarsCount;

            if (barNum < barsCount - 1)
            {
                return(Constants.EmptySeries);
            }

            double futPx = price;
            double dT    = time;

            if (Double.IsNaN(dT) || (dT < Double.Epsilon) ||
                Double.IsNaN(futPx) || (futPx < Double.Epsilon))
            {
                return(Constants.EmptySeries);
            }

            double width = (SigmaMult * m_sigma * Math.Sqrt(dT)) * futPx;

            List <InteractiveObject> controlPoints = new List <InteractiveObject>();
            int    half = NumControlPoints / 2; // Целочисленное деление!
            double dK   = width / half;

            // Сдвигаю точки, чтобы избежать отрицательных значений
            while ((futPx - half * dK) <= Double.Epsilon)
            {
                half--;
            }
            for (int j = 0; j < NumControlPoints; j++)
            {
                double k = futPx + (j - half) * dK;

                InteractivePointLight ip;
                bool edgePoint = (j == 0) || (j == NumControlPoints - 1);
                if (m_showNodes ||
                    (edgePoint && m_showEdgeLabels)) // На крайние точки повешу Лейблы
                {
                    InteractivePointActive tmp = new InteractivePointActive();

                    tmp.IsActive = m_showNodes || (edgePoint && m_showEdgeLabels);
                    //tmp.DragableMode = DragableMode.None;
                    //tmp.Geometry = Geometries.Rect;
                    //tmp.Color = Colors.DarkOrange;
                    tmp.Tooltip = String.Format(CultureInfo.InvariantCulture,
                                                m_tooltipFormat, k, m_value * Constants.PctMult); // "K:{0}; V:{1:0.00}%"

                    if (edgePoint)
                    {
                        tmp.Label = String.Format(CultureInfo.InvariantCulture,
                                                  m_labelFormat, m_value * Constants.PctMult); // "V:{0:0.00}%"
                    }

                    ip = tmp;
                }
                else
                {
                    ip = new InteractivePointLight();
                }

                ip.Value = new Point(k, m_value);

                controlPoints.Add(new InteractiveObject(ip));
            }

            InteractiveSeries res = new InteractiveSeries(); // Здесь так надо -- мы делаем новую улыбку

            res.ControlPoints = new ReadOnlyCollection <InteractiveObject>(controlPoints);

            SmileInfo info = new SmileInfo();

            info.F            = futPx;
            info.dT           = dT;
            info.RiskFreeRate = 0;

            try
            {
                ConstantFunction spline = new ConstantFunction(m_value, futPx, dT);

                info.ContinuousFunction   = spline;
                info.ContinuousFunctionD1 = spline.DeriveD1();

                res.Tag = info;
            }
            catch (Exception ex)
            {
                m_context.Log(ex.ToString(), MessageType.Error, true);
                return(Constants.EmptySeries);
            }

            return(res);
        }
Exemplo n.º 9
0
        private void buttonInitializeNet_Click(object sender, EventArgs e)
        {
            if (currentProject == null)
            {
                MessageBox.Show("No network loaded.", "Invalid Operation", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return;
            }

            DialogResult dr = MessageBox.Show("All weights will be reset - are you sure?", "Confirmation", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning);

            if (dr == DialogResult.OK)
            {
                try
                {
                    IInitializer initFunct;
                    double       tmp;
                    double?      param1 = null;
                    double?      param2 = null;
                    if (double.TryParse(textParam1.Text, out tmp))
                    {
                        param1 = tmp;
                    }
                    if (double.TryParse(textParam2.Text, out tmp))
                    {
                        param2 = tmp;
                    }
                    switch ((InitializerFunction)comboInitializeFunction.SelectedItem)
                    {
                    case InitializerFunction.Constant: initFunct = new ConstantFunction(param1.Value); break;

                    case InitializerFunction.NguyenWidrow: initFunct = new NguyenWidrowFunction(param1.Value); break;

                    case InitializerFunction.NormRand: initFunct = new NormalizedRandomFunction(); break;

                    case InitializerFunction.Random: initFunct = new RandomFunction(param1.Value, param2.Value); break;

                    case InitializerFunction.Zero: initFunct = new ZeroFunction(); break;

                    default: throw new Exception("InitializerFunction undefined.");
                    }
                    // 需要设置回前面因为反序列化在新状态下失败。 不知道为什么。
                    IInitializer oldInitializer;
                    foreach (ILayer layer in currentProject.Network.Layers)
                    {
                        oldInitializer    = layer.Initializer;
                        layer.Initializer = initFunct;
                        layer.Initialize();
                        layer.Initializer = oldInitializer;
                        foreach (IConnector conn in layer.TargetConnectors)
                        {
                            oldInitializer   = conn.Initializer;
                            conn.Initializer = initFunct;
                            conn.Initialize();
                            conn.Initializer = oldInitializer;
                        }
                    }
                    //currentProject.Network.Initialize(); 已单独调用
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Error in program - " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
		public ConstantFunctionPlotter(Constant function) 
		{
			_function = function.ValueAt;
		}
Exemplo n.º 11
0
        public void EvaluateConstantFunction()
        {
            ConstantFunction function = new ConstantFunction(1);

            Assert.AreEqual(1, function.Value);
        }
Exemplo n.º 12
0
			public ToParametric3D(MulticastDelegate funcX,MulticastDelegate funcY, MulticastDelegate funcZ)
			{
				_funcX = funcX as RealFunction;
				_funcY = funcY as RealFunction;	
				_funcZ = funcZ as RealFunction;	
		
				_cFuncX = funcX as ConstantFunction;
				_cFuncY = funcY as ConstantFunction;	
				_cFuncZ = funcZ as ConstantFunction;	
			}
Exemplo n.º 13
0
 public ConstantFunctionPlotter(Constant function)
 {
     _function = function.ValueAt;
 }
 public IFunctionRasterDataset constantRasterFunction(IRaster template, IEnvelope NewExtent, double rasterValue, IPnt cellSize)
 {
     IFunctionRasterDataset tDset = createIdentityRaster(template, rstPixelType.PT_FLOAT);
     IConstantFunctionArguments rasterFunctionArguments = (IConstantFunctionArguments)new ConstantFunctionArguments();
     rasterFunctionArguments.Constant = rasterValue;
     IRasterInfo rsInfo = tDset.RasterInfo;
     rsInfo.NativeExtent = NewExtent;
     rsInfo.Extent = NewExtent;
     rsInfo.CellSize = cellSize;
     rasterFunctionArguments.RasterInfo = rsInfo;
     string tempAr = funcDir + "\\" + FuncCnt + ".afr";
     IFunctionRasterDataset frDset = new FunctionRasterDatasetClass();
     IFunctionRasterDatasetName frDsetName = new FunctionRasterDatasetNameClass();
     frDsetName.FullName = tempAr;
     frDset.FullName = (IName)frDsetName;
     IRasterFunction rsFunc = new ConstantFunction();
     frDset.Init(rsFunc, rasterFunctionArguments);
     IRasterInfo2 rsInfo2 = (IRasterInfo2)frDset.RasterInfo;
     IRasterStatistics rsStats = new RasterStatisticsClass();
     rsStats.Mean = rasterValue;
     rsStats.Maximum = rasterValue;
     rsStats.Minimum = rasterValue;
     rsStats.StandardDeviation = rasterValue;
     rsStats.SkipFactorX = 1;
     rsStats.SkipFactorY = 1;
     rsStats.IsValid = true;
     for (int i = 0; i < rsInfo2.BandCount; i++)
     {
         rsInfo2.set_Statistics(i, rsStats);
     }
     return frDset;
 }