]> www.ginac.de Git - cln.git/blobdiff - src/float/dfloat/misc/cl_DF_as.cc
Initial revision
[cln.git] / src / float / dfloat / misc / cl_DF_as.cc
diff --git a/src/float/dfloat/misc/cl_DF_as.cc b/src/float/dfloat/misc/cl_DF_as.cc
new file mode 100644 (file)
index 0000000..e60dc9f
--- /dev/null
@@ -0,0 +1,29 @@
+// as_cl_DF().
+
+// General includes.
+#include "cl_sysdep.h"
+
+// Specification.
+#include "cl_dfloat.h"
+
+
+// Implementation.
+
+#include "cl_N.h"
+
+inline cl_boolean cl_DF_p (const cl_number& x)
+{
+       if (x.pointer_p())
+               if (x.heappointer->type == &cl_class_dfloat)
+                       return cl_true;
+       return cl_false;
+}
+
+const cl_DF& as_cl_DF (const cl_number& x, const char * filename, int line)
+{
+       if (cl_DF_p(x)) {
+               DeclareType(cl_DF,x);
+               return x;
+       } else
+               cl_as_error(x,"a double-float number",filename,line);
+}