General function that compares two values. Usually this function
behaves like x==y and type(x)==type(y), but for numpy arrays it
behaves like np.array_equal(x==y).
Parameters:
x, y : any type
Elements to be compared
Returns:
eq: bool :
True iff x and y are equal. If in the comparison of x and y
and exception is thrown then False is returned
This comparison is performed element-wise, if applicable, and
in that case True is only returned if all elements are equal