Beispiel #1
0
        public int SetActValue(int tagid, PValue pvalue)
        {
            //PGIM不支持tagid的读写
            List <SignalValue> signalvalues = new List <SignalValue>();

            return(0);
        }
Beispiel #2
0
        public int SetActValue(string tag, PValue pvalue)
        {
            //PGIM写入时间,会自动转换成格林威治时间。
            List <SignalValue> signalvalues = new List <SignalValue>();

            signalvalues.Add(PValue2SignalValue(pvalue));
            try
            {
                this._pgimDb.WriteValues(tag, signalvalues);
                return(0);
            }
            catch (PgimNet.Exceptions.PgimDataException ex)
            {
                //将pgim的异常PgimDataException记录在_exception中,并以PgimDataException的名称继续抛出异常
                this._exception = ex.Message.ToString();
                throw ex;     //将pgim的异常继续向外传递。
            }
            catch (PgimNet.Exceptions.PgimException ex)
            {
                //将pgim的异常PgimDataException记录在_exception中,并以PgimDataException的名称继续抛出异常
                this._exception = ex.Message.ToString();
                throw ex;     //将pgim的异常继续向外传递。
            }
            catch (Exception ex)
            {
                //将pgim的异常PgimDataException记录在_exception中,并以PgimDataException的名称继续抛出异常
                this._exception = "PgimNet其他未知错误。通常是服务器故障、标签中对应的服务器名称不正确导致!";
                throw ex;     //将pgim的异常继续向外传递。
            }
        }
Beispiel #3
0
        public static PValue RunStatically(StackContext sctx, PValue[] args)
        {
            if (args.Length == 0)
            {
                return sctx.CreateNativePValue(NoSourcePosition.Instance);
            }

            string file = args[0].CallToString(sctx);
            int? line, column;

            PValue box;
            if (args.Length >= 2 && args[1].TryConvertTo(sctx, IntPType.Instance,true,out box))
            {
                line = (int) box.Value;
            }
            else
            {
                line = null;
            }

            if (args.Length >= 3 && args[2].TryConvertTo(sctx, IntPType.Instance, true, out box))
            {
                column = (int) box.Value;
            }
            else
            {
                column = null;
            }

            return sctx.CreateNativePValue(new SourcePosition(file, line ?? -1, column ?? -1));
        }
Beispiel #4
0
        public void testMethod()
        {
            Console.WriteLine("start test================================");
            DbHelper helper = new DbHelper();

            helper.ConnTest();
            String sqlStr = "use psldb;select * from psldata201911";
            //var sqlTimer = Stopwatch.StartNew();          //用于测试读取一个月分钟数据的sql执行所耗时长。一个月分钟数据45000条左右,在公司服务测试结果是耗时4ms-5ms
            IDataReader   reader = helper.ExecuteReader(sqlStr);
            List <PValue> items  = new List <PValue>();

            while (reader.Read())
            {
                PValue item = new PValue();
                //DAOSupport.ReaderToObject(reader, item);   //20180711,经测试,在读取1个月的分钟概化数据时,返回数据在45000条,使用该 ReaderToObject转换程序,IDataReader2PSLDataItems整体耗时300ms。效率较低。
                //DAOSupport.ReaderToObject是一个通用格式的转换程序。在单条数据转换时,会去循环读取。在对效率要求比较高的psldataXXXX数据库的数据进行转换时,需要使用专用的转换程序,以便保证效率。
                //在psldata表的读写中,由于数据量大,要提高读写效率,需要注意不要使用反射
                //关于反射效率的问题,在这个地址的帖子中,有所讨论。https://bbs.csdn.net/topics/391910616
                //关于IDataReader的速度,在这个地址的帖子中,有所讨论。https://blog.csdn.net/lilong_herry/article/details/79993907
                try { item.Timestamp = new DateTime(Convert.ToInt64(reader["tagstarttime"])); }
                catch { };
                try { item.Endtime = new DateTime(Convert.ToInt64(reader["tagendtime"])); }
                catch { };
                try { item.Value = Convert.ToDouble(reader["tagvalue"]); }
                catch { item.Value = 0; };
                try { item.Status = Convert.ToInt64(reader["tagstatus"]); }
                catch { item.Status = 0; };
                items.Add(item);
            }
            Console.WriteLine(items.Count);
            Console.Read();
        }
Beispiel #5
0
 public PartialStaticCall(int[] mappings, PValue[] closedArguments, PCall call,
     string memberId, PType ptype) : base(mappings, closedArguments, 0)
 {
     _ptype = ptype;
     _call = call;
     _memberId = memberId;
 }
Beispiel #6
0
        public static PValue RunStatically(StackContext sctx, PValue[] args)
        {
            // function setright(w,s,f)
            if (sctx == null)
                throw new ArgumentNullException("sctx");
            if (args == null)
                args = new PValue[] {};

            string s;
            string f;

            switch (args.Length)
            {
                case 0:
                    return "";
                case 1:
                    s = "";
                    goto parseW;
            }
            s = args[1].CallToString(sctx);
            parseW:
            var w = (int) args[0].ConvertTo(sctx, PType.Int).Value;
            if (args.Length > 2)
                f = args[2].CallToString(sctx);
            else
                f = " ";

            return SetRight(w, s, f);
        }
Beispiel #7
0
        protected override IEnumerable<PValue> CoroutineRun(ContextCarrier sctxCarrier,
            PValue[] args)
        {
            if (args == null)
                throw new ArgumentNullException("args");
            if (sctxCarrier == null)
                throw new ArgumentNullException("sctxCarrier");

            var t = new Dictionary<PValue, object>();

            var sctx = sctxCarrier.StackContext;

            foreach (var arg in args)
            {
                var xs = Map._ToEnumerable(sctx, arg);
                if (xs == null)
                    continue;
                foreach (var x in xs)
                    if (!t.ContainsKey(x))
                    {
                        t.Add(x, null);
                        yield return x;
                    }
            }
        }
