aboutsummaryrefslogtreecommitdiff
path: root/noao/onedspec/ecidentify/ecffit/ecfreject.x
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2015-07-08 20:46:52 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2015-07-08 20:46:52 -0400
commitfa080de7afc95aa1c19a6e6fc0e0708ced2eadc4 (patch)
treebdda434976bc09c864f2e4fa6f16ba1952b1e555 /noao/onedspec/ecidentify/ecffit/ecfreject.x
downloadiraf-linux-fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4.tar.gz
Initial commit
Diffstat (limited to 'noao/onedspec/ecidentify/ecffit/ecfreject.x')
-rw-r--r--noao/onedspec/ecidentify/ecffit/ecfreject.x53
1 files changed, 53 insertions, 0 deletions
diff --git a/noao/onedspec/ecidentify/ecffit/ecfreject.x b/noao/onedspec/ecidentify/ecffit/ecfreject.x
new file mode 100644
index 00000000..a772069e
--- /dev/null
+++ b/noao/onedspec/ecidentify/ecffit/ecfreject.x
@@ -0,0 +1,53 @@
+include <mach.h>
+
+# ECF_REJECT -- Reject points with large residuals from the fit.
+
+procedure ecf_reject (ecf, x, y, z, w, r, npts, fixedorder)
+
+pointer ecf # GSURFIT pointer
+double x[npts] # X points
+double y[npts] # Y points
+double z[npts] # Z points
+double w[npts] # Weights
+double r[npts] # Residuals
+int npts # Number of points
+int fixedorder # Fixed order?
+
+int i, j, newreject
+double low_cut, high_cut
+include "ecffit.com"
+
+begin
+ # Return if rejection is not desired.
+ nreject = 0
+ if (niterate == 0 || (low == 0. && high == 0.))
+ return
+
+ # Reject points.
+ do i = 1, niterate {
+ if (low > 0.)
+ low_cut = -low * rms
+ else
+ low_cut = -MAX_REAL
+ if (high > 0.)
+ high_cut = high * rms
+ else
+ high_cut = MAX_REAL
+
+ newreject = 0
+ do j = 1, npts {
+ if (w[j] == 0.)
+ next
+ if ((r[j] > high_cut) || (r[j] < low_cut)) {
+ w[j] = 0.
+ newreject = newreject + 1
+ }
+ }
+
+ if (newreject == 0)
+ break
+
+ call ecf_solve (ecf, x, y, z, w, r, npts, fixedorder)
+ nreject = nreject + newreject
+ }
+end