Attributes and behaviors?
- To: mathgroup at smc.vnet.net
- Subject: [mg46545] Attributes and behaviors?
- From: "Fred Klingener" <flush at BitBucket.com>
- Date: Mon, 23 Feb 2004 02:15:37 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
Please help me understand better the relationship between attributes and
behaviors.
Background: I'm a Mathematica (5.0.0) newbie who's trying to build a
package for dual numbers. In the package, ultimately I want to overwrite
the System numeric functions to handle dual numbers without affecting the
handling of the native (atomic) types.
Progress so far: I have some sample functions working pretty well.
Functions I've named things like kDualNumberSin[] seem to work numerically
and symbolically on dual numbers and to drop through (via an explicit call)
to System`Sin[] on Real arguments. Now I'm ready to think about overwriting
System`Sin[], for example, and I'm having trouble getting my head around
atttributes.
I've built a toy function: kSin[x_] :=Sin[x], and here are a few
observations about it:
- In:-> Attributes[Sin] Out:-> {Listable, NumericFunction,...}
- In:-> Attributes[kSin] Out:-> {}
- a few tests show that kSin[] has full listable behavior, that is, it
produces the same
output as Sin[] when fed a List as an input argument.
- My 'serious' function kDualNumberSin[] relies on Series[] for its
operation.
- Series[] has no Listable attribute.
- a few primitive tests show that Series[] in fact has Listable capability.
- kDualNumberSin[] also seems to have listable capability.
All of this is confusing.
- What's the nature of the relationship between attributes and behavior?
- Is the attribute used in some inscrutable inner workings of the kernal?
- What are the costs and benefits of simply setting the Listability
attribute in my function?
- How certain do I have to be that my function really IS Listable before I
set the attribute?
- Does the absence of the Listability attribute of Series[] mean that its
current listable behavior is an undocumented feature subject to future
abandonment?
TIA for any help,
Fred Klingener
Brock Engineering