[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/boostorg/python/python313/test/numpy/dtype.cpp [Back]  [Original]

// Copyright Jim Bosch & Ankit Daftery 2010-2012.
// Copyright Stefan Seefeld 2016.
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)

#include 
#include 

namespace p = boost::python;
namespace np = boost::python::numpy;

template 
np::dtype accept(T) {
  return np::dtype::get_builtin();
}

BOOST_PYTHON_MODULE(dtype_ext)
{
  np::initialize();
  // wrap dtype equivalence test, since it isn't available in Python API.
  p::def("equivalent", np::equivalent);
  // integers, by number of bits
  p::def("accept_int8", accept);
  p::def("accept_uint8", accept);
  p::def("accept_int16", accept);
  p::def("accept_uint16", accept);
  p::def("accept_int32", accept);
  p::def("accept_uint32", accept);
  p::def("accept_int64", accept);
  p::def("accept_uint64", accept);
  // integers, by C name according to NumPy
  p::def("accept_bool_", accept);
  p::def("accept_byte", accept);
  p::def("accept_ubyte", accept);
  p::def("accept_short", accept);
  p::def("accept_ushort", accept);
  p::def("accept_intc", accept);
  p::def("accept_uintc", accept);
  // floats and complex
  p::def("accept_float32", accept);
  p::def("accept_complex64", accept< std::complex >);
  p::def("accept_float64", accept);
  p::def("accept_complex128", accept< std::complex >);
  if (sizeof(long double) > sizeof(double)) {
      p::def("accept_longdouble", accept);
      p::def("accept_clongdouble", accept< std::complex >);
  }
}

Web Proxy Viewer  |  New URL  |  Original Page