source: git/Singular/dyn_modules/python/playground.cc @ 437991

spielwiese
Last change on this file since 437991 was 437991, checked in by Hans Schoenemann <hannes@…>, 7 years ago
dyn_mod/python_module: depends on HAVE_PYTHON_MOD
  • Property mode set to 100644
File size: 1.2 KB
Line 
1#include <kernel/mod2.h>
2#ifdef HAVE_PYTHON_MOD
3#include <boost/python.hpp>
4#include "Poly.h"
5#include "boost/python/numeric.hpp"
6using boost::python::numeric::array;
7using boost::python::self;
8using boost::python::make_tuple;
9using boost::python::tuple;
10using boost::python::object;
11using boost::python::list;
12object foo()
13{
14  list l;
15  for(int j=0;j<2;j++)
16  {
17    list row;
18    for(int i=0;i<10;i++)
19    {
20      Poly ip(i*(j+1),currRing);
21      row.append(ip);
22      //a[boost::python::make_tuple(i%2,i%5)]=ip;
23      //a[boost::python::make_tuple(i%2,i%5)]=ip;
24    }
25    l.append(row);
26  }
27  boost::python::numeric::array::set_module_and_type("Numeric",
28                             "ArrayType"
29                             );
30  boost::python::numeric::array a(l);
31  return a;
32}
33object foo2(array f)
34{
35  using boost::python::extract;
36  object o=f.attr("shape");
37
38  object o1=o[0];
39
40  object o2=o[1];
41  int l1=extract<int>(o1);
42
43  Print("%d",l1);
44  int l2=extract<int>(o2);
45  Print("%d",l2);
46  Poly& x = boost::python::extract<Poly&>(f[boost::python::make_tuple(0,0)]);
47  x.print();
48
49  return boost::python::str("suc");
50}
51void export_playground()
52{
53  def("foo",foo);
54  def("foo2",foo2);
55}
56#endif
Note: See TracBrowser for help on using the repository browser.