Beispiel #8
0
        public static PValue RunStatically(StackContext sctx, PValue[] args)
        {
            if (args == null)
                throw new ArgumentNullException("args");
            if (sctx == null)
                throw new ArgumentNullException("sctx");

            var xss = new List<IEnumerable<PValue>>();
            foreach (var arg in args)
            {
                var xs = Map._ToEnumerable(sctx, arg);
                if (xs != null)
                    xss.Add(xs);
            }

            var n = xss.Count;
            if (n < 2)
                throw new PrexoniteException("Except requires at least two sources.");

            var t = new Dictionary<PValue, bool>();
            //All elements of the last source are considered candidates
            foreach (var x in xss[n - 1])
                if (!t.ContainsKey(x))
                    t.Add(x, true);

            for (var i = 0; i < n - 1; i++)
                foreach (var x in xss[i])
                    if (t.ContainsKey(x))
                        t.Remove(x);

            return sctx.CreateNativePValue(t.Keys);
        }
Beispiel #9
0
        // ReSharper restore MemberCanBePrivate.Global

        internal static PValue _EnforceThunk(PValue value)
        {
            if (value.Type.Equals(PType.Object[typeof (Thunk)]))
                return value;
            else
                return PType.Object.CreatePValue(Thunk.NewValue(value));
        }
Beispiel #10
0
 public virtual void Visit(PValue value)
 {
     if (value != null)
     {
         value.Accept(this);
     }
 }
Beispiel #11
0
        /// <summary>
        ///     Executes the command.
        /// </summary>
        /// <param name = "sctx">The stack context in which to execut the command.</param>
        /// <param name = "args">The arguments to be passed to the command.</param>
        /// <returns>The value returned by the command. Must not be null. (But possibly {null~Null})</returns>
        public static PValue RunStatically(StackContext sctx, PValue[] args)
        {
            var text = Concat.ConcatenateString(sctx, args);
            StaticPrint.Writer.WriteLine(text);

            return text;
        }
Beispiel #12
0
        public override bool IndirectCall(
            StackContext sctx, PValue subject, PValue[] args, out PValue result)
        {
            if (sctx == null)
                throw new ArgumentNullException("sctx");
            if (subject == null)
                throw new ArgumentNullException("subject");
            if (args == null)
                args = new PValue[] {};

            result = null;

            var argc = args.Length;

            var pvht = (PValueHashtable) subject.Value;

            if (argc == 0)
            {
                result =
                    sctx.CreateNativePValue(new PValueEnumeratorWrapper(pvht.GetPValueEnumerator()));
            }
            else if (argc == 1)
            {
                if (!pvht.TryGetValue(args[0], out result))
                    result = false;
            }
            else
            {
                pvht.AddOverride(args[0], args[1]);
            }

            return result != null;
        }
Beispiel #13
0
        protected static IEnumerable<PValue> CoroutineRunStatically(ContextCarrier ctxCarrier,
            PValue[] args)
        {
            if (ctxCarrier == null)
                throw new ArgumentNullException("ctxCarrier");
            if (args == null)
                throw new ArgumentNullException("args");

            if (args.Length < 1)
                throw new PrexoniteException("Limit requires at least one argument.");

            var i = 0;
            var sctx = ctxCarrier.StackContext;
            var count = (int) args[0].ConvertTo(sctx, PType.Int, true).Value;

            for (var j = 1; j < args.Length; j++)
            {
                var arg = args[j];
                var set = Map._ToEnumerable(sctx, arg);
                if (set == null)
                    throw new PrexoniteException(arg + " is neither a list nor a coroutine.");
                using (var setEnumerator = set.GetEnumerator())
                {
                    while (i++ < count && setEnumerator.MoveNext())
                    {
                        yield return setEnumerator.Current;
                    }
                    if (i >= count)
                        yield break;
                }
            }
        }
Beispiel #14
0
 public string writeModel(string outModelPath)
 {
     if (lr == null)
     {
         buildModel();
     }
     outPath = outModelPath;
     using (System.IO.StreamWriter sw = new System.IO.StreamWriter(outPath))
     {
         sw.WriteLine(modelTypes.LogisticRegression.ToString());
         sw.WriteLine(InTablePath);
         sw.WriteLine(String.Join(",", IndependentFieldNames));
         sw.WriteLine(String.Join(",", DependentFieldNames));
         sw.WriteLine(String.Join(",", ClassFieldNames));
         sw.WriteLine(String.Join(",", Categories));
         sw.WriteLine(NumberOfIndependentVariables.ToString());
         sw.WriteLine(NumberOfCategories.ToString());
         sw.WriteLine(LogLikelihood.ToString());
         sw.WriteLine(Deviance.ToString());
         sw.WriteLine(X2.ToString());
         sw.WriteLine(PValue.ToString());
         sw.WriteLine(String.Join(",", (from double d in minValues select d.ToString()).ToArray()));
         sw.WriteLine(String.Join(",", (from double d in maxValues select d.ToString()).ToArray()));
         sw.WriteLine(String.Join(",", (from double d in sumValues select d.ToString()).ToArray()));
         sw.WriteLine(String.Join(",", (from double d in Coefficients select d.ToString()).ToArray()));
         sw.WriteLine(String.Join(",", (from double d in StandardError select d.ToString()).ToArray()));
         sw.WriteLine(String.Join(",", (from Accord.Statistics.Testing.WaldTest d in WaldStatistic select d.Statistic.ToString()).ToArray()));
         sw.WriteLine(String.Join(",", (from Accord.Statistics.Testing.WaldTest d in WaldStatistic select d.PValue.ToString()).ToArray()));
         sw.Close();
     }
     return(outPath);
 }
