Задание:
Листок с заданиями писал(а):
В следующих задачах требуется оформить решение в виде функции, получающей в качестве параметра указатель на функцию
double (*f)(double x).
Листок с заданиями писал(а):
Вычислить корень уравнения 

 на данном отрезке с заданной точностью 

 методом хорд (секущих). Сравнить с точным ответом.
Предполагалось, что преподаватель будет проверять на 

 на отрезке 
![$[3;4]$ $[3;4]$](https://dxdy-04.korotkov.co.uk/f/b/e/7/be7c31a97c8666c865e1599a2724841d82.png)
 с точностью 

 (и этот тест после небольшой поправки, учитывающей деление на ноль, программа стала проходить). Но теперь нужно, чтобы всё работало для произвольной в разумных пределах функции, то есть для 

, например. Если непосредственно в main'е заменить 

 на 

, то компилятор выдаёт ошибку 
Компилятор писал(а):
1.1.3.c: In function ‘main’:
1.1.3.c:36:5: error: invalid operands to binary * (have ‘int’ and ‘__attribute__((const)) double (*)(double)’)
  f=2*sin+1;
Так как кроме предыдущего семестра у меня больше не было опыта программирования, гугление мне не помогло, поэтому я решил обратиться сюда (и на cyberforum). 
Что означает эта ошибка? Как её можно исправить?
Текст программы:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
double function(double a, double b, double eps, double (*f)(double x));
double function(double a, double b, double eps, double (*f)(double x))
{
        double R=0;
        int i=0;
        printf("BBeDute eps:\n");
        scanf("%lf", &eps);
        printf("BBeDute rpaHuubI\n");
        scanf("%lf%lf", &a, &b);
        while(fabs(b-a)>eps)
        {
                if(fabs(f(a)-f(b))<0.0000001)
                break;
                a=b-(b-a)*f(b)/(f(b)-f(a));
                b=a-(a-b)*f(a)/(f(a)-f(b));
                i=i+1;
        }
        R=b;
        printf("uTepaLIuu:%d\n", i);
        return R;
}
int main(void)
{
        double R=0;
        double a=0;
        double b=0;
        double d=0;
        double eps=0;
        double (*f)(double x);
        f=sin;
        R=function(a, b, eps, f);
        d=3.14159265359-R;
        printf("Pa3Huua c To4HbIm otBetom: %e\n", d);
        printf("x=%lf\n", R);
        return 0;
}