public inbox for gsl-discuss@sourceware.org
 help / color / mirror / Atom feed
* new interface for simulated annealing
@ 2015-07-06 18:33 Matthias Sitte
  2015-07-06 18:49 ` Gerard Jungman
  2015-07-06 20:13 ` Matthias Sitte
  0 siblings, 2 replies; 3+ messages in thread
From: Matthias Sitte @ 2015-07-06 18:33 UTC (permalink / raw)
  To: gsl-discuss

Hi all,

I'm currently working on a smaller-size simulated annealing problem. Ideally,
I'd like to use an interface like "ode-initval2", where you can easily select a
different solver while all the dirty work is hidden. Unfortunately, the current
"siman" implementation is rather fixed and doesn't allow what I have in mind.
Expanding it almost immediately breaks the API. So I'm trying to implement a
"new" simulated annealing interface inspired by the "ode-initval2" interface
with separate stepper, control, evolve, and driver objects. It's not yet fully
finished, but I'd like to hear your thoughts on it in general, and how to
proceed if you want to incorporate it into GSL at some point (in terms of
requirements etc).

There's one more question: The "ode-initval2" implementation always takes a
"double y[]" array as input/output. Other method like the Nelder-Mead in
"multimin" (which is one of my other candidate algorithms) work in terms of
"gsl_vector" and "gsl_matrix". I'm a bit confused: What is the preferred GSL way
to deal with this?

Regards,

  Matthias

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: new interface for simulated annealing
  2015-07-06 18:33 new interface for simulated annealing Matthias Sitte
@ 2015-07-06 18:49 ` Gerard Jungman
  2015-07-06 20:13 ` Matthias Sitte
  1 sibling, 0 replies; 3+ messages in thread
From: Gerard Jungman @ 2015-07-06 18:49 UTC (permalink / raw)
  To: gsl-discuss

On 07/06/2015 12:33 PM, Matthias Sitte wrote:
> There's one more question: The "ode-initval2" implementation always takes a
> "double y[]" array as input/output. Other method like the Nelder-Mead in
> "multimin" (which is one of my other candidate algorithms) work in terms of
> "gsl_vector" and "gsl_matrix". I'm a bit confused: What is the preferred GSL way
> to deal with this?

That was done to insure that the interfaces are as general
as possible. We don't want to force people to use the GSL
containers. Not everybody wants the heap management, etc,
that is implicit in the main containers, and forcing them
to use the "view" containers is not very polite.

In my opinion, the containers are badly designed.
Don't bake them into the interfaces.

--
G. Jungman

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: new interface for simulated annealing
  2015-07-06 18:33 new interface for simulated annealing Matthias Sitte
  2015-07-06 18:49 ` Gerard Jungman
@ 2015-07-06 20:13 ` Matthias Sitte
  1 sibling, 0 replies; 3+ messages in thread
From: Matthias Sitte @ 2015-07-06 20:13 UTC (permalink / raw)
  To: gsl-discuss

On 7/6/15 1:33 PM, Matthias Sitte wrote:
> It's not yet fully
> finished, but I'd like to hear your thoughts on it in general, and how to
> proceed if you want to incorporate it into GSL at some point (in terms of
> requirements etc).

Reading up on the GSL design manual [1], I guess that implementing a "standalone
package" version on top of the current GSL library would be the best way to
develop it. If the new interface turns out to be stable and decent, GSL
maintainer could try to (but would not need to) merge it into the then-stable GSL?

  Matthias

[1] https://www.gnu.org/software/gsl/design/gsl-design.html#SEC3

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2015-07-06 20:13 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-07-06 18:33 new interface for simulated annealing Matthias Sitte
2015-07-06 18:49 ` Gerard Jungman
2015-07-06 20:13 ` Matthias Sitte

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).