Beispiel #15
0
        public static PValue RunStatically(StackContext sctx, PValue[] args)
        {
            if (sctx == null)
                throw new ArgumentNullException("sctx");
            if (args == null)
                throw new ArgumentNullException("args");

            if (args.Length < 1)
                throw new PrexoniteException("Each requires at least two arguments");
            var f = args[0];

            var eargs = new PValue[1];
            for (var i = 1; i < args.Length; i++)
            {
                var arg = args[i];
                var set = Map._ToEnumerable(sctx, arg);
                if (set == null)
                    continue;
                foreach (var value in set)
                {
                    eargs[0] = value;
                    f.IndirectCall(sctx, eargs);
                }
            }

            return PType.Null;
        }
Beispiel #16
0
            internal static bool TryCreateItemValue <ItemT>(
                PType <ItemT> itemType,
                string json,
                GreenJsonListSyntax jsonListSyntax,
                int itemIndex,
                int listSyntaxStartPosition,
                List <JsonErrorInfo> errors,
                out ItemT convertedTargetValue,
                out PValue value)
            {
                GreenJsonValueSyntax itemNode = jsonListSyntax.ListItemNodes[itemIndex].ValueNode.ContentNode;

                int itemNodeStart = listSyntaxStartPosition
                                    + jsonListSyntax.GetElementNodeStart(itemIndex)
                                    + jsonListSyntax.ListItemNodes[itemIndex].ValueNode.BackgroundBefore.Length;

                var itemValueOrError = itemType.TryCreateValue(
                    json,
                    itemNode,
                    out convertedTargetValue,
                    itemNodeStart,
                    errors);

                if (itemValueOrError.IsOption2(out value))
                {
                    return(true);
                }

                // Report type error at this index.
                itemValueOrError.IsOption1(out ITypeErrorBuilder itemTypeError);
                errors.Add(ValueTypeErrorAtItemIndex.Create(itemTypeError, itemIndex, itemNode, json, itemNodeStart));
                return(false);
            }
Beispiel #17
0
        public PValue GetSummaryValues(string tagname, DateTime startdate, DateTime enddate, string type)
        {
            PValue pvalue = new PValue();

            //不支持统计值功能
            return(pvalue);
        }
Beispiel #18
0
        /// <summary>
        /// 获取输入数据的中位值  及 中位值点号
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public static List <PValue> getMedian(List <PValue> input)
        {
            List <PValue> list      = new List <PValue>();
            PValue        median    = new PValue();
            PValue        medianNum = new PValue();
            List <Point>  points    = new List <Point>();
            int           length    = input.Count;

            for (int i = 0; i < length; i++)
            {
                Point p;
                p.pointNum = i + 1;
                p.value    = input[i].Value;
                points.Add(p);
            }
            points.Sort();
            if (length > 0)
            {
                if (length % 2 != 0)
                {
                    median.Value    = points[length / 2].value;
                    medianNum.Value = points[length / 2].pointNum;
                }
                else
                {
                    median.Value    = (points[length / 2 - 1].value + points[length / 2].value) / 2;
                    medianNum.Value = points[length / 2 - 1].pointNum;
                }
            }
            list.Add(median);
            list.Add(medianNum);
            return(list);
        }
Beispiel #19
0
        /// <summary>
        ///     Prints all arguments.
        /// </summary>
        /// <param name = "sctx">The context in which to convert the arguments to strings.</param>
        /// <param name = "args">The list of arguments to print.</param>
        /// <returns></returns>
        public override PValue Run(StackContext sctx, PValue[] args)
        {
            var s = Concat.ConcatenateString(sctx, args);
            _writer.Write(s);

            return s;
        }
Beispiel #20
0
 public static PValue RunStatically(StackContext sctx, PValue[] args)
 {
     var carrier = new ContextCarrier();
     var corctx = new CoroutineContext(sctx, CoroutineRunStatically(carrier, args));
     carrier.StackContext = corctx;
     return sctx.CreateNativePValue(new Coroutine(corctx));
 }
Beispiel #21
0
        public static IEnumerable<PValue> CoroutineRunStatically(ContextCarrier getSctx,
            PValue[] args)
        {
            if (args == null)
                throw new ArgumentNullException("args");
            if (getSctx == null)
                throw new ArgumentNullException("getSctx");

            if (args.Length < 1)
                throw new PrexoniteException("toseq requires one argument.");

            var xsT = args[0];
            PValue xs;

            var sctx = getSctx.StackContext;

            while (!(xs = ForceCommand.Force(sctx, xsT)).IsNull)
            {
                //Accept key value pairs directly
                var kvp = xs.Value as PValueKeyValuePair;
                if (kvp != null)
                {
                    yield return kvp.Key;
                    xsT = kvp.Value;
                }
                    //Late bound
                else
                {
                    var k = xs.DynamicCall(sctx, Runtime.EmptyPValueArray, PCall.Get, "Key");
                    yield return k;
                    xsT = xs.DynamicCall(sctx, Runtime.EmptyPValueArray, PCall.Get, "Value");
                }
            }
        }
Beispiel #22
0
        public override PValue Run(StackContext sctx, PValue[] args)
        {
            if (sctx == null)
                throw new ArgumentNullException("sctx");
            if (args == null)
                throw new ArgumentNullException("args");

            if (args.Length < 1)
                throw new PrexoniteException("Exists requires at least two arguments");
            var f = args[0];

            var eargs = new PValue[1];
            for (var i = 1; i < args.Length; i++)
            {
                var arg = args[i];
                var set = Map._ToEnumerable(sctx, arg);
                if (set == null)
                    continue;
                foreach (var value in set)
                {
                    eargs[0] = value;
                    var result = f.IndirectCall(sctx, eargs);
                    PValue existance;
                    if ((!result.TryConvertTo(sctx, PType.Bool, true, out existance)) ||
                        (!(bool) existance.Value))
                        return false;
                }
            }

            return true;
        }
