On 09/07/2012 05:30 PM, Daniel J Sebald wrote:
In working with the fftfilt() routine and wanting to know if the inputs were purely imaginary I wondered why there is no such thing as isimag(). It seems as though it would be as useful as or more useful than iscomplex().

Here's the thing: iscomplex() appears to be simply the complement of isreal(), unless I'm missing a more sophisticated use of syntax:

octave:5> x = 1
x =  1
octave:6> [isreal(x) iscomplex(x)]
ans =

   1   0

octave:7> x = i
x =  0 + 1i
octave:8> [isreal(x) iscomplex(x)]
ans =

   0   1

octave:9> x = 1+i
x =  1 + 1i
octave:10> [isreal(x) iscomplex(x)]
ans =

   0   1

octave:11>

I ask, What's the point of having a function that is simply !isreal()? On the other hand isimag(), which is equivalent to "all (real (x) == 0)) && !isreal (x)", would be a nice shorthand.

Just an observation. Usually duplication of function (or its complement) is weeded out of programming languages.

Dan
I also recently noticed some quirks with complex:
x = 1 + 0i   is treated as real and not complex.
but
x = 0 + 1i  is treated as imag and complex.

But, this is consistent with Matlab. However, Matlab has no iscomplex and also
differs in its example for help isreal.  There, Matlab gives an example:
       x = magic(3);
       y = complex(x);

which gives:
>> y

y =

     8     1     6
     3     5     7
     4     9     2
>> isreal(y)

ans =

     0
but, ~isreal(y) gives:
ans =

     1

The text in the help messages says that
isreal(y) returns
    false, because COMPLEX returns y with an all zero imaginary
    part.
-------------------------------------------
but Octave gives:

y =

   8 + 0i   1 + 0i   6 + 0i
   3 + 0i   5 + 0i   7 + 0i
   4 + 0i   9 + 0i   2 + 0i

and:
octave:21> isreal(y)
ans = 0
and:
octave:29> ~isreal(y)
ans =  1

The only difference is in the display of y.
This hardly qualifies as a bug, but does add a bit
to the confusion.  Some people would imagine
that real and imaginary would be treated "symmetrically."

So far I do not see much point in making a change.




------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Octave-dev mailing list
Octave-dev@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/octave-dev

Reply via email to