Tue Dec 13 12:50:28 1988  John Harper  (harper at manitou.astro)

	* removed code in RESIMPSCALAR using TRUE to re-ebal in place.
	This is better done explicitly by the user. Affects DET,
	MULTIPLIER and RICCISC.

Tue Dec  6 19:38:48 1988  John Harper  (harper at manitou.astro)

	* COPY forgot to assign the name as the object value to autoquote
	the name.

Sun Nov 20 21:01:48 1988  John Harper  (harper at manitou.astro)

	* spelling mistake in CNVRTDIF, had NTHODE. This meant that
	o[1,|0] would not evaluate the derivative, returned 0.

Wed Nov 16 20:12:49 1988  John Harper  (harper at manitou.astro)

	* well COLONPARSE did break. moved the test for a scalar (a real
	scalar not a scalar object) up in the function to before the
	CHEKCKTYPE ala' redten.

Thu Nov 10 16:33:07 1988  John Harper  (harper at manitou.astro)

	* fixed scalar code in WRITETNSR so that user cannot assign a name
	to itself. This is taken care of by the auto-quoting code in
	READTNSR where if there is no value, the name is returned. In
	redten this bug can get you an infinite loop after REM'ing the
	object.

Wed Nov  9 16:12:32 1988  John Harper  (harper at manitou.astro)

	* changed COLONPARSE1 to use CHECKTYPE to see if there is a valid
	lhs. Hope there is not some special case this breaks....

Fri Nov  4 14:27:18 1988  John Harper  (harper at manitou.astro)

	* changed MKSCALAR to a function and added call to GETNME. 

Tue Nov  1 23:39:33 1988  John Harper  (harper at manitou.astro)

	* modified code in READTNSR, WRITETNSR, EVALTNSR, NDIFF1, RDR,
	MKSCALAR, PREPROCESS, PROCESSVALUE, KILL, COLONPARSE1 to make
	scalar objects more uniform in treatment; access to value is now by
	an empty index, eg Q[], and musimp value is its name as with a
	tensor. Also removed code in RICCISC to automagically make a
	scalar out of the ricci scalar. at v3.85

Sun Oct 30 16:34:28 1988  John Harper  (harper at manitou.astro)

	* also noticed that COV was wrong near its end where we check if
	the cov. deriv. is 0 and replace it. We were still trying to
	protect something that was no longer an indexed object. Moved the
	protect line into the BLOCK. Was done right in redten.

	* lots of problems with scalar objects, which are only
	half-heartedly implemented now. COV would not work properly
	because a) DIFCON was returning FALSE and that value was part of
	the expression, and b) APPLY was being used in COV. DIFCON now
	returns 0 if need be and APPLY has been removed.

 	* fixed MAKEDIFSYM which was producing a symlist even when there
	was only 1 derivative index to work with. Made things like q[|a]
	come out wrong since it flipped the a and |.

	* cov to check if its arg is indexed.

	* modified DIF1 (yet again) so that things like dif (a(t),q) -> 0.
	I bet something else doesn't work now...

	* also added a switch so that the GETCONSYM stuff can be turned
	off by the user if another bug is found.

	* another bug from Paul Anderson: try E[a,b,c]*E1[a,b,c] where E
	is symmetric in first and second indices, and E1 is a copy with
	all indices shifted (i.e dont worry about a metric). The answer is
	wrong, because of a mistake in PROCESSVALUE, where the list passed
	to CONPROD as INDEXC must be reversed. This was done correctly in
	redten. The call of interest is the second in PROCESSVALUE near
	the end of the function.

Wed Oct 26 13:49:19 1988  John Harper  (harper at manitou.astro)

	* Weird bug reported by Paul Anderson. 
	Copy the Riemann tensor to some object q, which has not been given
	any symmetry. Then contract it fully, i.e
	p==q[a,b,c,d]*q[^a,^b,^c,^d]; and find that there are WHEN..EXITS
	in the result. The cause seems to be an interaction between the
	forms created by NEGATE when reading out the elements of R in
	copying to q (i.e those elements whose symmetry changes their
	sign) and the use of APPLY at the bottom of CONPROD. Oddly, using
	EVAL works perfectly. We cannot use EVAL since it will cause
	premature evaluation of the READTNSR calls in the expression.

Fri Aug  5 20:53:18 1988  John Harper  (harper at manitou)

	* completed modifications to bring mutensor parallel to redten in
	handling derivatives of implicit objects.

