## #928 is(equal(%i,0))

closed
nobody
8
2006-12-19
2006-05-15
Barton Willis
No

(%i9) is(equal(%i,0));
`sign' called on an imaginary argument:

(%i10) is(equal(und,0));
`sign' called on `und'.

I claim that both of these should evaluate to false.
It seems that equal should call csign, not \$sign.

Barton

## Discussion

• Robert Dodier
2006-05-16

Logged In: YES
user_id=501686

Agreed, these are bugs, and these should both yield false.

• Robert Dodier
2006-06-05

Logged In: YES
user_id=501686

Fix title of this item (equla --> equal).

• Robert Dodier
2006-06-05

• summary: is(equla(%i,0)) --> is(equal(%i,0))

• Robert Dodier
2006-08-26

Logged In: YES
user_id=501686

Increase priority. This is a serious hindrance.

• Robert Dodier
2006-08-26

• priority: 5 --> 8

• Logged In: NO

Well, two complex numbers are equal if and only if their
real and imaginary parts are equal. That is

"a + ib = c + id" if and only if "a = c" and "b = d"

If the complex number is in the polar form, they are equal
if and only if they have the same magnitude and direction,
that is

"a*%e^(%i*b) = c*%e^(%i*d)" if and only if "a = c" and "b = d"

Generally speaking, any two vectors are equal if and only if
they are equal in its components. That is

[x[1],x[2],x[3],...,x[n]] = [y[1],y[2],y[3],...y[m]]
only when
"n = m" and "x[i]=y[i]" for all 'i' between 1 and n
Otherwise, they are not equal

I hope this can help to improve Maxima

--Mario/Mexico

• Robert Dodier
2006-12-19

Logged In: YES
user_id=501686
Originator: NO

Fixed by r1.16 src/compar.lisp (by Barton Willis).

• Robert Dodier
2006-12-19

• status: open --> closed