Sun Apr 18 12:16:05 1993  Ian Searle  (ian@quixote)

	* Release version 0.75 beta

	* rlib/ode23.r: Mods to make ode23() operate on column solutions,
	and independent of y0 orientation.

	* toolbox/ode78.r: New function (from netlib).

Sat Apr 17 09:27:52 1993  Ian Searle  (ian@quixote)

	* toolbox/poly.r: Updated all() usage.

	* rlab.y: Moved function assign production to statement level so
	that trailing newline, or semicolon can be left out.

	* test: Incorporated getline() tests into test.

Thu Apr 15 19:46:57 1993  Ian Searle  (ian@quixote)

	* getline.c: Overhauled getline_scanner(), collect_decinal(), and
	collect_string() so that getline() will handle EOF.

Wed Apr 14 20:35:08 1993  Ian Searle  (ian@quixote)

	* test: Added a few more simple function tests.

Mon Apr 12 18:58:01 1993  Ian Searle  (ian@quixote)

	* util.c (convert_to_matrix): Removed call to remove_tmp_detroy(),
	to fix chol(1+1i) core dump.

Sun Apr 11 10:21:28 1993  Ian Searle  (ian@quixote)

	* rlib/cum[sum|prod].r: Re-write per Brad's suggestion (more
	efficient). 

	* init.c: Ordered bltin table for faster lookup.

	* util.[ch] (convert_all_to_matrix): New function.

	* op_matrix.c (matrix_vector_sub): Allow s[1] to work for a scalar
	string. 

	* bltin.c (Size, Length): Change the way we report on strings.

	* code.c (list_member): Add n, nr, nc as string attributes.

Sat Apr 10 10:46:00 1993  Ian Searle  (ian@quixote)

	* config.*: Fixed up obsolete comments around #include <float.h>

	* fi_1.c (matrix_inverse_?): Add call to matrix_Rcond() to check
	for ill-conditioned input.

Sun Apr  4 15:02:21 1993  Ian Searle  (ian@quixote)

	* fi_1.c (matrix_is_symmetric): Removed.

Sat Apr  3 00:05:57 1993  Ian Searle  (ian@quixote)

	* r_string.c (string_Read): Handle zero length string, and newline
	correctly. 

	* code.c (assign): Fix bungle in assign symbol table.

	* Copied bandred from testmatrices to toolbox.

	* Added contrib directory.

	* print.c (Close): Change test from `== 0' to `!= 1'.

	* test: Added tests for some of the more basic builtin functions
	(abs, max, sum, floor,...).

	* matrix_op1.c (matrix_Abs): Add #define rabs...

	* util.c (get_num_scalar_val): Put break where appropriate.

Fri Apr  2 20:50:05 1993  Ian Searle  (ian@quixote)

	* Many changes to get **return_ptr correct.

	* many small changes to get gcc -Wall  to shut up.

	* rfile.c (print_rfiles): Add extra space, and fflush() to force
	popen'ed ptr to behave correctly.

	* fi_1.c, matrix.c: Put #define rabs in.

	* util.c (btree_get_node_names): return a row matrix.

	* rlab.y, scan.l, symbol.[ch], util.c: Added $$ as globla symbol
	table constant.

Thu Apr  1 18:44:55 1993  Ian Searle  (ian@quixote)

	* Changed many error_1 messages, `wrong #' to Wrong number'.

	* main.c (warning_?): Fixed fprintf FILE ptr arg.

Wed Mar 31 19:24:13 1993  Ian Searle  (ian@quixote)

	* bltin.c (Length): Make compatible (partly) with Matlab.

	* alloca.c: Add #ifndef __GNUC__ to elminate supplied alloca if
	gcc is being used.

	* config/config.NeXT: Uncomment HAVE_PROTOTYPES, remove
	declarations at end of file.

Tue Mar 30 23:26:35 1993  Ian Searle  (ian@quixote)

	* code.c (list_el_create): Allow U_FUNCTION as valid type in
	switch. 

Sun Mar 28 11:24:02 1993  Ian Searle  (ian@quixote)

	* matrix_op1.c (matrix_El_Div): use matrix_screen_string().

	* bltin.c (CD): New function.

	* op_matrix.c (matrix_create): fix [2i], initialize real part.

	* toolbox/redit.r: New rfile.

	* scan.l: Take lineno++ out of # comment rule.

Sat Mar 27 09:27:01 1993  Ian Searle  (ian@quixote)

	* Now release v0.70.

	* op_matrix.c (matrix_stack): Fix type checking error in [1+2i;2]
	operation. 

Fri Mar 26 23:00:34 1993  Ian Searle  (ian@quixote)

	* Version 0.70 beta released.

	* scan.l: Added `#' as a commnet, now we can `#!/bin/rlab' our
	scripts. 

Wed Mar 24 00:02:06 1993  Ian Searle  (ian@quixote)

	* code.c (list_member): Make attribute look-up more consistent. 

	* bltin.c (Length): New function.

	* math_2.c (Sort): Make sort() a vector function.

Tue Mar 23 21:02:01 1993  Ian Searle  (ian@quixote)

	* matrix_op1.c (matrix_Any, matrix_All): Change to vector
	functions. 

	* util.c (get_datum_value): Fixed bug in extracting from 1-by-1.

	* matrix_op1.c: Most of the matrix relational functions. Added
	ability to recognize 1-by-1 matrices, and perform correct check.

Mon Mar 22 10:55:43 1993  Ian Searle  (ian@quixote)

	* rlab.y: Added production to opt_arg_list:

          | ',' error              { $$.count = 0; $$.off = 0; }

          The purpose of this rule is to prevent `sqrt ( , 2 )' from being
	  a valid expression.

Sun Mar 21 23:02:59 1993  Ian Searle  (ian@quixote)

	* matrix_op2.c (matrix_Rdivide): Special case 1x1.

Sat Mar 20 14:36:19 1993  Ian Searle  (ian@quixote)

	* scan.l, rlab.y, code.[ch], dissasem.c, matrix_op1.[ch]: Added
	non-conjugate matrix transpose (.')

	* op.c (ent_ent_el_ldivide): Fixed typo in argument order.

	* op.c (rdivide, ldivide): Force all entities to be matrices, let
	low-level function determine appropriatness of dimensions.

Wed Mar 17 19:28:13 1993  Ian Searle  (ian@quixote)

	* btree.c (btree_Print): Change empty list printf().

Tue Mar 16 00:18:05 1993  Ian Searle  (ian@quixote)

	* matrix_op1.c (matrix_scalar_div2): Fix so 2./(1:3) works.

	* matrix_op1.c: Changes to handle [A] binop [3] conditions.

Mon Mar 15 20:56:18 1993  Ian Searle  (ian@quixote)

	* util.c (get_datum_value): Fix it so the function returns the
	value from a 1x1 matrix.

	* matrix_op2.[ch] (max, min): Modified max(), min() functions to
	behave more like MATLAB counterparts.

	* bltin.c (Reshape): mods to get rid of convert_to_scalar calls.

	* bltin.c (Scalar_cast, Matrix_cast): modified logix to get rid of
	convert_to_scalar().

	* print.c (SPrintf): Make sprintf() create the 1st argument if it
	is UNDEFINED.

	* math_1.c: Added

	  if (targ.u.ent != arg.u.ent)
	    remove_tmp_destroy (targ.u.ent);
	  return;

	  To all clean up temporary Datums when using convert_to_scalar.


Sun Mar 14 10:10:04 1993  Ian Searle  (ian@quixote)

	* scalar_op1.[ch], matrix_op1.[ch], complex.[ch], trig.c: add
	complex arc-trig functions.

	* scalar_op1.[ch], complex.[ch], trig.c, matrix_op1.[ch]: Add
	complex tangent.

	* rlab.y, code.[ch], dissamsem.c: Add `[:]' operation.

Sat Mar 13 12:34:46 1993  Ian Searle  (ian@quixote)

	* math_3.c (FFT): Add matrix fft capability.

Fri Mar 12 19:05:19 1993  Ian Searle  (ian@quixote)

	* op_matrix.c (matrix_transpose): Fix scalar complex transpose.

	* code.c (forcode): Add complex loop capability.

	* math_2.c (Chol, Det): Make them accept scalars as arguments.

	* math_2.c (Balance, Rcond): Make them accept scalars as arguments.

	* matrix.c (matrix_Print*): Add format for empty matrices.

Thu Mar 11 20:46:11 1993  Ian Searle  (ian@quixote)

	* math_1.c (Lu): Mods to handle scalar args.

	* eye.r: Mods to deal with new zeros().

	* bltin.c (Zero): Mods to allow it too handle combinations of
	matrices, and scalars.

	* rlab.y (yyparse): Small twiddle to newline production.

Tue Mar  9 19:49:06 1993  Ian Searle  (ian@quixote)

	* code.[ch], rlab.y, dissasem.c: Add OP_EMPTY_MATRIX_CREATE.

	* matrix.c (extraction functions): Small changes to extraction
	functions to handle NULL index matrices.

	* matrix_op2.c (matrix_Find): Fix logic around realloc() to avoid
	calling realloc with a zero argument.

Mon Mar  8 19:52:17 1993  Ian Searle  (ian@quixote)

	* op_matrix.c (matrix_sub): Make double indexing error checking
	behave like single indexing error-checking.

	* code.c (function_call): Convert CONSTANT args to scalars. 

	* matrix_op2.c (matrix_Find): Check for empty matrix when
	realloc'ing. 

	* matrix_op2.c (Prod): Fix complex products.

