Re: What is happening here? (TagSet)
- To: mathgroup at smc.vnet.net
- Subject: [mg27880] Re: What is happening here? (TagSet)
- From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
- Date: Fri, 23 Mar 2001 04:31:02 -0500 (EST)
- Organization: Universitaet Leipzig
- References: <99chu9$8eq@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Hi, see whats happen with Clear[u, v, x, y, z]; Clear[f, F, X, Y, U, V, Z]; UpValues /@ {u, v, x, y, z} and TagSet[x, Im[x], 0]; TagSet[y, Im[y], 0]; TagSet[u, Im[u[x, y]], 0]; TagSet[v, Im[v[x, y]], 0]; TagSet[x, Re[x], x]; TagSet[y, Re[y], y]; TagSet[u, Re[u[x, y]], u[x, y]]; TagSet[v, Re[v[x, y]], v[x, y]]; UpValues /@ {u, v, x, y, z} TagSet[] ist used to associate a definition for a function with one of the arguments and not with the function itself. Re[x]=0 would define a new pattern for Re[x], that fails because Re[] is protected. You can unprotect it, and set the value for Re[x]. Unprotect[Re] Re[x] = 0 Protect[Re] DownValues[Re] But it is stored in the DownValues[] for Re[] and every time Re[] is called this table is used. Re[x]^=0 set the upvalue for x and only is x is used the up values are consulted. So the Re[] function is not slowed down. Regards Jens > > Hello, > I've been working my way through a notebook I found on the > Internet, and the author states the following before executing some > commands which I don't understand: > > //begin copied text > There are two methods for defining a complex function in Mathematica. > Before we start, make x, y, u and v real variables. > > Clear[u, v, x, y, z]; > Clear[f, F, X, Y, U, V, Z]; > TagSet[x, Im[x], 0]; > TagSet[y, Im[y], 0]; > TagSet[u, Im[u[x, y]], 0]; > TagSet[v, Im[v[x, y]], 0]; > TagSet[x, Re[x], x]; > TagSet[y, Re[y], y]; > TagSet[u, Re[u[x, y]], u[x, y]]; > TagSet[v, Re[v[x, y]], v[x, y]]; > //end copied text > > I of course, understand the clear statements, but I can't figure out > what he's actually accomplishing. I inserted statements akin to ?x, > ?y, etc. inbetween each instruction to see if anything was changing > and couldn't glean any information from that, then I wrapped a few of > the statements within a FullForm[] function call, which gave me > something similar to this: > //FullForm = > 0 > which didn't help me at all. I've looked at the documentation, the > Wolfram Book v.4 and searched the web, all to no avail. I can't seem > to find what TagSet is doing. I read through the section on > transformations and definitions as well, but there's nothing specific > that says TagSet[x1, x2,...xi] then explains how the arguments work > together. > > Thanks for any and all illumination, > > JT