Message-ID: <BANLkTingK=yEre5rGja9P1YfVcWVkOcpKw@mail.gmail.com>
Date: 2011-05-31T11:37:56Z
From: Conrad Sand
Subject: [Rcpp-devel] trans() changed in latest RcppArmadillo
In-Reply-To: <BANLkTi=Y2-YVerzRo80pyFFw4ieUcnJTxA@mail.gmail.com>
I've found the cause of the issue (involves handling of small matrices).
The fix is easy (and already done in the SVN repo), but I currently
don't have the time to roll out another release. I'll aim to release
a fix on the weekend, which will also give me time to double-check if
there is a problem in inv().
In the meantime I recommend sticking to the previous version of
Armadillo and RcppArmadillo.
btw, for dot products I recommend using the dot() and cdot() functions
-- they're generally faster than going through the multiplication
operator.
On 31 May 2011 11:39, Conrad Sand <conradsand.rcpp at gmail.com> wrote:
> Hi Baptiste,
>
> Thanks for the bug report. ?I'll take a look at the underlying issues.
>
>
> On 31 May 2011 09:48, baptiste auguie <baptiste.auguie at googlemail.com> wrote:
>> Sorry, I had too many spaces in the vectors. The conclusion is the same though.
>>
>> library(inline)
>> require( RcppArmadillo )
>>
>> ## let's calculate this product
>> c(-1-1i, 1-1i) %*% c(1i, -1i)
>> ?## 0-2i
>>
>> ## trans() with v0.2.19
>> fx <- cxxfunction( signature() , '
>> ?arma::cx_colvec A = "(-1,-1) (+1,-1);", B = "(+0,1) (+0,-1);" ;
>> ? ? ? ? ? ? ? ?arma::cx_colvec res = trans(A) * B;
>>
>> ? ? ? ? ? ? ? ?return wrap( res ) ;
>> ? ? ? ?', plugin = "RcppArmadillo" )
>>
>> fx()
>> ## 0-2i
>>
>> ## strans() with v0.2.21
>> fx <- cxxfunction( signature() , '
>> ?arma::cx_colvec A = "(-1,-1) (+1,-1);", B = "(+0,1) (+0,-1);" ;
>> ? ? ? ? ? ? ? ?arma::cx_colvec res = strans(A) * B;
>> ? ? ? ? ? ? ? ?return wrap( res ) ;
>> ? ? ? ?', plugin = "RcppArmadillo" )
>>
>> fx()
>> ## 1-1i
>