Sat Mar  6 11:31:50 1993  Ian Searle  (ian@quixote)

	* matrix.c (matrix_Write): Increased number of significant digits
	for output.

	* fi_[12].c: Remove the dependencies on f2c.h.

Fri Mar  5 17:16:41 1993  Ian Searle  (ian@quixote)

	* bltin.c (Show): Check for NULL names.

Sun Feb 28 10:25:53 1993  Ian Searle  (ian@quixote)

	* code.c (list_member): Made SCALAR attributes cosistent with
	MATRIX attributes.

	* matrix_op2.c (matrix_scalar_Pow): New function.

	* version.h: Changed version string. I am makeing the switch to
	BETA status.

	* matrix_op2.c (matrix_Max/matrix_Min): Small changes to
	algorithms. 

Thu Feb 25 20:26:41 1993  Ian Searle  (ian@quixote)

	* matrix.[ch]: matrix_ExtractElement, matrix_ExtractColumn,
	matrix_ExtractRow: new functions.

	* op_matrix.c (matrix_sub): Modify function loginc to improve
	speed. 

Tue Feb 23 21:11:34 1993  Ian Searle  (ian@quixote)

	* Incorporated config.NeXT, and NeXT patches.

Mon Feb 22 20:10:56 1993  Ian Searle  (ian@quixote)

	* math_2.c (Sort): Finished adding sort() features, complex,
	scalars, etc...

Sun Feb 21 15:46:49 1993  Ian Searle  (ian@quixote)

	* main.c, code.c, rlab.h, fi_[12].c: Changed way we catch SIGINT.

	* math_3.c, matrix_op2.[ch]: Added builtin versions of sum(),
	prod().

Tue Feb 16 21:21:59 1993  Ian Searle  (ian@quixote)

	* scalar.c (scalar_Create): Mods for small speedup.

	* list_node.[ch] (listNode_IsNodeAttached): Replace function with
	a macro in an attempt to speed things up.

Mon Feb 15 20:55:30 1993  Ian Searle  (ian@quixote)

	* test: Added matrix multiply tests.

	* matrix_op1.c (matrix_Mul??): Mods to handle A or B 1x1.

	* mm.c (ccmpy): Modified for a little more speed (courtesy Fook
	Fah). 

Sat Feb 13 21:00:48 1993  Ian Searle  (ian@quixote)

	* mm.c: New file.

	* matrix_op1.c (matrix_Mul??): Use contributed C matrix multiply
	code (faster).

