implement sin function