On synthesis and optimization of floating point units