Ejemplo n.º 1
0
        public void EvalDyadic(RCRunner runner, RCClosure closure, object left, object right)
        {
            // Brian! come back here to prevent the native exception
            RCOperator   op          = (RCOperator)closure.Code;
            RCVectorBase leftVector  = left as RCVectorBase;
            RCVectorBase rightVector = right as RCVectorBase;

            if (leftVector == null || rightVector == null)
            {
                throw RCException.Overload(closure, op.Name, left, right);
            }
            runner.Yield(closure, VectorMath.InvokeDyadic(closure, op.Name, leftVector, rightVector));
        }
Ejemplo n.º 2
0
        public static RCValue InvokeSequential(RCClosure closure, string name, RCVectorBase right)
        {
            RCActivator.OverloadKey key = new RCActivator.OverloadKey(name,
                                                                      typeof(object),
                                                                      null,
                                                                      right.ScalarType);
            Overload overload;

            if (!_overloads.TryGetValue(key, out overload))
            {
                throw RCException.Overload(closure, name, right);
            }
            object array = overload.Invoke(right.Array);

            return(RCVectorBase.FromArray(array));
        }