Example #1
0
        public override int Eval(Stack st)
        {
            int narg = GetNarg(st);

            var x = GetAlgebraic(st);

            var index_in = CreateVector.Create(st);

            if (index_in.IsConstant())
            {
                var mx = new Matrix(( Algebraic )x);

                var idx = Index.createIndex(index_in, mx);

                mx = mx.Extract(idx);
                x  = mx.Reduce();
            }
            else
            {
                var mr = new MatRef(( Algebraic )x);

                x = new Polynomial(new FunctionVariable("MR(" + x + ")", index_in, mr));
            }

            st.Push(x);

            return(0);
        }