modified:   sine.c