Re: How to separate imaginary unit inside an arbitrary function?

• To: mathgroup at smc.vnet.net
• Subject: [mg32467] Re: How to separate imaginary unit inside an arbitrary function?
• From: bghiggins at ucdavis.edu (Brian Higgins)
• Date: Tue, 22 Jan 2002 03:19:42 -0500 (EST)
• References: <a2gi3d\$ks\$1@smc.vnet.net>
• Sender: owner-wri-mathgroup at wolfram.com

Kostya,

In[2]:=data = f[5 I a]

Out[2]=f[5 I a]

Then if you look at the FullForm of your  expression we see how it is
stored

In[4]:=FullForm[data]

Out[4]//FullForm=f[Times[Complex[0, 5], a]]

Based on the FullForm expression we can define a replacement rule as
follows

In[15]:=
data /. f[x_Complex z_] -> Apply[Times, {f[Im[x]], f[I], f[z]}]

Out[15]=f[I] f[5] f[a]

Cheers,

Brian

"Kostya" <zlo at science.nus.edu> wrote in message news:<a2gi3d\$ks\$1 at smc.vnet.net>...
> Dear all
>
> Have a simple problem:
> have a function, say
> Name[5*I*a] but want to break it into multiples:
> Name[5*I*a]->Name[5]*Name[I]*Name[a]
>
> The issue is that the standard :> rule does not work properly:
> Name[5*I*a]//.{Name_[exa_*exb_]:>(Name[exa]*Name[exb]),
> Name_[exa_*exb_*exc_]:>(Name[exa]*Name[exb]*Name[exc])}
>
> yields just:
> Name[5*I]*Name[a] instead of desired "Name[5]*Name[I]*Name[a]"
>
>
> any suggestions?
>
> with regards
> Kostya

• Prev by Date: Re: Units
• Next by Date: Re: parallel and remote computing
• Previous by thread: Re: How to separate imaginary unit inside an arbitrary function?
• Next by thread: Re: How to separate imaginary unit inside an arbitrary function?