# [Gretl-users] matrix operation efficiency question

oleg_komashko at ukr.net oleg_komashko at ukr.net
Sat Nov 5 12:01:57 EDT 2016

```Dear Allin,
Than you!
You allwas manage to understand my
English  at 100%!
This time comparison is just
I needed but forgot to ask
explicitly!
Thanks!

Oleh

5 листопада 2016, 17:56:59, від "Allin Cottrell" < cottrell at wfu.edu >:

On Sat, 5 Nov 2016, oleg_komashko at ukr.net  wrote:

> Dear all,
> Let X be a matrix and A a symmetric matrix
> (dimentions are compatible)
> What is the best way to compute
>
> x'A^-1x

Well, it looks like a case of inversion + qform() versus
"right division". So let the horses race:

<hansl>
/* x' A^{-1} x : best method? */

set seed 775632

scalar m = 50
scalar n = 10
scalar p = 3

matrix x = mnormal(n, p)
matrix Z = mnormal(m, n)
matrix A = Z'Z

# check equivalence
eval qform(x', inv(A))
eval x'(A\x)

set stopwatch

loop 5000 -q
matrix R = qform(x', inv(A))
endloop
printf "method 1: %gs\n", \$stopwatch

loop 5000 -q
matrix R = x'(A\x)
endloop
printf "method 2: %gs\n", \$stopwatch
</hansl>

<output>
method 1: 0.0922s
method 2: 0.0410s
</output>

And the spotted pony wins.

Allin
_______________________________________________
Gretl-users mailing list
Gretl-users at lists.wfu.edu
http://lists.wfu.edu/mailman/listinfo/gretl-users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.wfu.edu/pipermail/gretl-users/attachments/20161105/ed2e34de/attachment.html>
```