## Complex Attributes

There are six available attributes for any complex number:

- real
- imaginary
- magnitude
- sum_of_squares
- degrees
- radians

Below is a diagram showing the complex number [4, 3]. The attribute values for real, imaginary, magnitude and degrees are labeled for that point.

The sum_of_squares attribute is simply the magnitude attribute without taking the square root. For the point [4, 3] shown in the diagram the values of magnitude and sum_of_squares are as follows:

attribute | formula | value
--- | --- | ---
magnitude | sqrt(4 * 4 + 3 * 3) | 5
sum_of_squares | 4 * 4 + 3 * 3 | 25

The reason for having both sum_of_squares and magnitude is that since the magnitude calculation involves taking a square root it is slower than the sum_of_squares calculation. It is often possible to create an equivalent (but more quickly generated) fractal image by using sum_of_squares instead of magnitude

The attribute radians measures the angle a point makes with the origin, just like degrees, only the units are different. A good analogy for the relationship between degrees and radians would be the relationship between the fahrenheit and celsius temperature scales (they both measure the same thing but the results are expressed in different units).

The relationship between degrees and radians is based upon this equation:

`360 degrees = 6.28 radians`

In actuality, 360 degrees does not equal precisely 6.28 radians - it equals 2 * pi where pi is approximately 3.14159265358979323846.

Here is a diagram showing a number of angles in degrees and their equivalent values in radians:

The formulas for converting between degrees and radians are as follows:

`degrees = 57.2958 * radians`

and

`radians = 0.017453 * degrees`

The reason for having both radians and degrees is that the trigonometric functions (sin, cos, etc.) all expect the values supplied to them to be measured in radians.

Finally, nearly all the attributes have a long and short form

attribute | short form | examples
--- | --- | ---
real | real | real(z), real([1, 2])
imaginary | imag | imaginary(z), imag([2, 3])
magnitude | mag | magnitude(z), mag([3, 4])
sum_of_squares | ssq | sum_of_squares(z), ssq([4, 5])
degrees | deg | degrees(z), deg([5, 6])
radians | rad | radians(z), rad([6, 7])