Fri Feb 12 23:26:11 1993  Ian Searle  (ian@quixote)

	* code.c (list_member): Add member refs for CONSTANTs.

	* code.c (list_member): Add `.n' as scalar member.

Tue Feb  9 17:56:25 1993  Ian Searle  (ian@quixote)

	* math_2.c (MaxI/MinI): maxi()/mini() now return a scalar index
	value. 

Mon Feb  8 18:34:55 1993  Ian Searle  (ian@quixote)

	* code.c (forcode): Yet another change. Now for() will handle
	CONSTANTs were there should be vectors, without barfing.

	* math_2.c (Sort): sort() now returns a list of the sorted vector,
	and the sorted indices.

	* code.c (list_create): Remove erroneous call to
	convert_to_scalar().

	* matrix.c (matrix_assign_vector): Add calls to matrix_Extend() to
	handle empty matrix RHS.

	* code.c (forcode): Now for-loops will handle user changing loop
	vector in the middle of loop execution.

Sun Feb  7 22:32:58 1993  Ian Searle  (ian@quixote)

	* math_1.c (Inv): Allow scalars as well as matrices.

	* code.c (forcode): Fixed STUPID bug in loop-vector destroy logic
	(there was none).

Sat Feb  6 11:07:32 1993  Ian Searle  (ian@quixote)

	* matrix_op2.c (matrix_[LR]divide): Add test to use solve_eq()
	when A is square.

	* matrix.c (matrix_CreateFill): Add empty vector creation
	capability. 

	* code.c (forcode): Add no-execute capability/test.

Fri Feb  5 19:03:45 1993  Ian Searle  (ian@quixote)

	* rlab.y, scan.l: Made rfile, and help commands more versatile.

	* math_2.c (MinI): Fix subscripts on m.

	* matrix_op2.c (matrix_Max): Fixed complex max(). maxc.r = 0.0,
	NOT maxc.r = -DBL_MAX. Same for matrix_Min().

Tue Feb  2 21:41:37 1993  Ian Searle  (ian@quixote)

	* matrix.c (matrix_CreateFill): Change d = ... use abs(d3).

Mon Feb  1 23:21:31 1993  Ian Searle  (ian@quixote)

	* matrix_op2.c (matrix_Mod): Added complex matrices.

	* math_1.c (Mod): Better type checking. Handles complex args now.

	* complex.[ch] (complex_Mod): new function.

Sun Jan 31 13:20:11 1993  Ian Searle  (ian@quixote)

	* matrix_op2.c (matrix_Mod): Add some error/type checking.

Fri Jan 29 23:48:42 1993  Ian Searle  (ian@quixote)

	* Makefile: Still trying to make friendlier.

Thu Jan 28 17:31:22 1993  Ian Searle  (ian@quixote)

	* matrix_op2.[ch] (matrix_Mod): New function.

	* matrix.c (matrix_print_complex): Fix sign in sprintf().

	* code.c (assign): Change "-1" to "-" for strncmp.

Wed Jan 27 22:27:02 1993  Ian Searle  (ian@quixote)

	* bltin.c (Size): try returning size = 1x1 for SCALAR.

Tue Jan 26 20:03:52 1993  Ian Searle  (ian@quixote)

	* main.c, rlab.y: Mods to error printing. Leave filename, line
	number off when reading from stdin.

Mon Jan 25 22:40:06 1993  Ian Searle  (ian@quixote)

	* version.h: New file.

	* bltin.c, matrix_op2.[ch]: Moved matrix_Find() to matrix_op2.c.

	* getline.c, print.c, scan.h: Moved scancode[][ into getline.c

Fri Jan 22 00:10:52 1993  Ian Searle  (ian@quixote)

	* rlab.y: Starting on if statement syntax rework.

	* bltin.c (Find): New function.

	* main.c (warning_?): Check (s == 0).

Sun Jan 17 12:37:11 1993  Ian Searle  (ian@quixote)

	* bltin.c (All): Make scalar args allowable.

	* bltin.c (Any): Make scalar args allowable.

	* scan.l (new_file): Made minor change so tha ctrl-d (EOF) now
	stops execution.

Fri Jan 15 19:55:57 1993  Ian Searle  (ian@quixote)

	* dissasem.c: Changed output formats.

	* main.c, rlab.y: Add line_nos.

Thu Jan 14 18:19:26 1993  Ian Searle  (ian@quixote)

	* code.c (function_default_ret): A few more touches on argument
	cleaning. 

Wed Jan 13 19:27:36 1993  Ian Searle  (ian@quixote)

	* code.c (ret_from_func): Finally got garbage-collection for
	function args right (I hope :-).

Sun Jan 10 15:14:12 1993  Ian Searle  (ian@quixote)

	* code.c (list_member): Add "type" to string elements.

Fri Jan  8 22:09:53 1993  Ian Searle  (ian@quixote)

	* scan.l (new_file): Twiddle with lineno to get it right AFTER a
	load(), or rfile command.

Wed Jan  6 21:59:50 1993  Ian Searle  (ian@quixote)

	* code.c, rlab.y (list_assign): Fix it so that `a.[i] = a'. Caused
	a chang in generated op-codes in rlab.y.

Tue Jan  5 22:50:47 1993  Ian Searle  (ian@quixote)

	* random.c (Rand): Fixed rand(m,n).

Sat Jan  2 18:23:59 1993  Ian Searle  (ian@quixote)

	* rlab.y: mods to STRING ptr handling.

	* main.c: Add ip option. Use cat(1) as pager if -p is specified. 

Fri Jan  1 11:49:53 1993  Ian Searle  (ian@quixote)

	* getline.c (getline_scanner): Added quoted string scanning
	capability. 

	* print.c (get_file_ds): Use mode argument in popen() call.

Thu Dec 31 16:20:11 1992  Ian Searle  (ian@quixote)

	* getline.c: New File

	* scan.h: New File

Wed Dec 30 14:42:06 1992  Ian Searle  (ian@quixote)

	* matrix_op2.[ch]: Changed matrix_ReadColumn() to
	matrix_ReadGeneric(), added matrix_WriteGeneric().

	* bltin.c: Changed ReadV() to ReadM(). Added WriteM().

Tue Dec 29 09:30:53 1992  Ian Searle  (ian@quixote)

	* rfile.c: set pfile = 0 after successful pclose().

	* code.c (print): Set pfile = 0 after succesful pclose().

Wed Dec 23 16:56:11 1992  Ian Searle  (ian@quixote)

	* print.c (rfile_Destroy): Fixed braces on outside if.

Sat Dec 19 21:00:28 1992  Ian Searle  (ian@quixote)

	* print.c (do_printf): Changed error messages, and added another
	argcnt check.

