summaryrefslogtreecommitdiff
path: root/weave/conversion_code.py
diff options
context:
space:
mode:
authorEric Jones <eric@enthought.com>2002-02-13 08:28:22 +0000
committerEric Jones <eric@enthought.com>2002-02-13 08:28:22 +0000
commit45819f94a39fe9c46678c09db406eb36c38170ac (patch)
treee8276a92d163a6d71697d97b12d1f2191eb01bc5 /weave/conversion_code.py
parentfdb510696ec5874ce2630a24828f24197c3cffe9 (diff)
downloadnumpy-45819f94a39fe9c46678c09db406eb36c38170ac.tar.gz
removed template code from use for scalar conversions. Template versions were moved into blitz support stuff because that is the only place they are utilized.
Diffstat (limited to 'weave/conversion_code.py')
-rwxr-xr-xweave/conversion_code.py124
1 files changed, 1 insertions, 123 deletions
diff --git a/weave/conversion_code.py b/weave/conversion_code.py
index adfdec67f..29c50d40e 100755
--- a/weave/conversion_code.py
+++ b/weave/conversion_code.py
@@ -255,7 +255,7 @@ PyObject* module_to_py(PyObject* module)
#############################################################
# These non-templated version is now used for most scalar conversions.
-non_template_scalar_support_code = \
+scalar_support_code = \
"""
class scalar_handler
@@ -335,125 +335,3 @@ scalar_handler x__scalar_handler = scalar_handler();
"""
-# this code will not build with msvc...
-# This is only used for blitz stuff now. The non-templated
-# version, defined further down, is now used for most code.
-scalar_support_code = \
-"""
-// conversion routines
-
-template<class T>
-static T convert_to_scalar(PyObject* py_obj,const char* name)
-{
- //never used.
- return (T) 0;
-}
-template<>
-static int convert_to_scalar<int>(PyObject* py_obj,const char* name)
-{
- if (!py_obj || !PyInt_Check(py_obj))
- handle_conversion_error(py_obj,"int", name);
- return (int) PyInt_AsLong(py_obj);
-}
-
-template<>
-static long convert_to_scalar<long>(PyObject* py_obj,const char* name)
-{
- if (!py_obj || !PyLong_Check(py_obj))
- handle_conversion_error(py_obj,"long", name);
- return (long) PyLong_AsLong(py_obj);
-}
-
-template<>
-static double convert_to_scalar<double>(PyObject* py_obj,const char* name)
-{
- if (!py_obj || !PyFloat_Check(py_obj))
- handle_conversion_error(py_obj,"float", name);
- return PyFloat_AsDouble(py_obj);
-}
-
-template<>
-static float convert_to_scalar<float>(PyObject* py_obj,const char* name)
-{
- return (float) convert_to_scalar<double>(py_obj,name);
-}
-
-// complex not checked.
-template<>
-static std::complex<float> convert_to_scalar<std::complex<float> >(PyObject* py_obj,
- const char* name)
-{
- if (!py_obj || !PyComplex_Check(py_obj))
- handle_conversion_error(py_obj,"complex", name);
- return std::complex<float>((float) PyComplex_RealAsDouble(py_obj),
- (float) PyComplex_ImagAsDouble(py_obj));
-}
-template<>
-static std::complex<double> convert_to_scalar<std::complex<double> >(
- PyObject* py_obj,const char* name)
-{
- if (!py_obj || !PyComplex_Check(py_obj))
- handle_conversion_error(py_obj,"complex", name);
- return std::complex<double>(PyComplex_RealAsDouble(py_obj),
- PyComplex_ImagAsDouble(py_obj));
-}
-
-/////////////////////////////////
-// standard translation routines
-
-template<class T>
-static T py_to_scalar(PyObject* py_obj,const char* name)
-{
- //never used.
- return (T) 0;
-}
-template<>
-static int py_to_scalar<int>(PyObject* py_obj,const char* name)
-{
- if (!py_obj || !PyInt_Check(py_obj))
- handle_bad_type(py_obj,"int", name);
- return (int) PyInt_AsLong(py_obj);
-}
-
-template<>
-static long py_to_scalar<long>(PyObject* py_obj,const char* name)
-{
- if (!py_obj || !PyLong_Check(py_obj))
- handle_bad_type(py_obj,"long", name);
- return (long) PyLong_AsLong(py_obj);
-}
-
-template<>
-static double py_to_scalar<double>(PyObject* py_obj,const char* name)
-{
- if (!py_obj || !PyFloat_Check(py_obj))
- handle_bad_type(py_obj,"float", name);
- return PyFloat_AsDouble(py_obj);
-}
-
-template<>
-static float py_to_scalar<float>(PyObject* py_obj,const char* name)
-{
- return (float) py_to_scalar<double>(py_obj,name);
-}
-
-// complex not checked.
-template<>
-static std::complex<float> py_to_scalar<std::complex<float> >(PyObject* py_obj,
- const char* name)
-{
- if (!py_obj || !PyComplex_Check(py_obj))
- handle_bad_type(py_obj,"complex", name);
- return std::complex<float>((float) PyComplex_RealAsDouble(py_obj),
- (float) PyComplex_ImagAsDouble(py_obj));
-}
-template<>
-static std::complex<double> py_to_scalar<std::complex<double> >(
- PyObject* py_obj,const char* name)
-{
- if (!py_obj || !PyComplex_Check(py_obj))
- handle_bad_type(py_obj,"complex", name);
- return std::complex<double>(PyComplex_RealAsDouble(py_obj),
- PyComplex_ImagAsDouble(py_obj));
-}
-"""