.nminterp.nan
author Andreas Thurnherr <ant@ldeo.columbia.edu>
Mon, 13 Apr 2020 11:06:22 -0400
changeset 40 c1803ae2540f
parent 39 56bdfe65a697
permissions -rw-r--r--
.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
39
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
     1
#======================================================================
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
     2
#                    . N M I N T E R P . N A N 
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
     3
#                    doc: Sun Jul  6 20:37:31 2014
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
     4
#                    dlm: Sun Jul  6 20:39:26 2014
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
     5
#                    (c) 2014 A.M. Thurnherr
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
     6
#                    uE-Info: 67 0 NIL 0 0 72 2 2 4 NIL ofnI
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
     7
#======================================================================
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
     8
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
     9
# filling gaps with nan [fillgaps]
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    10
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    11
# HISTORY:
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    12
#	Jul  6, 2014: - created from [.nminterp.linear]
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    13
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    14
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    15
#
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    16
# THE FOLLOWING VARIABLES MUST BE SET GLOBALLY (i.e. during loading)
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    17
#
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    18
#	$ISOpts				string of allowed options
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    19
#	$ISOptsUsage		usage information string for options
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    20
#
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    21
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    22
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    23
$ISOpts = "";
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    24
$ISOptsUsage = "";
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    25
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    26
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    27
#
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    28
# &ISUsage() 	mangle parameters (options, really)
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    29
#
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    30
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    31
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    32
sub ISUsage() {}
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    33
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    34
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    35
#
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    36
# &ISInit(f,xf)				init interpolation of field f
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    37
#       f					field number
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    38
#		xf					x field number or -1 for %RECNO
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    39
#       <ret val>           none
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    40
#
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    41
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    42
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    43
sub ISInit($$) {}
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    44
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    45
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    46
#
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    47
# &interpolate(xf,mg,f,lvr,cr)		interpolate field f
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    48
#		xf							x field or -1 for %RECNO
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    49
#		mg							max allowed x gap
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    50
#		f							field number to interpolate
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    51
#		lvr							last record with valid y val
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    52
#		cr							current record
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    53
#		<ret val>					interpolated value
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    54
#
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    55
# NB:
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    56
#	- handle f == xf
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    57
#	- return undef if interpolation cannot be carried out
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    58
#	- x VALUES MAY NOT BE MONOTONIC
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    59
#
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    60
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    61
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    62
sub interpolate($$$$$$)
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    63
{
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    64
	my($xf,$mg,$f,$lvr,$cr) = @_;
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    65
	
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    66
	return ($xf == $f) ? $ants_[$cr][$xf] : nan;
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    67
} # static scope
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    68
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    69
#----------------------------------------------------------------------
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    70
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    71
1;