Thank you Sebastian.

I discovered also that the problem could be solved using the global
numpy.reshape.

That function, does not complain if the last parameter is simply "F"
and not "storage=F".

Anyway the issue is still open.

If anyone knows it, is it possible to explicitly specify a named
parameter through a call to "attr" ?

2009/10/28 Sebastian Walter <wal...@mathematik.hu-berlin.de>:
>
>> Hello to everyone.
>>
>> I have this problem.
>>
>> Assume I'm building a to-Python converter for a 3x2 matrix type,
>> FORTRAN storage (these are not the real dimensions of my problem, but
>> I give these numbers only to simplify the discussion).
>>
>> Into the "convert" C++ method, first, I build a list with all the
>> matrix elements (lout);
>> then, I instantiate a boost::python::numeric::array in this way (note:
>> I had previously used
>> set_module_and_type("numpy","ndarray"), for using the NumPy's array):
>>
>> boost::python::numeric::array   v(lout)
>>
>> Finally, I'd like to call "reshape" on this array, in this way
>>
>> v.attr("reshape")(make_tuple(3,2),"F");
>
> don't know the answer to your question, but you could do the following:
>
> set the strides of the underlying PyArrayObject manually to match column
> major format, i.e.
> PyArrayObject  *v_array_obj = reinterpret_cast<PyArrayObject*> ( v.ptr() );
> v_array_obj->strides[0] = sizeof(double);
> v_array_obj->strides[1] = 3 * sizeof(double);
>
> hope that helps,
>
> Sebastian
>
>
>>
>> But it does not work. It builds, but, on runtime, I obtain the error:
>>
>> Traceback (most recent call last):
>>   File "<stdin>", line 1, in ?
>> TypeError: an integer is required
>>
>> I tried to build and re-shape a matrix entirely from Python and I
>> discovered that, when using reshape,
>> you are forced to give the second parameter as
>>
>> order = 'C' or 'F'
>>
>> Now the question is: is it possible to specify a named parameter from
>> the C++ code ?
>> If the answer is "yes", how ?
>>
>> Thank you in advance,
>> Michele
>>
>> --
>> Michele De Stefano
>> http://www.linkedin.com/in/micdestefano
>> _______________________________________________
>> Cplusplus-sig mailing list
>> Cplusplus-sig@python.org
>> http://mail.python.org/mailman/listinfo/cplusplus-sig
>>
>
>
> --
> Sebastian Walter
>
> Institut fuer Mathematik, Humboldt-Universitaet    Tel: +49 (30) 2093-5869
> Rudower Chaussee 25, Adlershof, Berlin             Fax: +49 (30) 2093-5859
> Post: Unter den Linden 6, D-10099 Berlin         Email:
> wal...@mathematik.hu-berlin.de
> WWW: http://www.mathematik.hu-berlin.de/~walter
>
> _______________________________________________
> Cplusplus-sig mailing list
> Cplusplus-sig@python.org
> http://mail.python.org/mailman/listinfo/cplusplus-sig
>



-- 
Michele De Stefano
http://www.linkedin.com/in/micdestefano
http://xoomer.virgilio.it/michele_de_stefano
_______________________________________________
Cplusplus-sig mailing list
Cplusplus-sig@python.org
http://mail.python.org/mailman/listinfo/cplusplus-sig

Reply via email to