| wncond_c |
|
Table of contents
Procedure
wncond_c ( Contract the intervals of a DP window )
void wncond_c ( SpiceDouble left,
SpiceDouble right,
SpiceCell * window )
AbstractContract each of the intervals of a double precision window. Required_ReadingWINDOWS KeywordsWINDOWS Brief_I/OVARIABLE I/O DESCRIPTION -------- --- -------------------------------------------------- left I Amount added to each left endpoint. right I Amount subtracted from each right endpoint. window I-O Window to be contracted. Detailed_Input
left is the amount to be added to the left endpoint of each
interval in the input window. The amount `left' is signed.
right is the amount to be subtracted from the right endpoint of
each interval in the window. The amount `right' is signed.
window on input, is a window containing zero or more
intervals.
`window' must be declared as a double precision SpiceCell.
CSPICE provides the following macro, which declares and
initializes the cell
SPICEDOUBLE_CELL ( window, WINDOWSZ );
where WINDOWSZ is the maximum capacity of `window'.
Detailed_Output
window on output, is the original window with each of its
intervals contracted by `left' units on the left and
`right' units on the right.
ParametersNone. Exceptions
1) The cardinality of the input `window' must be even. Left
endpoints of stored intervals must be strictly greater than
preceding right endpoints. Right endpoints must be greater
than or equal to corresponding left endpoints. Invalid window
data are not diagnosed by this routine and may lead to
unpredictable results.
2) If the `window' cell argument has a type other than
SpiceDouble, the error SPICE(TYPEMISMATCH) is signaled.
FilesNone. ParticularsThis routine contracts (shortens) each of the intervals in the input window. The adjustments are not necessarily symmetric. That is, left units are added to the left endpoint of each interval, and right units are subtracted from the right endpoint of each interval, where left and right may be different. Intervals are dropped when they are contracted by amounts greater than their measures. Examples
Let window contain the intervals
[ 1, 3 ] [ 7, 11 ] [ 23, 27 ] [ 29, 29 ]
Then the following series of calls
wncond_c ( 2, 1, &window ); (1)
wncond_c ( -2, 2, &window ); (2)
wncond_c ( -2, -1, &window ); (3)
produces the following series of windows
[ 9, 10 ] [ 25, 26 ] (1)
[ 7, 8 ] [ 23, 24 ] (2)
[ 5, 9 ] [ 21, 25 ] (3)
Note that intervals may be "contracted" by negative amounts.
In the example above, the second call shifts each interval to
the left, while the third call undoes the effect of the first
call (without restoring the destroyed intervals).
Note also that the third call is exactly equivalent to the
call
wnexpd_c ( 2, 1, window );
RestrictionsNone. Literature_ReferencesNone. Author_and_InstitutionN.J. Bachman (JPL) J. Diaz del Rio (ODC Space) H.A. Neilan (JPL) W.L. Taber (JPL) I.M. Underwood (JPL) Version
-CSPICE Version 1.0.1, 05-AUG-2021 (JDR)
Edited the header to comply with NAIF standard.
Extended description of argument "window" in -Detailed_Input to include
type and preferred declaration method.
Added entry #1 in -Exceptions section.
-CSPICE Version 1.0.0, 21-JUL-2002 (NJB) (HAN) (WLT) (IMU)
Index_Entriescontract the intervals of a d.p. window Link to routine wncond_c source file wncond_c.c |
Fri Dec 31 18:41:15 2021