Note: please be advised that D01RBF has been deprecated. You are advised to follow the directions in
Section 9.1 in D01RAF to replicate its functionality. Furthermore, any future diagnostic enhancements for
D01RAF will only be available in this manner.
D01RBF is an expert diagnostic routine associated with
D01RAF to allow the arrays
ICOM and
COM to be examined. These arrays contain details of the adaptive process. Facilities are provided, via the argument
MONIT, to refine the final answer by adjusting the contribution made by specific segments.
The principal role of D01RBF is to take information about the adaptive process that is stored in
COM and
ICOM and present it in more intelligible arguments. A monitor routine,
MONIT, allows you to report the progress of the adaptive process back to the calling program between those calls of
D01RAF which have returned
${\mathbf{IREVCM}}=11$ or
$12$.
A secondary role, useful only if you are an expert, is to utilize
MONIT in such a way that it can override aspects of that information. Specifically, you may choose to remove the contributions of one or more individual segments from the estimates for individual integrals contained in
DINEST and
ERREST, and replace such information with a more accurate approximation you have calculated by some other means. Clearly this facility should only be used with care. We recommend that it be used only after
D01RAF has returned with
${\mathbf{IREVCM}}=0$, i.e., it has completed the computation of the approximations of the integrals.
None.
If on entry
${\mathbf{IFAIL}}=0$ or
$-1$, explanatory error messages are output on the current error message unit (as defined by
X04AAF).
Not applicable.
D01RBF is not threaded in any implementation.
When called after
D01RAF has returned
${\mathbf{IREVCM}}=0$, D01RBF may be used to modify
DINEST and
ERREST. For example if
${\mathbf{EVALS}}\left(\mathit{j},\stackrel{-}{\mathit{k}}\right)=4$ for some
$j\in 1,\dots ,{n}_{i}$,
$\stackrel{-}{k}\in 1,\dots ,{n}_{s}$, indicating integral
$j$ was badly behaved over segment
$\stackrel{-}{k}$, then one may potentially modify
${\mathbf{DINEST}}\left(j\right)$ as follows:
- ${a}_{\stackrel{-}{k}}={\mathbf{SINFOR}}\left(\mathit{l},\mathit{k}\right)$
- ${b}_{\stackrel{-}{k}}={\mathbf{SINFOR}}\left(\mathit{l},\mathit{k}\right)$
- ${F}_{\stackrel{-}{k}}^{\mathrm{new}}={\int}_{{a}_{\stackrel{-}{k}}}^{{b}_{\stackrel{-}{k}}}{f}_{j}\left(x\right)dx$: performed using accurate technique for specific function.
- ${\mathbf{DINEST}}\left(j\right)={\mathbf{DINEST}}\left(j\right)-{\mathbf{FS}}\left(\mathit{j},\stackrel{-}{\mathit{k}}\right)+{F}_{\stackrel{-}{k}}^{\mathrm{new}}$
ERREST may be similarly updated if required.
Note: if integral
$j$ has been approximated successfully due to extrapolation, indicated by
${\mathbf{NEEDI}}\left(j\right)=1$ after
D01RAF has completed,
${\mathbf{DINEST}}\left(j\right)$ will not be the direct sum of the contributing segments. You may however reconstruct the unextrapolated integral estimate as,
where
$K=\left\{k\mid {\mathbf{EVALS}}\left({\mathbf{LDI}}\times \left(\mathit{k}\right)+\mathit{j}\right)=1,2,5\right\}$ and
$\stackrel{-}{K}=\left\{\stackrel{-}{\mathit{k}}\mid {\mathbf{EVALS}}\left({\mathbf{LDI}}\times \left(\stackrel{-}{\mathit{k}}\right)+\mathit{j}\right)=4\right\}$, the sets of all contributing segements where integral
$j$ has been evaluated accurately and inaccurately respectively. Some or all of the terms in the summation over
$\stackrel{-}{K}$ may be replaced with more accurate approximations
${F}_{\stackrel{-}{k}}^{\mathrm{new}}$ if available.