- re()
- im()
- conj()
Use of a complex number to generate an attribute results in the real part being used only whereas generating a complex macro like this
CN = -3+2*i
results in a macro value that looks like this:
(-3.0, 2.0)
This would be -3+2i.
Can a macro, once created, be used as an argument to create other macros or attributes?
The answer is no but there is some fiddling around that can make some things work.
If my macro is generated like this
CN = -3+2*i
I can create another macro like this
CN_1 = replace("%{CN}", ", ", "+i*")
I then get this value for CN_1
(-3+i*2)
I can then put this result in an attribute as a string. I can also use functions like re() and abs() directly on this so for example I can create an attribute like this (note that I am passing a string to the abs function that happens to be a valid complex number)
CNLen = abs(%{CN_1})
Sure enough, the attribute contains the expected value of 3.606.
I'm not sure if this is a taste of things to come or whether it's unintended. I suppose it would be cool to have the ability to manipulate complex numbers.