⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 numeric.hpp

📁 CGAL is a collaborative effort of several sites in Europe and Israel. The goal is to make the most i
💻 HPP
字号:
// Copyright David Abrahams 2002.// 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)#ifndef NUMARRAY_DWA2002922_HPP# define NUMARRAY_DWA2002922_HPP# include <boost/python/detail/prefix.hpp># include <boost/python/tuple.hpp># include <boost/python/str.hpp># include <boost/preprocessor/iteration/local.hpp># include <boost/preprocessor/cat.hpp># include <boost/preprocessor/repetition/enum.hpp># include <boost/preprocessor/repetition/enum_params.hpp># include <boost/preprocessor/repetition/enum_binary_params.hpp>namespace boost { namespace python { namespace numeric {namespace aux{  struct BOOST_PYTHON_DECL array_base : object  {# define BOOST_PP_LOCAL_MACRO(n)                                \      array_base(BOOST_PP_ENUM_PARAMS_Z(1, n, object const& x));# define BOOST_PP_LOCAL_LIMITS (1, 7)# include BOOST_PP_LOCAL_ITERATE()      object argmax(long axis=-1);      object argmin(long axis=-1);      object argsort(long axis=-1);      object astype(object const& type = object());      void byteswap();      object copy() const;      object diagonal(long offset = 0, long axis1 = 0, long axis2 = 1) const;      void info() const;      bool is_c_array() const;      bool isbyteswapped() const;      object new_(object type) const;      void sort();      object trace(long offset = 0, long axis1 = 0, long axis2 = 1) const;      object type() const;      char typecode() const;            object factory(object const& buffer=object()            , object const& type=object()            , object const& shape=object()            , bool copy = true            , bool savespace = false            , object typecode = object());      object getflat() const;      long getrank() const;      object getshape() const;      bool isaligned() const;      bool iscontiguous() const;      long itemsize() const;      long nelements() const;      object nonzero() const;         void put(object const& indices, object const& values);         void ravel();         object repeat(object const& repeats, long axis=0);         void resize(object const& shape);            void setflat(object const& flat);      void setshape(object const& shape);         void swapaxes(long axis1, long axis2);         object take(object const& sequence, long axis = 0) const;         void tofile(object const& file) const;         str tostring() const;         void transpose(object const& axes = object());         object view() const;   public: // implementation detail - do not touch.      BOOST_PYTHON_FORWARD_OBJECT_CONSTRUCTORS(array_base, object);  };  struct BOOST_PYTHON_DECL array_object_manager_traits  {      static bool check(PyObject* obj);      static detail::new_non_null_reference adopt(PyObject* obj);  };} // namespace auxclass array : public aux::array_base{    typedef aux::array_base base; public:    object astype() { return base::astype(); }        template <class Type>    object astype(Type const& type_)    {        return base::astype(object(type_));    }    template <class Type>    object new_(Type const& type_) const    {        return base::new_(object(type_));    }    template <class Sequence>    void resize(Sequence const& x)    {        base::resize(object(x));    }    # define BOOST_PP_LOCAL_MACRO(n)                                \      void resize(BOOST_PP_ENUM_PARAMS_Z(1, n, long x))              \      {                                                         \          resize(make_tuple(BOOST_PP_ENUM_PARAMS_Z(1, n, x)));       \      }# define BOOST_PP_LOCAL_LIMITS (1, BOOST_PYTHON_MAX_ARITY)# include BOOST_PP_LOCAL_ITERATE()    template <class Sequence>    void setshape(Sequence const& x)    {        base::setshape(object(x));    }    # define BOOST_PP_LOCAL_MACRO(n)                                \    void setshape(BOOST_PP_ENUM_PARAMS_Z(1, n, long x))              \    {                                                           \        setshape(make_tuple(BOOST_PP_ENUM_PARAMS_Z(1, n, x)));       \    }# define BOOST_PP_LOCAL_LIMITS (1, BOOST_PYTHON_MAX_ARITY)# include BOOST_PP_LOCAL_ITERATE()    template <class Indices, class Values>    void put(Indices const& indices, Values const& values)    {        base::put(object(indices), object(values));    }        template <class Sequence>    object take(Sequence const& sequence, long axis = 0)    {        return base::take(object(sequence), axis);    }    template <class File>    void tofile(File const& f) const    {        base::tofile(object(f));    }    object factory()    {        return base::factory();    }        template <class Buffer>    object factory(Buffer const& buffer)    {        return base::factory(object(buffer));    }        template <class Buffer, class Type>    object factory(        Buffer const& buffer        , Type const& type_)    {        return base::factory(object(buffer), object(type_));    }    template <class Buffer, class Type, class Shape>    object factory(        Buffer const& buffer        , Type const& type_        , Shape const& shape        , bool copy = true        , bool savespace = false)    {        return base::factory(object(buffer), object(type_), object(shape), copy, savespace);    }        template <class Buffer, class Type, class Shape>    object factory(        Buffer const& buffer        , Type const& type_        , Shape const& shape        , bool copy        , bool savespace        , char typecode)    {        return base::factory(object(buffer), object(type_), object(shape), copy, savespace, object(typecode));    }# define BOOST_PYTHON_ENUM_AS_OBJECT(z, n, x) object(BOOST_PP_CAT(x,n))# define BOOST_PP_LOCAL_MACRO(n)                                        \    template <BOOST_PP_ENUM_PARAMS_Z(1, n, class T)>                    \    explicit array(BOOST_PP_ENUM_BINARY_PARAMS_Z(1, n, T, const& x))    \    : base(BOOST_PP_ENUM_1(n, BOOST_PYTHON_ENUM_AS_OBJECT, x))          \    {}# define BOOST_PP_LOCAL_LIMITS (1, 7)# include BOOST_PP_LOCAL_ITERATE()# undef BOOST_PYTHON_AS_OBJECT    static BOOST_PYTHON_DECL void set_module_and_type(char const* package_name = 0, char const* type_attribute_name = 0); public: // implementation detail -- for internal use only    BOOST_PYTHON_FORWARD_OBJECT_CONSTRUCTORS(array, base);};} // namespace boost::python::numericnamespace converter{  template <>  struct object_manager_traits< numeric::array >      : numeric::aux::array_object_manager_traits  {      BOOST_STATIC_CONSTANT(bool, is_specialized = true);  };}}} // namespace boost::python#endif // NUMARRAY_DWA2002922_HPP

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -