Memo: Fast SOLVE. ====================== 28-MAY-97 28-MAY-97 13:52:17 Leonid Petrov pet@leo.gsfc.nasa.gov Major changes in version SOLVE made in connection with implementation of fast algorithms in SOLVE: 1) Implementation B3D and B1B3D algorithms for calculation of the estimates and their covariance matrices was added to SOLVE. Three keywords FAST_MODE, FAST_COV and FAST_DBG were added to SOLVE. Three new options in OPTIN were added to OPTIN: "Fast mode switch", "Fast debug mode switch" and "Full adjustment list". 2) Scheme for parameterization clock, atmosphere and EOP by continuous, piecewise linear function (linear spline) was changed. The way of computation depends on choice "FULL" mode (or before 1997 year mode) or one of "FAST" modes (B3D or B1B3D) 3) New debugging and time profiling feature added to SOLVE. 4) The possibility to specify explicitly the max degree of clock polynomial (1 or 2) was added. 5) Environment variable CGM_DIR added what allows us to specify directory where CGM will be written. 6) Screen form in OPTIN was reordered. How does new SOLVE work. ~~~~~~~~~~~~~~~~~~~~~~~~ First, the parametrization for atmosphere, clock, EOP is investigated. If the length of segments for a given parameter is the same for all epoch and for all stations the attribute "uniform segmented" is set up for this parameter. Then the length of the segments is compared. The pairs of lengths to be commensurate each other are sought. Parameter which has the length of segments not to be commensurate to other lengths is marked as ineligible for fast treatment and treated as local parameter. Then interval epochs for uniform parameters are recalculated: the initial epochs is setup to the moment of the first observation, the last epochs is reinstalled to the nearest moment after the last observation minus one minute. The interval lengths are rounded to integer minute to avoid rounding problems in calculating epochs. Parametrization of clock breaks in the case of uniform clock parameterization is different form the case of non-uniform clock parametrization (which is the same as for pre-1997 SOLVE). In the uniform case clocks are parametrized by sum of a) discontinuos piece-wise polynomials degree of k (k specified by user to 1 or 2) with breaks on the points of clock break epochs and b) continuous piece-wise linear functions with equally spaced segments regardless clock breaks points. Environment variable UNF_DISABLE allows us to prohibit for certain parameters to be considered as uniform regardless their actual stature. If session has at least one uniform parameter it is declared as eligible for fast mode. If keyword FAST_MODE is B3D (for independent one-session solution) or B1B3D (for global multi-session solution) this mode is setup. If keyword FAST_MODE is B3D or B1B3D, but sessions is ineligible for fast algorithms then environment variable is checked FAST_MODE__STRICTLY. If it has value "YES" then error message is generated and SOLVE is stopped. If it has another values or is not setup then mode is setup to FULL but for this session only. Programms directly affected by FAST_MODE: 1) OPTIN -- Appearance of some screen forms changed. Some bug fixed. OPTIN window became resizable. New items added. 2) BATCH -- New keywords FAST_MODE, FAST_COV, FAST_DBG were added. New modifier for CLOCK keyword was added (MAX_DEGREE). Syntax of UT1/PM totally changed. Test of eligibility the session to be treated in fast mode added. Time profiling feature added. Some error messages were improved. 3) GLOBL -- Writing arc-files in FAST mode was excluded. 4) PROC -- Coefficients of equations of conditions in fast mode are calculated by different way. Normal matrix is calculated quite differently in fast mode. Constraints are added to normal matrix by different way in fast mode. The format of intermediate file NRMF-file is quite different (and takes twice less disk space). PROC calculate coefficients for interpolation high frequency EOP by cubic spline in the beginning of run in fast mode. High frequency EOP are interpolated for each time epoch using these coefficients. Corrections to o-c due to various flyby calibrations are saved in FAST-file. 5) NORML -- In B3D mode the algorithm of solving normal equations is different. 6) ARCPE -- Calculations are the mostly different in B1B3D mode. In fast mode ARCPE makes functions which previously ADDER, XDDER, COPYQ did. The format of arcfiles is quite different 7) BACK -- Calculations are the mostly different in B1B3D mode. 8) CRES -- Coefficients of equations of conditions in fast mode are calculated by different way. Residuals are calculated using optimized routines. Corrections to theoretical delays and rates due to various flyby calibrations are not calculated but are read from FAST-file. 9) ADJST -- Logic changed to accommodate changes in parametrization of clock, atmosphere and EOP. Thus, 80% computations in fast mode use new code. If to specify FAST_MODE = NONE and set up environment variable UNF_DISABLE to "CABE" then new SOLVE should yield exactly the same results as pre-1997 code. Fast SOLVE didn't replaced old SOLVE but extended it. Restrictions. ~~~~~~~~~~~~~ At 01-JAN-97 1) 209 sessions contained observations not in strict time order. They cannot be treated by new SOLVE. The list of session is in file /data8/users/pet/text/order.ses 2) 3 sessions contained too near clock breaks epochs. They produced error in matrix inversions in new parametrizations scheme. The list of these sessions is in file /data8/users/pet/text/break.ses 3) 12 session contained clock offsets more then 1 msec. Rounding errors for these sessions corrupted results (both in "old" and fast mode, but differently). The list of these sessions is in file /data8/users/pet/text/offset.ses 4) 24 session contained clock offsets more then 10**-8. Rounding errors for these sessions corrupted results (both in "old" and fast mode, but differently). At 28-MAY-97 problems 1-3 had been solved; databases and superfiles were updated. References. ~~~~~~~~~~~ 1) L. Petrov "Memo: Fast-extension of SOLVE". File /data8/users/pet/text/pet_memo.970318 2) L. Petrov "Memo: about problems with speed of SOLVE". File /data8/users/pet/text/pet_memo.970526 3) L. Petrov "Multigroup LSQ method and its generalization" (submitted to Computational Statistics and Data Analysis). File /data8/users/pet/text/mglsq.ps