SHEEP(ID:1748/she001)


Symbolic math, especially tensor analysis and General Relativity. Inge Frick, Stockholm, late 70's to early 80's. Implemented in DEC-10 assembly language, then in several LISPs.

Named SHEEP as it was an extension of LAMn (might as well be hung for a sheep as a lamb)



Related languages
LAM => SHEEP   Augmentation of
SHEEP => STENSOR   Written using

References:
  • Frick, I. "Sheep" NIGSAM:10 1976 view details
  • Hörnfeldt, L.: "A Tensor Compiler". NIGSAM 11 1976 view details
  • Frick, I.: "SHEEP, users guide", preprint) Insti.of Theor. Physics, Univ. of Stockholm. view details
  • Frick, I.: "The computer Algebra System SHEEP, what it can and cannot do in General Relativity". 1977 view details
  • Hörnfeldt, L; "Indicial and componentwise tensor calculus with computer" NIGSAM 12 1977 view details
  • Hörnfeldt, L. "An extension of SHEEP for indicial tensor calculus and substitution of sums" Meeting Report of SEAS SMC committee Amsterdam, 17-18-19 January 1978 (AMSTERDAM 78) view details Abstract: SHEEP is a rather small and fast algebraic
    language by I. Frick [1,2]
    specialized on manipulating components
    of tensors. To this system a data type
    "indicial formula" has been added for
    formulas containing tensors with symbolic
    indices. Like in all languages
    a symbol can assigned a scalar expression,
    it can here be assigned an indicial
    fofrmula, e.g.:
    (DEFTEN A)
    =K^2 <3 (I J> + SIN H A
    DEFINED
    Here tensors are surrounded by "<" and
    ">". Since J is repeated, summation is
    understood. The "(" indicates syrmmetrization.
    The assignment can be nicely written
    out:
    (WDEF A)
    Aik = SIN(H)Cki + k2Ck(jBi) j
    An indicial formula can be used in two
    ways [4,5] :
    1) There is a "compiler" that translates
    any formula to a program for
    computing individual components by
    actually performing contractions
    etc. Here the components of A can
    be computed if each component of B
    and C has been specified.
    2) There are routines for evaluating
    and simplifying this data type. If
    e.g. B has been assigned to be simply
    the Kronecker delta (with trace
    =DIM), the function WMDEF picks it
    up, performs the j-contraction and
    simplifies:
    (WMDEF A)
    Aik = (k 2 + SIN(H) + k2DIM)Cki
    Ordinary and covariant differentiation
    is indicated by "," and ";". If T has
    been declared to have the l:st and
    3:rd indices up, the assignment:
    (DEFTEN B)
    = A
    is written
    = T i 1
    Biklmn k ; [mn]
    When evaluating, the covariant differentiations
    are performed (since possible
    by use of the Ricci identity):
    Biklmn=Ri j nmTj kl+Rlj nmrikJ _R j knmTij I
    The simplifyer knows things like if A
    is anti- and S is symmetric, the
    and V k Wl=Sik V i AlkSik=O Sik W k.
    In the data type, tensors are kept
    factorized. In a simplified indicial
    sum, there is a canonical order both
    between the tensorial parts and within
    each scalar sum. By exploiting this,
    a rather high efficiency has been
    achieved for a program that substitutes
    an arbitrary length sum of tensor
    products to zero or an other tensor.
    It can also be used to simplify scalar
    expressions exploiting e.g.
    sin20 + sin20 = |. The CPU-time for
    this is sometimes less than for doing
    a non-complete simplification using
    the trivial substitution cos20+l-sin20.
  • D'Inverno, R.A. "Interacting with SHEEP" General Relativity and Gravitation 14(10) 1982 view details Abstract: In which sheep confirms Hauser's claim (and hopefully demonstrates just how powerful and flexible an interactive algebraic computing language can be as an aid in carrying out calculations in general relativity). DOI
  • Frick, Inge and Åman, Jan E. "SHEEP and Classification in General Relativity" view details Abstract: SHEEP is a computer algebra system mainly devoted to calculations in General Relativity [1,2]. A typical problem for SHEEP is to check if a given curved space-time fulfills Einstein's equations or not. This means calculating the Ricci tensor from the components of the metric tensor given as analytic equations of the coordinates of space-time, a calculation that for any nontrivial example involves quite heavy algebraic calculations. The freedom of choice of coordinates in General Relativity makes it a fundamental problem to determine whether differences between descriptions of situations are due to real physical differences, or just effects of different choice of coordinate systems. This is the equivalence problem in for classification of the coordinate invariant (physical) properties of geometries in General Relativity [3,4].
    In most cases, much of the efficiency and usefulness of the results is gained by performing the calculations of tensorial components relative to a given frame or tetrad. Most often used are constant frames like the orthonormal (or Lorentz) frame or the null tetrad, which is being used for the classification. Among currently available languages, SHEEP + CLASSI seem to be the most suitable for this kind of relativity calculations because it is fast, interactive and prints formulae in a nice multiple line format and handles tensors and spinors nicely. Complex variables and functions can also be used.
          in European Conference on Computer Algebra EUROCAL 85 LNCS 204 view details
  • Wolfram, Stephen "Symbolic Mathematical Computation" view details External link:
          in [ACM] CACM 28(04) (April 1985) view details
  • MacCallum, M.A.H. Sheep Introductory letter 1993 view details Abstract: This is a standard form letter giving information about Sheep. (In 1987
    the major contributors to Sheep and its extensions Classi and Stensor
    agreed that I should handle the administration of distribution.)
    External link: Online copy Extract: Introduction
    Introduction

    Sheep is a computer algebra system for handling calculations of the
    components of tensors.  Its main use has been in general relativity,
    but it has also been used in both solid and fluid mechanics. It was
    based on the Lisp Algebraic Manipulator LAM (whence the name Sheep),
    written by R.A. d'Inverno in the late 1960s. Sheep was written largely
    by Inge Frick of Stockholm (after information about LAM had been
    brought to Sweden by Ian Cohen who had worked with d'Inverno in
    London), and the first version was announced in 1977. This version was
    written in the assembly language MACRO-10 for DEC-10 computers.

    In about 1978 Jan Aman started work on programs in Sheep to perform
    calculations needed for the classification and identification of exact
    solutions of Einstein's equations: these programs, and others written
    for specific tensor manipulations in Sheep, are now known collectively
    as Classi, although many of the programs in Classi have nothing
    immediately to do with classification, and not all are for relativity.

    Also about that time, Lars Hornfeldt began work on an indicial
    tensor manipulation system, which in early versions worked with either
    Sheep or Macsyma: this extension of Sheep is called Stensor. (The
    difference between this and Sheep is that Stensor handles calculations
    where the indices are symbolic rather than calculating individual
    components.) Stensor is not yet well-integrated with Classi.

    In the early 1980s Sheep was re-written in a dialect of Lisp: this
    version is called Sheep 2. The Lisp used was an extended version of
    the Standard Lisp used as a basis for the computer algebra system
    Reduce.  Distribution copies of this version of Sheep include the
    extensions to Standard Lisp to create the dialect Sheep uses, called
    Slisp.  We can still copy the old tapes for Sheep 1 (the assembler
    version) but it is unlikely many sites will want this.

    Sheep by itself is perhaps better regarded as a language in which
    tensor manipulation programs can be written, since the only
    pre-packaged tensor definitions are those for the curvature of a
    space-time in coordinate form.  However, the division into Sheep,
    Classi, and Stensor reflects the contributions of the three main
    authors Frick, Sman and Hornfeldt) rather than a rigid division
    of function, and others, including myself, have contributed ideas and
    code to all three parts.

    J.E.F. Skea has produced a combined Reduce and Sheep image for
    certain computers. Where this is available (essentially for
    Cambridge Lisp and PSL versions at present) it is distributed with Sheep.
    It is called Rsheep (and similarly Rclassi and Rtensor).

          in [ACM] CACM 28(04) (April 1985) view details
  • Skea J.E.F. et al "Sheep, a Computer Algebra System for General Relativity" view details
          in Proc First Brazilian School on Comp Alg, W. Roque et al eds, Oxford U Press 1993 view details
  • MacCallum, M. A. H., and Skea, J. "Algebraic computing in general relativity" Proceedings of the first Brazilian school on computer algebra, Vol. 2, eds. Reboucas, M. J., and Roque, W. L., (Oxford University Press, Oxford). 1994 view details
          in Proc First Brazilian School on Comp Alg, W. Roque et al eds, Oxford U Press 1993 view details
    Resources