How to copy a Boost::Matrix into a Quantlib::Matrix

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

How to copy a Boost::Matrix into a Quantlib::Matrix

jean-renaud viala
I'm trying to use std::copy but it fails to compile It seems a rather simple problem I'm confident someone has used it somewhere could you tell me the correct wording?
Reply | Threaded
Open this post in threaded view
|

Re: How to copy a Boost::Matrix into a Quantlib::Matrix

Luigi Ballabio
On Mon, 2011-11-07 at 04:40 -0800, jrviala wrote:
> I'm trying to use std::copy but it fails to compile It seems a rather
> simple problem I'm confident someone has used it somewhere could you
> tell me the correct wording?

It depends on how you initialize the matrices, I guess.  What did you
try?

Luigi



--

The first rule of intelligent tinkering is to save all the parts.
-- Paul Erlich



------------------------------------------------------------------------------
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: How to copy a Boost::Matrix into a Quantlib::Matrix

Bojan Nikolic
In reply to this post by jean-renaud viala

Hi,

jrviala <[hidden email]> writes:

> I'm trying to use std::copy but it fails to compile
> It seems a rather simple problem I'm confident someone has used it somewhere
> could you tell me the correct wording?

Something like this should work:

 boost::numeric::ublas::matrix<double> m (3, 3);                                                                                                            
 QuantLib::Matrix mm(3,3);
 std::copy(m.begin1(), m.end1(), mm.begin());          

Although you need to check the column/row convention (I believe this
will transpose the matrix).

Best,
Bojan

--
Bojan Nikolic          ||          http://www.bnikolic.co.uk/ql

------------------------------------------------------------------------------
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: How to copy a Boost::Matrix into a Quantlib::Matrix

jean-renaud viala

Hello

 

It works with the following code:

            

for (int i=0; i < N; ++i)

{

std::copy(mat[i].begin(), mat[i].end(), result.row_begin(i));

}

With mat being a std::vector<std::vector<double>> and result a Quantlib Matrix

 

 

We tried

std::copy(mat.begin(), mat.end(), result.begin());

but it did not compile

 

I have a question: do you favors Quantlib::Matrix or boost::numeric::ublas::matrix<double> for mathematical calculus?

 

Regards

JRV

 

 

     

-----Original Message-----
From: Bojan Nikolic [mailto:[hidden email]]
Sent: Tuesday, November 08, 2011 10:02 AM
To: Viala Jean-Renaud (AMUNDI)
Cc: [hidden email]
Subject: Re: [Quantlib-dev] How to copy a Boost::Matrix into a Quantlib::Matrix

 

 

Hi,

 

jrviala <[hidden email]> writes:

 

> I'm trying to use std::copy but it fails to compile

> It seems a rather simple problem I'm confident someone has used it somewhere

> could you tell me the correct wording?

 

Something like this should work:

 

 boost::numeric::ublas::matrix<double> m (3, 3);                                                                                                           

 QuantLib::Matrix mm(3,3);

 std::copy(m.begin1(), m.end1(), mm.begin());          

 

Although you need to check the column/row convention (I believe this

will transpose the matrix).

 

Best,

Bojan

 

--

Bojan Nikolic          ||          http://www.bnikolic.co.uk/ql


------------------------------------------------------------------------------
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: How to copy a Boost::Matrix into a Quantlib::Matrix

Bojan Nikolic

Hi,

"Viala Jean-Renaud (AMUNDI)" <[hidden email]> writes:

> std::copy(mat.begin(), mat.end(), result.begin());

Possibly you skimmed over it, but in the snippet I sent this was:

std::copy(mat.begin1(), mat.end1(), result.begin());
                   ^ Note the 1 here!
                               ^ here too!

Best,
Bojan

--
Bojan Nikolic          ||          http://www.bnikolic.co.uk

------------------------------------------------------------------------------
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: How to copy a Boost::Matrix into a Quantlib::Matrix

jean-renaud viala
Hi
Thanks I saw it
Your suggestion doesn't work (it doesn't compile) but I think it's
because my mat is not UBLAS
I will try later but right now the solution below works fine
Regards
JRV

for (int i=0; i < N; ++i)
                {
             std::copy(mat[i].begin(), mat[i].end(),
result.row_begin(i));
                }

-----Original Message-----
From: Bojan Nikolic [mailto:[hidden email]]
Sent: Wednesday, November 09, 2011 12:39 PM
To: Viala Jean-Renaud (AMUNDI)
Cc: [hidden email]
Subject: Re: [Quantlib-dev] How to copy a Boost::Matrix into a
Quantlib::Matrix


Hi,

"Viala Jean-Renaud (AMUNDI)" <[hidden email]> writes:

> std::copy(mat.begin(), mat.end(), result.begin());

Possibly you skimmed over it, but in the snippet I sent this was:

std::copy(mat.begin1(), mat.end1(), result.begin());
                   ^ Note the 1 here!
                               ^ here too!

Best,
Bojan

--
Bojan Nikolic          ||          http://www.bnikolic.co.uk

------------------------------------------------------------------------------
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev