aboutsummaryrefslogtreecommitdiff
path: root/math/nlfit/nlzero.gx
blob: ffd1458b2bc1d1a3cc959b6dea5262f76c1e8323 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
$if (datatype == r)
include "nlfitdefr.h"
$else
include "nlfitdefd.h"
$endif


# NLZERO --  Zero the accumulators and reset the fitting parameter values to
# their original values set by nlinit().

procedure nlzero$t (nl)

pointer	nl		# pointer to nl fitting structure

int	nparams		# number of parameters
int	nfparams	# number of fitted parameters

begin
	# Get number of parameters and fitting parameters.
	nparams  = NL_NPARAMS(nl)
	nfparams = NL_NFPARAMS(nl)

	# Clear temporary array space.
	call aclr$t (ALPHA(NL_ALPHA(nl)), nfparams * nfparams)
	call aclr$t (COVAR(NL_COVAR(nl)), nfparams * nfparams)
	call aclr$t (CHOFAC(NL_CHOFAC(nl)), nfparams * nfparams)
	call aclr$t (BETA(NL_BETA(nl)), nfparams)

	# Clear space for derivatives and trial parameter vectors.
	call aclr$t (DERIV(NL_DERIV(nl)), nparams)
	call aclr$t (TRY(NL_TRY(nl)), nparams)

	# Reset parameters.
	call amov$t (OPARAM(NL_OPARAM(nl)), PARAM(NL_PARAM(nl)), nparams)
	call aclr$t (DPARAM(NL_DPARAM(nl)), nparams)

	NL_SCATTER(nl) = PIXEL(0.0)
end