*****************************************************************
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 there is a requirement that the user have the IMSL
library version 4 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 implemented as an option in
BLAS routines DDOT, DASUM, DAXPY and DSUM and Real*16 and Complex*32
data types have been added to the Matrix command as of 2003.
Execuitables:
Windows 95/98/NT/2000/XP - b34slf95.exe
Intel Linux - b34sx
RS/6000 - b34sx
SUN - b34sx
Versions for DOS, Windows 3.1, MVS and CMS have been frozen and are not
supported.
While B34S currently runs on Windows 95, 98, ME. It is strongly
recommended that users migrate to Windows 2000 or XP. 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 simple 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 b34slm.exe for what version you have
***********************************************************************
b34s 8.10Z
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 ahs
recently been trademarked. The new mars code, currently in
R(r), was developed independently of the 1991 Friedman
code and has been released under rthe GPL 2 license. It has
been constantly updated. The B34S version has been improved
over the fall 2005 R version. The currect release is still
experimental.
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 fort 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.
Substantial imporvements 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 effcet to 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 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 that 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 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.
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 any where. 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.
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.
AUTOBY 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 arte 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.
As of 1 May 2002
MARS and PISPLINE capability is under Matrix.
Please report any problems.
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 As of 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
As of 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 has
been added.
IMSL version 10 routines have been made the default random
number generators.
In development
MARS and PISPLINE capability to MATRIX command in addition
to batch use. (Not ready in early testing releases).
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 The 1 December 2001 version of the program 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 version 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 GRAPHP command released. GRAPHP allows custom
graphics programming. B34S graphics system updated.
1 August 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
DQDAG Integrate a function using Gauss-Kronrod rules
DQDNG Integrate a smooth function using a nonadaptive rule
DQDAGI Integrate a function over infinite/semi-infinite
interval.
DQDAGP Integrate a function with singularity points given
DQDAGS Integrate a function with end point singularities
DQAND Multiple integration of a function
Basic Spline Commands
CSPLINEFIT Fit a 1 D Cubic Spline using alternative models
CSPLINE Calculate a 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 know 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 additon 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.
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 Improves parsing of structured index variables
so that in a number of cases less ( ) can be used.
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 b34s has been 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 if there is demand.
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.
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.
Except for the SE's, the commands MAXF1, MAXF2, CMAXF1
and CMAXF2 appear to find the correct minimum points.
The SE's of these commands should NOT be used.
B34S now comes in a number of versions. All old
INI files will have to be undated.
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 allows solution of general nonlinear
models.
On Sun MAXF1, CMAXF1 and NLEQ should not be used.
On RS/6000 CMAXF1 should not be used.
Commands MAXF2 and CMAXF2, which use the new IMSL
library, are planned but have not been implemented due
to lack of the IMSL library. It is hoped that this delay
will be short.
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';
A great 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 contains
links to RATS386.
B34S 8.32e Contains the capability to print files from the
Display Manager. The B34S editor now has, cut,
copy and paste capability. This enhancement allows
the B34S Display Manager to be run without an
external user editor such as kedit, keditw, notepad
of 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 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 observatioon limit. Accuracy improvements
have been made in a number of places. The Excel
interface now uses CVS 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 missig 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.
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 is 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
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$