Article View: fj.sci.math
Article #14388AXIOM, the Computer Algebra System.
From: H. Murakami
Date: Thu, 17 Sep 1992 09:07
Date: Thu, 17 Sep 1992 09:07
440 lines
27263 bytes
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!mhiroshiShow 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