Chapter 26

The easiest way to get NCAlgebra and NCGB is through the NCAlgebra homepage. It is also available by ftp. NCGB also requires compiling. We have compiled versions of NCGB available for a Microsoft Windows or a Solaris 1.1.3 or higher UNIX operating system. If your operating system does not fall into one of these categories you must get gnu C++ and compile it yourself. See the Web version of the NCGBDOCUMENT for instructions on compilation. As of November 1999 we consider windows operation of NCGB experimental and you should consider yourself α-testers. NCAlgebra works fine under windows and has for many years.

The goal of this section is to tell you how to get the files and directories which constitute NCAlgebra and NCGB.

26.1 Getting NCAlgebra and NCGB off the web

The NCAlgebra homepage address is

It can also be easily found by searching the web for NCAlgebra.

In the first line of text, there is a hyperlink attached to the word downloaded (i.e.,the word downloaded is underlined). Click on the word downloaded and you will move to a world-wide-web page with several choices as to what you might load. Click on the appropriate hyperlinks. (Some versions of Netscape require you to shift-click to download a file.)

26.2 Getting NCAlgebra and NCGB through anonymous ftp

It is possible to get NCAlgebra through anonymous ftp. Here is the standard description of how to get NCAlgebra through anonymous ftp.

                               NCALGEBRA and NCGB  
                                  Version 2.1  
     Thanks you for your interest in NCAlgebra and NCGB.  
     This message contains the information necessary for you to use  
     anonymous ftp to transfer the files from our site to yours. The  
     ONLY thing which you have to do to get the NCAlgebra or NCGB  
     package is to follow the following sample terminal session.  
     NCAlgebra (with or without) NCGB  is at,  
     in the pub/ncalg directory.  Below is a record of an actual  
     ftp session. What the user types is underlined.  Quoted expressions  
     describe what should be typed. (e.g., where you see  
     "Any thing will do,but please type your e-mail address.", you may  
     type anything you want). Ignore all timing data shown below.  
     USE NCAlgebra or NCGB.  
          % ftp  or  
          % ftp  
          Connected to  
          220 osiris FTP server (SunOS 4.0) ready.  
          Name ( anonymous  
          331 Guest login ok, send ident as password.  
          Password: "Anything will do,but please type your e-mail address."  
          230 Guest login ok, access restrictions apply.  
          ftp> binary  
          200 Type set to I.  
          ftp> cd pub/ncalg  
          250 CWD command successful.  
          ftp> ls  

At this point, you will see a list of filenames. Some of them should 1 look like, and . The “.Z” indicates the the file was compressed using the UNIX utility compress and the “.gz” indicates that the file was compressed using the GNU utility gzip. The ”.tar” indicates that the tar program was used (tar is a UNIX standard is available for other platforms such as PCs). The ”.zip” is a zipped file and is appropriate for PCs. One can choose either of the three versions. Obviously, you should pick the most recent version of the code and the one which is most appropriate to your computer system. To be concrete in the following material, we assume that you are interested in the file “”.

     ftp> get  
     ftp> bye  
     221 Goodbye.

Now you want to read ONE of the sections 26.2.1, 26.2.2 or 26.2.3.

26.2.1 The “.Z” file

The next thing to do is uncompress the file. To do this, type

% uncompress NCGB.2.14.96.tar.Z

The next thing to do is to create a directory for the files and ‘tar -xf’ the file by typing:

% mkdir NCGB  
% cd NCGB  
% mv ../NCGB.2.14.96.tar ./  
% tar -xf NCGB.2.14.96.tar

Proceed to 26.2.4.

26.2.2 The “.gz” file

The next thing to do is uncompress the file. To do this, type

% gunzip NCGB.2.14.96.tar.gz

The next thing to do is to create a directory for the files and ‘tar -xf’ the file by typing:

% mkdir NCGB  
% cd NCGB  
% mv ../NCGB.2.14.96.tar ./  
% tar -xf NCGB.2.14.96.tar

Proceed to 26.2.4.

26.2.3 The “.zip” file

The next thing to do is uncompress the file. To do this, type

% unzip

Proceed to 26.2.4.

26.2.4 Look at the document

So that we are able to inform them that new versions of the code are available, etc., PLEASE send us a email message so that we know that you are using the program.

The documentation for NCAlgebra is contained in the file


Maybe we shall have a PDF file soon too. Printing out this file to a printer is the best first step. (This can be done via a variety of programs including dvi2ps, pageview and ghostview.)

Also there are documents


Also there are demos.

               Email any questions, comments or requests to  

26.3 The last step

If all you want to do is use NCAlgebra you are now ready. Enjoy!

For the NCGB experience under any operating system other than Solaris , Linux, or Windows more installation is required. Compiling the C++ part of the code is next. This is explained on the WWW NCAlgebra homepage NCDOCUMENT.

26.4 The NC directory structure


The preceding figure is a bit out of date.
Especially in the C++ related directories.

26.5 Directory structure of NCAlgebra alone

This adds a little more detail to Section 26.

(1) To run NCAlgebra alone you only need part of the directory system above. For NCAlgebra alone it is


If you have the whole huge sets of directories and are desperate for space you can delete all but this.

(2) The directory NCAlgebra should contain many files, for example,
NCAlgebra.m              CEEP  
Lots of files starting with NC.  
Lots of files ending with Extra.  
Files related to TeX.  

The most reliable way to find out the names of the NC-files actually used for computation is to consult the file NCAlgebra.m. It automatically loads them.

The files which have the suffix “Extra.” were small programs that are not fully tested and some of which are small specialized functions which may not be (are probably not) valuable to others. We include them just in case they may be valuable to someone and so that they can give examples of how someone may extend the code for their own purposes.