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