Say I want to define some simple linear operator. I can do this by
f[c_?NumericQ x_] := c f[x]
f[x_ + y_] := f[x] + f[y]
Or let's define a bi-linear operator instead
f[c_?NumericQ x_, y_] := c f[x, y]
f[x_, c_?NumericQ y_] := c f[x, y]
f[x_ + y_, z_] := f[x, z] + f[y, z]
f[x_, y_ + z_] := f[x, y] + f[x, z]
My problem is that I need to do this kind of things very often and then the definitions like above are repeated over and over. It would probably not be easy to describe all intended uses briefly here, but I hope that my intentions are clear. Isn't there some standard concise way to define operators with some common properties?
Attributes[f]=bilinear wrt to numeric factors
". $\endgroup$