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?

  • $\begingroup$ Do the answers in Defining an operator with given properties and Problem with defining a simple linear operator help at all? $\endgroup$ – MarcoB Apr 18 at 19:40
  • $\begingroup$ @MarcoB I would say these answers help to build such operators from a scratch. I'm asking rather if there some higher-level ways to give an operator some standard property like linearity, Something like "Attributes[f]=bilinear wrt to numeric factors". $\endgroup$ – Weather Report Apr 19 at 4:54
  • 1
    $\begingroup$ As far as I know, there isn't any way to achieve that automatically. The implication in pointing out those answers is that, if such functionality existed, it would have been brought up before. $\endgroup$ – MarcoB Apr 19 at 12:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.