[Rcpp-devel] Multiplication of ComplexVector?

Romain Francois romain at r-enthusiasts.com
Tue Aug 17 09:20:38 CEST 2010


Le 17/08/10 07:43, baptiste auguie a écrit :
> Hi,
>
> On 17 August 2010 03:24, Dirk Eddelbuettel<edd at debian.org>  wrote:
>>
>> On 16 August 2010 at 19:43, Dirk Eddelbuettel wrote:
>
> [...]
>
>> The only trouble is that nobody has written the corresponding 'glue' code to
>> make
>>
>>       arma::cx_vec a1(y1.begin(), y1.size(), false);
>>
>> happen: create an Armadillo complex vector from an Rcpp::ComplexVector.  We
>> can init by scalar size, what you'd need to insert for now is a simply (and
>> very pedestrian) copy-loop.
>
> I'm confused, isn't
>
>   arma::cx_colvec a1 = Rcpp::as<  arma::cx_vec>( y1 );
>
> aimed at doing this kind of conversion? (that's what I use, following
> Romain's tip)
>
> baptiste

I don't think you are confused. This works well, but it does require 
some extra copying, which Dirk was trying to spare.

Using the "advanced" constructor in armadillo means that both the 
ComplexVector and the cx_vec use the same memory. although it says loud 
and clear in armadillo documentation :

"""
This is faster, but can be dangerous unless you know what you're doing!
"""

Romain

-- 
Romain Francois
Professional R Enthusiast
+33(0) 6 28 91 30 30
http://romainfrancois.blog.free.fr
|- http://bit.ly/bzoWrs : Rcpp svn revision 2000
|- http://bit.ly/b8VNE2 : Rcpp at LondonR, oct 5th
`- http://bit.ly/aAyra4 : highlight 0.2-2



More information about the Rcpp-devel mailing list