🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fj.sci.math
Article #14388

AXIOM, the Computer Algebra System.

#14388
From: H. Murakami
Date: Thu, 17 Sep 1992 09:07
440 lines
27263 bytes
ScratchPadII $B$H$7$FCN$i$l$F$$$?(J IBM $B$N?t<0=hM}%7%9%F%`(J
$B$,:G6a(J NAG$B<R(J(Numerical Algorithm Group) $B$+$i(J AXIOM $B$H$7$F(J
$BHNGd$5$l$F$$$^$9(J. $BB?>/$N>pJs$r$*CN$i$;$7$^$9(J. ($BE>:\5v2D:Q(J)
($BCm0U(J:AXIOM$B$NK\$O(J,$B%7%9%F%`$rGc$($P%P%s%I%k$5$l$F$$$k$H$N$3$H(J)

From: "Robert S. Sutor", Sep 11 22:33:48 1992
Subject: Query on AXIOM (Scratch Pad II)

Ref:  Your note of Fri, 11 Sep 92 16:53:05 JST

Here is some basic information about the system.
note to NAG and they should be contacting you directly. I will also
be doing a reply to the net.

There is just one book. I think the 3-... ISBN number is the German
one since Springer is based there. Right now, AXIOM runs on top of AKCL.

Thanks for your interest in AXIOM. I'm very limited in what I can tell you
about the availability of AXIOM on non-IBM platforms. NAG has full marketing 
responsibility for the product and will respond to you individually with 
whatever information it feels it can tell you at this point.  
You will at least get product information and pricing.
NAG has just released version 1.1 to which the book is a companion.
Release 2.0, expected sometime in the middle of next year will include 
a new compiler and various library extensions.

If you are interesting in contacting NAG directly or in acquiring a copy 
of AXIOM you should contact one of NAG's marketing representatives:


In USA,
      John Zurawski, Sales and Marketing Manager, 
      NAG Inc., 1400 Opus Place, Suite 200 Downers Grove, 
      IL 60515-5702, USA
      TEL: (708) 971-2337, FAX: (708)971-2706

or in UK,

      John Piper, Sales and Marketing Manager, 
      NAG Ltd,  Wilkinson House, Jordan Hill Road,
      OXFORD, OX2 8DR, UK,
      TEL: 011 44 865 511245, FAX: 011 44 865 310139

in Germany,
      ???
      NAG GmbH, Schleissheimerstr. 5, D-8046 
      Garching bei Munchen, Deutschland, 
      TEL: 49 89 3207395, FAX: 49 89 3207396.


In the rest of this note, I'll tell you a bit about AXIOM. 

Here are a few of paragraphs from the book I mentioned in my
sci.math.symbolic post.

(Copyright The Numerical Algorithms Group Limited 1992)

>From ``A Technical Introduction to AXIOM'':

   AXIOM has both an interactive language for user interactions and
   a programming language for building library modules.  Like Modula 2,
   PASCAL, FORTRAN, and Ada, the programming language emphasizes strict
   type-checking.  Unlike these languages, types in AXIOM are dynamic 
   objects:  they are created at run-time in response to user commands.

   Here is the idea of the AXIOM programming language in a nutshell.
   AXIOM types range from algebraic ones (like polynomials, matrices,
   and power series) to data structures (like lists, dictionaries,
   and input files).  Types combine in any meaningful way.  You can
   build polynomials of matrices, matrices of polynomials of power
   series, hash tables with symbolic keys and rational function
   entries, and so on.

   Categories define algebraic properties to ensure mathematical
   correctness.  They ensure, for example, that matrices of polynomials 
   are OK, but matrices of input files are not.  Through categories, 
   programs can discover that polynomials of continued fractions have
   a commutative multiplication whereas polynomials of matrices do not.

   Categories allow algorithms to be defined in their most natural setting.
   For example, an algorithm can be defined to solve polynomial equations 
   over any field.  Likewise a greatest common divisor can compute the 
   ``gcd'' of two elements from any Euclidean domain.  Categories foil 
   attempts to compute meaningless ``gcds'', for example, of two hashtables.
   Categories also enable algorithms to be compiled into machine code that 
   can be run with arbitrary types.

   The AXIOM interactive language is oriented towards ease-of-use.
   The AXIOM interpreter uses type-inferencing to deduce the type of
   an object from user input.  Type declarations can generally be omitted 
   for common types in the interactive language.

   From an interactive point of view, AXIOM offers 2- and 3-dimensional
   graphics, a hypertext front-end that contains most of the book plus
   additional examples, and various kinds of output, including TeX and
   FORTRAN.  Within HyperDoc (the hypertext front-end), you can view
   text, examples and graphics. You can either see the stored results
   of computations or click on AXIOM input to open a workspace window
   in which the actual computations will be performed. Similarly, clicking
   on graphics opens a separate graphics manager in which you can
   interactively rotate, translate, scale, color (...) and produce
   hard copy output. The library contains several hundred domains, packages
   and categories, some of which are listed in the the table of contents
   in chapter 9 of the book.

For more information see the book!

Finally, here is the table of contents of the book.
------

    Foreword                                                          vii
    Contributors                                                      xxi
    Introduction to AXIOM                                               1
    A Technical Introduction to AXIOM                                   9

I. Basic Features of Axiom                                             17

    1. An Overview of AXIOM                                            19
        1.1     Starting Up and Winding Down                           19
        1.2     Typographic Conventions                                21
        1.3     The AXIOM Language                                     22
        1.4     Graphics                                               28
        1.5     Numbers                                                29
        1.6     Data Structures                                        33
        1.7     Expanding to Higher Dimensions                         38
        1.8     Writing Your Own Functions                             39
        1.9     Polynomials                                            43
        1.10     Limits                                                44
        1.11     Series                                                45
        1.12     Derivatives                                           47
        1.13     Integration                                           49
        1.14     Differential Equations                                52
        1.15     Solution of Equations                                 53
        1.16     System Commands                                       55

    2. Using Types and Modes                                           59
        2.1     The Basic Idea                                         59
        2.2     Writing Types and Modes                                66
        2.3     Declarations                                           69
        2.4     Records                                                71
        2.5     Unions                                                 73
        2.6     The ``Any'' Domain                                     77
        2.7     Conversion                                             78
        2.8     Subdomains Again                                       80
        2.9     Package Calling and Target Types                       83
        2.10    Resolving Types                                        86
        2.11    Exposing Domains and Packages                          87
        2.12    Commands for Snooping                                  89

    3. Using HyperDoc                                                  93
        3.1     Headings                                               94
        3.2     Scroll Bars                                            94
        3.3     Input Areas                                            95
        3.4     Buttons                                                96
        3.5     Search Strings                                         96
        3.6     Example Pages                                          97
        3.7     X Window Resources for HyperDoc                        97

    4. Input Files and Output Styles                                   99
        4.1     Input Files                                            99
        4.2     The axiom.input File                                  100
        4.3     Common Features of Using Output Formats               101
        4.4     Monospace Two-Dimensional Mathematical Format         102
        4.5     TeX Format                                            103
        4.6     IBM Script Formula Format                             104
        4.7     FORTRAN Format                                        104

    5. Introduction to the AXIOM Interactive Language                 109

        5.1     Immediate and Delayed Assignments                     109
        5.2     Blocks                                                112
        5.3     if-then-else                                          115
        5.4     Loops                                                 117
        5.5     Creating Lists and Streams with Iterators             129
        5.6     An Example: Streams of Primes                         132

    6. User-Defined Functions, Macros and Rules                       135
        6.1     Functions vs. Macros                                  135
        6.2     Macros                                                136
        6.3     Introduction to Functions                             138
        6.4     Declaring the Type of Functions                       139
        6.5     One-Line Functions                                    141
        6.6     Declared vs. Undeclared Functions                     142
        6.7     Functions vs. Operations                              143
        6.8     Delayed Assignments vs. Functions with No Arguments   144
        6.9     How AXIOM Determines What Function to Use             145
        6.10     Compiling vs. Interpreting                           146
        6.11     Piece-Wise Function Definitions                      148
        6.12     Caching Previously Computed Results                  153
        6.13     Recurrence Relations                                 155
        6.14     Making Functions from Objects                        157
        6.15     Functions Defined with Blocks                        159
        6.16     Free and Local Variables                             162
        6.17     Anonymous Functions                                  165
        6.18     Example: A Database                                  168
        6.19     Example: A Famous Triangle                           170
        6.20     Example: Testing for Palindromes                     171
        6.21     Rules and Pattern Matching                           173

    7. Graphics                                                       179
        7.1     Two-Dimensional Graphics                              180
        7.2     Three-Dimensional Graphics                            196

II. Advanced Problem Solving and Examples                             225

    8. Advanced Problem Solving                                       227
        8.1     Numeric Functions                                     227
        8.2     Polynomial Factorization                              236
        8.3     Manipulating Symbolic Roots of a Polynomial           239
        8.4     Computation of Eigenvalues and Eigenvectors           241
        8.5     Solution of Linear and Polynomial Equations           244
        8.6     Limits                                                249
        8.7     Laplace Transforms                                    251
        8.8     Integration                                           252
        8.9     Working with Power Series                             255
        8.10     Solution of Differential Equations                   269
        8.11     Finite Fields                                        276
        8.12     Primary Decomposition of Ideals                      294
        8.13     Computation of Galois Groups                         296
        8.14     Non-Associative Algebras and Modelling Genetic Laws  303

    9. Some Examples of Domains and Packages                          309
        9.1     AssociationList                                       309
        9.2     BalancedBinaryTree                                    311
        9.3     BinaryExpansion                                       312
        9.4     BinarySearchTree                                      313
        9.5     CardinalNumber                                        315
        9.6     CartesianTensor                                       317
        9.7     Character                                             325
        9.8     CharacterClass                                        326
        9.9     CliffordAlgebra                                       328
        9.10    Complex                                               333
        9.11    ContinuedFraction                                     335
        9.12    CycleIndicators                                       339
        9.13    DeRhamComplex                                         346
        9.14    DecimalExpansion                                      350
        9.15    DistributedMultivariatePolynomial                     352
        9.16    EqTable                                               353
        9.17    Equation                                              354
        9.18    Exit                                                  355
        9.19    Factored                                              356
        9.20    FactoredFunctions2                                    361
        9.21    File                                                  362
        9.22    FileName                                              364
        9.23    FlexibleArray                                         366
        9.24    Float                                                 368
        9.25    Fraction                                              373
        9.26    GeneralSparseTable                                    375
        9.27    GroebnerFactorizationPackage                          376
        9.28    Heap                                                  378
        9.29    HexadecimalExpansion                                  379
        9.30    Integer                                               380
        9.31    IntegerLinearDependence                               385
        9.32    IntegerNumberTheoryFunctions                          387
        9.33    KeyedAccessFile                                       390
        9.34    Library                                               393
        9.35    LinearOrdinaryDifferentialOperator                    394
        9.36    List                                                  404
        9.37    MakeFunction                                          409
        9.38    MappingPackage1                                       411
        9.39    Matrix                                                414
        9.40    MultiSet                                              420
        9.41    MultivariatePolynomial                                421
        9.42    None                                                  423
        9.43    Octonion                                              423
        9.44    OneDimensionalArray                                   425
        9.45    Operator                                              426
        9.46    OrderlyDifferentialPolynomial                         429
        9.47    PartialFraction                                       433
        9.48    Permanent                                             436
        9.49    Polynomial                                            436
        9.50    Quaternion                                            442
        9.51    RadixExpansion                                        444
        9.52    RomanNumeral                                          446
        9.53    Segment                                               447
        9.54    SegmentBinding                                        448
        9.55    Set                                                   449
        9.56    SmallFloat                                            452
        9.57    SmallInteger                                          453
        9.58    SparseTable                                           455
        9.59    SquareMatrix                                          456
        9.60    Stream                                                457
        9.61    String                                                458
        9.62    StringTable                                           462
        9.63    Symbol                                                462
        9.64    Table                                                 465
        9.65    TextFile                                              468
        9.66    TwoDimensionalArray                                   469
        9.67    UnivariatePolynomial                                  472
        9.68    UniversalSegment                                      477
        9.69    Vector                                                478
        9.70    Void                                                  480

III. Advanced Programming in AXIOM                                    481

    10. Interactive Programming                                       483
        10.1    Drawing Ribbons Interactively                         483
        10.2    A Ribbon Program                                      487
        10.3    Coloring and Positioning Ribbons                      488
        10.4    Points, Lines, and Curves                             489
        10.5    A Bouquet of Arrows                                   492
        10.6    Drawing Complex Vector Fields                         493
        10.7    Drawing Complex Functions                             495
        10.8    Functions Producing Functions                         496
        10.9    Automatic Newton Iteration Formulas                   497

    11. Packages                                                      501
        11.1     Names, Abbreviations, and File Structure             502
        11.2     Syntax                                               503
        11.3     Abstract Datatypes                                   504
        11.4     Documentation                                        506
        11.5     Capsules                                             507
        11.6     Input Files vs. Packages                             508
        11.7     Compiling Packages                                   509
        11.8     Parameters                                           510
        11.9     Conditionals                                         512
        11.10     Testing                                             513
        11.11     How Packages Work                                   515

    12. Categories                                                    517
        12.1     Definitions                                          517
        12.2     Exports                                              519
        12.3     Documentation                                        519
        12.4     Hierarchies                                          520
        12.5     Membership                                           521
        12.6     Defaults                                             522
        12.7     Axioms                                               523
        12.8     Correctness                                          523
        12.9     Attributes                                           524
        12.10     Parameters                                          525
        12.11     Conditionals                                        526

    13. Domains                                                       529
        13.1     Domains vs. Packages                                 529
        13.2     Definitions                                          530
        13.3     Assertions                                           531
        13.4     Demo                                                 532
        13.5     Browse                                               533
        13.6     Representation                                       534
        13.7     Multiple Representations                             535
        13.8     The Add Domain                                       535
        13.9     Defaults                                             536
        13.10     Origins                                             537
        13.11     Short Forms                                         537
        13.12     Example 1: Clifford Algebra                         538
        13.13     Example 2: Building A Query Facility                539

    14. Browse                                                        549
        14.1     The Front Page: Searching the Library                549
        14.2     The Constructor Page                                 553
        14.3     Miscellaneous Features of Browse                     564

Appendices                                                            571

    A. AXIOM System Commands                                          573
        A.1     Introduction                                          573
        A.2     )abbreviation                                         574
        A.3     )boot                                                 575
        A.4     )cd                                                   576
        A.5     )clear                                                576
        A.6     )compile                                              577
        A.7     )display                                              579
        A.8     )edit                                                 580
        A.9     )fin                                                  580
        A.10     )frame                                               581
        A.11     )help                                                582
        A.12     )history                                             582
        A.13     )lisp                                                584
        A.14     )load                                                585
        A.15     )ltrace                                              586
        A.16     )pquit                                               586
        A.17     )quit                                                587
        A.18     )read                                                587
        A.19     )set                                                 588
        A.20     )show                                                588
        A.21     )spool                                               589
        A.22     )synonym                                             589
        A.23     )system                                              590
        A.24     )trace                                               591
        A.25     )undo                                                594
        A.26     )what                                                594

    B. Categories                                                     597

    C. Domains                                                        603

    D. Packages                                                       621

    E. Operations                                                     629

    F. Programs for AXIOM Images                                      689
        F.1     images1.input                                         689
        F.2     images2.input                                         690
        F.3     images3.input                                         690
        F.4     images5.input                                         690
        F.5     images6.input                                         691
        F.6     images7.input                                         692
        F.7     images8.input                                         692
        F.8     conformal.input                                       693
        F.9     tknot.input                                           695
        F.10     ntube.input                                          696
        F.11     dhtri.input                                          697
        F.12     tetra.input                                          698
        F.13     antoine.input                                        699
        F.14     scherk.input                                         700
        F.15     Other Programs                                       701

    G. Glossary                                                       703

    Index                                                             717

