It's a Slippery Slope There has not been a challenge regarding slope fields, as a far as I can tell. So, I might as well make one. 

The challenge

Given:


A black box function f which takes two arguments, x and y (both real numbers) , and returns the value of the slope at point (x,y) (also a real number)
A list of real numbers, X, representing the values along the x axis,
Another list of real numbers, Y, representing the values along the y axis.
A list of (x,y) pairs, U, which represents the inputs that f is undefined on. This argument can be removed if your language can detect errors.


Output:


A rectangle with a length of the length X, and a height of the length of Y. At each combination of row r and column c in the rectangle, (starting from the bottom left corner), the character that is placed at that position will depend on the sign value of f evaluated at x=c and y=r:


If the value is positive, the character is /.
If the value is zero, the character is -.
If the value is negative, the character is \.
If (x,y) is not in the domain of f (a.k.a. a member of U), then the character is . f is guaranteed to not error on every combination of x within X and y within Y if U is utilized. 



Since I am horrible at explaining things, here's an example:

Input:

f(x,y) = x / y
X=[-1,0,1]
Y=[-1,0,1] 
U=[[-1,0],[0,0],[1,0]]


Output:

\-/

/-\



At (0,0) (the bottom left corner), the corresponding X and Y values are -1 and -1 (since X[0] = -1 and Y[0] = -1). f(-1,-1)=(-1)/(-1)=1, thus / is used.
At (1,0) (the bottom row, middle column): X[1] = 0, Y[0] = -1, f(0,-1)=(0)/(-1)=0, and 0 is zero (duh), so the character is -.
At (1,1) (the center): X[1] = 0, Y[1] = 0. [0,0] is a member of U. Therefore, it corresponds to the  character. Or, if done without U: 0/0 is undefined, thus the character is .
At (2,2) (the top left): X[2] = 1, Y[2] = 1, f(1,1)=(1)/(1)=1, which is positive. Therefore, it corresponds to the / character.
Etc...


Floating Point

Any value of f within the range [-1e-9,1e-9] should be considered to have a sign of 0.

Winning condition

This is a code-golf, so lowest byte count wins!
Jelly, 23 bytes

Ṛ⁹,2⁶v$Ṡ$e⁵$?¥þị“/ \-”Y


Try it online!

Arguments: Y, X, U, f

f is a Python string containing Jelly code. Be sure to quote it appropriately, otherwise you may encounter errors.

Also, f takes a pair [x, y] as its argument, not two arguments x and y.