Thu Aug  4 19:05:26 1988  John Harper  (harper at manitou)

	* split COLONPARSE, and added routine EQUALPARSE to allow for ==
	assignments ala' redten. Main part of COLONPARSE is now in
	COLONPARSE1, called by both routines.

	* added MOVD ('DIF, 'DF) to lwrfnc.ind for reduce compatability.

Wed Aug  3 19:09:52 1988  John Harper  (harper at manitou)

	* added missing code to IPRTDIF which handles printing of indicies
	that have repeat counts.

	* changed drive.mus to local.mus, contains all mumath code hacked
	to fit.

	* removed calls to CHECKTYPE in DIF1 in grad.dif. This is a
	standalone package, CHECKTYPE is part of mutensor. 

Thu Jul 28 20:38:20 1988  John Harper  (harper at manitou)

	* in NDIFF1 was code to immediately eval a derivative if the
	output index was integer. This messed up if the object was implicit
	because the eval had #BR in the index, which made MAPINDEX
	unhappy. Added check so that this king of thing is deferred. So we
	can now do l==k[1,|0] properly. This bug is in redten too.

Mon Jul 25 22:38:28 1988  John Harper  (harper at manitou)

	* made changes paralleling those made to redten this day to allow
	derivative indices to be sorted in to canoncial form. at v3.82

Sat May  7 15:46:33 1988  John Harper  (harper at manitou)

	* 3.81

	* fixed PWRSUB which was broken for subs. of the form a^6=0, for
	powers less than 6 (got a 0^0). (reported by fred cotton).

	* made transfer understand the name 'ALL to indicate all objects
	in the same way SAVEI does (Fred Cotton suggestion). Updated
	manual to note this.

Sat Apr  2 14:31:37 1988  John Harper  (harper at manitou)

	* changed ONLOAD to call UPDATEKILL to remove the UPDATEPTR
	correctly. (problem noted by fred cotton)

Fri Apr  1 19:43:29 1988  John Harper  (harper at manitou)

	* 7 blanks in WRITELIST had become tabs when the source file was
	reformated. at 3.80

Wed Mar 30 20:35:38 1988  John Harper  (harper at manitou)

	* ONLOAD now kills the UPDATEPTR property. One could onload, then
	offload again to a different file, the pointer might be anywhere
	in the new file, and UPDATEKILL would end up writing over things.
	Also made UPDATEKILL check if the word UPDATE is actually under
	where it wants to overwrite (does not err out if it isn;t,
	silently clears the UPDATEPTR).

	* deleted test for implicit'ness in RDR since the system was never
	evaluating the explicit elements (was not calling READTNSR). (dumb
	dumb dumb)

Tue Mar 29 21:06:23 1988  John Harper  (harper at manitou)

	* moved location of number of elements as printed in a directory
	back 2 spaces.

Sun Mar 20 15:30:05 1988  John Harper  (harper at manitou)

	* modified OFFLOAD to never offload a metric.

Wed Mar  2 16:17:00 1988  John Harper  (harper at manitou)

	* at v3.79

	* added flag to CHKOFF so when called from DRIVER, it will tell of
	the existence of the default vmem file to remind the user.
	(before, it just tested if the first 2 chars were '(, to see if it
	had been corrupted).

	* to be safe, garb.exe will look for a pointer of -1 to exit,
	modified GARB to put that in the ptr.mem file.

	* moved the code which checked for an empty object from preprocess
	to prcoess. that way one gets the concov structure correct.

	* declared ricsc scalar

	* added calls to mktnsr in gr code.

Sat Feb 27 15:43:30 1988  John Harper  (harper at manitou)

	* fixed garb to 1) use chsize to truncate the file and 2)
	corrected the return from fseek (it returns 0 or -1 in MSC) and
	removed various C86'isms.

Thu Feb 18 19:42:40 1988  John Harper  (harper at manitou)

	* added double quotes around string passed to manual.exe

Sat Feb 13 15:15:23 1988  John Harper  (harper at manitou)

	* now at version 3.78

	* deleted IDIF and added new derivative code to dif.ind with a
	more uniform treatment of indexed ob. derivatives. (eg.
	dif(g[a,b],t) becomes equivalent to g[a,b,|0] internally)

	* replaced DIF1 function in grad.dif and dif.ind with new version
	with hooks for indexed objects.

Sat Jan 23 19:32:01 1988  John Harper  (harper at manitou)

	* added function CANONINDEX to utility1.ind to produce
	canonicalized indices. (no use yet)

