sine_law() added