Patterns_ to define linear operators?

*To*: mathgroup at smc.vnet.net*Subject*: [mg71385] Patterns_ to define linear operators?*From*: "W. Craig Carter" <ccarter at mit.edu>*Date*: Thu, 16 Nov 2006 00:53:36 -0500 (EST)

Hello, I'd like to implement a rule that will factor out constants from linear operators such as FourierTransform; i.e., FourierTransform[a*f[x], x, k] to a*FourierTransform[f[x],x,k] Here is a method that seems sensible at first, but is potentially dangerous: MyRule1 = FourierTransform[a_ f_[y_], x_, k_] :-> a FourierTransform[f[y],x,k] (which would fail if a was not free of x) An improvement is: MyRule2 = FourierTransform[a_?(FreeQ[#,x]&), f_[y_], x_, k_] :-> a FourierTransform[f[y],x,k] (which would fail if a were a product, say b x) Does anybody have advice on a robust way to implement this rule? Thanks, Craig Carter