sin cos implement