Beispiel #23
0
        /// <summary>
        ///     Executes the command.
        /// </summary>
        /// <param name = "sctx">The stack context in which to execut the command.</param>
        /// <param name = "args">The arguments to be passed to the command.</param>
        /// <returns>The value returned by the command. Must not be null. (But possibly {null~Null})</returns>
        public static PValue RunStatically(StackContext sctx, PValue[] args)
        {
            if (sctx == null)
                throw new ArgumentNullException("sctx");
            if (args == null)
                throw new ArgumentNullException("args");

            if (args.Length < 1)
                throw new PrexoniteException("Char requires at least one argument.");

            PValue v;
            var arg = args[0];
            if (arg.Type == PType.String)
            {
                var s = (string) arg.Value;
                if (s.Length == 0)
                    throw new PrexoniteException("Cannot create char from empty string.");
                else
                    return s[0];
            }
            else if (arg.TryConvertTo(sctx, PType.Char, true, out v))
            {
                return v;
            }
            else if (arg.TryConvertTo(sctx, PType.Int, true, out v))
            {
                return (char) (int) v.Value;
            }
            else
            {
                throw new PrexoniteException("Cannot create char from " + arg);
            }
        }
Beispiel #24
0
 public PartialCallStar(ArraySegment<int> mappings, PValue[] closedArguments)
     : base(_splitOffWrappingDirectives(ref mappings), closedArguments, 1)
 {
     //Mappings now holds only directives (was split off by _splitOffWrappingDirectives)
     _wrappingDirectives = mappings;
     _getDirectedArgc(out _directedArgc, out _undirectedArgc);
 }
Beispiel #25
0
 private PValue[] _getEffectiveArgs(PValue[] args)
 {
     var effectiveArgs = new PValue[args.Length + _closedArguments.Length];
     Array.Copy(_closedArguments, effectiveArgs, _closedArguments.Length);
     Array.Copy(args, 0, effectiveArgs, _closedArguments.Length, args.Length);
     return effectiveArgs;
 }
Beispiel #26
0
        protected static IEnumerable<PValue> CoroutineRunStatically(ContextCarrier sctxCarrier,
            PValue[] args)
        {
            if (sctxCarrier == null)
                throw new ArgumentNullException("sctxCarrier");
            if (args == null)
                throw new ArgumentNullException("args");

            var sctx = sctxCarrier.StackContext;

            var i = 0;
            if (args.Length < 1)
                throw new PrexoniteException("Skip requires at least one argument.");

            var index = (int) args[0].ConvertTo(sctx, PType.Int, true).Value;

            for (var j = 1; j < args.Length; j++)
            {
                var arg = args[j];
                var set = Map._ToEnumerable(sctx, arg);
                if (set == null)
                    throw new PrexoniteException(arg + " is neither a list nor a coroutine.");
                foreach (var value in set)
                {
                    if (i++ >= index)
                        yield return value;
                }
            }
        }
Beispiel #27
0
        /// <summary>
        /// 求凹凸点  返回为list  其中有四个元素 最凸点 点号  最凹点 点号
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public static List <PValue> getTopDown(List <PValue> input)
        {
            List <PValue> vals   = new List <PValue>();
            List <Point>  points = new List <Point>();
            PValue        top    = new PValue();
            PValue        topN   = new PValue();
            PValue        down   = new PValue();
            PValue        downN  = new PValue();
            int           length = input.Count;

            if (length > 1)
            {
                for (int i = 0; i < length; i++)
                {
                    //第一个
                    if (i == 0)
                    {
                        double val = input[0].Value - input[1].Value;
                        Point  p1  = new Point();
                        p1.pointNum = (i + 1);
                        p1.value    = val;
                        points.Add(p1);
                    }
                    else if (i == (length - 1))  //最后一个
                    {
                        double val = input[length - 1].Value - input[length - 2].Value;
                        Point  p1  = new Point();
                        p1.pointNum = (i + 1);
                        p1.value    = val;
                        points.Add(p1);
                    }
                    else
                    {
                        double val = ((input[i].Value - input[i - 1].Value) + (input[i].Value - input[i + 1].Value)) / 2;
                        Point  p1  = new Point();
                        p1.pointNum = (i + 1);
                        p1.value    = val;
                        points.Add(p1);
                    }
                }
                top.Value   = points.Max().value;
                topN.Value  = points.Max().pointNum;
                down.Value  = points.Min().value;
                downN.Value = points.Min().pointNum;
            }
            else
            {
                top.Status   = 100;
                topN.Status  = 100;
                down.Status  = 100;
                downN.Status = 100;
            }


            vals.Add(top);
            vals.Add(topN);
            vals.Add(down);
            vals.Add(downN);
            return(vals);
        }
Beispiel #28
0
        /// <summary>
        /// 获取输入数据的越高限点数 越低限点数  越高限点数占比  越低限点数占比
        /// </summary>
        /// <param name="input"></param>
        /// <param name="high"></param>
        /// <param name="low"></param>
        /// <returns></returns>
        public static List <PValue> getHighLow(List <PValue> input, Double high, Double low)
        {
            double        highNum = 0; //越高限点数
            double        lowNum  = 0; //越低限点数
            List <PValue> list    = new List <PValue>();
            PValue        highN   = new PValue();
            PValue        lowN    = new PValue();
            PValue        highR   = new PValue();
            PValue        lowR    = new PValue();
            int           length  = input.Count;

            for (int i = 0; i < length; i++)
            {
                if (input[i].Value >= high)
                {
                    highNum = highNum + 1;
                }
                else
                {
                    lowNum = lowNum + 1;
                }
            }
            highN.Value = highNum;
            lowN.Value  = lowNum;
            highR.Value = highNum / length;
            lowR.Value  = lowNum / length;
            list.Add(highN);
            list.Add(lowN);
            list.Add(highR);
            list.Add(lowR);
            return(list);
        }
