***************************************************************** Overview: ***************************************************************** B34S now comes in a number of versions. All supported versions run the same and have the Display Manager Interface which runs in either text or graphics mode. The Display Manager is based on the Interacter Subroutine Library. All versions make heavy use of the IMSL Library. On Sun and IBM RS/6000 there is a requirement that the IMSL Library version 4 or later be on the system. On Windows and Linux, the IMSL routines are statically linked in the B34S execuitable. LAPACK, LINPACK, FFTPACK, the BLAS and EISPACK are heavily used thoughout B34S. Real*16 addition and multiplication has been implemented as an option in BLAS routines DDOT, DASUM, DAXPY and DSUM which will improve accuracy for real*8 calculations. In addition real*16, complex*32 and integer*8 data types have been added to the Matrix command as of 2006. The addition of VPA math in 2005 provideda major accuracy improvement since this data type has been integrated into the b34s matrix command math calculation capability. Not all commands support VPA calculations. However, matrix algebra is 100% supported. Execuitables 100% supported: Windows 95/98/NT/2000/XP/Vista/Windows 7 - b34slf95.exe Windows 95/98/NT/2000/XP/Vista/Windows 7 - b34sia32.exe Intel Linux (both 32 and 64 bit support) - b34sx Execuitables currently frozen: RS/6000 - b34sx SUN - b34sx Versions for DOS, Windows 3.1, MVS and CMS are no longer available. While B34S currently runs on Windows 95, 98, ME. It is strongly recommended that users migrate to Windows 2000 or XP. B34S has been tested with the XP-64 operating system with no errors. The 64 bit versions of B34S still make use of the integer*4 pointers. Thus while they run under a 64 bit operating system, they do not make full use of such systems. However real*16 and comlex*32 variables are supported on all systems. Math with these variables is done via software rather than hardware. Some versions of B34S have been compiled to utilize the Pentium Pro IV added instructions. These versions will not run on earlier CPU's. Other versions of B34S have been built to exploit multiple CPU machines. These versions will not run on a single CPU machine. ***************************************************************** How B34S is usually run ***************************************************************** On all systems the command b34s test will run the program in batch mode and process the file test.b34 b34s2 test will run the program in batch but allow for graphics. On the unix and PC versions b34sx calls the display Manager. The size can be given as b34sx 4000000 On Windows the files b34s.bat, b34s2,bat and b34s3.bat should be copied to the Windows directory and Netscape/IE modified to launch b34s3.bat %1 if a ___.b34 file is found. The B34S job will run and the user will be left in the Display Manager. b34s3 ch2 in Windows launchs B34S, runs the file and leaves you in the Display Manager. If this feature is desired, modify the Windows Explorer to launch b34s3 if it finds a *.b34 file. *********************************************************************** Brief Version History - Version not changed each time Consult date on b34slf95.exe in c:\b34slm for what release of the version you have on your machine. This date can be seen from the Display Manager using help\about. *********************************************************************** b34s 8.11E 21 July 2010 A major upgrade to the matrix command smooth that implements the Gardner smoothing models has been released in beta form. 6 July 2010 B34S built with the Intel 11.1 compiler using IA32 has been released in beta form. The execuitable is b34sia32.exe. A number of changes have been made to the source of both this version and b34slf95.exe. A bug related to optimization in the ACE model has been identified and fixed. Long run plans are to maintain b34slf95.exe and b34sia32.exe. Due to the Fortran implementation of run time libraries, slight differences in the output may be observed. The b34sia32.exe version uses the IMSL version 6 library, while the b34slf95.exe version uses the IMSL version 4 library. b34s 25 May 2010 LS2 and GMM capability added using subroutines. 10 March 2010 INPUT sentence on the DATA step modified to allow pointing to the data column locations. The options requires FILEF=CFIXED. B34S 8.11D 30 January 2010 call spectral, call cspectral and b34sexec spectral commands have been refined to create the same number of observations for all values calculated. 8 December 2010 call specfore command added to matrix. 1 November 2009 The matrix command GLM implemented in beta form. 1 October 2009 The commands lag, keepfirst, keeplast, dropfirst and droplast work for 2d and well as 1d real*8 objects. 11 August 2009 Cluster analysis added. Chapter 17 of Stokes(xxx) deals with nonparametric analysxis of nonlinear systems and has been released in very preliminary form. Comments and suggestions are welcome. 15 April 2009 Random Forest capability extended to regression models. 5 March 2009 Major changes to contrib2 to allow listing leverage plots for OLS, GAM, MARS and PPREG. Changes made to gamfore to handle cat input data or series with df=1. Arguments updated. 7 January 2009 The call dmfmerge command was developed to allow DMF files containing real*8 and character*8 data to be obs merged and sort merged. 27 December 2008 Major work on the MATRIX command call csv to allow long strings to be loaded into character*8 variables. If blanks are found such as john s the character _ is placed in the blank. This facilitates loading into a b34s data step. b34sexec merge enhanced to merge character*8 data in files. 10 October 2008 Production Random Forest Modeling capability released in ranforest command. Many improvements to a number of routines. 30 July 2008 A preliminary version of Random Forest Modeling capability is enabled as the ranforest command. This will round out the Machine Learning capability already in B34S. The B34S matrix command ranforest will access the GPL Library developed by Leo Breiman and Adele Cutler that will perform Random Forest Modeling. 11 July 2008 Preliminary versions of PPREG (Projection Pursuit Regression and classification), RDA (Regularized Discriminate Analysis) PPEXP (Exploritory Projection Pursuit) and RCOVER (Recursive Covering released in Beta form. These are very powerful commands that enlarge the Machine Learning Capability of B34S. Documents that illustrate these commands are planned in the future. 12 May 2008 TB_TO_JULIAN and JULIAN_TO_TB added to assist in date setting. 29 April 2008 SWBOOTS and SWBOOTSM implemented to perform calculation of critical values for Stock Watson tests on multi period modela and moving models. KSWBOOTS also released. 24 March 2008 HHS modification to OLS boosting that does not require that data be centered implemented in boost3. File boots4 uses boost3 to allow forecasting of boosted models. call csv modified to remove tab characters and replace them with , thus allowing reading of R tables. The R command major<-read.table("d:\\therbook\\cancer.txt",header=T) can be read in b34s as %B34SLET in = "book1.csv" $ %B34SLET out = "_myb34s.b34" $ %B34SLET IN ="'d:\therbook\cancer.txt'" $ %B34SLET OUT ="'_myb34s.b34'" $ b34sexec matrix; call csv(:readfile %b34seval(&in)); %_n=norows(%series); %_c=c8array(%_n*2:); %_i=integers(1,%_n); %_j=integers(1,2*%_n,2); %_c(%_j)=%series(%_i); call makedata(argument(%_c) :file %b34seval(&out)); b34srun; b34sexec options include(%b34seval(&out)); b34srun; /; b34sexec list; b34srun; 27 February 2008 Boosting implemented in boost and boost2 commands. Matrix input added to gamfit. 10 February 2008 Improvements to ability to estimate poisson models. Refinements to 3D surface plots. Many small improvements to a number of commands. b34s 8.11C 21 November 2007 The b34sexec describe command now works like the matrix command call describe. The options timebase and timestart implemented in call olsq. New command copytime(series1,series2,ioffset); allows passing to timeseries data to call graph( ) where it will be displaced with year x axis using :plottype timeplot option. 5 November 2007 Weighted least squares implemented in the matrix call olsq command. 30 October 2007 loess_mv implemented in beta form. 30 September 2007 loess_sa and loess_sps implemented. The first command uses lowess methods to decompose a serties into its seasonal and trend components. The second command allows smoothing of a x-y scatter plot. 2 July 2007 Enhancements to compress. 21 June 2007 Least trimmed squares (LTS) and least trimmed squares recursive (LTS_REC) routines added to staging.mac. This capability, discussed by Faraway in "Linear Model with R" on page 101, provides a resistent regression method. OLS/MAR and GAM results are tested for their sensitivity to removal of observations with high squared residuals. 12 June 2007 GAMFIT and GAMFORE extended to allow distributions that include gauss, gamma, poisson and link functions ident, inver and logar. 18 May 2007 GAMPLOT and GAMFORE added to matrix2.mac. These routines graph GAM models and forecast gam models respectively. 1 May 2007 IRF command added the matrix2.mac to calculate two types of IRF for VAR Models. 10 March 2007 kindas extended. New functions cor and cov in staging2.mac. Estimates of critical values not printed with Dickey-Fuller and PP tests. dfvalues subroutine available in staging2.mac. cor_2 test job in staging.mac illustrates Cholesky-QR vs real*8, real*16 and VPA trade off in terms of correlation between residual and a right hand side variable. Fair-Parke Large scale Model interface built using matrix command makefair. This command allows estimation with software developed by Fair and Parke and documented in "Specification Estimation and Analysis of Macroeconomic Models" By Ray Fair Harvard 1984. The makefair interface allow estimation of 3SLS and FIML models with arima errors and extensive simulation capability. The Fair-Parke execuitable is distributed with the Windows B34S. 1 March 2007 The dataread command in the MATRIX procedure provides an easy-t-use data input in the matrix command without using b34sexec data or reading a RATS, SPEAKEASY or matlab file that does not require programing a the mor general call read( ); command. The dataread command will read real*8, real*16 and character*8 data into vectors and 1 D arrays. 24 February 2007 Staging routine getdata and getdata2 are simple ways to load more than 98 series into the MATRIX command without going through the b34sexec data step. call read( ) allows a user format for character*1 data. 1 February 2007 Bug fix to autobj command that occured when saving a model when running inside a subroutine. b34s 8.10Z 4 January 2007 Enhancements to panel capability: Panel subroutines in library panel_lib in staging2.mac panel_t => transpose panel panel_df => Difference panel panel_fe => Removes Mean used with one-way fixed effects panel2fe => Removes Means used with two-way fixed effects can do time and individual effects without transpose. pfe_1way => Driver routine for one way Fixed Effects pfe_2way => Driver routine for two way Fixed effects 1 January 2007 Subroutines DATA2ACF , DO2SPEC added to matrix. BJ_IDEN subroutine in beta test form. Matrix power capability extended to complex*32 matrix. Integer power capability now in VPA real*4, real*8, real*16, complex*16 and complex*32. 1 December 2006 gamfit save file names rationalized and help files improved. The makedmf & getdmf options in matrix released on this date. These allow I/O of a major database type that allows up to 9999 series, both real*8 and character*8 to be read and saved in matrix and selectively read by the b34sexec data step. Other useful supported formats are Rats portable, SCA FSAVE, SCA MAD and the Matrix checkpoint command. 1 November 2006 wavelet command added to matrix. This allows a number of smoothing procedures that allow localized variations of spectral power within a time series. The autobj command :longar and :longma options have been enhanced and changes have been made to the menu.mac commands. Bug fix made to b34sexec makemenu command to correct unexpected escapes from the menu. 14 August 2006 qr(x) command that uses LAPACK added. In addition to R, optionally Q can be obtained. This command offers an alternative to QRFAC that uses LINPACK. It is very fast for large systems and can give the economy Q and large Q explicitly. The qr_small subroutine in staging has been added to facilitate use. 6 August 2006 The following functions were added: to_rmatrix - Convert Object to Row-Matrix to_cmatrix - Convert Object to Col-Matrix to_rarray - Convert Object to Row-Array to_carray - Convert Object to Col-Matrix to_vector - Convert Object to Vector to_array - Convert Object to Array 1 August 2006 The ESACF test implemented under matrix command. The STEPWISE and BESTREG commands implemented under matrix command. 1 July 2006 The Hinich (1996) multivariate nonlinear portmentau test mvnltest implemented under matrix command. :sample implemented under gamfit and acefit in matrix. 20 May 2006 Display Manager changes to allow access to Windows "long name" files b34s.log, b34s.out, the tasks buffer and the help buffer. If other long files names are needed, the system command line should be used. 1 May 2006 MARS_VAR (Joint Estination of VAR Model using MARS Approach) added. This allows estimation of joint models with a common right hand side. The MARS_VAR command uses the Hastie and Tibshirani GPL implementation of the Friedman(1991) MARS procedure. Code was obtained from the CRAN GPL Library. 1 April 2006 icov and kcov=diag made default in SIMEQ command Lasso and ridge capability added to staging2.mac. Improvements to acefit including enabling forecasting. Functions iamax,iamin,imax and imin added. MARSPLINE, MARS, PISPLINE ACEFIT support :holdout options and save extra data in %xfuture. Major improvements to marspline for 3D model display. 1 February 2006 Negative lags on right implemented for OLSQ, MARS, MARSPLINE and PISPLINE command in matrix. 28 January 2006 call align in matrix enhanced for 2-D data. I=Monor improvements to call marspline( ) 20 December 2005 Large number of diagnostic procedures added to staging2.mac and matrix2.mac. A partial list includes Mac file name c:\b34slm\staging2.mac GAMPLOT Display GAMFIT Results GLESJER Glesjer (1969) Heteroscedasticity Test G_QUANDT Goldfeld-Quandt Heteroscedasticity Test HET_TEST Heteroscedasticity Testing MARSINFO Estimate of MARSPLINE Model GCV Info SC_TEST Serial Correlation Tests TS_TESTS Residual Specification tests WALD Wald Test of restrictions Mac file name c:\b34slm\matrix2.mac B_G_TEST Breusch- Godfrey (1978) Test on Residuals B_G_ALT Breusch- Godfrey (1978) Test using dropping BLUS BLUS master RESET69 Ramsey(1969) Regression Specification Test RESET77 RESET77 Nonlinearitry Test The matrix command OLSQ was enhaced with the :outlier option that provides a number of outlier detection measures. The matrix command OLSQ :sample option produced incorrect %yhat and %res values. All printed output was 100% correct. Bug fixed. 5 December 2005 The marspline procedure added to matrix command. The marspline procedure uses code developed by Hastie and Tibshirani to implement the Friedman (1991) mars procedure that is implemented in the MARS command. The older MARS command uses the 1991 Friedman code that has recently been trademarked. The new mars code, currently in R(r), was developed independently of the 1991 Friedman code and has been released under the GPL 2 license. It has been constantly updated. The marspline command replaced the older mars command. 10 October 2005 mcov and mcovf functions developed to facilitate implementation of Method of Moments Estimation. mcovf is the function equivalent of mcov. It is slower but clearly shows the logic of the calculations. It can be extended easily in the field as research needs change. The argument list for mcov and mcovf are the same to facilitate use. 1 October 2005 Many changes to implement integer*8 and improve help file. call csv capability has been made more standard. 1 August 2005 ACEFIT (including AVAS option) and GAMFIT added to Matrix command. Code was obtained from the CRAN GPL Library. Substantial improvements to b34s documention have been completed. The way GARCH-M is calculated in GARCHEST and GARCH commands has been refined. First the first moment residual is calculated without the GARCH-M term. Next the second moment is calculated which uses only lag values. Next the second moment term is used to update the first moment residual. 1 July 2005 PGMCALL procedure modified to call R under B34S. GAMFIT procedure added to estimate a generalized additive model. This procedure is currently in beta. 31 May 2005 EXITDO and EXITIF key words added. Functional form estimated with :tgarch3 changed to be consistent with Zakovian paper. :itgarch options narrowed. GED and Cauchy options added to GARCHEST. 21 May 2005 Options call compress(:on); call compress(:off); call compress(:info); allow monitoring the effect of enabling call compress; If call compress(:off); is in effect call compress; will have not have any effect until call compress(:on); has been given. The routine that moves data in a compress has been modified so as not to allow unrolling when copying inside an array. 23 April 2005 Alias routines for Function Names in MATRIX command added Listing of Alias function names Name Replaced by LOG DLOG LN DLOG LOG10 DLOG10 EXP DEXP MOD DMOD MAX DMAX MAX1 DMAX1 MIN DMIN INVERSE INV SIN DSIN COS DCOS I4TOR8 DFLOAT I$TOR4 FLOAT SQRT DSQRT SINH DSINH GAMMA DGAMMA COSH DCOSH CONJ DCONJ ATAN DATAN ATAN2 DATAN2 ARSIN DARSIN ARCOS DARCOS ABS DABS R8TOR4 SNGL R4TOR8 DBLE x=log(x); works the same as x=dlog(x); call csv(:readfile 'mycsv.csv'); call csv('writefile 'mycsv.csv' :var x y); provides two way communication using Excel csv files. Menu command excel_get2 added to get csv files. 26 March 2005 REAL32_VPA option added to matrix. This puts a VPA link inside the BLAS routines QDOT, QSUM, QASUM and QAXPY allowing experiments with variable accuracy for these key core routines inside QR, LU, SVD and Cholesky LINPACK routines for real*16 data. At some later time such improvements may be added to complex*32 routines if there is demand. These changes allow two paths for accuracy improvements to real*8 and real*16. b34s 8.10W 19 March 2005 dmax1 and dmin1 in MATRIX extended to support a vector and a scaler and well as two vectors. Assuming x=vector(:1. 2. 3. 4.); bigx=dmax(x,3.); will produce a vector 3. 3. 3. 4. 9 March 2005 The Alphanumerics TSD file format has been implemented in the matrix subroution tsd. This feature allows building of time seris data bases that document the series being saved. The command tslineup and align can be used to adjust series to be consistent. 20 February 2005 Beta version of B34S containing VPA math released. The inv( ) command works for a real or complex VPA matrix. 1 February 2005 Integer*8 data type enabled. This part of long term plan to port a number of B34S capability to 64 bits. Matrix inverse, QR, SVD, LU facorization and Cholesky factorization added for real*4 data. real16on also increases accuracy in sdot automatically. 15 January 2005 The Matrix VPA (Variable Precision Arithmethic) option allows calculations between real, integer and complex variables where up to 1786 digits of accuracy are used in the production version of B34S. This feature uses the fm_zmlib.f library built by David M. Smith. As implemented, extended precision calculations can be mixed into the usual matrix commands to allow the user to make more precise calculations of key data. Six new 'kinds' are now supported. kind = 88 => fm or unpacked real data. kind = 888 => fp or packed real data. kind = -44 => im or unpacked integer data. kind = -444 => ip or packed integer data. kind = 160 => zm or unpacked complex data. kind = 1600 => zp or packed complex data Important new commands include subroutine vpaset and function vpa. vpax=vpa(x); vpay=vpa(y); call print('High accuracy calculation',vpax/vpay); ----------------------- The way that strings are handled has been improved: Statements of the form xx='This is a long string > 8'; produce character*1 arrays. xx='le 8'; produces a character*8 variable. call character(cc,'q'); forces cc to be character*1. This change is long over due and will simplify code! Hopefully no bugs were introduced in commands that allow character input. B34S 8.10V 15 December 2004 call probit( ); implemented under matrix command. Uses same internal subroutines as the b34sexec probit command. 6 December 2004 call getsca( :mad) enhanced to allow 300 series to be loaded when the data for one observation is saved on more than one line. the options command sigd( ) to set significant digits can be set on matrix command as b34sexec matrix sigd(4); or as call sigd(4); inside a running matrix script to control how real*8 data is displayed with the call print( ) command and internally from many b34s commands. # of arguments to a matrix call or function increased from 400 to 2500. 7 November 2004 if( ) ; in matrix will not execute right hand side if ( ) = .false.; Allows statements such as if(y.ne.0.0)aa=x/y; 20 October 2004 call makelocal( ); command enhanced to move between levels. P_L_EST subroutine added to staging.mac / staging2.mac to support probit and logit models in matrix. tlogit subroutine added to display "confusion" matrix for logit/probit models. Major progress has been made integrating b34s with SCAWORKBENCH which is an advanced script writting program developed by Bill Lattyak. 10 October 2004 Improved MARS output under MATRIX with call dispmars; from staging library. the command call fprint( ); improved to allow buffer to be saved between calls and or buffer saved to a name. 2 October 2004 Interface issues resolved with matrix_mars input. B34S help file being imporved. 20 September 2004 Accuracy adds for complex*16, real*16 and complex*32. See real32 and real32off commands which are in beta testing mode. Improvements to object expansion. 13 September 2004 SOURCE procedure modified to handle routine names LE 30. 5 September 2004 LAPACK routines DGESVD and ZGESVD added as options to SVD command in MATRIX. Bug in Complex*16 index addressing related to complex*32 math implementation fixed. Bugs fixed in :refine and :refines options in inv( ). Large number of examples added to help document. b34s 8.10R 1 September 2004 The limit of 132 is removed from call character(string,' '); and call ib34s11(string,ibase,ifbase,isize,itokty, inewp,imax) This allows loading long text into character*1 arrays and processing them. The new command argument(string) allows: - Passing of arguments to programs. - Changing arguments to a command of a running program " on the fly." - An easy way to "duplicate" arguments to a function or subroutine. The utility routines NTOKIN, GETR16 and GETR8 added to staging2.mac to facilitate data entry in MATRIX from Character arrays. 1 August 2004 LAGMATRIX command added to MATRIX command. Help file formatting and content improved. More work needed and is currently underway. Calculation of %xfuture when :sample in effect in OLSQ and MARS has been fixed 15 July 2004 The MARS command in Matrix has been enhanced by adding capability to trap the model. The patches to the GRAPHP command in Matrix have been applied. 10 June 2004 ZEROL, ZEROU, UPPERT, LOWERT set to run with real*16 and complex*32 data. 1 June 2004 SAVE and RESTORE supports real*16 and complex*32 data in native format optionally using E40.32 format. While CHECKPOINT saves real*16 and complex*32 data as real*8 and complex*16, increased accuracy (e25.16) is now the default. PDFAC, PDINV, PDSOLV, PDFACUD, PDFACDD, QRFAC and QRSOLV converted to support real*16 and complex*32. NL2SOL converted to support both real*8 and real*16. 15 May 2004 GLS_ML procedure added to staging2.mac. Small sample acf capability added as an option to matrix command acf. Output format improvements to REGRESSION command. 16 April 2004 Real*16 version of NLLSQ released in "beta" form. Shows more stability if poor starting values. 6 April 2004 Improved handling of LISTPARSE and LISTGEN from under Display Manager. Allows trapping of generated code and inspection of the parse table to trap errors. SIMEQ bug that produced incorect correlation of estimated parameters fixed. Minor formatting improvements to BJIDEN. b34sexec options( ); b34srun; can be set from Display Manager Meun facility. If None is set, this is a global way to 100% turn off Matrix command output. Not all the legacy procedures have been upgradedf to 100% respond this this capability. The Matrix Command is 100% implemented as either on (any setting except NONE) or off (None). If Verbose is set, a number of procedures will echo control cards may help developer debugging. 20 March 2004. A verion of b34s b34s_nlib that does not contain any IMSL calls was built. Based on the relative size of the modules this is 6.8148% smaller and has a number of features disabled. If a command using an IMSL routine is called under the Display Manager, execution will stop and the main Display Manager Window will be displayed. If the same job is run in a batch mode, then execution will stop. It is hoped that the IMSL license issues will be resolved and that the "full" B34S will be available. At the worst case users will have to license IMSL. While the b35s_nlib version has statistical functions that "mimic" IMSL, these are less accurate. A number of options have been added to the eig( ) function in the MATRIX command to study the effect of permutations and scaling on accuracy and speed using LAPACK eigenvalue routines. 8 March 2004 Error trapping bug for MLSUM for exp and EGARCH exp error trapping fixed. Error trapping for probit function fixed. dexp supports full IEEE exponent range for matrix. 1 March 2004 A number of bugs corrected. Test dataset b34sii_2.b34 developed to test matrix command more that b34sii.b34 is able to accomplich. All bugs fixed were of the nature that the software stopped unexpectedly. 15 February 2004 Minor changes to help trap errors with a message if -v option used on command line. 1 February 2004 Processing of user functions allows the function to be placed anywhere. In addition to x=userf(y,z); x=userf(y,z)+dsin(x); and call sub(userf(y,z),userf(y2,y3)); type expressions are allowed. 15 January 2004 Increased allowable path for graph files to 130. Major improvements to graphic system to handle fonts and charsets in MATRIX and HRGRAPHICS command. See GRCHARSET commands in MATRIX and OPTIONS. See GRFONT in MATRIX. Added DIVIDE command to MATRIX to allow trapping since a statement of the form where(x.ne.0.0)y=a/x; will fail if x is 0.0 since the right hand side is done before the logical statement is evaluated and the mask applied. The "solution" to automatically trap all divides will not help the user flag logic problems. An alternative is to have a divide command of the form y=divide(top,bot); y=divide(top,bot,bad); when the user knows there will be divide problems and in addition knows what to do about the problem. The first command sets y to missing if bot = 0.0; QFLOAT, IQNINT, IQINT, QINT and QNINT commands added. b34s 8.10Q 11 December 2003 B34S on-line help files for MATRIX have been substantially improved. More help file and example file improvements are scheduled. A number of papers discussing applications are planned. 24 November 2003 Alternative White SE and t calculations implemented in MATRIX command call olsq following Davidson-MacKinnon (2004) pages 199-200. See also Greene (2003) page 220. 8 November 2003 The code NaN is seen as missing in the data step when reading with filef=@@ as well as NA, na and the SAS code . which have been in effect for many years. This change is to support Java conventions. The autobj command now supports options :rawacfpacf and :difrawacf to show raw and differenced raw series prior to model being estimated. The switch -v allows the command line to return a message if ERROR: type messages are found in log in most cases. This alerts the user to look in the log. The switch -v should not be used with the Display Manager b34s 8.10n 27 August 2003 Phase # 1 as of 23 May 2003 LRE command added. Many accuracy tests and improvements. REAL16ADDON, REAL16ON, REAL16OFF and REAL16INFO allow extended accuracy in DDOT, DASUM and DSUM and other BLUS routines at expense of speed. For a test case look at Filippelli dataset in stattest.mac. Phase # 2 as of 23 June 2003 real*16, and complex*32 data types added. See commands r8tor16( ),r16tor8( ),c16toc32( ), c32toc16( ) and kindas( ). inv, sum, trace, eig, seig, olsq and math implemented initially along with a limited number of service commands. The long term goal, to provide high accuracy computing programming capability, has been achieved. More real*16 and complex*32 commands will be added as need develops. It is the intention that 99.99% of the calculations will be done using real*8 and complex*16 but that the added accuracy of real*16 and complex*32 can be used as the need arises. Added accuracy can be enabled on many real*8 (and some real*4 commands) with the real16on command without changing the datatype of the variables in the calculation. GRAPH command in Matrix command uses ESP and EPS for Postscript file format. Phase # 3 as of 14 August 2003 In GARCHESY, GARCH and BGARCH the tolerence for a zero value for the second moment in the GARCH/BGARCH model was changed to DMACH(3) to avoid overflows in the likehood function when the second moment residual is very close to 0.0. ERASE, SUSPEND and REWIND added to matrix. These commands allow the B34S matrix command to suspend operation, pass results so far to another program and wait for another command to be passed. Use of the other commands such as call names; allow the calling program to obtain information about the current B34S matrix command workspace. Phase # 4 23 August 2003 The supplied libraries staging.mac and staging2.mac are testing libraries where preliminary code is displayed. If there is sufficient interest these commands may be either hard wired into the B34S processor or moved to matrix.mac and matrix2.mac. The developer gives users notice that the calling sequences of these two libraries may change in response to suggestions of users. The SIMULATE built-in command was added to speed up bootstrap calculation. Compiler bug found and fixed 26 August regarding real*16 operation. Improvements to this capability implemented. Phase # 5 29 September 2003 call load(subnamehere :staging); enabled call olsq( ) now creates %xfobs,%xfuture which when used with %coef allow out of sample forecasting if there are lags for all variables in the model. Improvements made to help files. Phase # 6 White test added to matrix command OLSQ for real*8 and real*16 variables. LRE commands works for real*16 and real*8 data. b34s 8.10K 20 April 2003 Interactive Matrix Command extended to allow calling and editing of scripts as well as single command usage. Interactive Matrix Menus improved. autoexec.b34 file changed to IMSL Library random number generators by default. RECVER( ) RNVER( ) options can be changed in the field. Users wanting old versions code b34sexec options recver(ggubs) rnver(ggnml)$ b34srun; at top of job or change autoexec.b34 file. call get( ) enhanced to allow :dropmiss call align( ); added to matrix Command. A number of changes made to IO to cleanup output. b34s 8.10H 10 March 2003 C1ARRAY and C8ARRAY expanded and modified. c8array(3,3) and c1array(3,4) must not be supplied as c8array(3,3:) and c1array(3,4:) to be 100% compatible with array( ). C8ARRAY and C1ARRAY now allow movement from character*1 to character*8 and character*8 to character*1. DES, CHAR and ICHAR released. b34s 8.10G 1 March 2003 COMPRESS command in MATRIX can be from a subroutine, program or function. This addition drastically reduces the number of temp variable buildup but still allows user control of when a compression is done. This addition allows temp variables names to be used more efficiently. b34s 8.10E 18 February 2003 Recursive residual analysis added to Matrix command OLSQ. Matrix command PDSOLV modified to allow matrix on right. Allows one factorization to solve multiple problems. b34s 8.10D 3 February 2003 Production B34S for 2003 released. New INI files needed. OLSQ command enhanced. CATROW & CATCOL bugs fixed. Note: B34S numbering reverted to 8.10. b34s 8.77C 26 January 2003 AGGDATA command added to MATRIX to allow building of aggregated data. Bug fixed concerning subset reading of a rats portable file with missing observations. Bug fixed for SWARTEST command. b34s 8.67N 21 November 2002 PROBNORM2 command added for Bivariate Normal Distribution. SIMEQ output shows correlation of disturbances. b34s 8.67M 1 November 2002 Commands VAREST, BUILDLAG, POLYMCONV, POLYMDISP, POLYMINV SWARTEST and POLYMMULT added. b34s 8.67K 1 October 2002 The new AUTOBJ command in matrix is in beta test form. AUTOBJ does automatic identification, estimation and forecasting of Box-Jenkins ARIMA models and transfer functions. The underlying routines used are the same as the BJIDEN and BJEST commands. b34s 8.67H 5 August 2002 POLYFIT and POLYVAL subroutines added to Matrix. Draw Capability substantially improved. Figures can be edited after the fact and using a box, sections can be erased. Vector * Matrix output matrix size bug fixed. 1 July 2002 Adds BGARCH subroutine to allow estimation of bivariate GARCH models following Tsay (2002). Fortran was well as BGARCH test setups are supplied. B34S now built with Lahey 5.7 Fortran that implements IEEE754 accuracy standards using the Microsoft run-time library. Slight numerical differences may be observed when models are run using the older LF95 version 5.6 compiler. b34s 8.67G 1 June 2002 NL2SOL command added. Logical operators work with real*8, character*8, character*1 and integer*4 variables. call character and call char1 commands have been enhanced to allow substrings. OPTCONTROL Commands works for Unix, Linux, RS/6000 and Sun. Matrix read supports end of file trapping. Obscure bug with complex if structures fixed. Added diagnostic tools placed in matmenu.mac. 1 May 2002 MARS and PISPLINE capability is under Matrix. The DROPMISS parameter has been improved. In releases prior to 8.67G DROPMISS on the DATA step would drop data that had missing values read BUT not data that was built in that datastep. 8.67G now allows data that was made missing in that datastep be dropped. Example: For version 86.7g we can drop obs # 1 with: b34sexec data dropmiss; input x y; gen if(x.eq.1.)x=missing(); datacards; 1 22 2 77 88 3 88 33 88 99 b34sreturn; b34srun; While for earlier versions the code needed was: b34sexec data dropmiss; input x y; gen if(x.eq.1.)x=missing(); datacards; 1 22 2 77 88 3 88 33 88 99 b34sreturn; b34srun; b34sexec data dropmiss set; b34srun; Fortran support under the Matrix command is illustrated. Job FORTRAN_2 shows a user fortran program being used to specify a GARCH model. Fortran is 100% portable across W2K and Linux and does not make use of DLL and Linux dynamic linklibs. :sample bug under Matrix olsq has been fixed. b34s 8.67E 20 March 2002 The command character or char1 can be used to build a multi-line 2D character*1 array. call character(text,'This is line one' 'This is line two which is longer' 'This is line three' 'This is 4'); I/O for matrix command made more compact Interactive matrix command screen supports 132 characters Power matrix commands enhanced to allow for non integer exponents using eigenvalue analysis 23 February 2002 CATCOL and CATROW now work for matrices as well as 1-D objects. SUBMATRIX function allows extraction of matrices. call getkey(i); allows key trapping. The new structure dowhile(i.gt.0); enddowhile; allows additional processing power. Tasks modified to point to Libraries supplied with B34S in b34slm. applpgm.mac a new library of applications that does not fit into examples. Added MATLAB examples and applications. PRINTOFF and PRINTON commands added to limit output in matrix command. inv( ) has a :refine and :refinee option that uses LAPACK routines DGESVX and ZGESVX to refine and equalize a matrix to make the inverse more accurate. GMSOLV and GMINV have been enhanced by allowing DGESVX and ZGESVX calls. xinv=inv(x:gmat); now uses LAPACK, while xinv=inv(x); uses linpack. LAPACK added to Eigenalysis e=eig(x,v:lapack); e=eig(x,v:lapack2); where the second call turns off balancing. Left hand side eigenvectors can be calculated as e=eig(x,rv,lv:lapack); A Two Dimensional Iterated Integral command DTWODQ added. IMSL version 10 routines have been made the default random number generators. 8.67E is a major release! b34s 8.67d 1 January 2002 version. call solvefree( ); now has options call solvefree(:alttemp); call solvefree(:cleantemp); which allow cleaning temp variable by resetting the temp name from ##__________ to %%________. Example: do i=1,nlarge; call selvefree(:alttemp); * many statements here; call solvefree(:cleantemp); enddo; Formula and solve have been improved. Matrix command storage has been modified to run faster (up to 3 times) in many situations. The SOLVE and FORMULA capability is 2 times faster than the do loop, although this depends on the model. b34s 8.67c 1 December 2001 B34S contains a file finpgm.mac usable under TASKS that contains a number of B34S and RATS setups suggested by Ruey Tsay in his book "Analysis of Financial Time Series." Datasets from this book are now available in the files findat**.mad which can be read from the B34S I/O section and by SCA and SCA Workbench 2000. Integration of B34S with the Tsay research is a major addition to the number of supplied datasets. The multivariate q statistic is available from the matrix command and from the BTIDEN, and BTEST commands. A number of commands have been added to the matrix command. Command line arguments -cdir allows redirecting out and log files to directory dir and -rname allows renaming log and output files name.out and log.out The -cdir and -rname command line switches make the b34s scripts much easier to maintain plus provide added flexibility in the way B34S runs. 19 December 2001 B34S prodides added support for SPSS (X) and removed the SPSS pre 1980 support. At present only real*8 data is passed. Major additions added at this time include: Menu command now has transfer function identification and estimation capability. %b34sinc added to macro facility. This allows code to be placed inside a command. This is used heavily in the menu.mac menu scripts. b34s 8.66q Interecter 5.00e supported. New graphics commands available to plot 3D step plots, 3D volume plots and 3D step mesh plots. See XYZPLOT, STEPPED3D, STEPPED3DC graph options for both HRGRAPH and the MATRIX command GRAPH. The graph command in MATRIX has added commands MESHSTEP, MESHSTEPC to plot a 2D matrix in 3D and VOL3D and VOL3DC to plot a three dimensional matrix. Examples files have been improved and a number of changes have been made in the GRAPH GUI interface to support these new options. Functions HUGE, TINY, SPACING, EPSILON, NEAREST added. 26 May 2001 First production version built. 7 June 2001 GAUSS option added to pgmcall. Functions TIMENOW, DATENOW added to MATRIX and subroutines GWRITE and GWRITE2 added to Matrix. 8 June 2001 Rare bug involving the situation where a user subroutine is called with an uninialized variable with the same name as the internal subroutine variable which was a scaler has been fixed. The bug resulted in the value being passed back to the scaler being set to 0.0. This bug was put in the N version by accident. 19 June 2001 MAKEJUL and SETTIME commands added to MATRIX command. 1 July 2001 Options :linewidth, :xscale, :yscale, :zscale, :histscale, :barsale :setxscale, :setyscale :setxrange :setyrange, :nxticks and :nyticks :grborder, :pgborder, :pgxscaletop, :pgyscaleleft, :pgyscaleright :pgaxesxy and :hardcopyfmt added to MATRIX GRAPH command. Major new MATRIX command GRREPLAY allows creation of multigraph files and conversion of files. Hardcopy options menu enhanced. Many minor improvements to graphics system. 15 July 2001 GRAPHP command released. GRAPHP allows custom graphics programming. B34S graphics system updated. 1 August 2001 MENU, EVAL, C1ARRAY and C8ARRAY commands added to MATRIX. The file matmenu.mac implemented to save MATRIX applications. Subroutines DATAVIEW, DATA_ACF, GET_NAME added to matrix2.mac. 15 September 2001 Testing versions of GRAPHP and FORMS released. 1 October 2001 WHERE Command Expanded to allow scaler assingments. FPRINT command added to MATRIX to allow complete control of printing. 15 November 2001 TGARCH, TGARCH2 and TGARCH3 added to GARCHEST. B34S 8.66Q is a major new release. b34s 8.66n Spline functions and integration commands added. The name _x\y_ is no longer a valid name. The commands NORMDIST and SETLEVEL have been added. N dimensional objects supported with INDEX, SETNDIMV and GETNDIMV commands. LU factorization with LAPACK in GMFAC and inverse and solution capability in GMINV and GMFAC using LAPACK. Other commands include KPROD for Kronecker Product of a real*8 and complex*16 matrix and PINV for the generalized inverse of a real*8 matrix. Integration commands added DQDAG Integrate function using Gauss-Kronrod rules DQDNG Integrate smooth function using a nonadaptive rule DQDAGI Integrate function over infinite/semi-infinite interval. DQDAGP Integrate function with singularity points given DQDAGS Integrate function with end point singularities DQAND Multiple integration of a function Basic Spline Commands CSPLINEFIT Fit 1 D Cubic Spline using alternative models CSPLINE Calculate cubic spline for 1 D data CSPLINEVAL Calculate spline value given spline CSPLINEDER Calculate spline derivative given spline value CSPLINEITG Calculate integral of a cubic spline Advanced spline functions: BSNAX Compute Not a Knot Sequence BSOPK Compute optimal spline knot sequence BSINT Compute 1-D spline interpolant given knots BSINT2 Compute 2-D spline interpolant given knots BSINT3 Compute 3-D spline interpolant given knots BSDER Compute 1-D spline values/derivatives given knots BSDER2 Compute 2-D spline values/derivatives given knots BSDER3 Compute 3-D spline values/derivatives given knots BSITG Compute 1-D spline integral given knots BSITG2 Compute 2-D spline integral given knots BSITG3 Compute 3-D spline integral given knots MENU facility command added to read Excel 97 *.xls and *.wk1 files provided names are in row 1. b34s 8.66N should be considered a major release. b34s 8.66m QRFAC, QRSOLVE, UPPERT, LOWERT, ZEROU, ZEROL added to MATRIX. Improvements to structured index processing involving vector subcripts and the addition of COMB command to facilitate bounds analysis. For a template see COMB_2. b34s 8.66L Major Changes to Display Manager Interface. Interfaces available include: BASICM - one line of 8 buttons EXPERTM - one line of 10 buttons CEXTERTM - Three lines or a total of 12 buttons. The CEXTERTM menus is an updated version of the classic Display Manager interface. The January 2001 build included improvements to the Matrix Command to handle large numbers of TEMP variables and the extenstion of the language to allow logical functions or masks inside subroutine and function calls. In February 2001 a number of patchs were applied. The Display Manager was modified to show the file creation date on the "About B34S Screen" to tell what version is running. b34s 8.66k INLINE( ) specifies functions for optimization and FPLOT (to be implemented later) calls. Display Manager has been redesigned. b34s 8.66j Display Manager changes to support MATLAB version 6.0. GARCHEST Command allows multiple input transfer function models to be estimated. b34s 8.66h Improvements to GARCHEST to allow EGARCH, IGARCH, GJR and TGARCH and other variants such as fat tail models. Additions to ACF command under matrix. Changes in the way tprob works and a new command tden. All stat functions in matrix use IMSL. New commands include Poisson, hypergeometric and binomial distribution and probability functions. b34s 8.66g Improvements to Display Manager in relation to utilization of matrix2.mac subroutines. Improvements to the help documents. Improvements made to B34S Display Manager Menus. OSLQ command under matrix has QR option and can subsample data using a mask. SUBSET function in TOOLKIT provides added capability in this area. b34s 8.66f GARCHEST options enabled. Minor changes to documentation. b34s 8.66e Improvements to MARS enable restrictions on interactions. Display Menu specific help returns more cleanly. SCAIO command improved. b34s 8.66d PGMCALL modified to call STATA. STATA also can read comma delimited file in call tabulate under MATRIX command. Added options made to graphics. b34s 8.66c Major changes to the way subscripted arrays are handled in Matrix command. Statements of the form i=integers(2,4); x(i)=0.0; y=rn(matrix(4,4:)); y(2,)=0.0; now supported. b34s 8.64L Enhancements for Linux to allow alternative locations of key files b34s 8.62k Adds fractional differencing, a number of improvements to SMOOTH and various polynomial processing routines. The TRIPLES reverse test was implemented. GARCHEST capability added 15 July 2000. Improvements to Display Manager for New Users added Sept 2000. Maintance history IF error message bug in Matrix fixed 1 Sept 2000. Error produced a parse error message. b34s 8.62h Twenty seven new string commands added to Matrix. REVERSE and ROTHMAN commands added to Matrix. Reversibility tests added to BISPEC test. MESH and MESHC options under Matrix GRAPH command allow display of 2D objects. Structured index addressing is now allowed with character*1 objects. DF of F test for TEST under REG is now printed correctly. Statistics were always correct. Version 8.62h is a major update. b34s 8.62g Labels on Pie plot under Matrix enabled. Matrix Graphics background set to Display Manager Default. The OPTIONS command eflag set as the default. b34s 8.62e NREG key word on REG and ROBUST drops correct # of observations. SUBKEY has always worked correctly. b34s 8.62d Saving of ARMA Impulse Response Weights enabled for FSV file. b34s 8.62c GARCH command refined and benchmarked. Documentation and test problem additions b34s 8.61h Kennen and reset tests rebuilt to add a constant. Test programs supplied to measure effect of this constant using matrix language. b34s 8.61g Major additions to random number capability in matrix command. A number of refinements to matrix commands and test problem have been made. Schur decomposition has been added to matrix facility. User Subroutine support for optimizatiion routines has been added. b34s 8.61d Year 2000 production version. Major improvements to help facility and documentation. Interactive matrix operation refined. All Matrix commands have individual help files that can be read from Display Manager. b34s 8.60n Improved help commands and minor bug fixes. RS/6000 call system bug for editors is still present. This is appears to be an IBM problem. b34s 8.60m Beta version of Display Manager for RS/6000 and Sun released. Smooth command added to matrix facility provides a number of exponential smoothing options. The design of the implementation allows the user to use the various nonlinear optimization commands to optimize on the smoothing parameters using various decision rules. The PLOT command in the matrix procedure allows line printer plots where high-resolution graphics is not available. b34s 8.60k Improved parsing of structured index variables so that in a number of cases less use of ( ) is required. b34s 8.60j Adds nonlinear programming capability with the commands NLPMIN1, NLPMIN2 and NLPMIN3. Many small improvements have been made. b34s 8.60h Removes tabs from input files. Adds boxcox routine. Adds idnint to convert real*8 to integer*4 with rounding. b34s 8.60g Adds garch subroutine to speed estimation of recursive systems. Improvements to matrix command handeling of temporary variables and many other small but important changes have been made. b34s 8.60f Adds SCAIO command and Simplex Maximization routines maxf3 and cmaxf3. Command line arguments -f, -s, -d can be used to set the input file, the space and the drive. These provided added flexibility and do not require any input order. These are required for b34sx on unix. The switch -Lpath can be used to set the location of the b34slm directory. For most users this is not needed. The Linux version was developed with the production LF95 compiler. On Linux IMSL support is not available yet but will be after 1 Jan 2000. Many small improvements have been made and added test problems are being developed. The Display Manager under Windows 95/98/nt no longer switches between text and graphics mode if (esc) is hit. The commands ft and fg can be used to move between text and graphics. b34s 8.60d Adds Display Manager to Linux. b34s 8.60b Adds processing of structured objects using the function SEXTRACT and the subroutine ISEXTRACT. Pointer support enabled although its use is discouraged. Pointer routines currently supported are the function POINTER and the subroutine PCOPY. The OBJECT command has been modified. A version of b34s, developed to run "silently," has been made available. b34s 8.50r Adds Time series support to MAKERATS in MATRIX. Improvements to supplied subroutines. In summer 1999 b34s version 8.50r was ported to linux. As of August 1999 HR Graphics and the Display Manager are not available. They will be added soon. b34s 8.50q Adds BPFILTER, DDOT, ZDOTU and ZDOTC commands. B34S 8.50p MATRIX command supports GETRATS, MAKERATS, COPYOUT and COPYLOG commands. Minor adjustments to code for LF95. B34S 8.50n New MATRIX commands SORT, VOCAB, MELD, CONSTRICT, IWEEK, CWEEK, LPMAX, LPMIN, QPMIN, EPRINT, EPPRINT and HPFILTER added. Help files and examples have been augmented and improved. Y2K test files are distributed and many small improvements have been made. IWEEK and CWEEK have been added to the DATA Command. After extensive testing on a number of trouble-some problems, including data back to BC, B34S is certified to be Y2K compliant. Y2K test cases can be run by users from EXAMPLE.MAC. A special version B34Slf95 has been released that has been built with the Lahey LF95 Fortran Compiler release 5.5. b34slf95 runs only on Intel P6 (II & III) chips and is between 3-39 times faster, especially in the MATRIX facility. The LF90 b34sw will continue to be available for a number of years for older PC's. The Lahey LF95 5.5 compiler is a major technical advance. In the future a LINUX version is planned. b34s 8.50n represents a major release. B34S 8.50k Improved parsing to require less use of ( ). B34S 8.50j Improved error trapping and messages in ECOMP. Improvements to MATRIX command including more examples. More MATLAB files have been supplied. B34S 8.50h Bug fixes to Complex structured array processing and complex form of MATRIX WHERE statement. B34S 8.50g Improvements to Tasks option under the Display Manager. More test cases are supplied. This version contains very close to the production MATRIX command. The ISEAR and SIG1 options under FORECAST command have been fixed. ISEAR can be set GT 2. SIG1 can be set as a real #. B34S 8.50D Changes to SAVE system and minor bug fix to MATRIX command. B34S 8.50C Production version of B34S containing added maximization capability using IMSL routines available on PC. B34S 8.46c Contains two-ways links between MATLAB and B34S. IMSL based commands for ARMA and minimization problems are in beta form in the MATRIX command. A minor bug resulting in no graphics after hardcopy was produced has been fixed. The BISPEC sentence has been modified to give a warning if analysis of small samples is attempted. B34S 8.42m Contains a number of small fixes. B34S 8.42h Contains a beta version of SOLVE and FORMULA facility. B34S 8.42g Fixes Two plot clear screen problem in version 8.42f. B34S 8.42f Contains improved missing data calculations involving real*8 variables in MATRIX command. B34S 8.42e Contains extensive new commands to do nonlinear estimation, using various IMSL routines. Capability includes maximizing a function (MAXF1), constrained maximization of a function (CMAXF1), solution of nonlinear equations (NLEQ) and generation of nonlinear starting values (NLSTART). Together with the previously released NLLSQ command, these new facilities allow solution of general nonlinear models. On Sun MAXF1, CMAXF1 and NLEQ should not be used. On RS/6000 CMAXF1 should not be used. On tigger (RS/6000) and icarus (Sun) MAXF2 and CMAXF2 will not be available due to UIC not having the IMSL library on these platforms. A number of improvements have been made to handle lag variables. B34S 8.42d Contains a major improvement to handle character*8 data with assingments of the form x='test'; Many of the matrix commands involving character data have been upgraded. Commands should be tested to see if the upgrade worked. An alternative color setup is supplied. Time and data capability in the matrix command have been expanded. A delay has of 5 centiseconds has been placed between file openings to allow running on 450 level machines. B34S 8.42b Version contains extensive Nonlinear Least Squares testing routines contained in STATTEST.MAC. These were developed by NIST/STRD. For further details see www.uic.edu/~hhstokes which contains the link. Many of the test jobs contain links to RATS386 and the RATS code to allow user to solve the same problem easily on RATS. B34S 8.32e Contains capability to print files from the Display Manager. The B34S editor now has, cut, copy and paste capability. This enhancement allows the Display Manager to be run without an external user editor such as kedit, keditw, notepad or other such editor. Under Windows, 95 and 98 the PRINT facility will print 80 col and 132 col files using the print manager that is part of the operating system. User output files can be edited and printed without leaving b34s. This version also contains a number of new features in the matrix command including olsq, bootv, booti, reset, kennan and a number of other commands. For further details print the matrix help command and inspect the examples in matrix.mac and the subroutines in matrix2.mac. B34S 8.22h Contains alternative random number generators in the matrix command. The beta of the NLLSQ command was released. B34S 8.22d Contains further enhancements to the MATRIX facility to allow estimation of general nonlinear models. The user supplies the model in the form of a MATRIX command PROGRAM. The model is solved using a modification of the UWHAUSS program, which is used in the BJEST command and the BTEST command. Since the model is specified in a user PROGRAM, model flexibility is limited only by the confines of the MATRIX language. The Help facility of the Display Manager has been expanded to allow loading of any member from a MACRO file into the help buffer. This will facilitate users being able to study running programs and subroutines as "help" documents. B34S 8.12d Released late 1990's Contains a preliminary version of the new MATRIX facility that adds a powerful matrix language to the b34s system. Full development of this facility will take a number of years. The current implementation adds substantial new capability and allows users to customize their versions of B34S by adding new commands. Unlike the rest of B34S which can be thought of as a programable statististical program, the MATRIX command adds powerful programming capability. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ B34S 7.52d Adds Index input for all Help Files, Example Files and Macro Files. Subsections added to Help file to aid users in reading targeted sections. The Bayes option of the regression command has been modified to remove the 100 observation limit. Accuracy improvements have been made in a number of places. The Excel interface now uses CSV format which uses commas. This way labels can be passed. Version 7.52d is the last version of b34s released before the MATRIX command was added. B34S 7.50k Adds further improvements to the graphics capability. B34S 7.50h Adds Symbol display capability. A number of improvements were made to the graphics capability. Additional examples have been added. B34S 7.50g Adds Example Capability. From the Tasks menu example files can be loaded into the program buffer. From the Help Menu, example files can be loaded into the help buffer. This will give users a complete example of a task that can be viewed and or run. B34S 7.50e Adds SETXSCALE and SETYSCALE to HRGRAPHICS command to allow a common scale to be used for multiple plots. This version has been built with the LF90 / 4.0b compiler. Improvements have been made to the graph menus. B34S 7.50d Uses the production version of the Interacter Library 4.10. Changes have been made in the menu system to support MVNLTEST models using the THIRDORDER and CBIS commands. A number of improvements have been made in the code in this section. B34S 7.50c Adds a number of new features that include: - A built in spread sheet data editor that allows users to inspect and modify current data in b34s. - A facility to allow data entry from a spread sheet where ranges of the variables are tested. - Labeled histogram and bar charts. - High/low histograms. - Bounds on linear plots. - 3 D scatter plots with optional connections to the X, Y or Z axis. - Radio checkboxes in menus. - Movement in menus with up and down key as well as tab and shift tab. - Graphics tester under screen savers. B34S 7.44c Adds moving ROBUST estimation. Forecasts can be saved in a DMF file. Improved error tracking in the Display Manager allows the user to detect errors without looking at the b34s.log. B34S 7.42g Improves the generalized comment feature and makes the development of user help documents easier. As an example of the improved generalized comment feature assume the line b34sexec rr /$ ibegin =10 $/ $ Note that since the string ibegin = 10 is inside /$ $/. It will be removed. B34S now no longer requires that /$ start in line 1. If, however, /$ is found in line one, the complete line is commented. If /$ is found not starting in col 1, then all text after this key is removed UNLESS a $/ is found. User help comments can be added to the B34S help file by placing them inside ===COMMENT1 === The command b34sexec help=comment1$ b34srun$ will read the user help. No other changes need be made. B34S 7.42d Adds Button run and exit from Menus. The Display Manager exit facility has been simplified. Most Menus have been improved. The working of the Menu Facility (MAKEMENU) has been refined. B34S 7.42c Adds the FREQ, LPMAX, EXPAND and ROBUST commands. B34S 7.36d Adds cycling and vertical menus. B34S 7.36b On PC contains a B34S editor, an improved quick Graphics interface that allows more graph types and numerious small changes. Data view capability has been added. B34S has been optimized to launch from the Windows 95 / NT explorer if the user sets up to recognize the .b34 extension. The DESCRIBE command allows calculation of summary measures such as the mean, median, Q1, Q3 etc. when the current dataset contains missing data. The GROUPMEAN sentence allows user to determine the maximum number of nonmissing observations for that group of series. The BIVARIATE sentence allows calculation of a number of tests on the means, variances and whether the listed series came from the same distribution. Other changes include: The MERGE command which allows sort merges. The TRANSPOSE command which will transpose the data matrix. ALLRUN has been made the default. ALLRUNOFF turns off ALLRUN. PGMCALL has been changed to allow passing of character data to SAS and Speakeasy. The SORT command problems with multi-level character/real problems have been fixed. ASCENDING and DESCENDING keywords have been added. The MAKEB34S sentence of the SCAINPUT command has been enhanced for character data. The FILE(' ') parameter can be passed to the DATA command in place of using OPTIONS and OPEN as long as the file exists. In the menu window BACKUP and RESTORE options allow saving the current workspace in a DMF file with member CHECKPOINT B34S 7.14e Changes to the LIST and REGRESSION commands to display dates in the lists or an IDVAR. These features are controlled by the IDVAR and IDDATE options on the DATA and READVBYV commands. The data parser has been improved in the way it will process character data. On Windows 95, hitting (esc) from the main Display Manager Window will toggle between text and graphics mode. This fixes problems found on some laptops when returning from a dynamic DOS link. Graphics mode should usually be used. The GMODE( ) option in the autoexec.b34 file can be modified to use the current Windows 95 settings for display resolution. B34S 7.14c Contains substantially improved error recovery from: - Space errors. - Minor errors. - Major errors. Upon finding an error, the Display Manager user gets a help message and is led to a menu that allows viewing of the log and out files. If space is the problem, a menu choice points to the space change menu. B34S 7.14b Is a major update that contains the REG command. The REG command estimates regression models for complete and panel data. Unlike other B34S commands, the model statement allows the user to specify the lags at run time as x{1} for lag1 of x and x{1 to 6} for lag 1 ... lag 6 of x. For panel runs, model coefficients can be saved in a B34S DMF file for further processing. For very very large datasets, the REGRESSION command, which does not load the data into memory, can be used. The REGRESSION command has a number of BLUS based regression specification tests which complement the features avaliable in REG command. The Display Manager in version 7.14 contains many changes. These include supporting tabbed menus, boxes in menus and checkboxes in menus. In addition there have been many changes to the interface in response to user requests. ************************************************************************ Short History of B34S Development ************************************************************************ Info on prior releases of B34S have been removed. The first production B34S became available in 1973 on MVS at UIC. B34S was developed from the B34T program that was in use at UC in the 60's and early 70's. The first B34S combined three B34T versions. Stokes (1991 & 1997) provides more detail on the early history of B34S development. The paper chistory.doc, distributed with B34S provides still further information. This paper was published in "Journal of Economic and Social Measurement" Volume 29, Number 1-3, 2004 pp: 205-260. B34S consists of a procedure driven section and a programming language (MATRIX). In this regard it is a bit like the SAS that has many procedures such as PROC MEAN and PROC PRINT but in addition has PROC IML that allows programming. The B34S MATRIX command is a much more extensive and econometric/time series oriented version of such as facility that is modeled after Speakeasy. B34S development was heavily influenced by Stan Cohen, William Teeters and the rest of the Speakeasy team in the 1970's and 1980's. B34S and Speakeasy were made to run as if they were one program. Interface commands are available in both systems to allow moving data objects back and forth. B34S was later modified to provide two way communicatiions with Matlab(R). The B34S MATRIX command, which was developed in the late 1990's and early 2000's, uses the Speakeasy portable checkpoint as the save file structure. The language of the B34S MATRIX command closely follows Speakeasy with several important differences. First B34S assumes implicit none when mixed mode expressions are encountered. For example assuming y=2.2 the expression x=10*y; in Speakeasy places 22. in x. In B34S this expression produces an error since 10 is an integer and x is a real*8 number and the B34S MATRIX command does not know what to do with x. For complex numbers Speakeasy attempts to save a complex number with 0.0 in the imaginary part as a real*8 number. This is not done with B34S. In Speakeasy commands that do not return answers across an = sign are called as olsq(y x z); In B34S the Fortran convention call olsq(y x z); is required. Both Speakeasy and B34S, in contrast to Matlab, allow argumenys to be changed. In B34S, built-in commands do not have to be loaded. However in contrast to Matlab, subroutines have to be explicitly loaded before they are used. This design requirement reduces the Matlab problem of a user by error calling the wrong m file and due to the arguments being the same not realizing the error before it was too late. In 1987 the B34S parser was developed which, while supporting the present control language, still allowed jobs to run with the column dependent control language. The B34S parser was in effect a program generator in that it took as an input modern control language and produced as an output the column dependent control language that actally ran the procedures. This design is used for all parts of B34S with the exception of graphics (HRGRAPHICS), MAKEMENU, SCAIO and MATRIX commands which call the parser directly. In 1991 the Lahey F77EM32 Fortran compiler allowed development of a PC version of B34S for DOS. The first menu and graphics features were added using the Graphoria and Spindruff Libraries. The Display Manager was developed and enhanced to allow user menus and other features. A major design objective was to keep all applications menus or forms outside the program. By design they are generated at runtime from MAKEMENU commands, rather than being hardwired into the program. B34S version 7.xx and beyond use the Interacter Library for Graphics and Menus using F77EM32. The Lahey LF90 compiler allowed a full Windows 2K/XP version to be developed that contained a number of routines from the IMSL Library. The LF90 compiler was replaced in the late 90's by the LF95 compiler which was released on both Windows and Linux. In the opinion of the developer, version 7.x of this compiler this is far and away the best Fortran compiler available. LF95 runs the same on Linux and Windows. On mainframes the MVS version gave way to a CMS and later to an RS/6000 and Sun version. In late 1999, the Display Manager was added to these two unix versions. Throughout its history the B34S design has focused on being accurate and portable. As a result the Fortran code for B34S for Windows can run on the various unix versions with little or no code changes. A discussion of what each source file does is presented in the B34SPROG section of the help manual. For a full discusion of B34S history as well as the commands, see Stokes (1997) and the file chistory.pdf which can be read in Acrobat(r) under the B34S Display Manager. B34S development has been helped by a long list of colleagues and excellent graduate students plus the patience of my family. In the late 90's Jin Man Lee helped with the development of the Linux version and in testing and improving the MATRIX command. William Stokes has helped with web page development and made many important suggestions on the interface, all of which I have tried to implement. Throughout the development process the goal has been to facilitate movement of data between the excellent software systems available such as SAS(r), Speakeasy(r), Matlab(r), Limdep(r), SCA(r), RATS(r) and R(r). For further incformation see B34SPROG help file. For info on PC and unix setups run job b34sexec help=install$ b34srun$