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)); }
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)); }