Quote:

Does the 35s operate that same way or, if a result is complex, it will get displayed?

The 35s does not require switching to a special complex mode, nor does it need a CPLX prefix. IMHO it works in a very elegant way.

First of all, the 35s has a "real" (;-)) complex data type. It actually can use data consisting two or even three components with just one single register. So one single stack or data register can hold values like these:

real: 3,14159

complex: 0,69315 + 3,14159 i

complex: r=3,21715 angle=77,55785

vector 2D: [1,73205; 1,41421]

vector 3D: [3,25; 4,25; 90]

So you always see directly whether a result is real, complex or something else. No need to check if there possibly is an imaginary part that's not in the display. What you see is what you get. Also you can work with all these number types essentially the same way you do with simple reals - the stack behaves just the same way.

There also are no unexpected error messages or, even worse, unexpected results because the user did not realize that the result is complex (while real mode was assumed). The 35s here follows a quite straightforward paradigm: if the operand is complex resp. real, so is the result. This is how it works:

2 [LN] 0,69315

-2 [LN] LOG(NEG)

-2 [SQRT] SQRT(NEG)

-2i0 [LN] 0,69315i3,14159

-2 [ENTER]

0,5i0 [y^x] 0,00000i1,41421

0i1 [ENTER]

2 [y^x] -1,00000i0,00000

In other words: enter a real number and get a real result. Or an error message if there isn't one. Enter a complex number to tell the 35s that a complex result is allowed, and get one. If the imaginary part is zero (i.e. the result of a complex operation is real) this is directly visible in the display.

There are only two things to remember: first, not all operations are available in the complex domain. SQRT and x^2 for instance are not, so you use y^x instead (cf. examples above). Inverse trig is not defined either. Second, there is no direct way to split a complex number into its real and imaginary parts.

Dieter