Some pointers on how to begin VHDL writing
VHDL-2008 has synthesisable fixed-point and floating-point libraries, in addition to ieee.math_real which is strictly for simulation. You can instantiate the float package with any width of mantissa and exponent, or use the pre-defined float types (roughly IEEE P754). The fixed point package is a better choice for DSP, and usually produces smaller hardware.

These libraries should handle question (1) for you.

For question 2) 


The math_real ARCTAN is used in simulation, not for synthesis. 
Question makes no sense as you can pass reals to and from functions.