Black Box Trigonometry Write a program or function that can distinguish the following 12 trigonometric functions:  sin,
cos,
tan,
asin,
acos,
atan,
sinh,
cosh,
tanh,
asinh,
acosh,
atanh.

Your program is given one of the above functions as black box and should output the function's name either as given above or the way it is named in your language.

This is code-golf, so the shortest answer in each language wins. You should show that your code works correctly by including test cases with all 12 possible inputs. If the language of your choice does not include build-ins for all of the above functions, you have to provide your own sensible implementations of the missing ones.

Further Clarifications


Using complex numbers to query the black box is allowed if the underlying build-ins can handle them.
As \$ dom\ acosh \cap dom\ atanh = \emptyset \$ when using only real numbers, queries to the black box function can give domain errors. In this case you should assume that the black box only communicates the existence of an error, but not from which function it originates.
If instead of an error some other value, e.g. NaN or null, is returned, then your submission should be able to handle them.




Thanks for the helpful sandbox feedback!
Python 3.6.4 on Linux, 99 bytes

Bit of a silly answer, but:

lambda f:"asinh acos cos cosh atan atanh tan sin asin tanh sinh acosh".split()[hash(f(.029))%19%12]


Requires the trigonometric functions to be one out of the built-in cmath module for complex in/output.