Sun Dec 13 14:09:37 1992  Ian Searle  (ian@quixote)

	* matrix.c (matrix_Read): Fix complex read indexing
	(NWRITE+start-1). 

	* matrix.c (matrix_write_real): Fix `columns X through Y' output. 

	* math_2.c (Eig): Add calls to matrix_SetName().

	* lots!: Changed copy_string_ptr() to cpstr().

Thu Dec 10 19:23:42 1992  Ian Searle  (ian@quixote)

	* code.c (print): Print to stdout if popen() fails.

	* bltin.c (Read): close file after reading

	* matrix.c (matrix_Read): Fixe for-test while scanf'ing.

Sun Dec  6 13:00:50 1992  Ian Searle  (ian@quixote)

	* main.c (pipecatch): New function.

	* rfile.c: Make FILE *pfile static so we can pclose() if SIGPIPE
	occured. 

	* code.c (print): Use popen() for matrix output.

	* main.c (run): Catch SIGPIPE.

Fri Dec  4 17:27:08 1992  Ian Searle  (ian@quixote)

	* rfile.c (print_rfiles): Test for nfile == 0.

Thu Dec  3 19:57:50 1992  Ian Searle  (ian@quixote)

	* main.c (main): Add -l option.

	* main.c: Remove RLAB_LS_CMD.

Wed Dec  2 18:19:27 1992  Ian Searle  (ian@quixote)

	* Put power-op higher in precedence than unary-minus

Mon Nov 30 20:11:14 1992  Ian Searle  (ian@quixote)

	* math_2.c (Sort): Added string sort.

	* rfile.c: Finish up, still crude, but functionality is there.

Sun Nov 29 22:08:09 1992  Ian Searle  (ian@quixote)

	* rfiile.c (help): Moved help functionality to rfile.c

Sat Nov 28 21:10:43 1992  Ian Searle  (ian@quixote)

	* rlab.y: Move HELP, and RFILE productions up to program:

	* rfile.c: New file.

Mon Nov 23 23:16:39 1992  Ian Searle  (ian@quixote)

	* rlab.y: Clean-ups, comments.

Sun Nov 22 10:26:00 1992  Ian Searle  (ian@quixote)

	* Released v0.30.

	* Fixed goof in rlab.y ( parens around vec_expr ).

	* mathl.c: New file

	* rlab.y: Added '(' vec_expr ')' to vec_expr: rule.

	* mem.c (xmalloc, xrealloc): New functions. Now (hopefully) people
	can use most any compiler, and the provided alloca.c, and not get
	unresolved externals.

	* matrix.c (matrix_print_real): Use sprintf() now.

	* math_1.c (Round) New function, uses math library rint().

Sat Nov 21 22:13:34 1992  Ian Searle  (ian@quixote)

	* bltin.c (tic, toc): New functions.

	* scan.l, rlab.y: Trying to get error handling right so that the
	extra newline isn't needed.

Fri Nov 20 19:21:05 1992  Ian Searle  (ian@quixote)

	* fi_1.c (matrix_Norm): Fix 2-norm mistake.

	* bltin.c (Inf): New function.

Thu Nov 19 20:11:32 1992  Ian Searle  (ian@quixote)

	* scan.l (new_file): Fixed lineno bug, wasn't setting correct
	value in lnstack[].

	* config.h: Added choices for CONST, and BIG_ENDIAN,
	LITTLE_ENDIAN. 

	* bltin.c (Nan): New function.

Wed Nov 18 20:51:26 1992  Ian Searle  (ian@quixote)

	* config.h: Added option to use errno checking, or matherr().

	* bltin.c (matherr): New function.

Mon Nov 16 19:11:54 1992  Ian Searle  (ian@quixote)

	* bltin.c, main.c, scalar.c, matrix.c: Changed format() operation.
	Now format() works on REAL and COMPLEX.

	* main.c (init_misc): popen() FILE *paged_output, for paged matrix
	output. 

	* main.c: Removed inc_jmp_buff... and dec_jmp.... Replaced with
	jmp1, jmp2. Two simple variables should do the job.

	* scan.l (new_file): bptr = 0, if arg = 0.

Sun Nov 15 12:08:42 1992  Ian Searle  (ian@quixote)

	* matrix_*.c, bltin.c: Add calls to matrix_screen_string().

	* matrix.h (matrix_screen_string): Check for MTYPE == STRING, if
	TRUE, issue warning and longjmp().

Sat Nov 14 14:05:58 1992  Ian Searle  (ian@quixote)

	* sscan.l (new_file): Another overhaul, maybe someday I'll get it
	right.

	* rlab.y: Removed YYERROR usage, and replaced with longjmp().

Fri Nov 13 20:54:28 1992  Ian Searle  (ian@quixote)

	* main.c: Make jmp_buff an array. Change setjmp() call when
	loopong through filename arguments. If we run out of jmp_buff[]
	array, then STOP program.

Wed Nov 11 23:11:30 1992  Ian Searle  (ian@quixote)

	* matrix_op1.c (matrix_MultiplyCC): Call BLAS-3 ZGEMM().

Tue Nov 10 19:06:47 1992  Ian Searle  (ian@quixote)

	* matrix.c (matrix_CreateCLoad): Fixed bad matrix ref.

	* matrix.c (matrix_read_string): Completed.

Mon Nov  9 20:00:24 1992  Ian Searle  (ian@quixote)

	* !!! ADDITIONS TO LAPACK-C LIBRARY !!!

	* matrix_op2.c (matrix_Ldivide): Checks appropriate dimensions and
	calls matrix_LS.

	* fi_2.c (matrix_LS): New functions.

	* fi_1.c, fi_2.c: New files.

	* fi.c (matrix_Norm): The 2-norm is the ration of 1st/last
	singular values.

Sun Nov  8 10:39:10 1992  Ian Searle  (ian@quixote)

	* op_matrix.c (matrix_*_assign): Add call to matrix_gt_zero() to
	check indices for validity.

	* matrix_op2.c (matrix_gt_zero): New function

	* op_matrix.c (matrix_*_assign): Create LHS after looking at RHS
	type. 

	* op_append.c (matrix_string_app): Fix indexing bug that went
	passed end of array.

	* random.c (SRand): Add "clock" arg to enable setting seed from
	the clock.

Mon Nov  2 18:54:49 1992  Ian Searle  (ian@quixote)

	* matrix_op1.c (Sqrt, Log,...): Check for argument elements less
	than 0.

	* scalar_op1.c, matrix_op1.c (Log10): Added complex log10()
	capability. 

	* op_matrix.c (matrix_sub): Fix reduction of matrix string to
	scalar string.

	* matrix.c (matrix_print_string): Check for NULL ptrs before using
	strlen(). 

	* matrix.c (matrix_CreateS): Init string ptrs to 0 (for now).

	* util.c (print_What): Set unused matrix string ptrs to NULL
	string. 

Sun Nov  1 15:54:36 1992  Ian Searle  (ian@quixote)

	* matrix.[ch], op_append.c, op_matrix.c: Started in on adding
	matrices that contain STRING elements.

Sat Oct 31 11:34:13 1992  Ian Searle  (ian@quixote)

	* code.c, (ret_from_function): Do not try and clean argument
	variables while popping them off the stack.

	* bltin.c, (Name): Force name() to return "CONSTANT" when the
	entity name is "-1" (an constant in an argument list").

	* math_1.c, fi.c: Improved arg error checking, and added 2-norm
	option to Norm.

Fri Oct 30 17:43:39 1992  Ian Searle  (ian@quixote)

	* op_matrix.c: (matrix_vector_sub): Allow indexing of a SCALAR
	(only a single index).

	* op.c, util.c: Make all operations return a SCALAR, if the result
	is a 1x1 MATRIX.

	* scan.l: Call signal (SIG_IGN) in yy_input() to avoid causing a
	flex error.

Thu Oct 29 19:58:05 1992  Ian Searle  (ian@quixote)

	* rlab.y, scan.l: Add prompt variable to change the prompt for IF,
	FOR, WHILE, and functions.

	* code.c (assign): Finished fixing garbage collection details. In
	this case I was copying SCALARS twice. Now v0.30 is as good as
	0.21. 

Wed Oct 28 21:50:42 1992  Ian Searle  (ian@quixote)

	* op_matrix.c (matrix_assign) Clean rhs value.

	* util.c (convert_to_matrix): Clean original SCALAR.

	* op_append.c (vector_create): Add garbage-collection.

	* scan.l (new_file): Simplified scheme for input stream switching.

Mon Oct 26 19:51:37 1992  Ian Searle  (ian@quixote)

	* matrix.c (matrix_ExtractVector): Made more MATLAB like, by
	looking at type of parent matrix when deciding what dimensions of
	extracted vector should be.

	* relation.c: All functions, made SCALAR rel-op MATRIX and
	vice-versa work.

	* main.c (intcatch): New function, catch user interrupts.

Sat Oct 24 08:29:22 1992  Ian Searle  (ian@quixote)

	* scan.l: Added trailing context rules for: 3./A conditions.

	* code.c (load_local_var): Make local vars UNDEFINED.

Fri Oct 23 18:08:03 1992  Ian Searle  (ian@quixote)

	* Started Adding el-ops to rlab.y, code.c...

	* Finished eradicating VECTORS

Tue Oct 20 23:47:39 1992  Ian Searle  (ian@quixote)

	* Embarking on experiment... remove VECTORS from the language as a
	separate data type. Replace ';' with ',' as arg separators.

Thu Oct 15 18:31:51 1992  Ian Searle  (ian@quixote)

	* code.c (find_lineno, find_filename): Remove function arg.

Wed Oct 14 19:34:10 1992  Ian Searle  (ian@quixote)

	* rlab.y, code.c: Add loff (100) to line numbers to avoid op-code
	collisions when searching backwards through the codes.

Mon Oct 12 20:35:55 1992  Ian Searle  (ian@quixote)

	* code.c (function_define): Fixe 1st line number assign to test
	for line #0.

Fri Oct  9 23:38:58 1992  Ian Searle  (ian@quixote)

	* bltin.c (Clear): New function.

	* Reverted back to UNDEFINED variables.

Thu Oct  8 19:28:47 1992  Ian Searle  (ian@quixote)

	* code.c (list_create): Make list creation use numerical index
	values. 

	* trig.c, vector_op2.[ch], matrix_op2.[ch]: Make atan2() take
	vectors and matrices as args.

	* function.c (function_Destroy): Check list existence before
	destroy. 

Wed Oct  7 18:59:12 1992  Ian Searle  (ian@quixote)

	* Start incorporating some of the simpler, more common op-code
	functions directly into the switch.

	* rlab.[yh], code.[ch], scan.l: Have finished most of the changes
	mention below. Additionally have made y = function()... workable.

Mon Oct  5 00:58:30 1992  Ian Searle  (ian@quixote)

	* rlab.[yh], code.[ch], function.[ch]: Extensive changes to allow
	copying a user-function. Some of the changes: 1) adding two new
	op-codes, OP_PUSH_ARG, OP_PUSH_LOCAL, which push local and arg
	vars without explicit ptr reference 2) the new op-codes caused
	changes to function_call(), function_ret(), ret_from_function(),
	push_var, bltin(), and some others. The new op-codes also caused
	some changes in the parser actions.

Sat Oct  3 20:28:15 1992  Ian Searle  (ian@quixote)

	* function.[ch], code.c: Allow user-functions to be assigned,
	copied. 

	* scalar.c, vector.c, matrix.c: *_Print() functions changed to
	print COMPLEX prettier.

Wed Sep 30 07:16:43 1992  Ian Searle  (ian@quixote)

	* rlab.y, scan.l: Parser is re-enbtrant now. (%pure_parser)

Mon Sep 28 19:27:29 1992  Ian Searle  (ian@quixote)

	* vector.c (vector_copy_complex): Fixed stupid indexing bugs.

	* math_3.c (FFT): Don't use rfftf() anymore, scale the result by
	1/N.

	* op.c, vector_op1.c, matrix_op2.c (power related functions):
	Added scalar^matrix, matrix^scalar, vector^vector.

	* vector.c, matrix.c (Create functions): Removed ASSERT(), and
	replaced with if-test for dimensions < 0.

	* random.c (Rand): Fix improper ref to arg.u.val, should be
	arg.u.ent. 

Sun Sep 27 20:44:54 1992  Ian Searle  (ian@quixote)

	* op_matrix.c (matrix_transpose): Allow transpose of a vector.

	* matrix_op1.c (matrix_Transpose): Make complex transpose,
	complex-conjugate transpose.

	* random.c (SRand): error() when srand() os called with zero
	valued arg.

	* matrix_comp.c (matrix_Eig_NEP): Malloc for vl now, even though
	we don't uses it.

	* scan.l: Made 1e6i work.

	* random.c (Srand): Fixed bozo mistakes in inner switch.

	* matrix_op1.c (matrix_Log10): Fixed assignment.

	* rlab.y, code.[ch]: Modified list creation syntax, and behavior.

Thu Sep 24 21:52:01 1992  Ian Searle  (ian@quixote)

	* code.c (list_create): Write variable names to objects, as well
	as ListNodes.

	* scalar.c, vector.c, matrix.c string.c btree.c (Write): Fixed
	write functions so that the default name is NOT written on the
	entity. 

	* math_1.c (Exp): Fixed exp() to take complex constant.

Wed Sep 23 19:08:13 1992  Ian Searle  (ian@quixote)

	* matrix.c (matrix_Print): Played with print format.

	* matrix_comp.c (NEP): Finally added calls to ZGEEV.

	* math_2.c (Max, Min): Fixed stupid bug in returning max and min
	values of a scalar.

	* config.rs6000: New header file.

	* math_3.c (IFFT): New function.

Tue Sep 22 23:08:14 1992  Ian Searle  (ian@quixote)

	* op.c: Added tests for STRINGS in +, -, *, / functions, must
	finish rest.

	* util.c (convert_to_scalar): Added more error checking.

	* scan.l: Start counting interactive lines at 0.

	* main.c (error_?): Break error message into multiplt lines.

	* vector.[ch] (vector_Extend): Removed type spec. Reduce scope of
	function, now it only does what the name implies, extend the
	vector if necc.

	* op_vector.c (vector_assign): Many changes, mostly centered
	aaround calling vector_Extend.

Mon Sep 21 19:34:23 1992  Ian Searle  (ian@quixote)

	* scan.l: Added rule to scanner to handle `1e-3'. No decimal
	point. 

	* Doc/rlab.tex: Finally started working on the doc again.

	* rlab.y (yyparse): Removed silly restrictions in for, if, while,
	and function statements forcing users to type `{' on the same line
	as the `)'.

	* config.h: Added FOPEN_MAX for users who don't have one to set.

	* math_3.c (FFT): Added vector and matrix fft capability. This is
	neither finished, or checked out. Will undoubtedly change.

Sun Sep 20 19:01:13 1992  Ian Searle  (ian@quixote)

	* random.c (Rand): New file, some new functions. Finished hooking
	up rand ro RANLIB functions.

	* rlab.y (yyparse): Added ':' to precedence table (just above
	','), and changed vec_expr production from:

         | vec_expr ',' expr  { code(OP_VEC_APPEND); }

	 to:

         | vec_expr ',' vec_expr  { code(OP_VEC_APPEND); }

	 This change makes expressions like `1,2,3:10' possible.


	* op_matrix.c (ent_ent_mat_promote): same as previous.

	* op_matrix.c (ent_con_mat_promote): same as previous.

	* op_matrix.c (con_ent_mat_promote): Fixed silly type checking
	errors that were preventing b[1;1,2] from working.

Sat Sep 19 00:00:39 1992  Ian Searle  (ian@quixote)

	* Picked up changes in config.sun4, bltin.h, btree.c, courtesy 
	R. M. Cothren.

	* op_vector.c (vector_assign): Improved error handling, and added
	more remove_tmp_destroy() calls.

Fri Sep 18 19:18:24 1992  Ian Searle  (ian@quixote)

	* op_vector.c  (vector_matrix_app): Same fix as below.

	* op_vector.c (vector_vector_app): Type in loop index (for REAL,
	COMPLEX) causing core dump. fix: add `+1'

	* code.c (bltin): Try and clean-up the argument from the tmplist.

	* code.c (ret_from_function): call remove_tmp_destroy() when
	poping local and arg vars.

	* op_matrix.c (matrix_assign): Add calls to remove_tmp_destroy(). 

	* op_matrix.c (matrix_transpose): Add call to
	remove_tmp_destroy().

