From: Thorsten Ohl <ohl@crunch.ikp.physik.th-darmstadt.de>
To: caml-list@margaux.inria.fr
Subject: partial evaluation anyone?
Date: Tue, 12 Nov 1996 15:37:45 +0100 [thread overview]
Message-ID: <9611121437.AA13126@crunch> (raw)
[ Sorry, no french version .... ]
Continuing the thread on optimizations for numerical code:
Is it possible to find out (at run-time) whether some components of a
function's return value are discarded by the caller?
Example (pseudo code, in real life this is an interface to LAPACK):
let diagonalize matrix =
(* Compute real and imaginary parts of the eigenvalues and
the left and right eigenvectors of MATRIX. *)
(wr,wi,vl,vr)
Sometimes, one wants the eigenvalues only
let (wr,wi,_,_) = diagonalize some_really_big_matrix
but since diagonalize doesn't know that the eigenvectors will be
thrown away, it will calculate them anyway, which can be substantial
overhead for large matrices.
One way out would be to clutter the namespace with many different
functions, one for each (likely) combination of return values, or to
pass this information as a seperate argument (like LAPACK does in
Fortran).
IMHO, both approaches are ugly kludges and it would be much nicer, if
a function could find out which parts of its return value are being
thrown away instantly. (Note that I'm not asking for a complete
dependency analysis. One level of function invocation would be
sufficient to allow the programmers to give the proper hints.)
Is there a trick to do this now? Or is there a chance to get the
implementors interestet?
Cheers,
-Thorsten
Thorsten Ohl, Physics Department, TH Darmstadt --- PGP: AF 38 FF CE 03 8A 2E A7
http://crunch.ikp.physik.th-darmstadt.de/~ohl/ -------- 8F 2A C1 86 8C 06 32 6B
next reply other threads:[~1996-11-13 12:58 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
1996-11-12 14:37 Thorsten Ohl [this message]
1996-11-13 13:31 ` Wolfgang Lux
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=9611121437.AA13126@crunch \
--to=ohl@crunch.ikp.physik.th-darmstadt.de \
--cc=caml-list@margaux.inria.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox