Trouble with ScInterpreter::MFastMult

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

Trouble with ScInterpreter::MFastMult

Regina Henschel
Hi all,

in interpr5.cxx you find

void ScInterpreter::MFastMult(ScMatrix* pA, ScMatrix* pB, ScMatrix* pR,
                               SCSIZE n, SCSIZE m, SCSIZE l)
         // Multipliziert n x m Mat a mit m x l Mat b nach Mat r

But actually it calculates R = B * A and A has size m x n and B has size
l x m.

I need a helper method for multiplying two matrices, so I used it as the
comment describes. It took me some time to recognize that this method
was the reason for the "dimension errors" I get.

Searching with OpenGrok I find no place, where the method MFastMult is
actually used. As far as I see it had been used in the old version of
LUP decomposition which was changed with CWS dr37.

So what to do?

(1) Change the method to work as the comment describes.
or
(2) Change the comment to describe, what the method actually does.
or
(3) Delete the method totally and write my own local routine.
or
(4) Ignore the method and write my own local routine.
or something else?

I prefer (1).

Kind regards
Regina


---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: Trouble with ScInterpreter::MFastMult

Eike Rathke-6
Hi Regina,

On Thursday, 2010-08-12 09:24:59 +0200, Regina Henschel wrote:

> in interpr5.cxx you find
>
> void ScInterpreter::MFastMult(ScMatrix* pA, ScMatrix* pB, ScMatrix* pR,
>                               SCSIZE n, SCSIZE m, SCSIZE l)
>         // Multipliziert n x m Mat a mit m x l Mat b nach Mat r
>
> But actually it calculates R = B * A and A has size m x n and B has
> size l x m.
>
> I need a helper method for multiplying two matrices, so I used it as
> the comment describes. It took me some time to recognize that this
> method was the reason for the "dimension errors" I get.
Ah, lovely, comments that describe something different than what the
actual implementation does..

> Searching with OpenGrok I find no place, where the method MFastMult
> is actually used. As far as I see it had been used in the old
> version of LUP decomposition which was changed with CWS dr37.

Yes, that was the only place using it, currently only the disabled test
code in ScInterpreter::ScMatInv() uses it, but wouldn't differ if the
implementation was changed as it calls with identical quadratic
dimensions.

> So what to do?
>
> (1) Change the method to work as the comment describes.

Yes, please go ahead.

  Eike

--
 OOo Calc core developer. Number formatter stricken i18n transpositionizer.
 Signature key 0x87F8D412 : 2F58 5236 DB02 F335 8304  7D6C 65C9 F9B5 87F8 D412
 OpenOffice.org Engineering at Oracle: http://blogs.sun.com/GullFOSS
 --
 Please don't send mail to the old [hidden email] account that I used for mailing
 lists, it phased out. Use [hidden email] instead. Thanks.

attachment0 (200 bytes) Download Attachment