[Date Index] [Thread Index] [Author Index]
Patterns_ to define linear operators?
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