File: [local] / OpenXM_contrib / PHC / Ada / Continuation / vlprs_algorithm.ads (download)
Revision 1.1.1.1 (vendor branch), Sun Oct 29 17:45:22 2000 UTC (23 years, 10 months ago) by maekawa
Branch: PHC, MAIN
CVS Tags: v2, maekawa-ipv6, RELEASE_1_2_3, RELEASE_1_2_2_KNOPPIX_b, RELEASE_1_2_2_KNOPPIX, RELEASE_1_2_2, RELEASE_1_2_1, HEAD Changes since 1.1: +0 -0
lines
Import the second public release of PHCpack.
OKed by Jan Verschelde.
|
with text_io; use text_io;
with Standard_Floating_Numbers; use Standard_Floating_Numbers;
with Standard_Floating_Vectors; use Standard_Floating_Vectors;
with Standard_Floating_Matrices; use Standard_Floating_Matrices;
package vLpRs_Algorithm is
-- DESCRIPTION :
-- This package provides several routines for an extrapolation method on
-- the power series x(s) = a s^w ( 1 + O(s) ).
-- Because the aim is to estimate the leading power w, the algorithm
-- takes the logs as input. So it considers the sequence
-- log(|x(s_k)|) = log(|a|) + w log(s_k) + log(1 + O(s_k)),
-- for a sequence s_0 > s_1 > .. > s_m > 0, with m >= the order r.
-- USAGE :
-- The first two routines are interesting to fill up the pipe, until
-- sufficient data points are available to match the order.
-- From then on, the fully incremental version can be used.
-- START UP FROM SCRATCH :
procedure vLpRs_full
( r : in natural; s,logs,logx : in Vector;
srp,dsp,p,l,v : in out Vector; rt1,rt2 : in out Matrix );
-- DESCRIPTION :
-- Calls the full version of the vLpRs-Algorithm.
-- REQUIRED :
-- s'range = logs'range = logx'range, s'last >= r,
-- srp'range = dsp'range = 1..r-1 = rt1'range(*) = rt2'range(*),
-- p'range = 0..r-1, l'range = v'range = 0..r.
-- ON ENTRY :
-- r order of the extrapolation method;
-- s strictly decreasing sequence of positive numbers;
-- logs logarithms of the s-values;
-- logx logarithms of |x(s_k)|.
-- ON RETURN :
-- srp last row of powers of consecutive s-values;
-- dsp last row of differences of consecutive s-powers;
-- p last row of p-factors;
-- l last row in the L-table, with error O(s^r).
-- v last row in the v-table, with error O(s^r).
-- rt1,rt2 last consecutive R-tables.
procedure vLpRs_pipe
( file : in file_type;
r : in natural; s,logs,logx : in Vector;
srp,dsp,p,l,v : in out Vector; rt1,rt2 : in out Matrix );
-- DESCRIPTION :
-- Constructs the extrapolation table in an incremental way.
-- REQUIRED :
-- s'range = logs'range = logx'range, s'last >= r,
-- srp'range = dsp'range = 1..r-1 = rt1'range(*) = rt2'range(*),
-- p'range = 0..r-1, l'range = v'range = 0..r.
-- ON ENTRY :
-- file to write error table on;
-- r order of the extrapolation method;
-- s strictly decreasing sequence of positive numbers;
-- logs logarithms of the s-values;
-- logx logarithms of |x(s_k)|.
-- ON RETURN :
-- srp last row of powers of consecutive s-values;
-- dsp last row of differences of consecutive s-powers;
-- p last row of p-factors;
-- l last row in the L-table, with error O(s^r).
-- v last row in the v-table, with error O(s^r).
-- rt1,rt2 last consecutive R-tables.
-- INCREMENTAL UPDATE :
procedure vLpRs_pipe
( s,logs,logx : in double_float;
srp,dsp,p,l,v : in out Vector; rt1,rt2 : in out Matrix );
procedure vLpRs_pipe
( file : in file_type; s,logs,logx : in double_float;
srp,dsp,p,l,v : in out Vector; rt1,rt2 : in out Matrix );
-- DESCRIPTION :
-- One additional row of every table is computed.
-- REQUIRED :
-- srp'range = dsp'range = 1..r-1 = rt1'range(*) = rt2'range(*),
-- p'range = 0..r-1, l'range = v'range = 0..r.
-- ON ENTRY :
-- file to write table with errors on;
-- s new s-value, must be smaller than latest one and nonzero;
-- logs logarithm of s;
-- logx logarithm of the absolute value of |x(s)|;
-- srp last row of powers of consecutive s-values;
-- dsp last row of differences of consecutive s-powers;
-- p last row of p-factors;
-- l last row of extrapolated logarithms of s-values;
-- v last row of extrapolated logarithms of data points;
-- rt1,rt2 last consecutive R-tables.
-- ON RETURN :
-- srp updated row of powers of consecutive s-values;
-- dsp updated row of differences of consecutive s-powers;
-- p updated row of p-factors;
-- l updated row of extrapolated logarithms of s-values;
-- v updated row of extrapolated logarithms of data points;
-- rt1,rt2 updated consecutive R-tables.
end vLpRs_Algorithm;