Thu Sep 17 21:28:23 1992  Ian Searle  (ian@quixote)

	* math_3.c (FFT): Not finished yet, but compiled and setup
	libCfftpack.a 

	* math_1.c (SRand): New function.

	* math_1.c (Rand): Converted to RANLIB usage.

	* print.f (do_printf): Fixed sval overflow bug. Put in a test, and
	an error message.

Tue Sep 15 22:31:16 1992  Ian Searle  (ian@quixote)

	* code.c (list_member): Added more error checking, and .class
	capability for user and bltin functions.

	* matrix_comp.c (matrix_Eig_GSEP): New function.

Mon Aug 10 00:05:41 1992  Ian Searle  (ian@quixote)

	* print.c (Printf): New Function.

Thu Aug  6 18:53:35 1992  Ian Searle  (ian@quixote)

	* matrix_comp.c (Qr): Add COMPLEX qr() matrix_QrZ().

	* matrix_comp.c (Qr): Add install() calls.

	* math_1.c (Solve): Allow vector, or column matrix as 2nd arg.

	* rlab.y (yyparse): Add error checking for break and continue
	outsid of loops.

	* bltin.c (Zero): if zero() called with no arg of 0 return a
	scalar. 

Wed Aug  5 20:50:50 1992  Ian Searle  (ian@quixote)

	* Added ./lib/editline; a readline(3) like library, but smaller.

Tue Aug  4 21:36:39 1992  Ian Searle  (ian@quixote)

	* code.c (function_return): Set the name of an object to 0 when we
	zero out the name of the entity, returning local datums only.

	* bltin.c (Size): Make size() return 1 for size of a scalar.

	* code.c, functi[ch]: Added capability to print() to print
	function op-codes when -d is used.

	* Finished up most of relational ops (matrix-scalar).

Sun Aug  2 11:09:21 1992  Ian Searle  (ian@quixote)

	* relation.c, complex.[ch], scalar_op1.[ch], vector_op1.[ch]:
	working on finishing up the vector - scalar realtional ops.

	* code.c (find_lineno): (*--p) prevented checking current lineno. 

Fri Jul 31 20:39:38 1992  Ian Searle  (ian@quixote)

	* code.[ch], rlab.y, dissassem.c, main.c: Added file name, and
	line numbers to error messages. Some new functions...
	find_lineno(), find_file_name().

Tue Jul 28 23:38:03 1992  Ian Searle  (ian@quixote)

	* Have added the basics of complex variables, constants, etc...
	Have re-checked everything in after extensive changes to many
	files, and some brand-new files.

