comp.lang.ada
 help / color / mirror / Atom feed
From: smsomething@gmail.com
Subject: Re: Symmetric matrices only!
Date: Thu, 17 Apr 2008 18:34:35 -0700 (PDT)
Date: 2008-04-17T18:34:35-07:00	[thread overview]
Message-ID: <434b42f0-40ab-4047-8898-ce890303622a@p25g2000hsf.googlegroups.com> (raw)
In-Reply-To: 2dfded9f-aa30-4b25-ba2b-6e0d7f6f0fab@a1g2000hsb.googlegroups.com

On Apr 18, 1:16 am, amado.al...@gmail.com wrote:
> The eigenvector solvers in Ada.Numerics.Generic_Real_Arrays require
> *symmetric* matrices! This is extremely silly. The world is full of
> nonsymmetric matrices. I've got a bunch of them to solve. Some very
> large, e.g. 1000x1000. Suggestions welcome. Thanks a lot.

Providing support for solving eigenvectors for general matrices
without restrictions would be a very complicated task, and I can
understand why the language designers provided the limited support
they have. Ada provides a rather basic set of solvers, useable in
straight-forward problems. This is not particularly silly at all -
it's a pragmatic approach to what is a very difficult general problem.
Having said that, I do use the Ada built-in solvers, and they're very
useful where I can't be bothered getting access to specialised
routines, or where there is no necessity to do so. When I need
something better, I use a routine that has been proven to work in the
specialised situation I am dealing with.

If you (potentially) need to find the eigenvalues of non-symmetric
matrices of 1000x1000, then your need is highly specialised, and you
need to seek out the highly-specialised solutions that have been
developed, and that are widely available. Some will be in C/C++, but
more likely they are in FORTRAN, but the interfacing issues with Ada
are (usually) not complicated.

You could start with GSL (www.gnu.org/software/gsl), which has a
variety of eigensystem solvers, including a set for real asymmetric
matrices. Also look at NETLIB (www.netlib.org). Once you've been
through these, you'll have a better idea what kind of problem you are
up against, and whether you need to seek straight-forward or
specialised routines.

Unfortunately, you havn't specified whether your asymmetric matrices
are real or complex, or whether the matrix itself has any other
construction properties, or whether it is sparse. Answers to these
questions could drastically alter the advice you would be given.

Overall, the answer to your problem for calculating (or, better,
"estimating") eigenvalues is out there somewhere, and the various
solutions can (in general) be accessed from Ada.

Good luck
SM



  parent reply	other threads:[~2008-04-18  1:34 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-04-17 13:16 Symmetric matrices only! amado.alves
2008-04-17 15:25 ` Adam Beneschan
2008-04-17 16:55   ` Dmitry A. Kazakov
2008-04-18 15:55   ` amado.alves
2008-04-18  1:34 ` smsomething [this message]
2008-04-18  4:30 ` Gautier
2008-04-18  9:40   ` Ken Thomas
2008-04-18 15:19     ` amado.alves
2008-04-18 22:30       ` Jerry
2008-04-21 13:21         ` amado.alves
2008-04-18 16:27     ` amado.alves
2008-04-18 22:32       ` Jerry
2008-04-18 22:40       ` Jerry
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox