new div_180_90_d routine based on doubles: faster and more precise