On Feb 18, 2009, at 10:02 AM, Andy Farnell wrote:
On Wed, 18 Feb 2009 15:21:28 +0100 IOhannes m zmoelnig zmoelnig@iem.at wrote:
but which [pow~] _is_ the right one, and which one is backward?
The vanilla one is correct. It is consistent with mathematical and common syntactical properties of other asymmetrical (non commutative) operators
subtract A - B the second operand is the amount subtracted from the first operand (minuend) and the inlet order reflects this.
divide A/B the second operand (divisor) is the second inlet position, the first operand (dividend) is the first inlet.
So, for exponentiation A^B the first operand (base) is the first inlet, and the second operand (exponent) is the second inlet.
It's also that the signal domain [pow~] is consistent with the existing and long established message domain [pow]
At the risk of causing offence, Cyclone [pow~] made a mistake ordering inlets and I don't think it's good to take the broken Microsoft approach of putting historical, backwards compatability above correctness and future simplicity of code.
(FWIW I personally had to change dozens of my own patches including those already documented in a textbook - the pain is worth the gain to do things right.)
Well, the point of cyclone is to be compatible with Max/MSP and all its warts. So if you are trying to run a Max patch in Pd, then cyclone's pow~ is correct.
It would be possible to have a somewhat usable system built around unique names. Basically, there would need to be a central registry of names, where people would check before naming their objects. Once a name exists, it could not be used again. So Pd-vanilla's pow~ would have to be called something else. I can't see any other way to do it, and this has been discussed since at least 2000.
.hc
a.
-- Use the source
Pd-dev mailing list Pd-dev@iem.at http://lists.puredata.info/listinfo/pd-dev
----------------------------------------------------------------------------
"[T]he greatest purveyor of violence in the world today [is] my own government." - Martin Luther King, Jr.