Difference between revisions of "CoCoA:CoCoA 3"
(9 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
+ | [[File:Cocoa3_0.png|thumb|500px|CoCoA 3.6 running on HP-UX.]] | ||
+ | |||
== About == | == About == | ||
Line 4: | Line 6: | ||
== Sub versions == | == Sub versions == | ||
− | * CoCoA 3.0b (1995) | + | * CoCoA 3.0b (June 1995) |
* CoCoA 3.02b (1996) | * CoCoA 3.02b (1996) | ||
* CoCoA 3.3 (1997) | * CoCoA 3.3 (1997) | ||
Line 12: | Line 14: | ||
* CoCoA 3.7 (June 1999) | * CoCoA 3.7 (June 1999) | ||
− | == | + | == The Header == |
+ | The header is defined in <code>lib/cocoa/coclib.pkg</code> and looks like this: | ||
+ | |||
+ | <pre> | ||
+ | ------------------- ------------------------------------------ | ||
+ | ------ ))) ---- CoCoA 3 release X.X | ||
+ | -- ___(((_ _ -- | ||
+ | -- | | ) -- by A.Capani, G.Niesi, L.Robbiano | ||
+ | -- | CoCoA |/ -- | ||
+ | -- | 3 | --- contributors : type "Contrib();" | ||
+ | --- \_____/ ----- online help : type "Man();" | ||
+ | ----- ------- release notes : type "RelNotes();" | ||
+ | ------------------- ------------------------------------------ | ||
+ | </pre> | ||
+ | |||
+ | == The Interface == | ||
+ | |||
+ | [[File:Cocoa3_1.png|thumb|500px|CoCoA 3.6 running a few basic functions on HP-UX.]] | ||
+ | |||
+ | A full description of the architecture of CoCoA 3 is presented in Antonio Capani's Ph.D. Thesis ([http://www.disi.unige.it/dottorato/THESES/2000-02-CapaniA.ps.gz gzipped postscript format]). | ||
+ | |||
+ | A prototypal version of the Web interface has been already demonstrated during the Workshop "Calolo Simbolio" (November 20 - 21, 1995, Genova Italy) and during the Conferene "Algorithmi Algebrai Geometry and Singularity Theory" (Germany, Jan 22 - 26, 1996, Shloss Dagstuhl). | ||
+ | |||
+ | |||
+ | == The People Behind It == | ||
+ | The CoCoA 3 header lists three main authors: | ||
* Antonio Capani | * Antonio Capani | ||
* Gianfranco Niesi | * Gianfranco Niesi | ||
+ | * Lorenzo Robbiano | ||
+ | Furthermore, the command <code>Contrib()</code> lists the following contributors: | ||
+ | * John Abbott (for factorization and linear algebra) | ||
+ | * Anna Bigatti (for Hilbert-Poincare series, toric ideals) | ||
+ | * David Perkinson (for the online help system) | ||
+ | * Alessandro Polverini (for Windows 95 interface, porting to DOS) | ||
+ | * Massimo Caboara (testing) | ||
+ | * Martin Kreuzer (testing) | ||
== Features == | == Features == | ||
− | + | ===CoCoA 3.0b=== | |
− | CoCoA 3.0b | ||
* portability (90% of the system is independent of the platform) | * portability (90% of the system is independent of the platform) | ||
Line 26: | Line 60: | ||
* arbitrary precision for integer and rational numbers | * arbitrary precision for integer and rational numbers | ||
− | CoCoA 3.3 Main new features: | + | ===CoCoA 3.02b=== |
+ | |||
+ | * [ToDo] | ||
+ | |||
+ | ===CoCoA 3.3=== | ||
+ | Main new features: | ||
* interactive Gröbner framework; | * interactive Gröbner framework; | ||
Line 33: | Line 72: | ||
* new I/O management (devices). | * new I/O management (devices). | ||
− | CoCoA 3.4 Main new features: | + | ===CoCoA 3.4=== |
+ | Main new features: | ||
* ring maps; | * ring maps; | ||
Line 41: | Line 81: | ||
* online help. | * online help. | ||
− | CoCoA 3.5 Main new features: | + | ===CoCoA 3.5=== |
+ | Main new features: | ||
* improvement of CoCoAL language; | * improvement of CoCoAL language; | ||
Line 50: | Line 91: | ||
* new packages from contributors (integer programming, special varieties, radical). | * new packages from contributors (integer programming, special varieties, radical). | ||
− | CoCoA 3.6 Main new features: | + | ===CoCoA 3.6=== |
+ | Main new features: | ||
* a new package for computations with ideals of points; | * a new package for computations with ideals of points; | ||
Line 57: | Line 99: | ||
* the possibility to have a system-wide Unix/Linux installation. | * the possibility to have a system-wide Unix/Linux installation. | ||
− | CoCoA 3.7 Main new features: | + | ===CoCoA 3.7=== |
+ | Main new features: | ||
* Multivariate factorization over the integers; | * Multivariate factorization over the integers; | ||
Line 63: | Line 106: | ||
* faster computation of operations on ideals (intersections, saturations,...); | * faster computation of operations on ideals (intersections, saturations,...); | ||
* faster computation of the determinant of matrices with integer entries | * faster computation of the determinant of matrices with integer entries | ||
− | * new packages from contributors (algmorph, galois). | + | * new packages from contributors (algmorph, galois). |
− | A | + | ==Platforms & Interfaces== |
+ | |||
+ | Systems that were for sure supported: | ||
+ | * Macintosh 68k computers using MacOS (labelled <code>mac_68k</code>) | ||
+ | * Macintosh Power PC computers (labelled <code>mac_ppc</code>) | ||
+ | * PC computers with DOS or Windows 3.11 (labelled <code>pc_dos</code>) | ||
+ | * PC computers running Windows 95 or Windows NT (labelled <code>pc_win32</code>) | ||
+ | * PC computers running the LINUX operating system (labelled <code>pc_linux</code>) | ||
+ | * SUN workstations using the Sun 4 operating system (labelled <code>sun_sun4</code>) | ||
+ | * SUN workstations using the Solaris operating system (labelled <code>sun_solaris</code>) | ||
+ | * DEC Alpha workstations (labelled <code>dec_alpha</code>) | ||
+ | * HP workstations (running HP-UX; labelled <code>hp</code>) | ||
+ | * SGI IRIX-based systems (probably only models that are also supported by IRIX 6.5.23+ releases and hence are 64-bit; in cooperation with [http://www.eurandom.nl/ EURANDOM]; labelled <code>irix64</code>) | ||
+ | |||
+ | There was also [http://web.archive.org/web/20001007124838/http://www.physik.uni-regensburg.de/~krm03530/WinCoCoA.html WinCoCoA] by "a small group of mathematicians at Universität Regensburg", possibly including Alessandro Polverini and Martin Kreuzer (but probably more?!). | ||
+ | |||
+ | [ToDo: Any more information?] | ||
+ | |||
+ | ==Running CoCoA 3 Today== | ||
+ | |||
+ | There are two main ways of running CoCoA 3 (that we currently know of), which both have two sub-options: | ||
+ | * Running CoCoA 3.7 on SGI IRIX | ||
+ | * Running CoCoA 3.6 on HP-UX | ||
+ | |||
+ | The sub-options are for both: | ||
+ | * Running CoCoA 3 on original hardware | ||
+ | * Emulating the old system and running CoCoA 3 on it | ||
+ | |||
+ | If you still have either a HP workstation running HP-UX or a SGI IRIX-based system, you can (probably) run CoCoA 3 on it, congrulations! | ||
+ | From my (Nico Mexis) experience, however, you need to be careful when buying hardware specifically for this purpose! The following subsubsections will explain why. | ||
+ | |||
+ | If you don't have such a system, you can try to emulate it, as described below! | ||
+ | |||
+ | ===SGI IRIX=== | ||
+ | |||
+ | The best way (as of 2024) to emulate a SGI IRIX-based system is to use [https://www.mamedev.org/ MAME]. | ||
+ | A beautiful guide to how to set up MAME to run IRIX can be found for example [https://sgi.neocities.org/ here]. | ||
+ | |||
+ | HOWEVER! CoCoA 3.7 is refusing to run on both images that are linked there (5.3 and 6.5.22). | ||
+ | The specific error message is: "Program not supported by architecture", which makes me (Nico Mexis) believe that CoCoA 3.7 requires some newer SGI IRIX-based machine. | ||
+ | The guide linked above can only emulate the SGI Indy and SGI Indigo², both of which do not work with the specific build of CoCoA 3.7. | ||
+ | |||
+ | Things I have already tried so you do not have to: | ||
+ | * Installing the Development Foundation CD (probably required anyway since it contains <code>libm.so</code>, which does not seem to be pre-installed) | ||
+ | * Requickstarting the binary exectuable (using <code>rqsread</code> and <code>rqsall</code>) | ||
+ | * Trying to emulate other systems (not possible in MAME) | ||
+ | |||
+ | If you want to take a shot yourself, just follow the guide linked above and try to run CoCoA 3.7 on it. If you succeed, please let us know! | ||
+ | A few tips to get started: | ||
+ | * In order to transfer the required files to the emulated system, you can use the <code>ftp</code> command in the IRIX shell (do not forget to enable passive mode right away using <code>pass</code>) | ||
+ | * Another way to do this is to generate a ISO 9660 filesystem image using [https://wiki.debian.org/genisoimage genisoimage] and then mount it in the emulated system as a CD using MAME's built-in menu | ||
+ | * I have used MAME 0.265, but newer versions should work as well (if not better)! I had to use a few special arguments to be able to boot into SGI IRIX properly, though (which severly slow down the emulation - most probably due to [https://github.com/mamedev/mame/issues/11124 this bug]): <code>mame indy_4610 -gio64_gfx xl24 -hard1 irix65.chd -window -nodrc -throttle -mouseprovider dinput</code> | ||
+ | * Emulating the Indigo² seems to be rather WIP - so stick with the Indy - the architecture is the same anyway | ||
+ | |||
+ | Good luck! :) | ||
+ | |||
+ | ===HP-UX=== | ||
+ | |||
+ | This is probably the easier way to run CoCoA 3 today, as emulating an HP workstation running HP-UX is very straightforward: | ||
+ | Most of the things needed are written in [https://dehydrations18.rssing.com/chan-9990986/article181.html this guide]. | ||
+ | |||
+ | A few things to note: | ||
+ | * I was using QEMU 9.0.0 and it seems like the speed has improved since the article above was written. The entire installation took less than half an hour on my (Nico Mexis) system! | ||
+ | * Just like in SGI IRIX, use the <code>ftp</code> command to transfer the required files to the emulated system (again, in passive mode as described above) - or a ISO 9660 filesystem image as CDROM | ||
+ | * Then use <code>gunzip</code> and <code>tar</code> to extract the CoCoA 3.6 files | ||
+ | * To change the CDROM during HP-UX installation, use [https://www.linux-kvm.org/page/Change_cdrom these commands] | ||
+ | * My specific command line to run the emulator was: <code>qemu-system-hppa -boot d -drive if=scsi,bus=0,index=6,file=disk.img,format=qcow2 -m 512 -d nochain -cdrom hp-ux-1of4.iso -net nic,model=tulip -net user -monitor stdio</code> | ||
+ | |||
+ | With that being said, you should also be able to catch a glimpse of CoCoA 3.6 running on HP-UX before your very own eyes! :) | ||
+ | |||
+ | ==Downloads== | ||
+ | |||
+ | CoCoA 3.6 is still available for download for HP workstations (running HP-UX) [https://cocoa.dima.unige.it/cocoa/download/index4.html here]. | ||
+ | |||
+ | CoCoA 3.7 can also be downloaded there, but only for systems running SGI IRIX. | ||
+ | |||
+ | [ToDo: Are there more downloads somewhere? The WaybackMachine has not archived any more... Probably, the rest were only available on floppy disks or on the FTP server that was advertised back then... A few weeks later and indeed, there are more downloads still available, but the links are not listed anywhere, so one has to "brute-force" them. Otherwise, there are also a few more sources listed below!] | ||
+ | ==Sources== | ||
+ | For anyone who is interested: | ||
+ | * [http://web.archive.org/web/*/cocoa.dima.unige.it*] | ||
+ | * [http://web.archive.org/web/19980109184708/http://cocoa.dima.unige.it:80/] | ||
+ | * [http://web.archive.org/web/*/http://www.physik.uni-regensburg.de/~krm03530/*] | ||
+ | * [http://web.archive.org/web/20000128093234/http://www.physik.uni-regensburg.de:80/~krm03530/WinCoCoA.html] and also the newer archives | ||
+ | * [http://web.archive.org/web/19981206220942/http://www.physik.uni-regensburg.de/%7Ekrm03530/cocoa/distribute.html] | ||
+ | * [http://web.archive.org/web/19981207060016/http://ideal.dima.unige.it/distribute.html] | ||
+ | * [http://web.archive.org/web/19960510145115/http://lancelot.dima.unige.it:80/cocoa.html] | ||
+ | * [http://web.archive.org/web/*/http://fsmath.mathematik.uni-dortmund.de/~mabshoff/*] | ||
+ | * Still working WinCoCoA downloads: [http://web.archive.org/web/20020402164802/http://www.uni-regensburg.de/Fakultaeten/nat_Fak_I/Kreuzer/WinCoCoA.html] | ||
[[Category:History]] | [[Category:History]] |
Latest revision as of 20:26, 30 June 2024
About
CoCoA 3 was developed from 1995 (first release) to 2000.
Sub versions
- CoCoA 3.0b (June 1995)
- CoCoA 3.02b (1996)
- CoCoA 3.3 (1997)
- CoCoA 3.4 (March 1998)
- CoCoA 3.5 (July 1998)
- CoCoA 3.6 (December 1998)
- CoCoA 3.7 (June 1999)
The Header
The header is defined in lib/cocoa/coclib.pkg
and looks like this:
------------------- ------------------------------------------ ------ ))) ---- CoCoA 3 release X.X -- ___(((_ _ -- -- | | ) -- by A.Capani, G.Niesi, L.Robbiano -- | CoCoA |/ -- -- | 3 | --- contributors : type "Contrib();" --- \_____/ ----- online help : type "Man();" ----- ------- release notes : type "RelNotes();" ------------------- ------------------------------------------
The Interface
A full description of the architecture of CoCoA 3 is presented in Antonio Capani's Ph.D. Thesis (gzipped postscript format).
A prototypal version of the Web interface has been already demonstrated during the Workshop "Calolo Simbolio" (November 20 - 21, 1995, Genova Italy) and during the Conferene "Algorithmi Algebrai Geometry and Singularity Theory" (Germany, Jan 22 - 26, 1996, Shloss Dagstuhl).
The People Behind It
The CoCoA 3 header lists three main authors:
- Antonio Capani
- Gianfranco Niesi
- Lorenzo Robbiano
Furthermore, the command Contrib()
lists the following contributors:
- John Abbott (for factorization and linear algebra)
- Anna Bigatti (for Hilbert-Poincare series, toric ideals)
- David Perkinson (for the online help system)
- Alessandro Polverini (for Windows 95 interface, porting to DOS)
- Massimo Caboara (testing)
- Martin Kreuzer (testing)
Features
CoCoA 3.0b
- portability (90% of the system is independent of the platform)
- programmability (CoCoAL language)
- arbitrary precision for integer and rational numbers
CoCoA 3.02b
- [ToDo]
CoCoA 3.3
Main new features:
- interactive Gröbner framework;
- new algorithms for minimal free resolutions;
- packages;
- new I/O management (devices).
CoCoA 3.4
Main new features:
- ring maps;
- improvement of CoCoAL language;
- univariate factorization over Z;
- computation of toric ideals;
- online help.
CoCoA 3.5
Main new features:
- improvement of CoCoAL language;
- new memory management (simpler way to access variables of different rings);
- autoloading and autoinitializing of packages;
- univariate factorization over Z, Q, and Z/pZ for p prime;
- an updated online help system and an html manual;
- new packages from contributors (integer programming, special varieties, radical).
CoCoA 3.6
Main new features:
- a new package for computations with ideals of points;
- faster computation of Hilbert functions and Poincare series (the POINCARE panel is now unnecessary and so has been disabled);
- a new version of the package for computing radicals of ideals (which now works in greater generality);
- the possibility to have a system-wide Unix/Linux installation.
CoCoA 3.7
Main new features:
- Multivariate factorization over the integers;
- utility functions for modules/vectors (IsTerm, LM, LPP, LPos, Monomials/IsToPos..);
- faster computation of operations on ideals (intersections, saturations,...);
- faster computation of the determinant of matrices with integer entries
- new packages from contributors (algmorph, galois).
Platforms & Interfaces
Systems that were for sure supported:
- Macintosh 68k computers using MacOS (labelled
mac_68k
) - Macintosh Power PC computers (labelled
mac_ppc
) - PC computers with DOS or Windows 3.11 (labelled
pc_dos
) - PC computers running Windows 95 or Windows NT (labelled
pc_win32
) - PC computers running the LINUX operating system (labelled
pc_linux
) - SUN workstations using the Sun 4 operating system (labelled
sun_sun4
) - SUN workstations using the Solaris operating system (labelled
sun_solaris
) - DEC Alpha workstations (labelled
dec_alpha
) - HP workstations (running HP-UX; labelled
hp
) - SGI IRIX-based systems (probably only models that are also supported by IRIX 6.5.23+ releases and hence are 64-bit; in cooperation with EURANDOM; labelled
irix64
)
There was also WinCoCoA by "a small group of mathematicians at Universität Regensburg", possibly including Alessandro Polverini and Martin Kreuzer (but probably more?!).
[ToDo: Any more information?]
Running CoCoA 3 Today
There are two main ways of running CoCoA 3 (that we currently know of), which both have two sub-options:
- Running CoCoA 3.7 on SGI IRIX
- Running CoCoA 3.6 on HP-UX
The sub-options are for both:
- Running CoCoA 3 on original hardware
- Emulating the old system and running CoCoA 3 on it
If you still have either a HP workstation running HP-UX or a SGI IRIX-based system, you can (probably) run CoCoA 3 on it, congrulations! From my (Nico Mexis) experience, however, you need to be careful when buying hardware specifically for this purpose! The following subsubsections will explain why.
If you don't have such a system, you can try to emulate it, as described below!
SGI IRIX
The best way (as of 2024) to emulate a SGI IRIX-based system is to use MAME. A beautiful guide to how to set up MAME to run IRIX can be found for example here.
HOWEVER! CoCoA 3.7 is refusing to run on both images that are linked there (5.3 and 6.5.22). The specific error message is: "Program not supported by architecture", which makes me (Nico Mexis) believe that CoCoA 3.7 requires some newer SGI IRIX-based machine. The guide linked above can only emulate the SGI Indy and SGI Indigo², both of which do not work with the specific build of CoCoA 3.7.
Things I have already tried so you do not have to:
- Installing the Development Foundation CD (probably required anyway since it contains
libm.so
, which does not seem to be pre-installed) - Requickstarting the binary exectuable (using
rqsread
andrqsall
) - Trying to emulate other systems (not possible in MAME)
If you want to take a shot yourself, just follow the guide linked above and try to run CoCoA 3.7 on it. If you succeed, please let us know! A few tips to get started:
- In order to transfer the required files to the emulated system, you can use the
ftp
command in the IRIX shell (do not forget to enable passive mode right away usingpass
) - Another way to do this is to generate a ISO 9660 filesystem image using genisoimage and then mount it in the emulated system as a CD using MAME's built-in menu
- I have used MAME 0.265, but newer versions should work as well (if not better)! I had to use a few special arguments to be able to boot into SGI IRIX properly, though (which severly slow down the emulation - most probably due to this bug):
mame indy_4610 -gio64_gfx xl24 -hard1 irix65.chd -window -nodrc -throttle -mouseprovider dinput
- Emulating the Indigo² seems to be rather WIP - so stick with the Indy - the architecture is the same anyway
Good luck! :)
HP-UX
This is probably the easier way to run CoCoA 3 today, as emulating an HP workstation running HP-UX is very straightforward: Most of the things needed are written in this guide.
A few things to note:
- I was using QEMU 9.0.0 and it seems like the speed has improved since the article above was written. The entire installation took less than half an hour on my (Nico Mexis) system!
- Just like in SGI IRIX, use the
ftp
command to transfer the required files to the emulated system (again, in passive mode as described above) - or a ISO 9660 filesystem image as CDROM - Then use
gunzip
andtar
to extract the CoCoA 3.6 files - To change the CDROM during HP-UX installation, use these commands
- My specific command line to run the emulator was:
qemu-system-hppa -boot d -drive if=scsi,bus=0,index=6,file=disk.img,format=qcow2 -m 512 -d nochain -cdrom hp-ux-1of4.iso -net nic,model=tulip -net user -monitor stdio
With that being said, you should also be able to catch a glimpse of CoCoA 3.6 running on HP-UX before your very own eyes! :)
Downloads
CoCoA 3.6 is still available for download for HP workstations (running HP-UX) here.
CoCoA 3.7 can also be downloaded there, but only for systems running SGI IRIX.
[ToDo: Are there more downloads somewhere? The WaybackMachine has not archived any more... Probably, the rest were only available on floppy disks or on the FTP server that was advertised back then... A few weeks later and indeed, there are more downloads still available, but the links are not listed anywhere, so one has to "brute-force" them. Otherwise, there are also a few more sources listed below!]
Sources
For anyone who is interested: