commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From <>
Subject [math] Do the two vectors in RealVector.outerProduct really have to be the same size?
Date Thu, 12 May 2011 14:13:03 GMT
Hi All,

    thanks in advance for your time and apologies if this has been raised before (I searched
and couldn't find it).

    I recently wrote something like

RealMatrix M = x.outerProduct(y);

and found it throwing an exception and failing one of my tests because x and y were different
sizes. Fair enough in one sense as this is the documented behaviour but not what one expects
mathematically (see e.g.

    To deal with this I found myself writing the following (extremely ugly) code:

RealMatrix M = (x.getDimension() == y.getDimension()) ?

    x.outerProduct(y) :

    (new Array2DRowRealMatrix(x.getData())).multiply(new Array2DRowRealMatrix(y.getData()).transpose());

    So I have a few questions:

Can the restriction that the two vectors in RealVector.outerProduct have to be the same size
be removed? If so, should I enter a bug report or feature request?
In the meantime, can anyone suggest a better way to re-write the ugly code above?

    Many thanks,


Ben Nasatyr
Head of Foreign Exchange Quantitative Analytics
RBS Global Banking & Markets
135 Bishopsgate, London, EC2M 3UR, GB
Office: +44 20 7085 2371

The Royal Bank of Scotland plc. Registered in Scotland No 90312. 
Registered Office: 36 St Andrew Square, Edinburgh EH2 2YB. 
Authorised and regulated by the Financial Services Authority. The 
Royal Bank of Scotland N.V. is authorised and regulated by the 
De Nederlandsche Bank and has its seat at Amsterdam, the 
Netherlands, and is registered in the Commercial Register under 
number 33002587. Registered Office: Gustav Mahlerlaan 10, 
Amsterdam, The Netherlands. The Royal Bank of Scotland N.V. and 
The Royal Bank of Scotland plc are authorised to act as agent for each 
other in certain jurisdictions. 
This e-mail message is confidential and for use by the addressee only. 
If the message is received by anyone other than the addressee, please 
return the message to the sender by replying to it and then delete the 
message from your computer. Internet e-mails are not necessarily 
secure. The Royal Bank of Scotland plc and The Royal Bank of Scotland 
N.V. including its affiliates ("RBS group") does not accept responsibility 
for changes made to this message after it was sent. For the protection
of RBS group and its clients and customers, and in compliance with
regulatory requirements, the contents of both incoming and outgoing
e-mail communications, which could include proprietary information and
Non-Public Personal Information, may be read by authorised persons
within RBS group other than the intended recipient(s). 

Whilst all reasonable care has been taken to avoid the transmission of 
viruses, it is the responsibility of the recipient to ensure that the onward 
transmission, opening or use of this message and any attachments will 
not adversely affect its systems or data. No responsibility is accepted 
by the RBS group in this regard and the recipient should carry out such 
virus and other checks as it considers appropriate. 

Visit our website at 


  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message