Sophie

Sophie

distrib > Fedora > 14 > i386 > by-pkgid > 623999701586b0ea103ff2ccad7954a6 > files > 9525

boost-doc-1.44.0-1.fc14.noarch.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- Copyright David Abrahams 2006. 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) -->

<html>
<head>
  <meta name="generator" content=
  "HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">
  <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
  <link rel="stylesheet" type="text/css" href="../boost.css">

  <title>Boost.Python - &lt;boost/python/numeric.hpp&gt;</title>
</head>

<body>
  <table border="0" cellpadding="7" cellspacing="0" width="100%" summary=
  "header">
    <tr>
      <td valign="top" width="300">
        <h3><a href="../../../../index.htm"><img height="86" width="277" alt=
        "C++ Boost" src="../../../../boost.png" border="0"></a></h3>
      </td>

      <td valign="top">
        <h1 align="center"><a href="../index.html">Boost.Python</a></h1>

        <h2 align="center">Header &lt;boost/python/numeric.hpp&gt;</h2>
      </td>
    </tr>
  </table>
  <hr>

  <h2>Contents</h2>

  <dl class="page-index">
    <dt><a href="#introduction">Introduction</a></dt>

    <dt><a href="#classes">Classes</a></dt>

    <dd>
      <dl class="page-index">
        <dt><a href="#array-spec">Class <code>array</code></a></dt>

        <dd>
          <dl class="page-index">
            <dt><a href="#array-spec-synopsis">Class <code>array</code>
            synopsis</a></dt>

            <dt><a href="#array-spec-observers">Class <code>array</code>
            observer functions</a></dt>

            <dt><a href="#array-spec-statics">Class <code>array</code> static
            functions</a></dt>
          </dl>
        </dd>
      </dl>
    </dd>

    <dt><a href="#examples">Example(s)</a></dt>
  </dl>
  <hr>

  <h2><a name="introduction" id="introduction"></a>Introduction</h2>

  <p>Exposes a <a href=
  "ObjectWrapper.html#TypeWrapper-concept">TypeWrapper</a> for the Python
  <a href=
  "http://www.python.org/dev/doc/devel/lib/typesmapping.html">array</a>
  type.</p>

  <h2><a name="classes" id="classes"></a>Classes</h2>

  <h3><a name="array-spec" id="array-spec"></a>Class <code>array</code></h3>

  <p>Provides access to the array types of <a href=
  "http://www.pfdubois.com/numpy/">Numerical Python</a>'s <a href=
  "http://www.pfdubois.com/numpy/#Numeric">Numeric</a> and <a href=
  "http://stsdas.stsci.edu/numarray/index.html">NumArray</a> modules. With
  the exception of the functions documented <a href=
  "#array-spec-observers">below</a>, the semantics of the constructors and
  member functions defined below can be fully understood by reading the
  <a href="ObjectWrapper.html#TypeWrapper-concept">TypeWrapper</a> concept
  definition. Since <code>array</code> is publicly derived from
  <code><a href="object.html#object-spec">object</a></code>, the public
  object interface applies to <code>array</code> instances as well.</p>

  <p><a name="default_search" id="default_search"></a>The default behavior is
  to use <code>numarray.NDArray</code> as the associated Python type if the
  <code>numarray</code> module is installed in the default location.
  Otherwise it falls back to use <code>Numeric.ArrayType</code>. If neither
  extension module is installed, overloads of wrapped C++ functions with
  <code>numeric::array</code> parameters will never be matched, and other
  attempted uses of <code>numeric::array</code> will <a href=
  "definitions.html#raise">raise</a> an appropriate Python exception. The
  associated Python type can be set manually using the <code><a href=
  "#array-spec-statics">set_module_and_type</a>(...)</code> static
  function.</p>

  <h4><a name="array-spec-synopsis" id="array-spec-synopsis"></a>Class
  <code>array</code> synopsis</h4>
  <pre>
namespace boost { namespace python { namespace numeric
{
   class array : public object
   {
    public:
      object astype();
      template &lt;class Type&gt;
      object astype(Type const&amp; type_);

      template &lt;class Type&gt;
      array new_(Type const&amp; type_) const;

      template &lt;class Sequence&gt; 
      void resize(Sequence const&amp; x);
      void resize(long x1);
      void resize(long x1, long x2);
      ...
      void resize(long x1, long x2,...long x<i>n</i>);

      template &lt;class Sequence&gt; 
      void setshape(Sequence const&amp; x);
      void setshape(long x1);
      void setshape(long x1, long x2);
      ...
      void setshape(long x1, long x2,...long x<i>n</i>);

      template &lt;class Indices, class Values&gt;
      void put(Indices const&amp; indices, Values const&amp; values);

      template &lt;class Sequence&gt;
      object take(Sequence const&amp; sequence, long axis = 0);

      template &lt;class File&gt;
      void tofile(File const&amp; f) const;

      object factory();
      template &lt;class Sequence&gt;
      object factory(Sequence const&amp;);
      template &lt;class Sequence, class Typecode&gt;
      object factory(Sequence const&amp;, Typecode const&amp;, bool copy = true, bool savespace = false);
      template &lt;class Sequence, class Typecode, class Type&gt;
      object factory(Sequence const&amp;, Typecode const&amp;, bool copy, bool savespace, Type const&amp;);
      template &lt;class Sequence, class Typecode, class Type, class Shape&gt;
      object factory(Sequence const&amp;, Typecode const&amp;, bool copy, bool savespace, Type const&amp;, Shape const&amp;);

      template &lt;class T1&gt;
      explicit array(T1 const&amp; x1);
      template &lt;class T1, class T2&gt;
      explicit array(T1 const&amp; x1, T2 const&amp; x2);
      ...
      template &lt;class T1, class T2,...class T<i>n</i>&gt;
      explicit array(T1 const&amp; x1, T2 const&amp; x2,...T<i>n</i> const&amp; xn);

      static void set_module_and_type();
      static void set_module_and_type(char const* package_path = 0, char const* type_name = 0);
      static void get_module_name();

      object argmax(long axis=-1);

      object argmin(long axis=-1);

      object argsort(long axis=-1);

      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;
      void sort();
      object trace(long offset = 0, long axis1 = 0, long axis2 = 1) const;
      object type() const;
      char typecode() const;
      
      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 ravel();
   
      object repeat(object const&amp; repeats, long axis=0);
   
      void setflat(object const&amp; flat);
   
      void swapaxes(long axis1, long axis2);
   
      str tostring() const;
   
      void transpose(object const&amp; axes = object());
   
      object view() const;
  };
}}}
</pre>

  <h4><a name="array-spec-observers" id="array-spec-observers"></a>Class
  <code>array</code> observer functions</h4>
  <pre>
object factory();
template &lt;class Sequence&gt;
object factory(Sequence const&amp;);
template &lt;class Sequence, class Typecode&gt;
object factory(Sequence const&amp;, Typecode const&amp;, bool copy = true, bool savespace = false);
template &lt;class Sequence, class Typecode, class Type&gt;
object factory(Sequence const&amp;, Typecode const&amp;, bool copy, bool savespace, Type const&amp;);
template &lt;class Sequence, class Typecode, class Type, class Shape&gt;
object factory(Sequence const&amp;, Typecode const&amp;, bool copy, bool savespace, Type const&amp;, Shape const&amp;);
</pre>These functions map to the underlying array type's <code>array()</code>
function family. They are not called "<code>array</code>" because of the C++
limitation that you can't define a member function with the same name as its
enclosing class.
  <pre>
template &lt;class Type&gt;
array new_(Type const&amp;) const;
</pre>This function maps to the underlying array type's <code>new()</code>
function. It is not called "<code>new</code>" because that is a keyword in
C++.

  <h4><a name="array-spec-statics" id="array-spec-statics"></a>Class
  <code>array</code> static functions</h4>
  <pre>
static void set_module_and_type(char const* package_path, char const* type_name);
static void set_module_and_type();
</pre>

  <dl class="function-semantics">
    <dt><b>Requires:</b> <code>package_path</code> and
    <code>type_name</code>, if supplied, is an <a href=
    "definitions.html#ntbs">ntbs</a>.</dt>

    <dt><b>Effects:</b> The first form sets the package path of the module
    that supplies the type named by <code>type_name</code> to
    <code>package_path</code>. The second form restores the <a href=
    "#default_search">default search behavior</a>. The associated Python type
    will be searched for only the first time it is needed, and thereafter the
    first time it is needed after an invocation of
    <code>set_module_and_type</code>.</dt>
  </dl>
  <pre>
static std::string get_module_name()
</pre>

  <dl class="function-semantics">
    <dt><b>Effects:</b> Returns the name of the module containing the class
    that will be held by new <code>numeric::array</code> instances.</dt>
  </dl>

  <h2><a name="examples" id="examples"></a>Example</h2>
  <pre>
#include &lt;boost/python/numeric.hpp&gt;
#include &lt;boost/python/tuple.hpp&gt;

// sets the first element in a 2d numeric array
void set_first_element(numeric::array&amp; y, double value)
{
    y[make_tuple(0,0)] = value;
}
</pre>

  <p>Revised 07 October, 2006</p>

  <p><i>&copy; Copyright <a href="http://www.boost.org/people/dave_abrahams.htm">Dave
  Abrahams</a> 2002-2006.</i></p>
</body>
</html>