close Warning: Can't synchronize with repository "(default)" (/var/svn/tolp does not appear to be a Subversion repository.). Look in the Trac log for more information.

Opened 14 years ago

Closed 14 years ago

Last modified 14 years ago

#1096 closed defect (fixed)

Error en los operadores de comparación con múltiples argumentos

Reported by: Víctor de Buen Remiro Owned by: Víctor de Buen Remiro
Priority: highest Milestone: Mantainance
Component: Kernel Version:
Severity: blocker Keywords:
Cc: imendez@…

Description (last modified by Víctor de Buen Remiro)

Los operadores de comparación con múltiples argumentos, es decir EQ, NE, LT, GT, LE, GE, no funcionan correctamente en la lógica trivaluada con omitidos.

Por ejemplo, el operador EQ resulta no ser conmutativo

Real ?==1;    //devuelve ?
Real 1==1;    //devuelve ?
Real EQ(?,1); //devuelve ?
Real EQ(1,?); //devuelve 1 y tendría que devolver ?

Los operadores de comparación multi-argumentos deben cumplir la regla general

 CMP(a, b, c, d, ...) = CMP(a,b) & CMP(b,c) & CMP(c,d) & ...

Sin embargo, esta expresión

Real EQ(?, 0, 1)

devuelve ? cuando tiene que devolver 0, pues 0 no es igual a 1 nunca, sea cual sea el resultado de comparar ? contra 0.

Change History (3)

comment:1 Changed 14 years ago by Víctor de Buen Remiro

Description: modified (diff)
Status: newaccepted

comment:2 Changed 14 years ago by Víctor de Buen Remiro

Resolution: fixed
Status: acceptedclosed

(In [3204]) Fixes #1096

comment:3 Changed 14 years ago by Víctor de Buen Remiro

(In [3222]) N-Ary comparisson operations with unknowns, finite and infinite numbers
Refs #1096

Note: See TracTickets for help on using tickets.