Beispiel #29
0
        public override bool TryConstruct(StackContext sctx, PValue[] args, out PValue result)
        {
            char c;
            result = null;

            if (sctx == null)
                throw new ArgumentNullException("sctx");
            if (args == null)
                throw new ArgumentNullException("args");

            PValue v;

            if (args.Length < 1 || args[0].IsNull)
            {
                c = '\0';
            }
            else if (args[0].TryConvertTo(sctx, Char, out v))
            {
                c = (char) v.Value;
            }
            else if (args[0].TryConvertTo(sctx, Int, false, out v))
            {
                c = (char) (int) v.Value;
            }
            else
            {
                c = '\0';
            }

            result = c;
            return true;
        }
Beispiel #30
0
        public static PValue RunStatically(StackContext sctx, PValue[] args)
        {
            if (sctx == null)
                throw new ArgumentNullException("sctx");
            if (args == null)
                throw new ArgumentNullException("args");

            PValue needle;
            if (args.Length < 2)
                return false;
            else
                needle = args[0];

            foreach (var arg in args.Skip(1))
            {
                var set = Map._ToEnumerable(sctx, arg);
                if (set != null)
                    foreach (var value in set)
                    {
                        PValue result;
                        bool boolResult;
                        if (value.Equality(sctx, needle, out result) &&
                            result.TryConvertTo(sctx, true, out boolResult) && boolResult)
                            return result;
                    }
            }

            return false;
        }
Beispiel #31
0
        protected static IEnumerable<PValue> CoroutineRunStatically(ContextCarrier sctxCarrier,
            PValue[] args)
        {
            if (sctxCarrier == null)
                throw new ArgumentNullException("sctxCarrier");
            if (args == null)
                throw new ArgumentNullException("args");
            if (args.Length < 2)
                throw new PrexoniteException("TakeWhile requires at least two arguments.");

            var sctx = sctxCarrier.StackContext;

            var f = args[0];

            var i = 0;
            for (var k = 1; k < args.Length; k++)
            {
                var arg = args[k];
                var set = Map._ToEnumerable(sctx, arg);
                if (set == null)
                    continue;
                foreach (var value in set)
                    if (
                        (bool)
                            f.IndirectCall(sctx, new[] {value, i++}).ConvertTo(sctx, PType.Bool,
                                true).Value)
                        yield return value;
            }
        }
Beispiel #32
0
        protected override bool DoTryDefer(StackContext sctx, PValue[] nonArguments,
            PValue[] arguments, out StackContext partialApplicationContext, out PValue result)
        {
            partialApplicationContext = null;
            result = null;

            //The following code exists in a very similar form in FunctionalPartialCall.cs, FlippedFunctionalPartialCall.cs
            if ((nonArguments[0].Type is ObjectPType))
            {
                var raw = nonArguments[0].Value;
                var stackAware = raw as IStackAware;
                if (stackAware != null)
                {
                    partialApplicationContext = stackAware.CreateStackContext(sctx, arguments);
                    return true;
                }

                var partialApplication = raw as IMaybeStackAware;
                if (partialApplication != null)
                    return partialApplication.TryDefer(sctx, arguments,
                        out partialApplicationContext,
                        out result);
            }

            result = Invoke(sctx, nonArguments, arguments);
            return false;
        }
Beispiel #33
0
 public string writeModel(string outModelPath)
 {
     outPath = outModelPath;
     using (System.IO.StreamWriter sw = new System.IO.StreamWriter(outPath))
     {
         sw.WriteLine(modelTypes.GLM.ToString());
         sw.WriteLine(InTablePath);
         sw.WriteLine(String.Join(",", IndependentFieldNames));
         sw.WriteLine(String.Join(",", DependentFieldNames));
         sw.WriteLine(String.Join(",", ClassFieldNames));
         sw.WriteLine(SampleSize.ToString());
         sw.WriteLine(NumberOfVariables.ToString());
         sw.WriteLine(Iterations.ToString());
         sw.WriteLine(DeltaC.ToString());
         sw.WriteLine(LogLikelihood);
         sw.WriteLine(LogLikelihoodratio);
         sw.WriteLine(PValue.ToString());
         sw.WriteLine(Deviance.ToString());
         sw.WriteLine(ChiSquare.ToString());
         sw.WriteLine(linkfunction.ToString());
         sw.WriteLine(String.Join(" ", (from double d in Coefficients select d.ToString()).ToArray()));
         sw.WriteLine(String.Join(" ", (from double d in StdError select d.ToString()).ToArray()));
         sw.WriteLine(String.Join(" ", (from double d in waldTestValues select d.ToString()).ToArray()));
         sw.WriteLine(String.Join(" ", (from double d in waldTestPValues select d.ToString()).ToArray()));
         sw.WriteLine(String.Join(" ", (from double d in minValues select d.ToString()).ToArray()));
         sw.WriteLine(String.Join(" ", (from double d in maxValues select d.ToString()).ToArray()));
         sw.WriteLine(String.Join(" ", (from double d in sumValues select d.ToString()).ToArray()));
         sw.Close();
     }
     return(outPath);
 }
Beispiel #34
0
        public static PValue RunStatically(StackContext sctx, PValue[] args)
        {
            if (args.Length < 2)
                throw new PrexoniteException("then command requires two arguments.");

            return sctx.CreateNativePValue(new CallComposition(args[0], args[1]));
        }
Beispiel #35
0
            internal static bool TryCreateTupleValue <ItemT>(
                PType <ItemT> itemType,
                string json,
                GreenJsonListSyntax jsonListSyntax,
                int itemIndex,
                int errorReportingOffset,
                List <JsonErrorInfo> errors,
                out ItemT convertedTargetValue,
                out PValue value)
            {
                if (itemIndex < jsonListSyntax.FilteredListItemNodeCount)
                {
                    return(TryCreateItemValue(
                               itemType,
                               json,
                               jsonListSyntax,
                               itemIndex,
                               errorReportingOffset,
                               errors,
                               out convertedTargetValue,
                               out value));
                }

                convertedTargetValue = default;
                value = default;
                return(false);
            }
