public static Func <int, Symbol> CrossProduct(Func <int, Operator> lhs, Func <int, Symbol> rhs) { return(VectorUtilities.CrossProduct(lhs, rhs, (x, y) => x - y, (x, y) => x * y)); }
public static Symbol ScalarProduct(Func <int, Operator> lhs, Func <int, Symbol> rhs, int size) { return(VectorUtilities.ScalarProduct(lhs, rhs, size, Symbol.Zero, (x, y) => x + y, (x, y) => x * y)); }
public static Func <int, T> CrossProduct <T>(Func <int, T> lhs, Func <int, T> rhs, IOperations <T> operations) { return(VectorUtilities.CrossProduct(lhs, rhs, (x, y) => operations.Subtract(x, y), (x, y) => operations.Multiply(x, y))); }
public static T ScalarProduct <T>(Func <int, T> lhs, Func <int, T> rhs, int size, IOperations <T> operations) { return(VectorUtilities.ScalarProduct(lhs, rhs, size, operations.Zero, (x, y) => operations.Add(x, y), (x, y) => operations.Multiply(x, y))); }