Annotation of OpenXM_contrib/PHC/Ada/Continuation/vlprs_algorithm.ads, Revision 1.1
1.1 ! maekawa 1: with text_io; use text_io;
! 2: with Standard_Floating_Numbers; use Standard_Floating_Numbers;
! 3: with Standard_Floating_Vectors; use Standard_Floating_Vectors;
! 4: with Standard_Floating_Matrices; use Standard_Floating_Matrices;
! 5:
! 6: package vLpRs_Algorithm is
! 7:
! 8: -- DESCRIPTION :
! 9: -- This package provides several routines for an extrapolation method on
! 10: -- the power series x(s) = a s^w ( 1 + O(s) ).
! 11: -- Because the aim is to estimate the leading power w, the algorithm
! 12: -- takes the logs as input. So it considers the sequence
! 13: -- log(|x(s_k)|) = log(|a|) + w log(s_k) + log(1 + O(s_k)),
! 14: -- for a sequence s_0 > s_1 > .. > s_m > 0, with m >= the order r.
! 15:
! 16: -- USAGE :
! 17: -- The first two routines are interesting to fill up the pipe, until
! 18: -- sufficient data points are available to match the order.
! 19: -- From then on, the fully incremental version can be used.
! 20:
! 21: -- START UP FROM SCRATCH :
! 22:
! 23: procedure vLpRs_full
! 24: ( r : in natural; s,logs,logx : in Vector;
! 25: srp,dsp,p,l,v : in out Vector; rt1,rt2 : in out Matrix );
! 26:
! 27: -- DESCRIPTION :
! 28: -- Calls the full version of the vLpRs-Algorithm.
! 29:
! 30: -- REQUIRED :
! 31: -- s'range = logs'range = logx'range, s'last >= r,
! 32: -- srp'range = dsp'range = 1..r-1 = rt1'range(*) = rt2'range(*),
! 33: -- p'range = 0..r-1, l'range = v'range = 0..r.
! 34:
! 35: -- ON ENTRY :
! 36: -- r order of the extrapolation method;
! 37: -- s strictly decreasing sequence of positive numbers;
! 38: -- logs logarithms of the s-values;
! 39: -- logx logarithms of |x(s_k)|.
! 40:
! 41: -- ON RETURN :
! 42: -- srp last row of powers of consecutive s-values;
! 43: -- dsp last row of differences of consecutive s-powers;
! 44: -- p last row of p-factors;
! 45: -- l last row in the L-table, with error O(s^r).
! 46: -- v last row in the v-table, with error O(s^r).
! 47: -- rt1,rt2 last consecutive R-tables.
! 48:
! 49: procedure vLpRs_pipe
! 50: ( file : in file_type;
! 51: r : in natural; s,logs,logx : in Vector;
! 52: srp,dsp,p,l,v : in out Vector; rt1,rt2 : in out Matrix );
! 53:
! 54: -- DESCRIPTION :
! 55: -- Constructs the extrapolation table in an incremental way.
! 56:
! 57: -- REQUIRED :
! 58: -- s'range = logs'range = logx'range, s'last >= r,
! 59: -- srp'range = dsp'range = 1..r-1 = rt1'range(*) = rt2'range(*),
! 60: -- p'range = 0..r-1, l'range = v'range = 0..r.
! 61:
! 62: -- ON ENTRY :
! 63: -- file to write error table on;
! 64: -- r order of the extrapolation method;
! 65: -- s strictly decreasing sequence of positive numbers;
! 66: -- logs logarithms of the s-values;
! 67: -- logx logarithms of |x(s_k)|.
! 68:
! 69: -- ON RETURN :
! 70: -- srp last row of powers of consecutive s-values;
! 71: -- dsp last row of differences of consecutive s-powers;
! 72: -- p last row of p-factors;
! 73: -- l last row in the L-table, with error O(s^r).
! 74: -- v last row in the v-table, with error O(s^r).
! 75: -- rt1,rt2 last consecutive R-tables.
! 76:
! 77: -- INCREMENTAL UPDATE :
! 78:
! 79: procedure vLpRs_pipe
! 80: ( s,logs,logx : in double_float;
! 81: srp,dsp,p,l,v : in out Vector; rt1,rt2 : in out Matrix );
! 82:
! 83: procedure vLpRs_pipe
! 84: ( file : in file_type; s,logs,logx : in double_float;
! 85: srp,dsp,p,l,v : in out Vector; rt1,rt2 : in out Matrix );
! 86:
! 87: -- DESCRIPTION :
! 88: -- One additional row of every table is computed.
! 89:
! 90: -- REQUIRED :
! 91: -- srp'range = dsp'range = 1..r-1 = rt1'range(*) = rt2'range(*),
! 92: -- p'range = 0..r-1, l'range = v'range = 0..r.
! 93:
! 94: -- ON ENTRY :
! 95: -- file to write table with errors on;
! 96: -- s new s-value, must be smaller than latest one and nonzero;
! 97: -- logs logarithm of s;
! 98: -- logx logarithm of the absolute value of |x(s)|;
! 99: -- srp last row of powers of consecutive s-values;
! 100: -- dsp last row of differences of consecutive s-powers;
! 101: -- p last row of p-factors;
! 102: -- l last row of extrapolated logarithms of s-values;
! 103: -- v last row of extrapolated logarithms of data points;
! 104: -- rt1,rt2 last consecutive R-tables.
! 105:
! 106: -- ON RETURN :
! 107: -- srp updated row of powers of consecutive s-values;
! 108: -- dsp updated row of differences of consecutive s-powers;
! 109: -- p updated row of p-factors;
! 110: -- l updated row of extrapolated logarithms of s-values;
! 111: -- v updated row of extrapolated logarithms of data points;
! 112: -- rt1,rt2 updated consecutive R-tables.
! 113:
! 114: end vLpRs_Algorithm;
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>