Beispiel #36
0
 public string writeModel(string outModelPath)
 {
     outPath = outModelPath;
     using (System.IO.StreamWriter sw = new System.IO.StreamWriter(outPath))
     {
         sw.WriteLine(modelTypes.LinearRegression.ToString());
         sw.WriteLine(InTablePath);
         sw.WriteLine(String.Join(",", IndependentFieldNames));
         sw.WriteLine(String.Join(",", DependentFieldNames));
         sw.WriteLine(String.Join(",", ClassFieldNames));
         sw.WriteLine(SampleSize.ToString());
         sw.WriteLine(NumberOfVariables.ToString());
         sw.WriteLine(InterceptThroughOrigin.ToString());
         sw.WriteLine(RMSE);
         sw.WriteLine(FValue.ToString());
         sw.WriteLine(PValue.ToString());
         sw.WriteLine(Rsquared.ToString());
         sw.WriteLine(AdjustedRsquared.ToString());
         sw.WriteLine(String.Join(" ", (from double d in Coefficients select d.ToString()).ToArray()));
         sw.WriteLine(String.Join(" ", (from double d in StandardErrors select d.ToString()).ToArray()));
         sw.WriteLine(String.Join(" ", (from double d in minValues select d.ToString()).ToArray()));
         sw.WriteLine(String.Join(" ", (from double d in maxValues select d.ToString()).ToArray()));
         sw.WriteLine(String.Join(" ", (from double d in sumValues select d.ToString()).ToArray()));
         sw.Close();
     }
     return(outPath);
 }
Beispiel #37
0
        /// <summary>
        /// 获取输入数据的最大值  最大值点号 最小值 最小值点号
        /// </summary>
        /// <returns></returns>
        public static List <PValue> getMaxMin(List <PValue> input)
        {
            List <Point>  points = new List <Point>();
            List <PValue> list   = new List <PValue>();
            int           length = input.Count;

            for (int i = 0; i < length; i++)
            {
                Point p;
                p.pointNum = i + 1;
                p.value    = input[i].Value;
                points.Add(p);
            }
            PValue max  = new PValue();
            PValue min  = new PValue();
            PValue maxN = new PValue();
            PValue minN = new PValue();

            max.Value  = points.Max().value;
            maxN.Value = points.Max().pointNum;
            min.Value  = points.Min().value;
            minN.Value = points.Min().pointNum;
            list.Add(max);
            list.Add(maxN);
            list.Add(min);
            list.Add(minN);
            return(list);
        }
Beispiel #38
0
		public override PValue Run(StackContext sctx, PValue[] args)
		{
			if(args.Length < 2)
				throw new PrexoniteException("The Subtraction operator requires two arguments.");

			return args[0].Subtraction(sctx,args[1]);			
		}
Beispiel #39
0
        public void testgetTurnN()
        {
            List <PValue> list = new List <PValue>();
            PValue        p1   = new PValue();

            p1.Value = 5;
            PValue p2 = new PValue();

            p2.Value = 1;
            PValue p3 = new PValue();

            p3.Value = 4;
            PValue p4 = new PValue();

            p4.Value = 6;
            PValue p5 = new PValue();

            p5.Value = 7;
            list.Add(p1);
            list.Add(p2);
            list.Add(p3);
            list.Add(p4);
            list.Add(p5);
            PValue res = BaseCalcu.getTurnN(list);

            Console.WriteLine("翻转次数:" + res.Value);
            Console.Read();
        }
        public bool TryDefer(StackContext sctx, PValue[] args,
            out StackContext partialApplicationContext, out PValue result)
        {
            var effectiveArgs = _getEffectiveArgs(args);

            partialApplicationContext = null;
            result = null;

            //The following code exists in a very similar form in PartialCall.cs, FunctionalPartialCall.cs
            if ((_subject.Type is ObjectPType))
            {
                var raw = _subject.Value;
                var stackAware = raw as IStackAware;
                if (stackAware != null)
                {
                    partialApplicationContext = stackAware.CreateStackContext(sctx, effectiveArgs);
                    return true;
                }

                var partialApplication = raw as IMaybeStackAware;
                if (partialApplication != null)
                    return partialApplication.TryDefer(sctx, effectiveArgs,
                        out partialApplicationContext,
                        out result);
            }

            result = _subject.IndirectCall(sctx, effectiveArgs);
            return false;
        }
Beispiel #41
0
        protected override IEnumerable<PValue> CoroutineRun(ContextCarrier sctxCarrier,
            PValue[] args)
        {
            if (args == null)
                throw new ArgumentNullException("args");
            if (sctxCarrier == null)
                throw new ArgumentNullException("sctxCarrier");

            var t = new Dictionary<PValue, int>();

            var sctx = sctxCarrier.StackContext;

            foreach (var arg in args)
            {
                var xs = Map._ToEnumerable(sctx, arg);
                if (xs == null)
                    continue;
                foreach (var x in xs)
                    if (t.ContainsKey(x))
                        t[x]++;
                    else
                        t.Add(x, 1);
            }

            foreach (var pair in t)
                yield return new PValueKeyValuePair(pair.Key, pair.Value);
        }
Beispiel #42
0
        public static PValue RunStatically(StackContext sctx, PValue[] args)
        {
            if (args == null)
                throw new ArgumentNullException("args");
            if (sctx == null)
                throw new ArgumentNullException("sctx");

            //let sum xs acc = Seq.foldl (fun a b -> a + b) acc xs

            PValue acc;
            IEnumerable<PValue> xsArgs;

            if (args.Length == 0)
                return PType.Null;

            if (args.Length == 1)
            {
                acc = PType.Null;
                xsArgs = args;
            }
            else
            {
                acc = args[args.Length - 1];
                xsArgs = args.Take(args.Length - 1);
            }

            var xss = xsArgs.Select(e => Map._ToEnumerable(sctx, e)).Where(e => e != null);

            foreach (var xs in xss)
                foreach (var x in xs)
                    acc = acc.Addition(sctx, x);

            return acc;
        }
