internal static object ComponentMathNumeric(SkryptEngine engine, VectorInstance left, Func <double, double> func) { var dimension = left.Components.Length; var args = new double[dimension]; for (var i = 0; i < dimension; i++) { var newVal = func(left.Components[i]); args[i] = newVal; } return(engine.Vector.Construct(args)); }
internal static object ComponentMath(SkryptEngine engine, VectorInstance left, VectorInstance right, Func <double, double, double> func) { var dimension = left.Components.Length; if (dimension == right.Components.Length) { var args = new double[dimension]; for (var i = 0; i < dimension; i++) { var newVal = func(left.Components[i], right.Components[i]); args[i] = newVal; } return(engine.Vector.Construct(args)); } return(new InvalidOperation()); }