Added script front-end for primer-design code
[htsworkflow.git] / htswanalysis / MACS / lib / gsl / gsl-1.11 / ode-initval / TODO
1 * Add a higher level interface which accepts a 
2
3 start point, 
4 end point, 
5 result array (size N,  y0, y1, y2 ... ,y(N-1))
6 desired relative and absolute errors epsrel and epsabs
7
8 it should have its own workspace which is a wrapper around the
9 existing workspaces
10
11 * Implement other stepping methods from well-known packages such as
12 RKSUITE, etc
13
14 * Roundoff error needs to be taken into account to prevent the
15 step-size being made arbitrarily small
16
17 * The entry below has been downgraded from a bug.  We use the
18 coefficients given in the original paper by Prince and Dormand, and it
19 is true that these are inexact (the values in the paper are said to be
20 accurate 18 figures).  If somebody publishes exact versions we will
21 use them, but at present it is better to stick with the published
22 versions of the coefficients them use our own.
23 ----------------------------------------------------------------------
24 BUG#8 -- inexact coefficients in rk8pd.c
25
26 From: Luc Maisonobe <Luc.Maisonobe@c-s.fr>
27 To: gsl-discuss@sources.redhat.com
28 Subject: further thoughts about Dormand-Prince 8 (RK8PD)
29 Date: Wed, 14 Aug 2002 10:50:49 +0200
30
31 I was looking for some references concerning Runge-Kutta methods when I
32 noticed GSL had an high order one. I also found a question in the list
33 archive (April 2002) about the references of this method which is
34 implemented in rk8pd.c. It was said the coefficients were taken from the
35 "Numerical Algorithms with C" book by Engeln-Mullges and Uhlig.
36
37 I have checked the coefficients somewhat with a little java tool I have
38 developped (see http://www.spaceroots.org/archive.htm#RKCheckSoftware)
39 and found they were not exact. I think this method is really the method
40 that is already in rksuite (http://www.netlib.org/ode/rksuite/) were the
41 coefficients are given as real values with 30 decimal digits. The
42 coefficients have probably been approximated as fractions later on.
43 However, these approximations are not perfect, they are good only for
44 the first 16 or 18 digits depending on the coefficient.
45
46 This has no consequence for practical purposes since they are stored in
47 double variables, but give a false impression of beeing exact
48 expressions. Well, there are even some coefficients that should really
49 be rational numbers but for which wrong numerators and denominators are
50 given. As an example, the first and fourth elements of the b7 array are
51 given as 29443841.0 / 614563906.0 and 77736538.0 / 692538347, hence the
52 sum off all elements of the b7 array (which should theoretically be
53 equal to ah[5]) only approximate this. For these two coefficients, this
54 could have been avoided using  215595617.0 / 4500000000.0 and
55 202047683.0 / 1800000000.0, which also looks more coherent with the
56 other coefficients.
57
58 The rksuite comments say this method is described in this paper :
59
60    High Order Embedded Runge-Kutta Formulae
61    P.J. Prince and J.R. Dormand
62    J. Comp. Appl. Math.,7, pp. 67-75, 1981
63
64 It also says the method is an 8(7) method (i.e. the coefficients set
65 used to advance integration is order 8 and error estimation is order 7).
66 If I use my tool to check the order, I am forced to check the order
67 conditions numerically with a tolerance since I do not have an exact
68 expression of the coefficients. Since even if some conditions are not
69 mathematically met, the residuals are small and could be below the
70 tolerance. There are tolerance values for which such numerical test
71 dedeuce the method is of order 9, as is said in GSL. However, I am not
72 convinced, there are to few parameters for the large number of order
73 conditions needed at order 9.
74
75 I would suggest to correct the coefficients in rk8pd.c (just put the
76 literal constants of rksuite) and to add the reference to the article.
77
78 ----------------------------------------------------------------------