Beispiel #43
0
        public static PValue RunStatically(StackContext sctx, PValue[] args)
        {
            if (sctx == null)
                throw new ArgumentNullException("sctx");
            if (args == null || args.Length == 0 || args[0] == null)
                return PType.Null.CreatePValue();

            var iargs = Call.FlattenArguments(sctx, args, 1);

            var retChan = new Channel();
            var T = new Thread(() =>
                {
                    PValue result;
                    try
                    {
                        result = args[0].IndirectCall(sctx, iargs.ToArray());
                    }
                    catch (Exception ex)
                    {
                        result = sctx.CreateNativePValue(ex);
                    }
                    retChan.Send(result);
                })
                {
                    IsBackground = true
                };
            T.Start();
            return PType.Object.CreatePValue(retChan);
        }
Beispiel #44
0
        protected static IEnumerable<PValue> CoroutineRunStatically(ContextCarrier sctxCarrier, PValue[] args)
        {
            if (sctxCarrier == null)
                throw new ArgumentNullException("sctxCarrier");
            if (args == null)
                throw new ArgumentNullException("args");

            var sctx = sctxCarrier.StackContext;

            foreach (var arg in args)
            {
                if (arg == null)
                    throw new ArgumentException("No element in seqconcat(args...) must be null.", "args");
                var xss = Map._ToEnumerable(sctx, arg);
                if (xss == null)
                    continue;
                foreach (var xsRaw in xss)
                {
                    var xs = Map._ToEnumerable(sctx, xsRaw);
                    if(xs == null)
                        throw new ArgumentException("The elements in the sequences passed to seqconcat(..) must be sequences themselves.");
                    foreach (var x in xs)
                        yield return x;
                }
            }
        }
Beispiel #45
0
        /// <summary>
        ///     Implementation of (obj, [isSet, ] id, arg1, arg2, arg3, ..., argn) ⇒ obj.id(arg1, arg2, arg3, ..., argn);
        /// </summary>
        /// <remarks>
        ///     <para>
        ///         Wrap Lists in other lists, if you want to pass them without being unfolded: 
        ///         <code>
        ///             function main()
        ///             {   var myList = [1, 2];
        ///             var obj = "{1}hell{0}";
        ///             print( call\member(obj, "format",  [ myList ]) );
        ///             }
        /// 
        ///             //Prints "2hell1"
        ///         </code>
        ///     </para>
        /// </remarks>
        /// <param name = "sctx">The stack context in which to call the callable argument.</param>
        /// <param name = "args">A list of the form [ obj, id, arg1, arg2, arg3, ..., argn].<br />
        ///     Lists and coroutines are expanded.</param>
        /// <returns>The result returned by the member call.</returns>
        public override PValue Run(StackContext sctx, PValue[] args)
        {
            if (sctx == null)
                throw new ArgumentNullException("sctx");
            if (args == null || args.Length < 2 || args[0] == null)
                throw new ArgumentException(
                    "The command callmember has the signature(obj, [isSet,] id [, arg1, arg2,...,argn]).");

            var isSet = false;
            string id;
            var i = 2;

            if (args[1].Type == PType.Bool && args.Length > 2)
            {
                isSet = (bool) args[1].Value;
                id = args[i++].CallToString(sctx);
            }
            else
            {
                id = args[1].CallToString(sctx);
            }


            var iargs = new PValue[args.Length - i];
            Array.Copy(args, i, iargs, 0, iargs.Length);

            return Run(sctx, args[0], isSet, id, iargs);
        }
            public ICopy CopyThis()
            {
                var v = new PValue <T>();

                v.mValue = mValue;
                v.mIsSet = mIsSet;
                return(v);
            }
Beispiel #47
0
        public int SetActValue(int tagid, PValue pvalue)
        {
            rtdbHelper.Logon();
            int errorRecord = rtdbHelper.SetActValue(tagid, pvalue);

            rtdbHelper.Logoff();        //golden3.0采用连接池,每次使用完毕,使用logoff释放连接资源
            return(errorRecord);
        }
Beispiel #48
0
        public PValue GetSummaryValues(int tagid, DateTime startDate, DateTime endDate, string type)
        {
            PValue pvalue = new PValue();

            rtdbHelper.Logon();
            pvalue = rtdbHelper.GetSummaryValues(tagid, startDate, endDate, type);
            rtdbHelper.Logoff();        //golden3.0采用连接池,每次使用完毕,使用logoff释放连接资源
            return(pvalue);
        }
Beispiel #49
0
        private void bt_export4calcu_Click(object sender, EventArgs e)
        {
            PValue beforepoint = new PValue(double.Parse(tb_startvalue.Text), startDatetime, 0);
            PValue afterpoint  = new PValue(double.Parse(tb_endvalue.Text), endDatetime, 0);

            PValue insertpoint = PValue.Interpolate(beforepoint, afterpoint, insertDatetime);

            tb_insertvalue.Text = insertpoint.Value.ToString();
        }
Beispiel #50
0
        public int SetActValue(int tagid, PValue pvalue)
        {
            int[]         tagids  = { tagid };
            List <PValue> pvalues = new List <PValue>();

            pvalues.Add(pvalue);
            int result = SetActValues(tagids, pvalues);

            return(result);
        }
Beispiel #51
0
        public int SetActValue(string tagname, PValue pvalue)
        {
            string[]      tagnames = { tagname };
            List <PValue> pvalues  = new List <PValue>();

            pvalues.Add(pvalue);
            int result = SetActValues(tagnames, pvalues);

            return(result);
        }
Beispiel #52
0
        public int SetActValue(int tagid, PValue pvalue)
        {
            if (rtdbHelper.isLogOn == false)
            {
                rtdbHelper.Logon();
            }
            int errorRecord = rtdbHelper.SetActValue(tagid, pvalue);

            //rtdbHelper.Logoff();          //在PGIMSpecial下,使用长连接
            return(errorRecord);
        }
Beispiel #53
0
        /// <summary>
        /// 求输入数据的平均值
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public static PValue getAvg(List <PValue> input)
        {
            PValue avg = new PValue();
            double sum = 0.0;

            for (int i = 0; i < input.Count; i++)
            {
                sum = sum + input[i].Value;
            }
            avg.Value = sum / input.Count;
            return(avg);
        }
Beispiel #54
0
        public void SelectById(string id)
        {
            long offset = index.SelectFirst(id);
            //Console.WriteLine("offset=" + offset);
            PaEntry entry = cell.Root.Element(0);

            entry.offset = offset;

            PValue pv = entry.GetValue();

            Console.WriteLine("record=" + pv.Type.Interpret(pv.Value));
        }
Beispiel #55
0
        public PValue GetSummaryValues(int tagid, DateTime startDate, DateTime endDate, string type)
        {
            PValue pvalue = new PValue();

            if (rtdbHelper.isLogOn == false)
            {
                rtdbHelper.Logon();
            }
            pvalue = rtdbHelper.GetSummaryValues(tagid, startDate, endDate, type);
            //rtdbHelper.Logoff();          //在PGIMSpecial下,使用长连接
            return(pvalue);
        }
Beispiel #56
0
        /// <summary>
        /// 对输入数据的绝对值求和
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public static PValue getAbsSum(List <PValue> input)
        {
            PValue Sum = new PValue();
            double sum = 0.0;

            for (int i = 0; i < input.Count; i++)
            {
                sum = sum + Math.Abs(input[i].Value);
            }
            Sum.Value = sum;
            return(Sum);
        }
Beispiel #57
0
 public string writeModel(string outModelPath)
 {
     if (mlr == null)
     {
         buildModel();
     }
     outPath = outModelPath;
     using (System.IO.StreamWriter sw = new System.IO.StreamWriter(outPath))
     {
         sw.WriteLine(modelTypes.PLR);
         sw.WriteLine(InTablePath);
         sw.WriteLine(String.Join(",", IndependentFieldNames));
         sw.WriteLine(String.Join(",", DependentFieldNames));
         sw.WriteLine(String.Join(",", ClassFieldNames));
         sw.WriteLine(String.Join(",", Categories));
         sw.WriteLine(NumberOfIndependentVariables.ToString());
         sw.WriteLine(NumberOfCategories.ToString());
         sw.WriteLine(Delta.ToString());
         sw.WriteLine(NumberOfIterationsToConverge.ToString());
         sw.WriteLine(LogLikelihood.ToString());
         sw.WriteLine(Deviance.ToString());
         sw.WriteLine(X2.ToString());
         sw.WriteLine(PValue.ToString());
         sw.WriteLine(String.Join(",", (from double d in minValues select d.ToString()).ToArray()));
         sw.WriteLine(String.Join(",", (from double d in maxValues select d.ToString()).ToArray()));
         sw.WriteLine(String.Join(",", (from double d in sumValues select d.ToString()).ToArray()));
         for (int i = 0; i < Coefficients.Length; i++)
         {
             string[] vlArr = (from double d in Coefficients[i] select d.ToString()).ToArray();
             sw.WriteLine(String.Join(" ", vlArr));
         }
         for (int i = 0; i < StandardError.Length; i++)
         {
             string[] vlArr = (from double d in StandardError[i] select d.ToString()).ToArray();
             sw.WriteLine(String.Join(" ", vlArr));
         }
         for (int i = 0; i < WaldStatistic.Length; i++)
         {
             string[] vlArr = (from double d in WaldStatistic[i] select d.ToString()).ToArray();
             sw.WriteLine(String.Join(" ", vlArr));
         }
         for (int i = 0; i < WaldPvalue.Length; i++)
         {
             string[] vlArr = (from double d in WaldPvalue[i] select d.ToString()).ToArray();
             sw.WriteLine(String.Join(" ", vlArr));
         }
         sw.Close();
     }
     return(outPath);
 }
        public IBlackboardValue <T> Value <T>(int index)
        {
            if (!IsValid <T>(index, false))
            {
                return(null);
            }
            var p = mProperties[index];

            if (p == null)
            {
                p = new PValue <T>();
                mProperties[index] = p;
            }
            return((IBlackboardValue <T>)p);
        }
        private void AsyncMethodTest(CAwaitable a1, CAwaitable a2, PValue <int> value)
        {
            async CTask Do()
            {
                value.Value = -1;
                await a1;

                value.Value = 1;
                await a2;

                value.Value = 2;
            }

            _ = Do();
        }
Beispiel #60
0
        /// <summary>
        /// Gets the <see cref="PValue"/> that is associated with the specified property.
        /// </summary>
        /// <param name="property">
        /// The property to locate.
        /// </param>
        /// <param name="value">
        /// When this method returns, contains the value associated with the specified property,
        /// if the property is found; otherwise, the default <see cref="PValue"/> value.
        /// This parameter is passed uninitialized.
        /// </param>
        /// <returns>
        /// true if this <see cref="SettingObject"/> contains a value for the specified property;
        /// otherwise, false.
        /// </returns>
        /// <exception cref="ArgumentNullException">
        /// <paramref name="property"/> is null.
        /// </exception>
        public bool TryGetRawValue(SettingProperty property, out PValue value)
        {
            if (property == null)
            {
                throw new ArgumentNullException(nameof(property));
            }

            if (Schema.ContainsProperty(property) &&
                Map.TryGetValue(property.Name.Key, out value))
            {
                return(true);
            }
            value = default;
            return(false);
        }