You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by pe...@apache.org on 2003/03/10 21:55:59 UTC
cvs commit: xml-xerces/c/src/xercesc/util XMLNumber.hpp XMLFloat.cpp XMLDouble.cpp XMLDateTime.hpp XMLAbstractDoubleFloat.hpp XMLAbstractDoubleFloat.cpp
peiyongz 2003/03/10 12:55:59
Modified: c/src/xercesc/util XMLNumber.hpp XMLFloat.cpp XMLDouble.cpp
XMLDateTime.hpp XMLAbstractDoubleFloat.hpp
XMLAbstractDoubleFloat.cpp
Log:
Schema Errata E2-40 double/float
Revision Changes Path
1.5 +12 -1 xml-xerces/c/src/xercesc/util/XMLNumber.hpp
Index: XMLNumber.hpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/XMLNumber.hpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- XMLNumber.hpp 2 Feb 2003 23:54:43 -0000 1.4
+++ XMLNumber.hpp 10 Mar 2003 20:55:58 -0000 1.5
@@ -57,6 +57,9 @@
/*
* $Id$
* $Log$
+ * Revision 1.5 2003/03/10 20:55:58 peiyongz
+ * Schema Errata E2-40 double/float
+ *
* Revision 1.4 2003/02/02 23:54:43 peiyongz
* getFormattedString() added to return original and converted value.
*
@@ -87,6 +90,14 @@
class XMLUTIL_EXPORT XMLNumber
{
public:
+
+ enum
+ {
+ LESS_THAN = -1,
+ EQUAL = 0,
+ GREATER_THAN = 1,
+ INDETERMINATE = 2
+ };
virtual ~XMLNumber();
1.9 +4 -6 xml-xerces/c/src/xercesc/util/XMLFloat.cpp
Index: XMLFloat.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/XMLFloat.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- XMLFloat.cpp 2 Feb 2003 23:54:43 -0000 1.8
+++ XMLFloat.cpp 10 Mar 2003 20:55:58 -0000 1.9
@@ -57,6 +57,9 @@
/*
* $Id$
* $Log$
+ * Revision 1.9 2003/03/10 20:55:58 peiyongz
+ * Schema Errata E2-40 double/float
+ *
* Revision 1.8 2003/02/02 23:54:43 peiyongz
* getFormattedString() added to return original and converted value.
*
@@ -172,7 +175,6 @@
{
if (fValue > (-1)*DBL_MIN)
{
- fType = NegZero;
fDataConverted = true;
fValue = 0;
}
@@ -186,7 +188,6 @@
{
if (fValue < DBL_MIN )
{
- fType = PosZero;
fDataConverted = true;
fValue = 0;
}
@@ -198,7 +199,6 @@
}
else
{
- fType = (getSign() == 1) ? PosZero : NegZero;
fDataConverted = true;
}
}
@@ -214,13 +214,11 @@
}
else if (fValue > (-1)*FLT_MIN && fValue < 0)
{
- fType = NegZero;
fDataConverted = true;
fValue = 0;
}
else if (fValue > 0 && fValue < FLT_MIN )
{
- fType = PosZero;
fDataConverted = true;
fValue = 0;
}
1.8 +4 -4 xml-xerces/c/src/xercesc/util/XMLDouble.cpp
Index: XMLDouble.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/XMLDouble.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- XMLDouble.cpp 2 Feb 2003 23:54:43 -0000 1.7
+++ XMLDouble.cpp 10 Mar 2003 20:55:58 -0000 1.8
@@ -57,6 +57,9 @@
/*
* $Id$
* $Log$
+ * Revision 1.8 2003/03/10 20:55:58 peiyongz
+ * Schema Errata E2-40 double/float
+ *
* Revision 1.7 2003/02/02 23:54:43 peiyongz
* getFormattedString() added to return original and converted value.
*
@@ -177,7 +180,6 @@
{
if (fValue > (-1)*DBL_MIN)
{
- fType = NegZero;
fDataConverted = true;
fValue = 0;
}
@@ -191,7 +193,6 @@
{
if (fValue < DBL_MIN )
{
- fType = PosZero;
fDataConverted = true;
fValue = 0;
}
@@ -203,7 +204,6 @@
}
else
{
- fType = (getSign() == 1) ? PosZero : NegZero;
fDataConverted = true;
}
1.5 +4 -10 xml-xerces/c/src/xercesc/util/XMLDateTime.hpp
Index: XMLDateTime.hpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/XMLDateTime.hpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- XMLDateTime.hpp 2 Feb 2003 23:54:43 -0000 1.4
+++ XMLDateTime.hpp 10 Mar 2003 20:55:58 -0000 1.5
@@ -57,6 +57,9 @@
/*
* $Id$
* $Log$
+ * Revision 1.5 2003/03/10 20:55:58 peiyongz
+ * Schema Errata E2-40 double/float
+ *
* Revision 1.4 2003/02/02 23:54:43 peiyongz
* getFormattedString() added to return original and converted value.
*
@@ -97,15 +100,6 @@
class XMLUTIL_EXPORT XMLDateTime : public XMLNumber
{
public:
-
- // to be moved to XMLNumber
- enum
- {
- LESS_THAN = -1,
- EQUAL = 0,
- GREATER_THAN = 1,
- INDETERMINATE = 2
- };
enum valueIndex
{
1.9 +4 -3 xml-xerces/c/src/xercesc/util/XMLAbstractDoubleFloat.hpp
Index: XMLAbstractDoubleFloat.hpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/XMLAbstractDoubleFloat.hpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- XMLAbstractDoubleFloat.hpp 2 Feb 2003 23:54:43 -0000 1.8
+++ XMLAbstractDoubleFloat.hpp 10 Mar 2003 20:55:58 -0000 1.9
@@ -57,6 +57,9 @@
/*
* $Id$
* $Log$
+ * Revision 1.9 2003/03/10 20:55:58 peiyongz
+ * Schema Errata E2-40 double/float
+ *
* Revision 1.8 2003/02/02 23:54:43 peiyongz
* getFormattedString() added to return original and converted value.
*
@@ -140,8 +143,6 @@
enum LiteralType
{
NegINF,
- NegZero,
- PosZero,
PosINF,
NaN,
SpecialTypeNum,
1.10 +30 -30 xml-xerces/c/src/xercesc/util/XMLAbstractDoubleFloat.cpp
Index: XMLAbstractDoubleFloat.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/XMLAbstractDoubleFloat.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- XMLAbstractDoubleFloat.cpp 2 Feb 2003 23:54:43 -0000 1.9
+++ XMLAbstractDoubleFloat.cpp 10 Mar 2003 20:55:58 -0000 1.10
@@ -57,6 +57,9 @@
/*
* $Id$
* $Log$
+ * Revision 1.10 2003/03/10 20:55:58 peiyongz
+ * Schema Errata E2-40 double/float
+ *
* Revision 1.9 2003/02/02 23:54:43 peiyongz
* getFormattedString() added to return original and converted value.
*
@@ -148,16 +151,6 @@
fType = NegINF;
fSign = -1;
}
- else if (XMLString::equals(tmpStrValue, XMLUni::fgNegZeroString) )
- {
- fType = NegZero;
- fSign = -1;
- }
- else if (XMLString::equals(tmpStrValue, XMLUni::fgPosZeroString) )
- {
- fType = PosZero;
- fSign = 1;
- }
else if (XMLString::equals(tmpStrValue, XMLUni::fgPosINFString) )
{
fType = PosINF;
@@ -228,12 +221,6 @@
case NegINF:
XMLString::catString(fFormattedString, XMLUni::fgNegINFString);
break;
- case NegZero:
- XMLString::catString(fFormattedString, XMLUni::fgNegZeroString);
- break;
- case PosZero:
- XMLString::catString(fFormattedString, XMLUni::fgPosZeroString);
- break;
case PosINF:
XMLString::catString(fFormattedString, XMLUni::fgPosINFString);
break;
@@ -265,23 +252,41 @@
(!rValue->isSpecialValue()) )
{
if (lValue->fValue == rValue->fValue)
- return 0;
+ return EQUAL;
else
- return (lValue->fValue > rValue->fValue) ? 1: -1;
+ return (lValue->fValue > rValue->fValue) ? GREATER_THAN : LESS_THAN;
}
//
// case#2: lValue special
// rValue special
//
+ // Schema Errata E2-40
+ //
+ // Positive Infinity is greater than all other non-NAN value.
+ // Nan equals itself but is not comparable with (neither greater than nor less than)
+ // any other value in the value space
+ // Negative Infinity is less than all other non-NAN values.
+ //
else
if ((lValue->isSpecialValue()) &&
(rValue->isSpecialValue()) )
{
if (lValue->fType == rValue->fType)
- return 0;
+ return EQUAL;
else
- return (lValue->fType > rValue->fType) ? 1 : -1;
+ {
+ if ((lValue->fType == NaN) ||
+ (rValue->fType == NaN) )
+ {
+ return INDETERMINATE;
+ }
+ else
+ {
+ return (lValue->fType > rValue->fType) ? GREATER_THAN : LESS_THAN;
+ }
+ }
+
}
//
// case#3: lValue special
@@ -311,17 +316,12 @@
switch (specialValue->fType)
{
case NegINF:
- return -1;
-
- case NegZero:
- case PosZero:
- return (normalValue->getSign() > 0 ? -1 : 1);
-
+ return LESS_THAN;
case PosINF:
- return 1;
-
+ return GREATER_THAN;
case NaN:
- return 1;
+ // NaN is not comparable to any other value
+ return INDETERMINATE;
default:
XMLString::binToText(specialValue->fType, value1, 16, 10);
---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org