Fri Jan 22 19:02:58 1988  John Harper  (harper at manitou)

	* added FORMRDR function ala' redten, but here it is less useful
	(i.e we don't need to be doing FKERN's etc). However, it may come
	in handy if one wants to compare objects using =, which would fail
	if it sometimes had no SYMLST and sometimes had FALSE there.

Tue Jan 19 20:21:48 1988  John Harper  (harper at manitou)

	* in RDR added check for implicit prop on object, if its there and
	the index is integer, then we still return the un-evaled form.

Mon Jan 18 21:46:32 1988  John Harper  (harper at manitou)

	* added message to GRADEF1 to indicate the failure to put a
	gradient on a non-atomic form.

	* added error message to HELP to indicate that it could not
	execute manual.exe

Sat Jan 16 15:34:01 1988  John Harper  (harper at manitou)

	* reformatted algebra.ind. converted constant lists to quoted
	constants rather than calling list to make them. will do the same
	to all other source files.

Tue Jan 12 14:50:06 1988  John Harper  (harper at manitou)

	* wrapped an EVAL around the call to PARSE when calling out to
	EVALTNSR1 from COLONPARSE. This allows things like g[0]::g[0]+1 to
	evaluate properly, which was not happening before.

Fri Oct 16 14:04:37 1987  John Harper  (harper at manitou)

	* added the reload message to saveic which includes the required
	double quotes.

Thu Oct 15 18:55:13 1987  John Harper  (harper at manitou)

	* also had a problem writing names having special chars in them.
	PRINT was not always false as required in SAVEI2; in particular
	PWRLIST* etc could not be read in.

	* in findkern2 we were using getd. that function is disabled for
	release versions of the code, so one could not savei correctly. i
	will remove the getd and hope it doesnt cause a problem (i think
	it should not).

Sat Sep 19 21:33:14 1987  John Harper  (harper at manitou)

	* fixed a bug in conprod. was popping LIS too soon and code after
	was looking at the next element. (where we determine symmetries
	etc. for contractions)

Wed Jun 10 20:00:09 1987  John Harper  (harper at utmanitou)

	* fixed minor problem in manual.c (hard time backing up) changed
	all occurances of ALPHALIST with ALPHALIST# to conform with redten
	and fix a bug in dif.ind (second form was used there).

Sun May 24 15:37:02 1987  John Harper  (harper at utmanitou)

	* fixed div to use pdif

	* made printpdif and prtmathdif check #prettyp.

	* changed method of decideing to use temp objects in ndiff1 by
	using multip.

Fri May 22 15:45:13 1987  John Harper  (harper at utmanitou)

	* modified dir to give info on requested objects regardless of
	nodir flag or emptiness of inames.

	* added functions isitten and isitfr analagous to isitsp.

	* upgrade to level of redten as of this date. code for 'smart'
	contractions, fixed newsym, etc.

Wed May 20 21:44:27 1987  John Harper  (harper at utmanitou)

	* if conformal killing equations are computed, the type of the
	killing matrix is CKILLING not simply KILLING.

Sun May 17 14:36:23 1987  John Harper  (harper at utmanitou)

	* made savei2 write code to test if indexed object name is alrady
	on inames, rather than push it on twice.

	* fixed readtnsr to multiply implicit elements by only the sign of
	the symmetry, not the multuplier too.

Thu May  7 20:51:41 1987  John Harper  (harper at utmanitou)

	* brought system up to level of redten as of this date. (except
	for savei mod.)

Sun Apr 26 14:55:38 1987  John Harper  (harper at utmanitou)

	* added trace function to matrix package.

	* modified metric to accept a rank-2 object and turn that into a
	metric tensor, with all the required properties.

Tue Mar 24 16:23:43 1987  John Harper  (harper at utmanitou)

	* in merger we have the line WHEN FIRST (I2) > FIRST (NTHELMNT
	(I1, LENGTH (I1))), there should not be a FIRST applied to the
	return from NTHELMNT. i think the code later will do what this was
	supposed to short-cut.

Sat Feb 28 14:59:12 1987  John Harper  (harper at utmanitou)

	* mktnsr puts coordinate dependencies on implicit objects in
	imp=tnsr and modified killing to reflect this.

Fri Feb 27 21:59:52 1987  John Harper  (harper at utmanitou)

	* fixed collecterms to not search into an atomic form

Sat Feb 14 20:05:40 1987  John Harper  (harper at utmanitou)

	* fixed d() so it returns 0 immediately if it gets a number and
	does not give a warning message.

