add convenience 'constructors'
authorChris Lattner <sabre@nondot.org>
Mon, 30 Jun 2008 18:02:44 +0000 (18:02 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 30 Jun 2008 18:02:44 +0000 (18:02 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52908 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/ADT/APFloat.h

index b3d3a061e5fcdfca08f85fefc1bfa4eaf5f2a4cf..fc5203c546f33d11a014c01d112ab66755623e40 100644 (file)
@@ -152,8 +152,8 @@ namespace llvm {
       rmNearestTiesToAway
     };
 
-    /* Operation status.  opUnderflow or opOverflow are always returned
-       or-ed with opInexact.  */
+    // Operation status.  opUnderflow or opOverflow are always returned
+    // or-ed with opInexact.
     enum opStatus {
       opOK          = 0x00,
       opInvalidOp   = 0x01,
@@ -163,7 +163,7 @@ namespace llvm {
       opInexact     = 0x10
     };
 
-    /* Category of internally-represented number.  */
+    // Category of internally-represented number.
     enum fltCategory {
       fcInfinity,
       fcNaN,
@@ -171,7 +171,7 @@ namespace llvm {
       fcZero
     };
 
-    /* Constructors.  */
+    // Constructors.
     APFloat(const fltSemantics &, const char *);
     APFloat(const fltSemantics &, integerPart);
     APFloat(const fltSemantics &, fltCategory, bool negative);
@@ -180,6 +180,17 @@ namespace llvm {
     explicit APFloat(const APInt &, bool isIEEE = false);
     APFloat(const APFloat &);
     ~APFloat();
+
+    // Convenience "constructors"
+    static APFloat getZero(const fltSemantics &Sem, bool Negative = false) {
+      return APFloat(Sem, fcZero, Negative);
+    }
+    static APFloat getInf(const fltSemantics &Sem, bool Negative = false) {
+      return APFloat(Sem, fcInfinity, Negative);
+    }
+    static APFloat getNaN(const fltSemantics &Sem, bool Negative = false) {
+      return APFloat(Sem, fcNaN, Negative);
+    }
     
     /// Profile - Used to insert APFloat objects, or objects that contain
     ///  APFloat objects, into FoldingSets.