From: "Robert S. Sutor"
Date: Fri, 11 Sep 92 12:59:32 EDT
Subject: Query on AXIOM (Scratch Pad II)
Status: RO

Ref:  Your note of Fri, 11 Sep 92 23:31:57 JST


>>Thank you a lot of information.
>>I will ask to NAG. They might have plan to port the AXIOM on OS/2 or
>>NT or WIN3. I guess even the system runs on AKCL, the lisp sources
>>will not be available.

That's right. The library code (written in the AXIOM language) ships
with the product, but the underlying system code is not available.
By the way, the new compiler that will ship with Release 2.0 is
written in C.

>>Do you happen to know of if there is any mailling list about
>>high quality information source of the progress of the computer
>>algebra systems like AXIOM?

The arrangement with NAG has opened up new opportunities to us that 
might not have existed solely in Research.

We have a mail list server at axiom@vm1.nodak.edu. It is not too
active yet but if you send it mail with "help" in the subject line, 
perhaps it will tell you how to subscribe.
Technical Details
Message-ID: <3120@tansei1.tansei.cc.u-tokyo.ac.jp>
Path: arc1-ca.pugleaf.net!sparky!uunet!ccut!news.u-tokyo.ac.jp!yayoi!tansei1!mhiroshi

Show Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS
X-Google-Thread: f4956,f4615ccdeea22527,start
X-Google-Attributes: gidf4956,public
X-Google-ArrivalTime: 1992-09-16 21:19:18 PST
Path: arc1-ca.pugleaf.net!sparky!uunet!ccut!news.u-tokyo.ac.jp!yayoi!tansei1!mhiroshi
From: mhiroshi@tansei.cc.u-tokyo.ac.jp (H. Murakami)
Newsgroups: fj.sci.math
Subject: AXIOM, the Computer Algebra System.
Message-ID: <3120@tansei1.tansei.cc.u-tokyo.ac.jp>
Date: 17 Sep 92 09:07:01 GMT
Sender: news@tansei.cc.u-tokyo.ac.jp
Distribution: fj
Organization: Hokkaido Univ. However I am subject to tansei for JUNET.
Lines: 440