[Numpy-discussion] f2py: variable number of arguments of variable lengths
I previously coded a fortran function that needs a variable number of scalar arguments. This number is not known at compile time, but at call time. So I used to pass them within a vector, passing also the length of this vector subroutine systeme(inc,t,nm,Dinc,sn) C C evaluate the derivative of vector x at time t C with complex modes (sn). Used for the calculation C of auto-oscillations in resonator-valve coupled system. C integer nm,np,ny,ind double precision inc(1:2*nm+2), Dinc(1:2*nm+2) complex*16 sn(1:nm) Cf2py double precision, intent(in) :: t Cf2py integer, intent(in), optional :: nm Cf2py double precision, intent(in), dimension(2*nm+2) :: inc Cf2py double precision, intent(out), dimension(2*nm+2) :: Dinc Cf2py complex, intent(in), dimension(nm) :: sn I do now want to pass, not nm float values, but nm arrays of variables lengths. I expect to pass the following objects : - nm: number of arrays - L : a 1d-array (dimension nm) containing the lengths of each array - np: the sum of lengths - X : a 1d-array (dimension np) containing the concatenated arrays. Does anyone have an alternative to this suggestion ? any tip or example? Regards -- Fabrice Silva LMA UPR CNRS 7051 ___ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
Re: [Numpy-discussion] f2py: variable number of arguments of variable lengths
On Wed, Feb 17, 2010 at 15:29, Fabrice Silva si...@lma.cnrs-mrs.fr wrote: I previously coded a fortran function that needs a variable number of scalar arguments. This number is not known at compile time, but at call time. So I used to pass them within a vector, passing also the length of this vector subroutine systeme(inc,t,nm,Dinc,sn) C C evaluate the derivative of vector x at time t C with complex modes (sn). Used for the calculation C of auto-oscillations in resonator-valve coupled system. C integer nm,np,ny,ind double precision inc(1:2*nm+2), Dinc(1:2*nm+2) complex*16 sn(1:nm) Cf2py double precision, intent(in) :: t Cf2py integer, intent(in), optional :: nm Cf2py double precision, intent(in), dimension(2*nm+2) :: inc Cf2py double precision, intent(out), dimension(2*nm+2) :: Dinc Cf2py complex, intent(in), dimension(nm) :: sn I do now want to pass, not nm float values, but nm arrays of variables lengths. I expect to pass the following objects : - nm: number of arrays - L : a 1d-array (dimension nm) containing the lengths of each array - np: the sum of lengths - X : a 1d-array (dimension np) containing the concatenated arrays. Yeah, that's pretty much what you would have to do. -- Robert Kern I have come to believe that the whole world is an enigma, a harmless enigma that is made terrible by our own mad attempt to interpret it as though it had an underlying truth. -- Umberto Eco ___ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
Re: [Numpy-discussion] f2py: variable number of arguments of variable lengths
Le mercredi 17 février 2010 à 15:43 -0600, Robert Kern a écrit : On Wed, Feb 17, 2010 at 15:29, Fabrice Silva si...@lma.cnrs-mrs.fr wrote: I previously coded a fortran function that needs a variable number of scalar arguments. This number is not known at compile time, but at call time. So I used to pass them within a vector, passing also the length of this vector subroutine systeme(inc,t,nm,Dinc,sn) C C evaluate the derivative of vector x at time t C with complex modes (sn). Used for the calculation C of auto-oscillations in resonator-valve coupled system. C integer nm,np,ny,ind double precision inc(1:2*nm+2), Dinc(1:2*nm+2) complex*16 sn(1:nm) Cf2py double precision, intent(in) :: t Cf2py integer, intent(in), optional :: nm Cf2py double precision, intent(in), dimension(2*nm+2) :: inc Cf2py double precision, intent(out), dimension(2*nm+2) :: Dinc Cf2py complex, intent(in), dimension(nm) :: sn I do now want to pass, not nm float values, but nm arrays of variables lengths. I expect to pass the following objects : - nm: number of arrays - L : a 1d-array (dimension nm) containing the lengths of each array - np: the sum of lengths - X : a 1d-array (dimension np) containing the concatenated arrays. Yeah, that's pretty much what you would have to do. What about the next step: a variable number of arguments that are 2d-arrays with different shapes ? -- Fabrice Silva LMA UPR CNRS 7051 ___ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
Re: [Numpy-discussion] f2py: variable number of arguments of variable lengths
On Wed, Feb 17, 2010 at 15:55, Fabrice Silva si...@lma.cnrs-mrs.fr wrote: Le mercredi 17 février 2010 à 15:43 -0600, Robert Kern a écrit : On Wed, Feb 17, 2010 at 15:29, Fabrice Silva si...@lma.cnrs-mrs.fr wrote: I previously coded a fortran function that needs a variable number of scalar arguments. This number is not known at compile time, but at call time. So I used to pass them within a vector, passing also the length of this vector subroutine systeme(inc,t,nm,Dinc,sn) C C evaluate the derivative of vector x at time t C with complex modes (sn). Used for the calculation C of auto-oscillations in resonator-valve coupled system. C integer nm,np,ny,ind double precision inc(1:2*nm+2), Dinc(1:2*nm+2) complex*16 sn(1:nm) Cf2py double precision, intent(in) :: t Cf2py integer, intent(in), optional :: nm Cf2py double precision, intent(in), dimension(2*nm+2) :: inc Cf2py double precision, intent(out), dimension(2*nm+2) :: Dinc Cf2py complex, intent(in), dimension(nm) :: sn I do now want to pass, not nm float values, but nm arrays of variables lengths. I expect to pass the following objects : - nm: number of arrays - L : a 1d-array (dimension nm) containing the lengths of each array - np: the sum of lengths - X : a 1d-array (dimension np) containing the concatenated arrays. Yeah, that's pretty much what you would have to do. What about the next step: a variable number of arguments that are 2d-arrays with different shapes ? - nm: number of arrays - ncols : a 1d-array (dimension nm) containing the number of columns in each array - nrows : a 1d-array (dimension nm) containing the number of rows in each array - np: the sum of array sizes [(ncols * nrows).sum() in numpy terms] - X : a 1d-array (dimension np) containing the concatenated arrays. -- Robert Kern I have come to believe that the whole world is an enigma, a harmless enigma that is made terrible by our own mad attempt to interpret it as though it had an underlying truth. -- Umberto Eco ___ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
Re: [Numpy-discussion] f2py: variable number of arguments of variable lengths
Le mercredi 17 février 2010 à 16:21 -0600, Robert Kern a écrit : What about the next step: a variable number of arguments that are 2d-arrays with different shapes ? - nm: number of arrays - ncols : a 1d-array (dimension nm) containing the number of columns in each array - nrows : a 1d-array (dimension nm) containing the number of rows in each array - np: the sum of array sizes [(ncols * nrows).sum() in numpy terms] - X : a 1d-array (dimension np) containing the concatenated arrays. I guess I will need to be careful when building the arrays from X. Thanks! -- Fabrice Silva LMA UPR CNRS 7051 ___ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion