diff --git a/book/2004-07.txt b/book/2004-07.txt new file mode 100644 index 0000000..53e0190 --- /dev/null +++ b/book/2004-07.txt @@ -0,0 +1,12688 @@ +\start +Date: Thu, 1 Jul 2004 10:07:33 +0000 +From: Martin Rubey +To: David MENTRE +Subject: Re: [Axiom-developer] Complex exponentiation and 0 + +David MENTRE writes: + > Martin Rubey writes: + > + > > If all of this is correct, could somebody who is entitled to do so + > > + > > * add a comment to [bugs #9313] 0^0 handled inconsistently that it is not + > > a bug, (maybe simply include a pointer to this mail) but there are related + > > bugs described in [bugs #9424] Bug in handling 0^0 in Axiom + > > + > > * close it. + > + > Done. + +Thank you! + > + > In fact, I created bug #9424 before seeing bug #9313. + +Yes, that's what I thought... + + > Martin, if you want to take care of bugs, just create an account on Savannah + > and I'm pretty sure Tim will aggree to give you admin accesses. + +Hmm, not really. The reason for this is, I believe that agreement is very +important with respect to applying patches, closing bug reports and so on. And +I know that I'm very often uncertain whether agreement has been reached or not. +After all, that's why I wrote the summary to the bug report above. + +In fact this very issue "0^0" is a wonderful example: Although I'm confident +that it is, it is not obvious, at least, not to me, whether our reasoning is +correct. Maybe time will tell -- in case it is not :-) + +So the current setup works well for me: there are very few people with admin +access and I trust them not to take action before agreement has been reached. + +On the other hand, I am happy to summarize discussions where I'm able to. + +\start +Date: Thu, 1 Jul 2004 14:41:28 +0200 +From: Magnus Larsson +To: camm@enhanched.com +Subject: [Axiom-developer] Axiom cvs 040624 build error + +Hello Camm, + +I have downloaded cvs 040701 and configured --enable-debug. +The build fails, as before. + +The commands +cd lsp/gcl-2.6.2/unixport +gdb saved_gcl, r, (load "../gcl-tk/tkl.o) + +did not reproduce the crash. + +GNU gdb 6.1.1 +Copyright 2004 Free Software Foundation, Inc. +GDB is free software, covered by the GNU General Public License, and you are +welcome to change it and/or distribute copies of it under certain conditions. +Type "show copying" to see the conditions. +There is absolutely no warranty for GDB. Type "show warranty" for details. +This GDB was configured as "i686-pc-linux-gnu"...Using host libthread_db +library "/lib/libthread_db.so.1". + +(gdb) r +Starting +program: /home/magnus/usr/source/axiom/cvs-040701/axiom/lsp/gcl-2.6.2/unixport/saved_gcl + +>(load "../gcl-tk/tkl.o") + +Loading ../gcl-tk/tkl.o +start address -T 0x84a8ba0 Finished loading ../gcl-tk/tkl.o +59684 + +> + +The next set of instructions: +q (from gdb) +cd ../gcl-tk/demos, r, (load "../tkl.o")(TK::GET-AUTOLOADS) (directory +"*.lisp")) + +What would you like to run in gdb? Is the gdb command missing? + +\start +Date: 01 Jul 2004 09:17:44 -0400 +From: Camm Maguire +To: Magnus Larsson +Subject: Re: [Axiom-developer] Axiom cvs 040624 build error + +Greetings! + +Magnus Larsson writes: + +> Hello Camm, +> +> I have downloaded cvs 040701 and configured --enable-debug. +> The build fails, as before. +> +> The commands +> cd lsp/gcl-2.6.2/unixport +> gdb saved_gcl, r, (load "../gcl-tk/tkl.o) +> +> did not reproduce the crash. +> +> GNU gdb 6.1.1 +> Copyright 2004 Free Software Foundation, Inc. +> GDB is free software, covered by the GNU General Public License, and you are +> welcome to change it and/or distribute copies of it under certain conditions. +> Type "show copying" to see the conditions. +> There is absolutely no warranty for GDB. Type "show warranty" for details. +> This GDB was configured as "i686-pc-linux-gnu"...Using host libthread_db +> library "/lib/libthread_db.so.1". +> +> (gdb) r +> Starting +> program: /home/magnus/usr/source/axiom/cvs-040701/axiom/lsp/gcl-2.6.2/unixport/saved_gcl +> +> >(load "../gcl-tk/tkl.o") +> +> Loading ../gcl-tk/tkl.o +> start address -T 0x84a8ba0 Finished loading ../gcl-tk/tkl.o +> 59684 +> +> > +> +> The next set of instructions: +> q (from gdb) +> cd ../gcl-tk/demos, r, (load "../tkl.o")(TK::GET-AUTOLOADS) (directory +> "*.lisp")) +> +> What would you like to run in gdb? Is the gdb command missing? +> + +Yes, sorry for the omission. + +\start +Date: 01 Jul 2004 10:13:22 -0400 +From: Camm Maguire +To: daly@idsi.net +Subject: [Axiom-developer] Re: NX and exec-shield kernel summary + +Greetings, and thanks for this. Gave it a quick once over, and don't +expect this to give us trouble, but of course could be wrong. The +emphasis in these patches appears to be executable permissions in +various memory areas, but this has never posed a problem to GCL, as we +explicitly mprotect PROT_EXEC anything we need (or should be anyway). +The problem for us is rather in the seldom mentioned companion +'feature' in that the semantics of brk have been changed to return a +randomized address. We're even ok with this up to the point of +emacs' unexec, which is used in saving a new image. We now compile +out of the box on machines using this by detecting it at configure +time, and compiling into main the 'i386 personality' setting calls +followed by a reexec. + +The danger for us might be that someday people might want to close +this runtime exception possibility which only 'broken legacy apps' +might need anyway and leave us stranded. Luckily, GNU emacs is our +exact bulwark in this area -- we should be able to follow whatever +procedure allows a gnu emacs build inside of gcl proper. + +I'm not sure how important this may be, but I think that a certain +level of sustained noise from gcl/maxima/acl2/axiom users propagating +upstream about our reliance on this might forestall a future +'enhancement' which breaks our build entirely. Was even dreaming +about firing off an email from within gcl at each i386 personality +set. Don't worry, just dreaming :-). + +If you ever have access to a machine with these new patches and want +help in checking it out, please let me know. + +Take care, + +root writes: + +> Camm, +> +> I follow the Linux Kernel mailing list and this was a summary +> posting of the NX (no execute) and exec-shield status: +> +> +> 4. 'NX' Security Features Coming To 2.6 +> +> 2 Jun - 8 Jun (66 posts) Archive Link: "[announce] [patch] NX (No +> eXecute) support for x86, 2.6.7-rc2-bk2" +> +> Topics: Executable File Format, Microsoft, Security, Spam, Virtual +> Memory People: Ingo Molnar, Linus Torvalds, Doug McNaught, Jakub +> Jelinek, Brian Gerst, Christoph Hellwig, William Lee Irwin III, Andi +> Kleen, Andy Lutomirski, Arjan van de Ven, Gerhard Mack, Jun Nakajima, +> Rusty Russell +> +> Ingo Molnar said on behalf of Red Hat: +> +> we'd like to announce the availability of the following kernel patch: +> +> http://redhat.com/~mingo/nx-patches/nx-2.6.7-rc2-bk2-AE +> +> which makes use of the 'NX' x86 feature pioneered in AMD64 CPUs and +> for which support has also been announced by Intel. (other x86 CPU +> vendors, Transmeta and VIA announced support as well. Windows support +> for NX has also been announced by Microsoft, for their next service +> pack.) The NX feature is also being marketed as 'Enhanced Virus +> Protection'. This patch makes sure Linux has full support for this +> hardware feature on x86 too. +> +> What does this patch do? The pagetable format of current x86 CPUs does +> not have an 'execute' bit. This means that even if an application maps +> a memory area without PROT_EXEC, the CPU will still allow code to be +> executed in this memory. This property is often abused by exploits +> when they manage to inject hostile code into this memory, for example +> via a buffer overflow. +> +> The NX feature changes this and adds a 'dont execute' bit to the PAE +> pagetable format. But since the flag defaults to zero (for +> compatibility reasons), all pages are executable by default and the +> kernel has to be taught to make use of this bit. +> +> If the NX feature is supported by the CPU then the patched kernel +> turns on NX and it will enforce userspace executability constraints +> such as a no-exec stack and no-exec mmap and data areas. This means +> less chance for stack overflows and buffer-overflows to cause +> exploits. +> +> furthermore, the patch also implements 'NX protection' for kernelspace +> code: only the kernel code and modules are executable - so even +> kernel-space overflows are harder (in some cases, impossible) to +> exploit. Here is how kernel code that tries to execute off the stack +> is stopped: +> +> kernel tried to access NX-protected page - exploit attempt? (uid: 500) +> Unable to handle kernel paging request at virtual address f78d0f40 +> printing eip: +> ... +> +> The patch is based on a prototype NX patch written for 2.4 by Intel - +> special thanks go to Suresh Siddha and Jun Nakajima @ Intel. The +> existing NX support in the 64-bit x86_64 kernels has been written by +> Andi Kleen and this patch is modeled after his code. +> +> Arjan van de Ven has also provided lots of feedback and he has +> integrated the patch into the Fedora Core 2 kernel. Test rpms are +> available for download at: +> +> http://redhat.com/~arjanv/2.6/RPMS.kernel/ +> +> the kernel-2.6.6-1.411 rpms have the NX patch applied. +> +> here's a quickstart to recompile the vanilla kernel from source with +> the NX patch: +> +> http://redhat.com/~mingo/nx-patches/QuickStart-NX.txt +> +> There were a lot of technical suggestions and comments from folks like +> Christoph Hellwig, Andi Kleen, Rusty Russell, and Gerhard Mack. Also, +> Linus Torvalds asked: +> +> Just out of interest - how many legacy apps are broken by this? I +> assume it's a non-zero number, but wouldn't mind to be happily +> surprised. +> +> And do we have some way of on a per-process basis say "avoid NX +> because this old version of Oracle/flash/whatever-binary-thing doesn't +> run with it"? +> +> In answer to the first question, Ingo and Arjan van de Ven (also from +> Red Hat) confirmed that the amount of legacy breakage was in fact +> zero. Ingo also explained that just in case, any breakage from this +> would be less than other breakage already introduced by Red Hat. He +> put it, "in the full install of FC1 and FC2 the number is zero - and +> Fedora has exec-shield which does a couple of things more: it makes +> the heap non-executable as well [this broke X], it randomizes the +> address-space layout and has a 4:4 VM [which broke the Sun JVM]." Doug +> McNaught added, close by, "Lisp systems like CMUCL and SBCL (plus +> commercial Lisps) had problems with FC1 due to execshield. They tend +> to do things like compile code on the fly to heap memory and expect to +> be able to run it." And Jakub Jelinek (also from Red Hat) replied, +> "They will still work, as long as you don't recompile them with recent +> toolchain. When you recompile them, they either needs to be taught to +> DTRT (i.e. use mmap with PROT_EXEC for executable stuff), or can be +> linked with -Wl,-z,execstack to mark them as needing executable +> stack. prelink package also contains execstack(8) utility which can be +> used on already linked binaries/shared libraries." +> +> To Linus' second question, about the possibility of per-process +> avoidance of NX for compatibility reasons, Ingo explained: +> +> we have three mechanisms for this in Fedora: +> +> 1. +> +> the PT_GNU_STACK flag itself - you can turn executability on/off +> compile-time or even after the fact via the execstack(8) utility +> Jakub wrote. This only affects the stack's executability - if an +> application assumes a non-PROT_EXEC mmap() can be executed it +> might still break with NX - but based on experience with Fedora +> Core i'd say there's almost no such application. +> +> this method works in 2.6 too, since it supports +> PT_GNU_STACK. gcc's PT_GNU_STACK mechanism is very conservative +> - e.g. if an application does an asm() then gcc assumes that it +> might rely on stack executability and emits the X +> flag. [applications can then turn this off in the source if +> stack executability is not required.] Likewise, if gcc emits +> trampolines then the X flag is emitted too. (glibc knows about +> PT_GNU_STACK all across - so e.g. if a nonexec stack application +> dlopen()s a library that needs stack executability then glibc +> makes the stack executable on the fly via +> PROT_GROWSDOWN/GROWSUP.) +> 2. +> +> via a runtime method: via the i386 personality. So an +> application can trigger the 'legacy' Linux VM layout by e.g +> doing 'i386 java ./test.class'. +> +> this is a hack in Fedora - we wanted to have a finegrained +> runtime mechanism just in case. But it would be nice to have +> this upstream too - e.g. via a PERSONALITY_3G? +> +> 3. +> +> via a kernel boot parameter (exec-shield=0) +> +> with the NX patch this becomes noexec=off [the same flag works +> on x86_64 too]. This method is the most inflexible one, and is a +> last-resort thing. (Fedora also has a runtime global switch to +> turn off the VM layout changes.) +> +> here's a list of applications that we had to fix/work around in Fedora +> when the VM layout changed: +> +> * emacs _rebuild_. (it coredumps itself during build ... xemacs is OK.) +> +> * some JDKs. Since they generate code and try to be as fast as +> possible they tend to rely more on VM details than normal +> applications. +> +> * X's module loader assumed that brk was executable. (fixed) +> +> * Wine. (it implements another OS so it's by definition very +> sensitive to layout changes.) +> +> most of the breakages were unclean x86-only code that would have +> broken if ported over to 64-bit anyway. +> +> old, legacy applications dont have the PT_GNU_STACK flag so they all +> work fine. +> +> Regarding Wine's breakage when the Virtual Memory Subsystem changed, +> Brian Gerst disagreed with Ingo's explanation, and remarked, "Wine +> breaks because of the part of exec-shield that relocates shared libs +> to low addresses, where the (stripped) Windows binaries expect to be +> loaded at. NX stack doesn't affect it." Ingo accepted this, adding, "I +> think Wine could get around this by creating a dummy ELF section in +> the Wine binary that covers the first 1GB or so. Wine could still use +> ordinary dynamic libraries - those would go above that 1GB. Then once +> Wine has loaded up it can munmap() that first 1GB. (this would not +> work if Wine has to dlopen() new libraries after this phase - does +> that happen?)" But Christoph Hellwig suggested, "Why can't wine just +> implement it's own binfmt_pecoff? Sounds like the much simpler +> solutuion." And William Lee Irwin III said, "I'd be in favor of this +> also. An executable format with wide enough usage is worth adding +> kernel support for loading it." +> +> Ingo replied also to his own long post, dealing with his item 2 above, +> the runtime method of triggering the legacy Linux VM subsystem. He +> said: +> +> i've attached a patch that provides a cleaner solution. It does 3 changes: +> +> * it adds a ADDR_SPACE_EXECUTABLE bit to the personality 'bug +> bits' section. This bit if set will make the stack +> executable. (if in the future we decide to make the malloc() +> heap non-exec [which i definitely think we should], that +> property will also listen to this bit.) +> +> * in elf.h, it changes the x86 personality inheritance code to +> match that of x86_64 - which is a much saner method. This means +> if a complex app that does exec()s will all run with the +> personality of the parent(s). +> +> * in exec.c, since address-space executability is a +> security-relevant item, we must clear the personality when we +> exec a setuid binary. I believe this is also a (small) security +> robustness fix for current 64-bit architectures. +> +> (the patch also adds a break to the elf_ex.e_phnum loop - there can +> only be one STACK header in the binary and once we found it we should +> not iterate through the remaining program headers (if any).) +> +> we didnt want to add a non-standard personality flag to Fedora so we +> abused PER_LINUX32 as the compatibility flag - but this only works on +> x86. With the ADDR_SPACE_EXECUTABLE flag there would be a standard +> method to fall back to 'legacy' executability assumptions Linux +> applications might make. +> +> Andi replied to the third item in the list above, regarding clearing +> the 'personality' when executing a setuid binary. He said, "This means +> I cannot easily force an i386 uname or 3GB address space on suid +> programs anymore on x86-64. While in theory it could be a small +> security problem I think the utility is much greater. It's hard to see +> how setting NX could cause a security hole. The program may crash, but +> it is unlikely to be exploitable." Andy Lutomirski replied: +> +> The whole point of NX, though, is that it prevents certain classes of +> exploits. If a setuid binary is vulnerable to one of these, then +> Ingo's patch "fixes" it. Your approach breaks that. +> +> I don't like Ingo's fix either, though. At least it should check +> CAP_PTRACE or some such. A better fix would be for LSM to pass down a +> flag indicating a change of security context. I'll throw that in to my +> caps/apply_creds cleanup, in case that ever gets applied. +> +> Andi thought it would be overkill to require an LSM module, but he +> agreed that Andy had a good point, although Andi also objected, "that +> only applies to the NX personality bit. For the uname emulation it is +> not an issue. So maybe the dropping on exec should only zero a few +> selected personality bits, but not all." This made sense to Andy; and +> close by, Ingo said, "ok, how about the attached patch then? There's a +> PERS_DROP_ON_SUID mask that we drop upon setuid - all the other +> personality bits get inherited." Andy replied, "This is wrong on +> SELinux (and presumably with other LSMs). It also does unexpected +> things if you fail to exec a setuid executable." He posted his own +> patch, and Linus Torvalds came in with: +> +> Let's not do this at all. +> +> Anything that changes subtle behaviour at suid-execute time is just +> wrong. Imagine an app that has been tested in normal use, and then has +> a subtle bug when executed set-uid, simply because the address space +> layout changes. Or something that mysteriously works when you're root, +> but not when you're anything else. Ouch. +> +> I think we should just look at the executable itself, not whether it +> is suid. If the executable says it is "NX-approved", then it's +> NX-approved. End of story - just try to make sure that as many +> executables as possible get compiled with the newer compiler suite +> that enables it. +> +> Add a tool to let people turn on/off the NX bit on an executable if it +> turns out the executable can't work with it (let's say it was compiled +> and tested on a CPU without NX support), and everybody should be +> happy. You can have a trivial script that turns on the NX bit on all +> the legacy apps too, and then if testing shows iot wasn't a good idea, +> you can turn it off again on a per-executable basis. +> +> Ingo did a bunch more work, posting patches; and Arjan also remarked, +> "the prelink rpm on Fedora has such a tool" [to flip the NX bit on an +> executable] "already fwiw. (it's part of prelink because the elf +> manipulations needed are quite similar to the ones prelink does so +> infrastructure is shared)" Linus replied: +> +> Just for fun, can somebody that has the required hardware just test +> old apps with NX turned on? +> +> I know we used to put the signal handler trampoline on the stack, but +> these days that should all be handled with the magic executable +> syscall page, so _normally_ I don't think an old application should +> even really care. +> +> In fact, it would be interesting to just hear somebody running an +> older distribution with a new CPU and a new kernel, and see just how +> many programs need to be marked non-NX in "normal running". +> +> Arjan replied, "I know that in a FC1 full install there are less than +> 5 binaries that don't run with NX. (one uses nested functions in C and +> passes function pointers to the inner function around which causes gcc +> to emit a stack trampoline, and gcc then marks the binary as non-NX, +> the others have asm in them that we didn't fix in time to be properly +> marked)." And Linus said: +> +> If things are really that good, why are we even worrying about this? +> +> It sounds like we should just have NX on by default even for +> executables that don't have any NX info records, and have some way of +> marking the (very few) executables that don't want it. Maybe have the +> NX fault print a warning when it happens for an executable that +> defaulted to NX on. +> +> I think most people have seen the security disaster that causes most +> of the emails on the net to be spam. So this should be _trivial_ to +> explain to people when they complain about default behaviour breaking +> their strange legacy app. Especially if there's a trivial tool to add +> an elf section to make it work again. +> +> So instead of having complex things to try to turn NX on for suid, we +> should aim to turn ot on as widely as possible, _even_if_ that means +> that people who upgrade hardware might have to do some trivial MIS +> stuff. +> +> Make a kernel bootup option to default to legacy mode if somebody +> literally has trouble booting and fixing their thing due to "init" or +> similar being one of the problematic cases. Together with a printk() +> that says which executable triggered, it should be trivial to clean up +> a system. +> +> +> +> 5. exec-shield Patch Updated For 2.6.7-rc2-bk2 +> +> 2 Jun - 4 Jun (4 posts) Archive Link: "[patch] exec-shield patch for +> 2.6.7-rc2-bk2, integrated with NX" Topics: Big Memory Support People: +> Ingo Molnar, Christoph Hellwig, Joe Korty +> +> Ingo Molnar said: +> +> Here's the latest exec-shield patch for 2.6.7-rc2-bk2, integrated with +> the 'NX' feature (see the announcement from earlier today): +> +> http://redhat.com/~mingo/exec-shield/exec-shield-on-nx-2.6.7-rc2-bk2-A7 +> +> you first have to apply the NX patch, which can be found at: +> +> http://redhat.com/~mingo/nx-patches/nx-2.6.7-rc2-bk2-AE +> +> prebuild kernel RPMs for Fedora Core 2, with this latest version of +> exec-shield, are available at: +> +> http://redhat.com/~arjanv/2.6/RPMS.kernel/ +> +> (kernel-2.6.6-1.411 has this latest, NX-aware exec-shield.) +> +> if the CPU supports NX (and the kernel has been compiled with +> CONFIG_HIGHMEM64G) then exec-shield will use NX to provide page-level +> finegrained control over execution. On legacy CPUs that dont support +> NX the segment-limit method is used to control execution (in a coarser +> way). In the NX case the segment-limit is turned off altogether. +> +> e.g. on an Athlon64 box the boot message looks: +> +> NX (Execute Disable) protection: active +> +> on a CPU without NX the boot message is: +> +> NX (Execute Disable) protection: not present! +> Using x86 segment limits to approximate NX protection +> +> note: the NX patch will also protect against kernel-space code injection. +> +> all the other components of exec-shield are identical between NX and +> non-NX: the brk area is non-executable, libraries and PIE binaries are +> moved into the ascii-shield as much as possible, and all aspects of +> the address space are randomized. +> +> Christoph Hellwig thought the patch was too big and included more +> stuff than some folks would want. He asked, "Any chance to split this +> up a bit? Having the pure non-exec stack (and maybe heap) would be +> really nice while the randomization feature are a litte bit too much +> security by obscurity for my taste." Joe Korty disagreed, "It's no +> more security by obscurity than keeping your key secret is security by +> obscurity. (One can think of the randomization as a white-noise key)." +> Nevertheless, Ingo posted a new patch with the randomization code +> removed. But he added, "but i still think randomization is useful as a +> last-resort barrier, against worm-alike mass attacks. There's a huge +> difference between a 1-packet infection and a 2-hour brute-force +> search over broadband, in terms of the 'economy' of worms." + +\start +Date: Thu, 1 Jul 2004 09:40:36 -0400 +From: Tim Daly +To: martin.rubey@univie.ac.at +Subject: [Axiom-developer] Complex exponentiation and 0 + +Martin, + +>So the current setup works well for me: there are very few people with admin +>access and I trust them not to take action before agreement has been reached. + +I'm very conservative about changes where the algebra is concerned. +Even for "obvious to the average nosepicker" changes there are +hard and interesting mathematical questions. In general the updates +I've done have been done by the original authors of the packages +(Sit, Lambe, Rioboo, etc). I don't know enough mathematics to be +considered an authority. + +>On the other hand, I am happy to summarize discussions where I'm able to. + +I listen carefully to the discussion but unless somebody sends me a +diff -Naur old new +patch file and a test case or two it is unlikely that I'd make a change. + +However, if you author a new math package I'm happy to add it. +rinterp.spad.pamphlet exists in the current distribution and you +are the authority for it. It isn't "exposed" so people can't see +it unless they explicitly expose it but it is there. + +\start +Date: Thu, 1 Jul 2004 11:00:46 -0400 +From: Tim Daly +To: wyscc@cunyvm.cuny.edu +Subject: [Axiom-developer] coerce to SEX + +SEX, SEXOF, and SEXCAT are Axiom cover functions for lisp S-expressions. + +Thus if you want to construct something you have to build it up from +the primitives using things like: + +-> m:=[1::SEX, 2::SEX] + [1,2] + Type: List SExpression + +having this primitive you can "upgrade" it to a list structure with: + +-> n:=m::SEX + (1 2) + Type: SExpression + +and then you can operate on it: + +-> car(n) + 1 + Type: SExpression + +do a ")show SEX" and you can see the ways you can manipulate the SExpression. + +SEX is pretty low level stuff. It is essentially lisp list manipulation +at the Axiom level. + +\start +Date: Thu, 1 Jul 2004 11:02:45 -0400 +From: Tim Daly +To: david.mentre@wanadoo.fr +Subject: [Axiom-developer] bug in SEX + +-> m:=[1::SEX, 2::SEX] + [1,2] + Type: List SExpression + +-> n:=m::SEX + (1 2) + Type: SExpression + +-> car(n) + 1 + Type: SExpression + +-> v:List(INT):=[1,2] + [1,2] + Type: List Integer + +-> n.v + + >> Error detected within library code: + Non-list + +\start +Date: Thu, 1 Jul 2004 18:07:38 +0000 +From: Martin Rubey +To: daly@idsi.net +Subject: Re: [Axiom-developer] bug in SEX + +Tim Daly writes: + > -> m:=[1::SEX, 2::SEX] + > [1,2] + > Type: List SExpression + > + > -> n:=m::SEX + > (1 2) + > Type: SExpression + > + > -> car(n) + > 1 + > Type: SExpression + > + > -> v:List(INT):=[1,2] + > [1,2] + > Type: List Integer + > + > -> n.v + > + > >> Error detected within library code: + > Non-list +Are you sure that this is a bug? After all, n is not an Axiom List... + +\start +Date: Thu, 1 Jul 2004 18:13:47 +0200 +From: Magnus Larsson +To: Camm Maguire +Subject: Re: [Axiom-developer] Axiom cvs 040624 build error + +Hello Camm Maguire, + +Please find the second test result attached, as per your instruction, + +This resulted in a crash. A "bt" backtrace is enclosed. + +On Thursday 01 July 2004 15.17, Camm Maguire wrote: +> Greetings! +> +> Magnus Larsson writes: +> > Hello Camm, +> > +> > I have downloaded cvs 040701 and configured --enable-debug. +> > The build fails, as before. +> > +> > The commands +> > cd lsp/gcl-2.6.2/unixport +> > gdb saved_gcl, r, (load "../gcl-tk/tkl.o) +> > +> > did not reproduce the crash. +> > +> > GNU gdb 6.1.1 +> > Copyright 2004 Free Software Foundation, Inc. +> > GDB is free software, covered by the GNU General Public License, and you +> > are welcome to change it and/or distribute copies of it under certain +> > conditions. Type "show copying" to see the conditions. +> > There is absolutely no warranty for GDB. Type "show warranty" for +> > details. This GDB was configured as "i686-pc-linux-gnu"...Using host +> > libthread_db library "/lib/libthread_db.so.1". +> > +> > (gdb) r +> > Starting +> > program: +> > /home/magnus/usr/source/axiom/cvs-040701/axiom/lsp/gcl-2.6.2/unixport/sav +> >ed_gcl +> > +> > >(load "../gcl-tk/tkl.o") +> > +> > Loading ../gcl-tk/tkl.o +> > start address -T 0x84a8ba0 Finished loading ../gcl-tk/tkl.o +> > 59684 +> > +> > +> > +> > The next set of instructions: +> > q (from gdb) +> > cd ../gcl-tk/demos, r, (load "../tkl.o")(TK::GET-AUTOLOADS) (directory +> > "*.lisp")) +> > +magnus@lfs:~/usr/source/axiom/cvs-040701/axiom/lsp/gcl-2.6.2/gcl-tk/demos> +gdb ../../unixport/saved_gcl +GNU gdb 6.1.1 +Copyright 2004 Free Software Foundation, Inc. +GDB is free software, covered by the GNU General Public License, and you are +welcome to change it and/or distribute copies of it under certain conditions. +Type "show copying" to see the conditions. +There is absolutely no warranty for GDB. Type "show warranty" for details. +This GDB was configured as "i686-pc-linux-gnu"...Using host libthread_db +library "/lib/libthread_db.so.1". + +(gdb) r +Starting +program: /home/magnus/usr/source/axiom/cvs-040701/axiom/lsp/gcl-2.6.2/unixport/saved_gcl + +>(load "../tkl.o")(TK::GET-AUTOLOADS (directory "*.lisp")) + +Loading ../tkl.o +start address -T 0x84a8ba0 Finished loading ../tkl.o +59684 + +>Detaching after fork from child process 11550. + +Program received signal SIGSEGV, Segmentation fault. +0x00000000 in ?? () +(gdb) bt +#0 0x00000000 in ?? () +#1 0x084b4ff2 in ?? () +#2 0x082d8910 in ?? () +#3 0x00000012 in ?? () +#4 0xbfffef48 in ?? () +#5 0x08054b7b in eval (form=0x8399060) at eval.c:1090 +#6 0x08054b7b in eval (form=0x8399060) at eval.c:1090 +#7 0x0805507e in fLeval (x0=0x85faf54) at eval.c:1178 +#8 0x0805bf69 in c_apply_n (fn=0x8055022 , n=1, x=0x8252108) at +funlink.c:271 +#9 0x0807727e in IapplyVector (fun=0x83b3e4c, nargs=1, base=0x8252108) at +nfunlink.c:229 +#10 0x08052d28 in funcall (fun=0x83b3e4c) at eval.c:190 +#11 0x08053cac in symlispcall (sym=0x83b2288, base=0x8252104, narg=1) at +eval.c:507 +#12 0x0813623f in LI1 () at gcl_top.c:140 +#13 0x0805206f in quick_call_sfun (fun=0x852ffc8) at eval.c:117 +#14 0x08052ca2 in funcall (fun=0x852ffc8) at eval.c:178 +#15 0x080773a5 in IapplyVector (fun=0x852ffc8, nargs=0, base=0x82520dc) at +nfunlink.c:239 +#16 0x08054df7 in fLfuncall (fun=0x852ffc8) at eval.c:1140 +#17 0x0805bf69 in c_apply_n (fn=0x8054d63 , n=1, x=0x82520d8) at +funlink.c:271 +#18 0x0807727e in IapplyVector (fun=0x83b3e74, nargs=1, base=0x82520d8) at +nfunlink.c:229 +#19 0x08052d28 in funcall (fun=0x83b3e74) at eval.c:190 +#20 0x08053646 in funcall_no_event (fun=0x83b3e74) at eval.c:381 +#21 0x08054b88 in eval (form=0x8399060) at eval.c:1092 +#22 0x080533ae in funcall (fun=0x83b4f58) at eval.c:327 +---Type to continue, or q to quit--- +#23 0x08053646 in funcall_no_event (fun=0x860fe88) at eval.c:381 +#24 0x08054b88 in eval (form=0x8399060) at eval.c:1092 +#25 0x080533ae in funcall (fun=0x83b4f60) at eval.c:327 +#26 0x0805439e in super_funcall (fun=0x8610ff0) at eval.c:743 +#27 0x080726c9 in main (argc=1, argv=0xbffff904, envp=0xbffff90c) at +main.c:327 + +\start +Date: Thu, 01 Jul 2004 12:14:40 -0400 +From: William Sit +To: daly@idsi.net +Subject: [Axiom-developer] Re: coerce to SEX + +Tim: + +I cannot coerce a domain into a SExpression, which is needed to call the +function any from ANY to coerce an object to Any. + +SEX::SEX + + Cannot convert the type Domain to SExpression for value SExpression() + +William + +--- + +Tim Daly wrote: +> +> SEX, SEXOF, and SEXCAT are Axiom cover functions for lisp S-expressions. +> +> Thus if you want to construct something you have to build it up from +> the primitives using things like: +> +> -> m:=[1::SEX, 2::SEX] +> [1,2] +> Type: List SExpression +> +> having this primitive you can "upgrade" it to a list structure with: +> +> -> n:=m::SEX +> (1 2) +> Type: SExpression +> +> and then you can operate on it: +> +> -> car(n) +> 1 +> Type: SExpression +> +> do a ")show SEX" and you can see the ways you can manipulate the SExpression. +> +> SEX is pretty low level stuff. It is essentially lisp list manipulation +> at the Axiom level. + +\start +Date: 01 Jul 2004 12:59:58 -0400 +From: Camm Maguire +To: Magnus Larsson +Subject: Re: [Axiom-developer] Axiom cvs 040624 build error + +Greetings, and thanks! + +This is due to an old gcl somehow havving gotten its way into axiom. + +Just did a cvs axiom checkout on Andrey's machine, and see the +following in the top of lsp/gcl-2.6.2/debian/changelog: + +gcl (2.6.1-26) unstable; urgency=low + + * Rework compiler::*ld-libs*, compiler::link, and unixport/makefile to + accomodate mingw need for firstfile.o and lastfile.o + * Remove incompatible -fomit-frame-pointer when compiling with -pg + profiling + * Load sys-proclaim.lisp files forimproved linking and smaller object + size across the board, install same for use with compiler::link + * Use pathnames instead of strings in compiler::link, also in image + init files, for Windows + * small mod to unixport/makefile re filtering of firstfile and + lastfile + * Backport zero divisor error cnditions from HEAD for + floor,ceiling,truncate + * Default to debug mode on hppa to work around gcc compiler + optimization bugs + + -- Camm Maguire Fri, 20 Feb 2004 16:20:37 +0000 + +gcl (2.6.1-25) unstable; urgency=low + +This is several versions (about 5 months) behind the 2.6.2 release, +which should look like: + +gcl (2.6.2-1) unstable; urgency=high + + * gcc-3.4 support + * Proper isnormal default courtesy of Magnus Henoch + * gclclean makefile target and other small makefile changes + * Proper check for C stack array body address in gbc.c and sgbc.c + * New upstream release + * acconfig.h update for isnormal default + * Fix bug in setting elements (si::aset) of 0 rank arrays uncovered by + the random tester + * No -fomit-frame-pointer on mingw + * Backport minimal ansi-test patches from HEAD to enable running of + the random tester + * installed tcl/tk patch for mingw + * Fix banner license detection code in lsp/gcl_mislib.lsp as + 8features* entries are now keywords + * o/makefile changes to work around trailing slash -I arguments gcc + bug on mingw + * Patch to mingwin.c:fix_filename to close long standing 'maxima + ignore-errors filename corruption' bug on mingw + * Check for too large rank supplied to make-array1 + * Fix potential stack overwrite bug in quick_call_sfun/eval.c + * Add -mprferred-stack-boundary=8 on amd64, as constant integers used + in a call must be retrievable with va_arg(,fixnum) + * Revert preferred-stack-boundary option on amd64 as it does not play + well with external libraries, also eliminate -m64 to allow for user + settings. Cast fixnum constant C arguments in gcl_cmploc.lsp + explicitly to (long) to ensure they can be extracted via + va_arg(,fixnum) + * reenable SA_SIGINFO on amd64 to restore SGC there + * Include elf.h in FreeBSD.h + * Allow for elf_abi.h in FreeBSD.h + * Add README.openbsd file + * readme.mingw updates + * solaris.h updates for custreloc option + * Close possibility of malloc failure due to intervening gbc arising + from the misordering of allocation calls + * C_GC_OFFSET is 2 on m68k-linux + * Add release notes, remove gcl document presumably based on dpANS for + now + * Fixup bad extern declaration of signals_handled in usig.c + + -- Camm Maguire Fri, 25 Jun 2004 22:43:52 +0000 + + +I've verified the crash with the axiom patched old gcl version, and +verified that stock gcl-2.6.2 does not show the crash on the same +machine. I can obviously look further to see if the older version is +to blame or the axiom patches, but its probably most efficient at this +point to get the right source tree in place. In any case, the +transparent Fedora support was added after this point, so we really +want this in for axiom. + +Could not complete the axiom build on Andrey's machine with stock +2.6.2 due to a system misconfiguration: + +SYS= linux +LSP= /home/axiom/axiom/lsp +PART= cprogs +SPAD= /home/axiom/axiom/mnt/linux +SRC= /home/axiom/axiom/src +INT= /home/axiom/axiom/int +OBJ= /home/axiom/axiom/obj +MNT= /home/axiom/axiom/mnt +/bin/sh: line 1: /tmp/console: Permission denied +make[3]: *** [/home/axiom/axiom/obj/linux/bin/bootsys] Error 1 +make[3]: Leaving directory `/home/axiom/axiom/src/boot' +make[2]: *** [bootdir] Error 2 +make[2]: Leaving directory `/home/axiom/axiom/src' +make[1]: *** [srcdir] Error 2 +make[1]: Leaving directory `/home/axiom/axiom' +make: *** [all] Error 2 + + +Magnus Larsson writes: + +> Hello Camm Maguire, +> +> Please find the second test result attached, as per your instruction, +> +> This resulted in a crash. A "bt" backtrace is enclosed. +> +> On Thursday 01 July 2004 15.17, Camm Maguire wrote: +> > Greetings! +> > +> > Magnus Larsson writes: +> > > Hello Camm, +> > > +> > > I have downloaded cvs 040701 and configured --enable-debug. +> > > The build fails, as before. +> > > +> > > The commands +> > > cd lsp/gcl-2.6.2/unixport +> > > gdb saved_gcl, r, (load "../gcl-tk/tkl.o) +> > > +> > > did not reproduce the crash. +> > > +> > > GNU gdb 6.1.1 +> > > Copyright 2004 Free Software Foundation, Inc. +> > > GDB is free software, covered by the GNU General Public License, and you +> > > are welcome to change it and/or distribute copies of it under certain +> > > conditions. Type "show copying" to see the conditions. +> > > There is absolutely no warranty for GDB. Type "show warranty" for +> > > details. This GDB was configured as "i686-pc-linux-gnu"...Using host +> > > libthread_db library "/lib/libthread_db.so.1". +> > > +> > > (gdb) r +> > > Starting +> > > program: +> > > /home/magnus/usr/source/axiom/cvs-040701/axiom/lsp/gcl-2.6.2/unixport/sav +> > >ed_gcl +> > > +> > > >(load "../gcl-tk/tkl.o") +> > > +> > > Loading ../gcl-tk/tkl.o +> > > start address -T 0x84a8ba0 Finished loading ../gcl-tk/tkl.o +> > > 59684 +> > > +> > > +> > > +> > > The next set of instructions: +> > > q (from gdb) +> > > cd ../gcl-tk/demos, r, (load "../tkl.o")(TK::GET-AUTOLOADS) (directory +> > > "*.lisp")) +> > > +> magnus@lfs:~/usr/source/axiom/cvs-040701/axiom/lsp/gcl-2.6.2/gcl-tk/demos> +> gdb ../../unixport/saved_gcl +> GNU gdb 6.1.1 +> Copyright 2004 Free Software Foundation, Inc. +> GDB is free software, covered by the GNU General Public License, and you are +> welcome to change it and/or distribute copies of it under certain conditions. +> Type "show copying" to see the conditions. +> There is absolutely no warranty for GDB. Type "show warranty" for details. +> This GDB was configured as "i686-pc-linux-gnu"...Using host libthread_db +> library "/lib/libthread_db.so.1". +> +> (gdb) r +> Starting +> program: /home/magnus/usr/source/axiom/cvs-040701/axiom/lsp/gcl-2.6.2/unixport/saved_gcl +> +> >(load "../tkl.o")(TK::GET-AUTOLOADS (directory "*.lisp")) +> +> Loading ../tkl.o +> start address -T 0x84a8ba0 Finished loading ../tkl.o +> 59684 +> +> >Detaching after fork from child process 11550. +> +> Program received signal SIGSEGV, Segmentation fault. +> 0x00000000 in ?? () +> (gdb) bt +> #0 0x00000000 in ?? () +> #1 0x084b4ff2 in ?? () +> #2 0x082d8910 in ?? () +> #3 0x00000012 in ?? () +> #4 0xbfffef48 in ?? () +> #5 0x08054b7b in eval (form=0x8399060) at eval.c:1090 +> #6 0x08054b7b in eval (form=0x8399060) at eval.c:1090 +> #7 0x0805507e in fLeval (x0=0x85faf54) at eval.c:1178 +> #8 0x0805bf69 in c_apply_n (fn=0x8055022 , n=1, x=0x8252108) at +> funlink.c:271 +> #9 0x0807727e in IapplyVector (fun=0x83b3e4c, nargs=1, base=0x8252108) at +> nfunlink.c:229 +> #10 0x08052d28 in funcall (fun=0x83b3e4c) at eval.c:190 +> #11 0x08053cac in symlispcall (sym=0x83b2288, base=0x8252104, narg=1) at +> eval.c:507 +> #12 0x0813623f in LI1 () at gcl_top.c:140 +> #13 0x0805206f in quick_call_sfun (fun=0x852ffc8) at eval.c:117 +> #14 0x08052ca2 in funcall (fun=0x852ffc8) at eval.c:178 +> #15 0x080773a5 in IapplyVector (fun=0x852ffc8, nargs=0, base=0x82520dc) at +> nfunlink.c:239 +> #16 0x08054df7 in fLfuncall (fun=0x852ffc8) at eval.c:1140 +> #17 0x0805bf69 in c_apply_n (fn=0x8054d63 , n=1, x=0x82520d8) at +> funlink.c:271 +> #18 0x0807727e in IapplyVector (fun=0x83b3e74, nargs=1, base=0x82520d8) at +> nfunlink.c:229 +> #19 0x08052d28 in funcall (fun=0x83b3e74) at eval.c:190 +> #20 0x08053646 in funcall_no_event (fun=0x83b3e74) at eval.c:381 +> #21 0x08054b88 in eval (form=0x8399060) at eval.c:1092 +> #22 0x080533ae in funcall (fun=0x83b4f58) at eval.c:327 +> ---Type to continue, or q to quit--- +> #23 0x08053646 in funcall_no_event (fun=0x860fe88) at eval.c:381 +> #24 0x08054b88 in eval (form=0x8399060) at eval.c:1092 +> #25 0x080533ae in funcall (fun=0x83b4f60) at eval.c:327 +> #26 0x0805439e in super_funcall (fun=0x8610ff0) at eval.c:743 +> #27 0x080726c9 in main (argc=1, argv=0xbffff904, envp=0xbffff90c) at +> main.c:327 + +\start +Date: Thu, 1 Jul 2004 12:16:30 -0400 +From: Tim Daly +To: camm@enhanced.com +Subject: Re: [Axiom-developer] Axiom cvs 040624 build error + +Camm, + +I used the CVS checkout line you sent me. +I clipped it directly from the mail. +How this could have happened is unclear and very troubling +as I updated my tree immediately after our email exchange, +did a complete checkout/rebuild, and then checked in the change. +It is unclear where an old version could have come from. + +Please do a CVS checkout of the current Axiom source tree and +see if this is broken. If so, please let me know the exact CVS +checkout string I should use to get the latest GCL and some +way to verify that it is the latest. + +Once I've verified that I have the latest I'll do another +checkout/rebuild. + +color me puzzled, + +\start +Date: Thu, 1 Jul 2004 12:19:48 -0400 +From: Tim Daly +To: camm@enhanced.com +Subject: Re: [Axiom-developer] Axiom cvs 040624 build error + +Camm, + +I've GOT it..... + +The latest version in the CVS is gcl-2.6.2a, not gcl-2.6.2. +There was a bit of "flutter" because I was tracking your changes +too closely, thus the latest GCL is gcl-2.6.2a.tgz. + +Axiom is actually built using gcl-2.6.2a (see the top of the Makefile +in the axiom toplevel directory). + +gcl-2.6.2a should be the very latest GCL. + +\start +Date: 01 Jul 2004 15:29:16 -0400 +From: Camm Maguire +To: Tim Daly +Subject: Re: [Axiom-developer] Axiom cvs 040624 build error + +Greetings! + +I confirm that zips/gcl-2.6.2a.tgz is the right tarball, but +zips/gcl-2.6.2.tgz is apparently what is being unpacked and built by +default, at least as of a fresh cvs checkout a few minutes ago. + +I'd suggest renaming gcl-2.6.2a.tgz -> gcl-2.6.2.tgz. + +Take care, + +Tim Daly writes: + +> Camm, +> +> I've GOT it..... +> +> The latest version in the CVS is gcl-2.6.2a, not gcl-2.6.2. +> There was a bit of "flutter" because I was tracking your changes +> too closely, thus the latest GCL is gcl-2.6.2a.tgz. +> +> Axiom is actually built using gcl-2.6.2a (see the top of the Makefile +> in the axiom toplevel directory). +> +> gcl-2.6.2a should be the very latest GCL. + +\start +Date: Thu, 01 Jul 2004 20:21:39 +0100 +From: Mark Murray +To: daly@idsi.net +Subject: Re: Axiom & internal/external GCL (was: Re: [Axiom-developer] Axiom cvs 040624 build error) + +root writes: +> Mark, +> +> If there is a FreeBSD box where I could try an Axiom build +> that would be great. I can debug a failing Axiom build faster. +> Be forewarned that an Axiom build can eat a system for several +> days (depending on CPU speed, 3hrs at 2Ghz, 6hrs at 1Ghz, etc). + +Hi + +You haven't sent me your account stuff like I asked in private mail :-) + +\start +Date: Thu, 1 Jul 2004 16:04:04 -0400 +From: "Mark E. Fenner" +To: axiom-developer@nongnu.org +Subject: [Axiom-developer] Compilation Methodology Overview and a Specific Problem + +A quick question or two which may be followed by harder ones (it is!): + +Why does axiom build its own LISP(s) instead of using LISP(s) that I may +already have on my system? Is this the different characteristics of +different LISPs mentioned in the top-level README file? + +Is there any preference of using LISP versions that are 1) the same or 2) +different from what I have on my machine? For example, if I have gcl 2.5.2 +installed on my machine, should I necessarily choose GCLVERSION=gcl-2.5.2 in +my makefile (or from an export GCLVERSION)? + +Finally, I believe the top level Makefile.dvi description states that gcl +2.4.1 is the default gcl version. The CVS toplevel Makefile seems to have +the GCLVERSION=gcl-2.6.2 line uncommented. Is this as intended or do the +docs need updated? + +A second issue: I tried compiling just now and I got numerous errors, though +it continued through them. There seems to be a number of successful compiles +and a number of unsuccessful compiles. Here is an example: + +**************************************************************************************** +33 making /home/mfenner/tmp/axiom/obj/linux/interp/daase.o +from /home/mfenner/tmp/axiom/int/interp/daase.lisp + +> +Compiling /home/mfenner/tmp/axiom/int/interp/daase.lisp. +; (DEFUN |library| ...) is being compiled. +;; The variable ORIGINAL-DIRECTORY is undefined. +;; The compiler will assume this variable is a global. +; (DEFUN WRITE-COMPRESS ...) is being compiled. +;; The variable *ATTRIBUTES* is undefined. +;; The compiler will assume this variable is a global. +End of Pass 1. +End of Pass 2. +OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 +Finished compiling /home/mfenner/tmp/axiom/obj/linux/interp/daase.o. +420 making /home/mfenner/tmp/axiom/int/interp/undo.clisp +from /home/mfenner/tmp/axiom/src/interp/undo.boot.pamphlet + +> +Error: Caught fatal error [memory may be damaged] +Fast links are on: do (si::use-fast-links nil) for debugging +Error signalled by LET. +Broken at APPLY. Type :H for Help. +BOOT>>419 making /home/mfenner/tmp/axiom/obj/linux/interp/undo.o +from /home/mfenner/tmp/axiom/int/interp/undo.clisp + +> +The source file /home/mfenner/tmp/axiom/int/interp/undo.clisp is not found. +*************************************************************************************** + +Another error that seems to appear a few times is like the following: + +**************************************************************************************** +132 making /home/mfenner/tmp/axiom/obj/linux/interp/util.o +from /home/mfenner/tmp/axiom/int/interp/util.lisp + +> +Compiling /home/mfenner/tmp/axiom/int/interp/util.lisp. +; (DEFUN INITROOT ...) is being compiled. +;; The variable $SPADROOT is undefined. +;; The compiler will assume this variable is a global. +; (DEFUN INTERP-MAKE-DIRECTORY ...) is being compiled. +;; The variable $CURRENT-DIRECTORY is undefined. +;; The compiler will assume this variable is a global. +; (DEFUN TRANSLATE ...) is being compiled. +;; Warning: The variable FN is not used. +; (DEFUN REROOT ...) is being compiled. +;; The variable |$defaultMsgDatabaseName| is undefined. +;; The compiler will assume this variable is a global. +;; The variable |$msgDatabaseName| is undefined. +;; The compiler will assume this variable is a global. +; (DEFUN MAKE-DEPSYS ...) is being compiled. +;; Warning: The variable LSP is not used. +;; Warning: The variable SRC is not used. +;; Warning: The variable INT is not used. +;; Warning: The variable MNT is not used. +; (IN-PACKAGE "BOOTTRAN") is being compiled. +;; Warning: The package operation (IN-PACKAGE "BOOTTRAN") was in a bad place. +; (DEFUN BOOTTOCL ...) is being compiled. +;; Warning: The variable FN is not used. +; (IN-PACKAGE "BOOT") is being compiled. +;; Warning: The package operation (IN-PACKAGE "BOOT") was in a bad place. +; (DEFUN BUILD-INTERPSYS ...) is being compiled. +;; The variable COMP-FUNCTIONS is undefined. +;; The compiler will assume this variable is a global. +;; The variable PARSE-FUNCTIONS is undefined. +;; The compiler will assume this variable is a global. +;; The variable BROWSE-FUNCTIONS is undefined. +;; The compiler will assume this variable is a global. +;; The variable TRANSLATE-FUNCTIONS is undefined. +;; The compiler will assume this variable is a global. +;; The variable NAGBR-FUNCTIONS is undefined. +;; The compiler will assume this variable is a global. +;; The variable ASAUTO-FUNCTIONS is undefined. +;; The compiler will assume this variable is a global. +;; Warning: The variable LSP is not used. +;; Warning: The variable SRC is not used. +;; Warning: The variable INT is not used. +;; Warning: The variable OBJ is not used. +;; Warning: The variable MNT is not used. +;; Warning: The variable SYS is not used. +; (DEFUN SPAD-SAVE ...) is being compiled. +;; The variable |$SpadServer| is undefined. +;; The compiler will assume this variable is a global. +;; The variable |$openServerIfTrue| is undefined. +;; The compiler will assume this variable is a global. +; (IN-PACKAGE "COMPILER") is being compiled. +;; Warning: The package operation (IN-PACKAGE "COMPILER") was in a bad place. +; (IN-PACKAGE "BOOT") is being compiled. +;; Warning: The package operation (IN-PACKAGE "BOOT") was in a bad place. +; (DEFUN MAKELIB ...) is being compiled. +;; Warning: The variable NOOPTIMIZE is not used. +; (DEFUN LIBCHECK ...) is being compiled. +;; The variable ABBREVS is undefined. +;; The compiler will assume this variable is a global. +;; The variable CONSTRUCTORS is undefined. +;; The compiler will assume this variable is a global. +;; The variable SRCABBREVS is undefined. +;; The compiler will assume this variable is a global. +;; The variable SRCCONSTRUCTORS is undefined. +;; The compiler will assume this variable is a global. +;; The variable SPADS is undefined. +;; The compiler will assume this variable is a global. +;; The variable SHORT is undefined. +;; The compiler will assume this variable is a global. +;; The variable LONG is undefined. +;; The compiler will assume this variable is a global. +;; The variable POINT is undefined. +;; The compiler will assume this variable is a global. +;; The variable MARK is undefined. +;; The compiler will assume this variable is a global. +;; Warning: The variable END is not used. +;; Warning: The variable START is not used. +;; Warning: The variable IN is not used. +;; Warning: The variable INTERP is not used. +;; Warning: The variable END is not used. +;; Warning: The variable START is not used. +;; Warning: The variable IN is not used. +;; Warning: The variable INTERP is not used. +End of Pass 1. +End of Pass 2. +OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 +Finished compiling /home/mfenner/tmp/axiom/obj/linux/interp/util.o. +************************************************************************************************* + + +Do either of these point to something I should (or shouldn't) be doing in my +compile process. If you need a more detailed log, I can do make > make.log +or some such and mail it to you or put it up on a temporary web page. + +\start +Date: Thu, 1 Jul 2004 16:55:22 -0400 +From: root +To: mark@grondar.org +Subject: Re: Axiom & internal/external GCL (was: Re: [Axiom-developer] Axiom cvs 040624 build error) + +Mark, + +Soon. I'm heavily lagged at the moment. Mountains to move. -- t + +\start +Date: Thu, 1 Jul 2004 16:58:20 -0400 +From: root +To: camm@enhanced.com +Subject: Re: [Axiom-developer] Axiom cvs 040624 build error + +Camm, + +I found the problem. I failed to regenerate the top level Makefile. +Mea Culpa. I'll fix it now. + +\start +Date: Thu, 1 Jul 2004 16:16:07 -0400 +From: "Mark E. Fenner" +To: axiom-developer@nongnu.org +Subject: [Axiom-developer] Error Using GCLVERSION=2.5.2 + +In trying to get axiom to compile, I made the top level Makefile read: + +**************************************** +#GCLVERSION=gcl-2.4.1 +#GCLVERSION=gcl-2.5 +GCLVERSION=gcl-2.5.2 +#GCLVERSION=gcl-2.6.1 +#GCLVERSION=gcl-2.6.2 +***************************************** + +This resulted in the following error: + +make[2]: Entering directory `/home/mfenner/tmp/axiom/lsp' +2 building gcl-2.5.2 +tar: /home/mfenner/tmp/axiom/zips/gcl-2.5.2.tgz: Cannot open: No such file or +directory +tar: Error is not recoverable: exiting now +tar: Child returned status 2 +tar: Error exit delayed from previous errors +make[2]: *** [gcldir] Error 2 +make[2]: Leaving directory `/home/mfenner/tmp/axiom/lsp' +make[1]: *** [lspdir] Error 2 +make[1]: Leaving directory `/home/mfenner/tmp/axiom' +make: *** [all] Error 2 + + +There seems to be no gcl-2.5.2.tgz file in the zips/ directory. There are +however a number of 2.5.2 related patch files. Should I ignore this and +focus on getting the 2.6.2 version to work? I'm still a bit confused as to +why there need to be different GCLVERSION(s) if axiom builds it regardless or +what is on the user's system. + +\start +Date: Thu, 1 Jul 2004 17:05:12 -0400 +From: root +To: camm@enhanced.com +Subject: Re: [Axiom-developer] Axiom cvs 040624 build error + +Camm, + +I'm not sure how I mangled that. All of my local copies say 2.6.2a. +Anyway, I'm updating the CVS with the correct value. + +Please pull the latest Makefile.pamphlet and Makefile. + +\start +Date: Thu, 1 Jul 2004 17:09:41 -0400 +From: root +To: fenner@cs.pitt.edu +Subject: Re: [Axiom-developer] Error Using GCLVERSION=2.5.2 + +Mark, + +Every version of GCL builds and runs on my system. +Camm has made updates in the last few months that may affect your system. +I've been using gcl-2.6.2a which is the latest version of GCL. +(The trailing 'a' is due to the fact that I was tracking Camm's changes +too closely and ended up being unable to build GCL so I needed to keep +two "current" versions). + +You can either pull down the latest Makefile.pamphlet and Makefile or +modify your current top level Makefile to put a trailing 'a' on the version. +It should read: + +GCLVERSION=gcl-2.6.2a + +I'm sorry for the confusion. Somehow I didn't put the correct copy of +the top level Makefile into the CVS. I never noticed because the +"round-trip" (checkin-checkout) tests I do would succeed with either +version and all of my other "working" copies have the gcl-2.6.2a version. + +\start +Date: 01 Jul 2004 16:40:54 -0400 +From: Camm Maguire +To: daly@idsi.net +Subject: Re: [Axiom-developer] Axiom cvs 040624 build error + +Greetings! And thank you so much for your quick reply! Not to be a +pest, but now the patches are not applying: + +19 making /fix/g/camm/axiom/cvs/axiom/lsp +make[2]: Entering directory `/fix/g/camm/axiom/cvs/axiom/lsp' +2 building gcl-2.6.2a +/bin/sh: line 1: cd: gcl-2.6.2a/h: No such file or directory +3 applying EXTRAS patch to h/linux.defs +can't find file to patch at input line 3 +Perhaps you should have used the -p or --strip option? +The text leading up to this was: +-------------------------- +|--- linux.defs 2002-09-12 00:38:49.000000000 -0400 +|+++ linux.defs.tpd 2003-10-22 23:42:02.000000000 -0400 +-------------------------- +File to patch: + +I think 2.6.2a unpacked into lsp/gcl. + +root writes: + +> Camm, +> +> I'm not sure how I mangled that. All of my local copies say 2.6.2a. +> Anyway, I'm updating the CVS with the correct value. +> +> Please pull the latest Makefile.pamphlet and Makefile. + +\start +Date: Thu, 1 Jul 2004 18:14:14 -0400 +From: root +To: camm@enhanced.com +Subject: Re: [Axiom-developer] Axiom cvs 040624 build error + +re: gcl vs gcl-2.6.2a +yep. fixed that. +then it fails because there is now a newline at the end of unixport/makefile. +one of the patches could not be applied because the patch added the newline. +fixed that too. + +The CVS upload is complete. +I'm in the process of round-trip testing the build. +I spoke to Mark on the phone and he's going to try the build again tomorrow. + +\start +Date: Thu, 1 Jul 2004 19:57:25 -0400 +From: root +To: camm@enhanced.com +Subject: Re: [Axiom-developer] Axiom cvs 040624 build error + +Camm, + +The build fails now. +I'm chasing the failure. + +\start +Date: Fri, 02 Jul 2004 00:19:00 +0100 +From: Mark Murray +To: daly@idsi.net +Subject: Re: Axiom & internal/external GCL (was: Re: [Axiom-developer] Axiom cvs 040624 build error) + +root writes: +> Soon. I'm heavily lagged at the moment. Mountains to move. -- t + +OK, NP. :-) + +\start +Date: Fri, 02 Jul 2004 00:21:05 -0400 +From: William Sit +To: daly@idsi.net, axiom-developer@nongnu.org +Subject: Re: [Axiom-developer] Re: coerce to SEX + +William Sit wrote: +> I cannot coerce a domain into a SExpression, which is needed to call the +> function any from ANY to coerce an object to Any. +> +> SEX::SEX +> +> Cannot convert the type Domain to SExpression for value SExpression() +> + +I found two ways to do this: + +d:=devaluate(INT)$Lisp + (Integer) Type: SExpression +a:=any(d, 3::None) + 3 Type: Integer +obj a + + Function Selection for obj + Arguments: ANY + [1] signature: ANY -> NONE + implemented: slot (None)$ from ANY + + NONE Type: OutputForm + +The second way is simpler: + +a:=coerce(3)$ANY1(INT) + +What threw me off the track was the very suggestive way to construct an ANY +object using the function any: (SExpression, None)->ANY. + +None of the functions exported by SEX, SEXCAT, SEXOF provide any way to input a +SExpression from the interpreter. Typing "(Integer)" (with or without quotes) in +place of the identifier d above will not work. + +Is there any documentation for all the Lisp code that can be used in Axiom? +(Lisp is NOT a domain despite the $Lisp notation). Are the commands part of the +Boot language? (this may be a very stupid question). + +\start +Date: Fri, 2 Jul 2004 07:01:07 +0200 +From: Magnus Larsson +To: axiom-developer@nongnu.org +Subject: Re: [Axiom-developer] Axiom cvs 040624 build error + +Hello Tim, Camm, + +Axiom builds correctly for me. Starting AXIOMsys results in: + +AXIOM Computer Algebra System + Version of Friday July 2, 2004 at 00:03:35 +=2D------------------------------------------------------------------------= +=2D--- + Issue )copyright to view copyright notices. + Issue )summary for a summary of useful system commands. + Issue )quit to leave AXIOM and return to shell. +=2D------------------------------------------------------------------------= +=2D--- + + Re-reading compress.daase Re-reading interp.daase + Re-reading operation.daase + Re-reading category.daase + Re-reading browse.daase +(1) -> + +Running the original ./axiom supplied after make install results in: +"Couldn't find a free pty", but I have had that problem before and I work +around that calling AXIOMsys directly. + +History: +The first +cvs -z3 -d:ext:anoncvs@savannah.nongnu.org:/cvsroot/axiom co axiom +resulted in the fault Camm identified: +=2E.. +/bin/sh: line 1: cd: gcl-2.6.2a/h: No such file or directory +3 applying EXTRAS patch to h/linux.defs +can't find file to patch at input line 3 +Perhaps you should have used the -p or --strip option? +The text leading up to this was: +=2D------------------------- +|--- linux.defs=A02002-09-12 00:38:49.000000000 -0400 +|+++ linux.defs.tpd=A0=A0=A0=A0=A02003-10-22 23:42:02.000000000 -0400 +=2E.. + +Tim, I waited for your "gcl vs gcl-2.6.2a" update and executed another +cvs -z3 -d:ext:anoncvs@savannah.nongnu.org:/cvsroot/axiom co axiom +from inside the same build tree and received some updated files. This buil= +d +succeded. + +=2E.. +22 +making /home/magnus/usr/source/axiom/cvs-040701-3/axiom/int/graph/parabola/= +data +from /home/magnus/usr/source/axiom/cvs-040701-3/axiom/src/graph/fileformats= +=2Epamphlet +25 +making /home/magnus/usr/source/axiom/cvs-040701-3/axiom/mnt/linux/doc/src/g= +raph/viewports +from /home/magnus/usr/source/axiom/cvs-040701-3/axiom/src/graph/viewports +24 finished /home/magnus/usr/source/axiom/cvs-040701-3/axiom/src/graph +make[3]: Leaving directory +`/home/magnus/usr/source/axiom/cvs-040701-3/axiom/src/graph' +49 finished /home/magnus/usr/source/axiom/cvs-040701-3/axiom/src +make[2]: Leaving directory +`/home/magnus/usr/source/axiom/cvs-040701-3/axiom/src' +45 Makefile.linux called +46 Environment : PLF=LINUXplatform CCF=-O2 -fno-strength-reduce -Wall +=2DD_GNU_SOURCE -DLINUXplatform -I/usr/X11/include LDF=-L/usr/X11R6/lib C= +C=gcc +AWK=gawk RANLIB=ranlib TOUCH=touch TAR=tar +AXIOMXLROOT=/home/magnus/usr/source/axiom/cvs-040701-3/axiom/mnt/linux/co= +mpiler +O=o BYE=bye LISP=lsp +DAASE=/home/magnus/usr/source/axiom/cvs-040701-3/axiom/src/share +XLIB=/usr/X11R6/lib +make[1]: Leaving directory `/home/magnus/usr/source/axiom/cvs-040701-3/axio= +m' + +On Friday 02 July 2004 01.57, root wrote: +> Camm, +> +> The build fails now. +> I'm chasing the failure. + +\start +Date: Fri, 2 Jul 2004 02:04:28 -0400 +From: root +To: camm@enhanced.com +Subject: Re: [Axiom-developer] Axiom cvs 040624 build error + +Camm, + +I found the build problem. +The luser (me) set the AXIOM variable incorrectly. +The round-trip build succeeded. + +\start +Date: Fri, 2 Jul 2004 10:03:37 +0100 +From: Mike Dewar +To: William Sit +Subject: Re: [Axiom-developer] Re: coerce to SEX + +You can use any Lisp function in the current Lisp package from the Axiom +interpreter using `$Lisp', but you need to bear in mind some slight +syntactic differences. For instance your example can be done as: +a:=any(['Integer]$Lisp,3::None) -- use [ ... ] as shorthand for list(...) +a:=any(LIST('Integer)$Lisp,3::None) -- apply LIST from Lisp +Note that although the lisp interpreter will upper-case everything, +Axiom doesn't so e.g. list(1)$Lisp won't work. + +I thought that you could package-qualify lisp calls in the interpreter +by doing e.g. BOOT_:_:GENVAR()$Lisp, but this doesn't work in my version. + +I hope this helps. + +Mike. + +On Fri, Jul 02, 2004 at 12:21:05AM -0400, William Sit wrote: +> What threw me off the track was the very suggestive way to construct an ANY +> object using the function any: (SExpression, None)->ANY. +> +> None of the functions exported by SEX, SEXCAT, SEXOF provide any way to input a +> SExpression from the interpreter. Typing "(Integer)" (with or without quotes) in +> place of the identifier d above will not work. +> +> Is there any documentation for all the Lisp code that can be used in Axiom? +> (Lisp is NOT a domain despite the $Lisp notation). Are the commands part of the +> Boot language? (this may be a very stupid question). + +\start +Date: 02 Jul 2004 10:15:47 -0400 +From: Camm Maguire +To: daly@idsi.net +Subject: Re: [Axiom-developer] Axiom cvs 040624 build error + +Greetings! Great! To the recipents, please let me know if these +latest changes do not resolve your problems. + +Take care, + +root writes: + +> Camm, +> +> I found the build problem. +> The luser (me) set the AXIOM variable incorrectly. +> The round-trip build succeeded. + +\start +Date: Fri, 02 Jul 2004 19:00:27 -0400 +From: William Sit +To: Mike Dewar +Subject: Re: [Axiom-developer] Re: coerce to SEX + +Thanks, Mike. The BOOT_:_:GENVAR()$Lisp does not work on my version either. But +I noticed the underlines get deleted. Does the underline need any escape +character preceding it? What does this command do? + +William + +Mike Dewar wrote: +> +> You can use any Lisp function in the current Lisp package from the Axiom +> interpreter using `$Lisp', but you need to bear in mind some slight +> syntactic differences. For instance your example can be done as: +> a:=any(['Integer]$Lisp,3::None) -- use [ ... ] as shorthand for list(...) +> a:=any(LIST('Integer)$Lisp,3::None) -- apply LIST from Lisp +> Note that although the lisp interpreter will upper-case everything, +> Axiom doesn't so e.g. list(1)$Lisp won't work. +> +> I thought that you could package-qualify lisp calls in the interpreter +> by doing e.g. BOOT_:_:GENVAR()$Lisp, but this doesn't work in my version. +> +> I hope this helps. +> +> Mike. +> +> +> > Is there any documentation for all the Lisp code that can be used in Axiom? +> > (Lisp is NOT a domain despite the $Lisp notation). Are the commands part of the +> > Boot language? (this may be a very stupid question). + +\start +Date: Fri, 2 Jul 2004 19:50:13 -0400 +From: root +To: wyscc@cunyvm.cuny.edu +Subject: Re: [Axiom-developer] Re: coerce to SEX +Cc: miked@nag.co.uk + +Try: + +GENSYM()$Lisp + +That should work. + +\start +Date: Fri, 2 Jul 2004 21:26:00 -0400 +From: root +To: wyscc@cunyvm.cuny.edu +Subject: Re: [Axiom-developer] Re: coerce to SEX +Cc: miked@nag.co.uk + +Also, + +(1) -> )lisp (defun foo () (print "it works")) + +Value = FOO + +(1) -> FOO()$Lisp + +"it works" + + (1) it works + Type: SExpression + +\start +Date: Sat, 3 Jul 2004 15:30:10 +0200 +From: "Grégory Vanuxem" +To: "Axiom-Developer" +Subject: [Axiom-developer] PATCH: src/algebra/Makefile.pamphlet + +Hi, + +I've just downloaded axiom from (07/02/04) to test RationalInterpolation and +viewAlone. +The rinterp.spad file wasn't generated and here is a patch that changes the +Makefile. + +The other problem is that rinterp.spad was badly generated. I think that +martin has to add + + <>= + <> + +because the compilation process complains: + + The root module <> was not defined + + +I doesn't know this language and can't help you but I have finally removed +all +the documentation and added the root module. + +I have added RINTERP to src/algebra/exposed.lsp.pamphlet (Hidden section) +but I don't know if I had to add it. Does it needed? + + +Cheers, Greg + +PS: the patch was created from src/algebra directory. + +\start +Date: Sat, 3 Jul 2004 15:32:56 +0200 +From: "Grégory Vanuxem" +To: "Axiom-Developer" +Subject: [Axiom-developer] RE: PATCH: src/algebra/Makefile.pamphlet + +> -----Message d'origine----- +> De : Grégory Vanuxem [mailto:g.vanuxem@wanadoo.fr] +> Envoyé : samedi 3 juillet 2004 15:30 +> À : Axiom-Developer +> Objet : PATCH: src/algebra/Makefile.pamphlet +> +> +> Hi, +> +> I've just downloaded axiom from (07/02/04) to test +> RationalInterpolation and viewAlone. +> The rinterp.spad file wasn't generated and here is a patch that +> changes the Makefile. +> +> The other problem is that rinterp.spad was badly generated. I +> think that martin has to add +> +> <>= +> <> +> +> because the compilation process complains: +> +> The root module <> was not defined +> +> +> I doesn't know this language and can't help you but I have +> finally removed all +> the documentation and added the root module. +> +> I have added RINTERP to src/algebra/exposed.lsp.pamphlet (Hidden section) +> but I don't know if I had to add it. Does it needed? +> +> +> Cheers, Greg +> +> PS: the patch was created from src/algebra directory. + +Sorry, omitted the pacth + +------=_NextPart_000_0000_01C46113.03A3B5F0 + name="algebra.make.patch" + filename="algebra.make.patch" + +--- Makefile.pamphlet.old 2004-07-02 16:12:48.000000000 +0200=0A= ++++ Makefile.pamphlet 2004-07-02 16:14:52.000000000 +0200=0A= +@@ -1068,7 +1068,8 @@=0A= + \subsubsection{User Layer for newly added algebra}=0A= + Rather than classify newly created algebra into the existing type = +lattice=0A= + we add it here.=0A= +-<>==0A= ++<>==0A= ++USERLAYER=\=0A= + ${OUT}/RINTERP.o=0A= + @=0A= + \subsection{Order}=0A= +@@ -29365,7 +29366,7 @@=0A= + @ echo 0 making ${MID}/RINTERP.spad from ${IN}/rinterp.spad.pamphlet=0A= + @(cd ${MID} ; \=0A= + rm -rf RINTERP.NRLIB ; \=0A= +- ${TANGLE} -R"domain RINTERP DenavitHartenbergMatrix" = +${IN}/rinterp.spad.pamphlet >RINTERP.spad )=0A= ++ ${TANGLE} -R"package RINTERP RationalInterpolation" = +${IN}/rinterp.spad.pamphlet >RINTERP.spad )=0A= + @ rm -f ${INT}/algebra/dbcomplete=0A= + =0A= + @=0A= +@@ -35224,6 +35225,7 @@=0A= + <>=0A= + <>=0A= + <>=0A= ++<>=0A= + <>=0A= + =0A= + all: src ${INT}/algebra/dbcomplete ${DOCFILES}=0A= + + +\start +Date: Sat, 3 Jul 2004 15:56:18 -0400 +From: root +To: "Grigory Vanuxem" ,, Martin Rubey +Subject: Re: [Axiom-developer] RE: PATCH: src/algebra/Makefile.pamphlet + +re: RINTERP. fixed. thanks. + +Martin, + +Do you have a simple test case for RINTERP? + +\start +Date: Mon, 5 Jul 2004 10:12:52 +0100 +From: Mike Dewar +To: William Sit +Subject: Re: [Axiom-developer] Re: coerce to SEX + +The "_" is the escape character in the interpreter. In Lisp you can +call a function by prefixing it with the name of the package in which it +is defined, so in this case (boot::genvar) should call the genvar +function defined in the boot package (actually (boot:genvar) probably +works because genvar is almost certainly defined as an external symbol). + +Unfortunately ":" and "::" have special meanings in the interpreter so +cannot be used to prefix a lisp function with its package name. I +suspect that BOOT_:_:GENVAR()$Lisp is interpreted as a call to the +symbol |BOOT::GENVAR|, hence the error message. + +If you are desperate you can go: + APPLY(FIND_-SYMBOL('GENVAR,'BOOT)$Lisp,[]$Lisp)$Lisp +which looks up the genvar symbol in the boot package and then applies +it. Of course in this particular case you can call genvar directly since +boot is in fact the current package. + +Cheers, Mike. + +On Fri, Jul 02, 2004 at 07:00:27PM -0400, William Sit wrote: +> Thanks, Mike. The BOOT_:_:GENVAR()$Lisp does not work on my version either. But +> I noticed the underlines get deleted. Does the underline need any escape +> character preceding it? What does this command do? +> +> William +> +> Mike Dewar wrote: +> > +> > You can use any Lisp function in the current Lisp package from the Axiom +> > interpreter using `$Lisp', but you need to bear in mind some slight +> > syntactic differences. For instance your example can be done as: +> > a:=any(['Integer]$Lisp,3::None) -- use [ ... ] as shorthand for list(...) +> > a:=any(LIST('Integer)$Lisp,3::None) -- apply LIST from Lisp +> > Note that although the lisp interpreter will upper-case everything, +> > Axiom doesn't so e.g. list(1)$Lisp won't work. +> > +> > I thought that you could package-qualify lisp calls in the interpreter +> > by doing e.g. BOOT_:_:GENVAR()$Lisp, but this doesn't work in my version. +> > +> > I hope this helps. +> > +> > Mike. +> > +> > +> > > Is there any documentation for all the Lisp code that can be used in Axiom? +> > > (Lisp is NOT a domain despite the $Lisp notation). Are the commands part of the +> > > Boot language? (this may be a very stupid question). + +\start +Date: Mon, 5 Jul 2004 10:13:50 +0100 +From: Mike Dewar +To: root +Subject: Re: [Axiom-developer] Re: coerce to SEX + +Well GENVAR()$Lisp actually works. The point was that package-calling +doesn't work as expected. + +Mike. + +On Fri, Jul 02, 2004 at 07:50:13PM -0400, Tim Daly wrote: +> Try: +> +> GENSYM()$Lisp + +\start +Date: Mon, 5 Jul 2004 14:33:19 +0000 +From: Martin Rubey +To: daly@idsi.net, axiom-math@nongnu.org +Subject: Re: [Axiom-developer] RE: PATCH: src/algebra/Makefile.pamphlet + +I'm forwarding this to math because I think some of the issues belong there. + +Dear Tim, + +Hm, in fact, I thought that it was a little to earlz to release rinterp.spad to +the world, since I expect it to change. I also noticed that you included the +version which does *not* parallel pinterp.spad... in fact, I think that there +should be one package pinterp.spad which includes all sorts of interpolation +algorithms, and a common interface should be worked out, i.e., what kind of +arguments does it take, what's the type of the result and so on. I don't want +to have a bad setup which is difficult to change once its included in the +"official" release because somebody might be using it already. + +Here are the questions involved: + +1* RINTERP has the following interface: + +PolynomialInterpolation(xx, F): Cat == Body where + xx: Symbol + F: Field + UP ==> UnivariatePolynomial + SUP ==> SparseUnivariatePolynomial + + Cat ==> with + interpolate: (UP(xx,F), List F, List F) -> UP(xx,F) + ++ interpolate(u,lf,lg) \undocumented + interpolate: (List F, List F) -> SUP F + ++ interpolate(lf,lg) \undocumented + +What I do not understand is: although the constructor takes an argument xx, +this argument is *not* used by the exported functions. For example, you have to +say interpolate(x,[1,2,3],[1,4,9])$PINTERP(x,FRAC INT) to get a UP in x. In +fact, this function does nothing more than the second version, followed by an +elt. To be honest, I would remove it. + +2* Furthermore, when the xdata contain duplicates, interpolate exits with + catdef: division by zero, which is correct. However, since it seems + impossible to catch an error programmatically, it might be sensible to return + "failed" instead. + +3* RationalInterpolation is a tiny bit more subtle, since it may happen that + some points are "unattainable", i.e., not interpolated correctly, and it may + even happen that the interpolating function is undefined at certain points + (because the denominator vanishes). It might be the case that it is more + effective to test this during the interpolation and to return a list of these + points, but I'm not sure about it (as above) + +4* rationalinterpolation currently returns a FRAC POLY F, which is not good. I + did this, because I was unable how to convert a SUP into a POLY at the time, + and I needed a POLY. This should definitely be changed. + +5* What's the proper modeline of Hermite-interpolation (giving derivatives on + some points) ? + +When we have discussed (or I have reached a conclusion regarding) at least +points 3 and 4 its OK for me to include rinterp (or an extension of pinterp, +what I would prefer) into the official release. + +Martin + +PS: Tim, why did you convert pmatrix into array in the pamphlet file? + +root writes: + > Grigory, + > + > re: RINTERP. fixed. thanks. + > + > Martin, + > + > Do you have a simple test case for RINTERP? + +\start +Date: Mon, 5 Jul 2004 14:07:54 -0400 +From: root +To: bill.page1@sympatico.ca +Subject: [Axiom-developer] Re: Running Axiom in LatexWiki on the Axiom portal + +Bill, + +re: http://page.axiom-developer.org/zope/Plone/wiki/June32004 + +I've rebuilt the page using the new \begin{axiom}, \end{axiom}, fixed +a typo or two, added a couple equations. I love the new Axiom I/O +feature. There are several places that have tried to put computer +algebra systems on the web. This is a huge step forward. Nice work. + +\start +Date: Mon, 5 Jul 2004 14:10:50 -0400 +From: root +To: martin.rubey@univie.ac.at +Subject: Re: [Axiom-developer] RE: PATCH: src/algebra/Makefile.pamphlet + +Martin, + +Oops, you did ask me to wait before release. Sorry about that. +The RINTERP domain is not exposed so unless someone takes explicit +steps to expose it nothing will be available anyway. + +I'll look at the rest of your message later. I'm off to a wake. + +\start +Date: 05 Jul 2004 15:42:30 -0400 +From: Camm Maguire +To: daly@idsi.net +Subject: [Axiom-developer] 20040705 build broken + +.... +make[5]: Leaving directory `/fix/g/camm/axiom/cvs/axiom-0.20040705/src/graph/viewAlone' +21 making /fix/g/camm/axiom/cvs/axiom-0.20040705/mnt/linux/doc/src/graph/fileformats.dvi from /fix/g/camm/axiom/cvs/axiom-0.20040705/src/graph/fileformats.pamphlet +22 making /fix/g/camm/axiom/cvs/axiom-0.20040705/int/graph/parabola/data from /fix/g/camm/axiom/cvs/axiom-0.20040705/src/graph/fileformats.pamphlet +25 making /fix/g/camm/axiom/cvs/axiom-0.20040705/mnt/linux/doc/src/graph/viewports from /fix/g/camm/axiom/cvs/axiom-0.20040705/src/graph/viewports +cp: cannot stat `/fix/g/camm/axiom/cvs/axiom-0.20040705/src/graph/viewports': No such file or directory +make[4]: *** [/fix/g/camm/axiom/cvs/axiom-0.20040705/mnt/linux/doc/src/graph/viewports] Error 1 +make[4]: Leaving directory `/fix/g/camm/axiom/cvs/axiom-0.20040705/src/graph' +make[3]: *** [graphdir] Error 2 +make[3]: Leaving directory `/fix/g/camm/axiom/cvs/axiom-0.20040705/src' +make[2]: *** [srcdir] Error 2 +make[2]: Leaving directory `/fix/g/camm/axiom/cvs/axiom-0.20040705' +make[1]: *** [all] Error 2 +make[1]: Leaving directory `/fix/g/camm/axiom/cvs/axiom-0.20040705' +make: *** [build-stamp] Error 2 + +\start +Date: Mon, 5 Jul 2004 22:56:05 -0400 +From: root +To: camm@enhanced.com +Subject: Re: [Axiom-developer] 20040705 build broken + +Camm, + +Try running CVS update. + +I've had problems with CVS from savannah recently. +Not all of the files get downloaded. +It has happened several times but I thought it might just be me. +I'm certain the src/graph subdir is there as David has built it. + +Let me know what happens. + +\start +Date: Mon, 5 Jul 2004 23:49:32 -0400 +From: root +To: alenka_zajka@mail.ru +Subject: [Axiom-developer] Re: [SPAM] Re: MONET Axiom front end +Cc: watt@scl.csd.uwo.ca + +Elema, + +Check out the page: + +http://page.axiom-developer.org/zope/Plone/wiki/June32004 + +This is a wiki user-editable page. +Each Axiom equation can be run by adding these lines into the page: + +\begin{axiom} +... (an axiom input line) +\end{axiom} + +I'm not sure if this technique would be useful for ORCCA but you +might find it interesting. The axiom environment causes the +equation to be executed in a background axiom and the result +is rendered on the web page. All equations on the same page +are run in one copy of Axiom making it possible to develop +documentation online. Since ORCCA wants to work with several +systems perhaps it could copy the technique and implement + +\begin{maple} +\begin{yacas} ... etc + + +Bill Page, one of the axiom developers, is responsible for this. + +\start +Date: Tue, 6 Jul 2004 05:55:16 -0400 +From: "Page, Bill" +To: "'daly@idsi.net'" +Subject: RE: [Axiom-developer] Re: [SPAM] Re: MONET Axiom front end +Cc: watt@scl.csd.uwo.ca, alenka_zajka@mail.ru, 'Bertfried Fauser' , 'Bob McElrath' , + +Tim, + +Here are some more example pages + + http://page.axiom-developer.org/zope/Plone/Members/billpage + + http://page.axiom-developer.org/zope/Plone/Members/billpage/AxiomCommands + +I have made a few more improvements to the AXIOM web interface. +I think it will now handle all the usual forms of AXIOM input +including multi-line function definitions with standard +indentation for blocks, system commands like )show Integer, +and graceful output in case of syntax errors, etc. + +I have also changed the display so that AXIOM commands appear +highlighted and equation numbers appear on the right hand side. +As is the convention in LatexWiki, + + http://mcelrath.org/Notes/StructuredTextRules + +the equation numbers are assigned hyperlink names of the form +'eq99' (where 99 is the equation number) that can be referenced +from within the page simply as (99) or from elsewhere by a url +ending in #eq99. For example + + +http://page.axiom-developer.org/zope/Plone/Members/billpage/AxiomCommands#eq +4 + +I would very much like to get some feedback from other Axiom +developers about how this works. If you haven't done so already, +please take a minute to register for access to the Axiom portal + + http://page.axiom-developer.org/zope/Plone/join_form + +Logging on to this site will allow you to edit the pages and +re-run Axiom online. You can also create your own wiki web pages +that include Axiom output and LaTeX mathematics. You can also +subscribe to the Axiom Wiki so that the contents of new pages +and comments on the pages will be sent to you by email. + +Yes as you suggest Tim, the same technique could easily be +used with other CAS programs - especially those that can +produce LaTeX output. The interface to Axiom consists of +a Python module of about 100 lines of code that prepares an +input file for Axiom and parses the output. It depends on +Bob McElrath's LatexWiki extension of Zwiki which runs +under Zope and Plone. + + http://mcelrath.org/Notes/LatexWiki + +The next major step would be to include the Axiom graphics +output on the web page. Once you have the basic Axiom graphics +functionality up and running and producing postscript format +output, I think adding the web interface should be a fairly +easy job. + +Regards, +Bill Page. + +> -----Original Message----- +> From: root [mailto:daly@idsi.net] +> Sent: Monday, July 05, 2004 11:50 PM +> To: alenka_zajka@mail.ru +> Cc: watt@scl.csd.uwo.ca; axiom-developer@nongnu.org; daly@idsi.net +> Subject: [Axiom-developer] Re: [SPAM] Re: MONET Axiom front end +> +> +> Elema, +> +> Check out the page: +> +> http://page.axiom-developer.org/zope/Plone/wiki/June32004 +> +> This is a wiki user-editable page. +> Each Axiom equation can be run by adding these lines into the page: +> +> \begin{axiom} +> ... (an axiom input line) +> \end{axiom} +> +> I'm not sure if this technique would be useful for ORCCA but you +> might find it interesting. The axiom environment causes the +> equation to be executed in a background axiom and the result +> is rendered on the web page. All equations on the same page +> are run in one copy of Axiom making it possible to develop +> documentation online. Since ORCCA wants to work with several +> systems perhaps it could copy the technique and implement +> +> \begin{maple} +> \begin{yacas} ... etc +> +> +> Bill Page, one of the axiom developers, is responsible for this. + +\start +Date: Tue, 6 Jul 2004 09:17:12 -0700 +From: Bob McElrath +To: "Page, Bill" +Subject: Re: [Axiom-developer] Re: [SPAM] Re: MONET Axiom front end +Cc: watt@scl.csd.uwo.ca, alenka_zajka@mail.ru, 'Bertfried Fauser' + +--OXfL5xGRrasGEqWY + +Very cool! + +I released LatexWiki 0.32 this weekend, and in it are some imporovements +for Plone. Specifically, the stylesheet works in plone so that in-line +equations have a similar font as the page text. + +I do not have a convenient way to adjust fonts in plone but would like +to add this. Normally there is a page + + http://page.axiom-developer.org/zope/Plone/UserOptions + +which is not plone-specific, but it looks like it is not installed on +your site. + +Bill would you be willing to share these patches so I can distribute +them with LatexWiki? Did you define a new page type? + +Page, Bill [Bill.Page@drdc-rddc.gc.ca] wrote: +> Tim, +> +> Here are some more example pages +> +> http://page.axiom-developer.org/zope/Plone/Members/billpage +> +> http://page.axiom-developer.org/zope/Plone/Members/billpage/AxiomComman= +ds +> +> I have made a few more improvements to the AXIOM web interface. +> I think it will now handle all the usual forms of AXIOM input +> including multi-line function definitions with standard +> indentation for blocks, system commands like )show Integer, +> and graceful output in case of syntax errors, etc. + +\start +Date: Tue, 6 Jul 2004 13:03:44 -0400 +From: "Page, Bill" +To: 'Bob McElrath' +Subject: RE: [Axiom-developer] Re: [SPAM] Re: MONET Axiom front end +Cc: watt@scl.csd.uwo.ca, "Bill Page \(E-mail\)" , alenka_zajka@mail.ru, 'Bertfried Fauser' + +Bob, + +On Tuesday, July 06, 2004 12:17 PM you wrote + +> ... +> I released LatexWiki 0.32 this weekend, and in it are some +> improvements for Plone. Specifically, the stylesheet works +> in plone so that in-line equations have a similar font as +> the page text. + +Yes, I saw your notice and I look forward to implementing 0.32 +but since I have only just got AXIOM working with LatexWiki, +I am a little reluctant to make changes to the axiom-developer.org +system until people have had a chance to use it and comment on +it. I tried a while back to change the stylesheet used by Zwiki +in Plone, but it didn't work on first try and I didn't have time +to go back to it. + +When I get around to it, I would also like to implement the +Microsoft IE AlphaImageLoader filter stylesheet behaviour that +corrects the problem with image backgrounds (not transparent) on +IE. + + http://webfx.eae.net/dhtml/pngbehavior/pngbehavior.html + +Anyway, if someone has additional system resources to spare, +I would be willing to duplicate what I have done so far on +another system with newer versions of Zope, Zwiki, and Plone. +Right now all of these are about 3 months behind current - +not too bad, but things do change quite quickly in this business. + +> +> I do not have a convenient way to adjust fonts in plone but +> would like to add this. Normally there is a page +> +> http://page.axiom-developer.org/zope/Plone/UserOptions +> +> which is not plone-specific, but it looks like it is not installed +> on your site. + +You can access this page on the Zope-based Zwiki/LatexWiki +site: + + http://page.axiom-developer.org/zope/mathaction/UserOptions + +I set up both a "stand alone" LatexWiki at + + http://page.axiom-developer.org/zope/mathaction + +and the Plone-based portal + + http://page.axiom-developer.org/zope/Plone + +with the publicly accessible LatexWiki at + + http://page.axiom-developer.org/zope/Plone/wiki + +These are separate wiki's, one with the vanilla Zwiki Zope +skin and the other with the Plone skin in the portal +environment. I think it would be neat if these could both +contain the same contents with just two different look-and- +feel. + +There are also other LatexWiki's created by registered users +on the portal. + +Apparently UserOptions is only available in the Zope-based +wiki. + +> +> Bill would you be willing to share these patches so I can +> distribute them with LatexWiki? + +Yes, absolutely. I would consider them licensed under the +same terms as LatexWiki. I would be very happy if you could +just incorporate them into your LatexWiki distribution. I +consider what I have right now as more or less at the "0.20" +version level. It's just one Python module that implements +the filter and a one line change to ReplaceInlineLatex.py to +call it before calling renderLatex. I can send you the file +whenever you want. Do you have AXIOM installed on one of +your servers? + +> Did you define a new page type? + +No, but that might be neat. I don't know enough about Zwiki +yet to do that and I haven't looked closely enough at your +install script. Actually, I think the number of different +page types is rather confusing to most users and if I added +a new type, I would probably want to take other less useful +options away. + +Regards, +Bill Page. + +> +> Page, Bill [Bill.Page@drdc-rddc.gc.ca] wrote: +> > Tim, +> > +> > Here are some more example pages +> > +> > http://page.axiom-developer.org/zope/Plone/Members/billpage +> > +> > +> http://page.axiom-developer.org/zope/Plone/Members/billpage/AxiomCommands +> > +> > I have made a few more improvements to the AXIOM web interface. +> > I think it will now handle all the usual forms of AXIOM input +> > including multi-line function definitions with standard +> > indentation for blocks, system commands like )show Integer, +> > and graceful output in case of syntax errors, etc. + +\start +Date: 06 Jul 2004 16:51:09 -0400 +From: Camm Maguire +To: daly@idsi.net +Subject: [Axiom-developer] New Debian package uploaded 20040705 + +Greetings! Just a notification. New package layout will probably +take about a week to be approved and installed in the archives. + +\start +Date: Wed, 7 Jul 2004 12:15:25 +1000 +From: Jason White +To: axiom-developer@nongnu.org +Subject: RE: [Axiom-developer] Re: [SPAM] Re: MONET Axiom front end + +Page, Bill writes: + > Tim, + > + > Here are some more example pages + > + > http://page.axiom-developer.org/zope/Plone/Members/billpage + > + > http://page.axiom-developer.org/zope/Plone/Members/billpage/AxiomCommands + +Would it be possible to place something informative in the ALT +attribute of each image, for example the LaTeX code of the equation, +rather than "LatexWiki image"? People reading these pages with a +braille or speech interface or with a text-only browser would then at +least be able to read the LaTeX. + +Of course, the real solution is to offer XHTML+MathML as an output +format, which I am sure is on the development agenda at some point. + +\start +Date: Tue, 6 Jul 2004 20:30:27 -0700 +From: Bob McElrath +To: Jason White +Subject: Re: [Axiom-developer] Re: MONET Axiom front end + +--3Pql8miugIZX0722 + +Jason White [jasonjgw@pacific.net.au] wrote: +> Page, Bill writes: +> > Tim, +> > +> > Here are some more example pages +> > +> > http://page.axiom-developer.org/zope/Plone/Members/billpage +> > +> > http://page.axiom-developer.org/zope/Plone/Members/billpage/AxiomCom= +mands +> +> Would it be possible to place something informative in the ALT +> attribute of each image, for example the LaTeX code of the equation, +> rather than "LatexWiki image"? People reading these pages with a +> braille or speech interface or with a text-only browser would then at +> least be able to read the LaTeX. + +This will require a minor rewrite of how I substitute equations back in +the page. The code is there but disabled. In-line equations have an +appropriate alt tag. + +> Of course, the real solution is to offer XHTML+MathML as an output +> format, which I am sure is on the development agenda at some point. + +Please see: + + http://mcelrath.org/Notes/ITeXTest + +Which is a working test-page of exactly that. Right now browser support +is very poor, and is the limiting factor. This page uses itex: + + http://golem.ph.utexas.edu/~distler/blog/archives/000374.html + +which is a small lex/yacc program to convert a subset of latex to +MathML. As such it cannot support style files, a latex template, or +some very complex equations. I then run it through the +LaTeX/ghostscript part to generate images from anything that itex +missed. More links on this subject can be found on my main LatexWiki +page: + + http://mcelrath.org/Notes/LatexWiki + +I am still contemplating an overhaul that would use tex4ht instead, and +thus allow the use of latex style files. But this is much more +complicated, and slower. + +MathML adoption has been glacially slow due to the chicken and egg +problem between browsers and page creators. I encourage the AXIOM +project to make use of MathML and help push this! As far as I know, +Distler's blog (above) is the only site to use exclusively MathML on a +"real" site. (as opposed to sites talking about MathML implementation +itself, or sites which have MathML toys but no mathematical content of +interest to mathematicians, physicists, or engineers) + +\start +Date: Wed, 7 Jul 2004 14:09:14 +1000 +From: Jason White +To: Bob McElrath +Subject: Re: [Axiom-developer] Re: MONET Axiom front end + +Bob McElrath writes: + > + > MathML adoption has been glacially slow due to the chicken and egg + > problem between browsers and page creators. I encourage the AXIOM + > project to make use of MathML and help push this! + +Axiom includes support for OpenMath (http://www.openmath.org/) but it +isn't clear from the mailing list discussion whether anyone has +managed to get it to work with any of the open-source axiom releases. + +At http://www.openmath.org/ there is an XSLT style sheets intended to +transform OpenMath into presentation MathML. This could perhaps be +used to process output from Axiom in the absence of support for +generating presentation MathML directly. + +\start +Date: Wed, 07 Jul 2004 04:51:38 -0400 +From: William Sit +To: axiom-developer@nongnu.org +Subject: [Axiom-developer] spool bug? + +I am not sure if it is a bug, but I think it would be better if the "feature" +below is modified. + +As one knows, it takes quite a few compiles to get a spad file in the right +form, especially when one is learning. I also like to keep a record of the +mistakes I made as well as to document any possible bugs. So what I want to do +is this: + +)spool mytest.output +)sys cat mytest.spad +)comp mytest.spad +-- go make some changes +-- repeat the previous two commands +)spool + +At the console the file is displayed. However, spool does not capture any output +from the )sys cat command. + +I lost all the changes I made to mytest.spad even though eventually, I got it +working. + +My request therefore: Is it difficult to modify spool so it will also capture +all the output from a system command like cat? (I don't expect spool to capture +other than "terminal" type output streams.) + +\start +Date: Wed, 7 Jul 2004 07:21:46 -0400 +From: root +To: wyscc@cunyvm.cuny.edu +Subject: Re: [Axiom-developer] spool bug? + +William, + +)spool is working with terminal i/o from lisp. + +)sys starts a new shell with its own i/o rather than using the lisp i/o. + +So it's not really a bug but a request for a feature change. + +In theory it should be possible to capture the i/o stream from the +shell and redirect it thru a lisp i/o stream but that would require a +different system call from the underlying lisp. I'll look at the code +and see what it currently does. If there is a way that lisp will let +me capture the output I'll rewrite )sys. + +\start +Date: Wed, 7 Jul 2004 07:35:13 -0400 +From: root +To: wyscc@cunyvm.cuny.edu +Subject: Re: [Axiom-developer] spool bug? + +William, + +This request is Feature 9581 which has been added to the bug tracking. + +\start +Date: Wed, 7 Jul 2004 07:36:58 -0400 +From: root +To: jasonjgw@pacific.net.au, bob+axiom@mcelrath.org +Subject: Re: [Axiom-developer] Re: MONET Axiom front end + +Jason, Bob, + +The MathML XSLT style sheet feature request 9582 has been added. + +\start +Date: 02 Jul 2004 12:42:16 -0400 +From: Camm Maguire +To: axiom-developer@nongnu.org +Subject: [Axiom-developer] Re: Lisp vs. Java vs. C++ speed comparison time? +Cc: Antonio Menezes Leitao + +The following message is a courtesy copy of an article +that has been posted to comp.lang.lisp as well. + +Greetings! Coincidentally, we've been looking at the Boyer benchmark +too in testing the recent GCL 2.6.2 release. Thought it might be of +interest to post some GCL results here too (using the boyer benchmark +version posted in this thread): + +All times are reported in real time/gc time. + +n GCL-2.6.2 CMUCL 18e CLISP 2.33.2 + +0 0.03/0.00 0.04/0.00 0.17/0.01 +1 0.21/0.07 0.25/0.00 1.14/0.05 +2 0.46/0.12 0.67/0.02 3.08/0.14 +3 1.20/0.26 1.76/0.08 8.15/0.50 +4 3.74/0.95 5.30/0.69 23.45/1.46 +5 12.32/3.72 15.80/2.11 79.51/7.55 + + +All lisps here are the latest versions in Debian unstable. GCL was +run in ANSI mode. The machine was a dual Xeon 2.4Ghz. We already +know that the relative GCL/CMUCL performance can vary somewhat by +machine, presumably influenced by cache size and cpu/memory bandwidth +ratios. It is clear for example that CMUCL is doing a better job on +the memory layout/access times which predominate in the gc time +component. On this particular machine, again presumably, memory +access is not the rate limiting step, and the results are more +governed by in cache cpu performance. + +All that one might reasonably conclude from this exercise is that in +some cases, GCL is about as fast as CMUCL. + +A few extra notes. GCL comes with an automatic function proclamation +feature which is useful in optimizing the compile, for both GCL and +CMUCL (at least). One uses it as follows: + +(compiler::emit-fn t) +(compile-file "foo.lisp") +(compiler::make-all-proclaims "foo.fn") +(load "sys-proclaim.lisp") +(compile-file "foo.lisp") + +This is not simply bundled into compile-file as it is capable of +generating cross-referencing information across many files that can be +useful in optimizing a real system. The above tests had the +sys-proclaim.lisp file loaded into each lisp before running +compile-file. What is interesting is that on my machine at least, +this measurably helped the cmucl compile over a 'vanilla' +compile-file, and the insertion of + +(declaim (optimize (speed 3) (safety 0) (debug 0) (compilation-speed +0))) + +at the top of the lisp source file actually degraded cmucl performance +from the vanilla version. The fastest cmucl numbers are reported +above. + +Take care, + + +Antonio Menezes Leitao writes: + +> mmcconnell17704@yahoo.com (Mark McConnell) writes: +> +> > To clarify: I'm concerned the test was unfair to Lisp. Java's +> > compiler tries to optimize for speed, but Lisp won't try [or won't try +> > its hardest] unless you say (proclaim '(optimize speed)). Antonio, is +> > there a chance you could run the test again with that line included? +> +> Sure. I added a +> +> (declaim (optimize (speed 3) (safety 0) (debug 0) (compilation-speed 0))) +> +> at the beginning of the (Common Lisp) file, recompiled it and timed it +> again. Here are the results of two runs (I also run the Java code +> again): +> +> N CMUCL CLISP Allegro ServerVM +> 0 0.04 0.14 0.02 0.05 +> 1 0.12 0.84 0.18 0.13 +> 2 0.37 2.40 0.51 0.43 +> 3 1.18 6.28 1.46 1.11 +> 4 2.94 18.24 5.30 3.68 +> 5 11.81 69.04 24.04 15.81 +> +> N CMUCL CLISP Allegro ServerVM +> 0 0.02 0.13 0.03 0.02 +> 1 0.17 0.84 0.18 0.13 +> 2 0.40 2.32 0.51 0.40 +> 3 1.02 6.57 1.45 1.08 +> 4 3.03 17.99 4.82 3.71 +> 5 13.03 70.86 23.35 15.37 +> +> The results are not very different from the previous ones I published +> and that I repeat below: +> +> N CMUCL CLISP Allegro ServerVM +> 0 0.04 0.13 0.04 0.02 +> 1 0.13 0.84 0.26 0.18 +> 2 0.41 2.31 0.72 0.50 +> 3 1.25 6.58 1.99 1.46 +> 4 3.22 17.87 6.36 3.89 +> 5 12.60 69.65 26.97 19.25 +> +> I guess the Boyer benchmark doesn't show much opportunity for +> optimization. +> +> One last note: +> +> I think we shouldn't put too much confidence in these numbers. My +> test machine is one of those new Centrinos that dynamically adjusts +> the processor speed. This might cause inconsistent timings. One +> strange phenomena is the larger variance of the JVM compared with the +> Lisps. In the same Common Lisp environment I get (more or less) +> consistent timings, but in the JVM I get from 15 s to 25 s for the +> last test case (apparently, depending on the day of the test :-). +> +> Anyway, given the investment being done in Java compared with the +> investment being done in Common Lisp, I foresee difficult times for +> Common Lisp compilers that want to compete with Java for speed. +> Fortunately, speed is the least of my concerns. Usually, all my code +> is compiled with (declaim (optimize (speed 0) (safety 3) (debug 3))). +> +> Best regards, +> +> Ant=F3nio Leit=E3o. + +\start +Date: Wed, 7 Jul 2004 23:55:58 -0400 +From: "Bill Page" +To: "'Bob McElrath'" +Subject: [Axiom-developer] RE: IE css png behavior + +Bob, + +I have made some changes to the AxiomWiki code in response to your +suggestions to worry a little about security (I disabled Axiom's )sys +command) and I also added the ability to compile Axiom Library code. = +With +these changes I think I am almost ready to announce the availability of +"Axiom on the Web" more widely to the axiom-users list. I'd like to get = +some +"real" user feedback :). Let me know if you think of anything else I = +should +worry about first. + +There is a diff below and the files are at + +http://page.axiom-developer.org/zope/Products/LatexWiki/ReplaceInlineAxio= +m.p +y +http://page.axiom-developer.org/zope/Products/LatexWiki/axiomWrapper.py + +I also spent far too much time tonight trying to figure out the font +problems with LatexWiki inside Plone 2. I am totally frustrated about it = +and +have decided to wait until I can upgrade to the newer versions of Zwiki = +and +LatexWiki. I even have problems printing from Plone. The font sizes = +change +radically, some text is cut-off on the right margin and so are the LaTeX +images. Have you seen this sort of printing problem before? + +Regards, +Bill Page. + +diff -Naur AxiomWiki-0.2.0/ReplaceInlineAxiom.py +AxiomWiki-0.2.1/ReplaceInlineAxiom.py +--- AxiomWiki-0.2.0/ReplaceInlineAxiom.py 2004-07-07 +11:26:42.359375000 -0400 ++++ AxiomWiki-0.2.1/ReplaceInlineAxiom.py 2004-07-07 +11:56:48.734375000 -0400 +@@ -13,8 +13,8 @@ + Some or all expressions may not have rendered properly, + because Axiom returned the following = +error:
%s
""" + +- axiomPattern = r'^[ \t]*\\begin{axiom}(.*?)\\end{axiom}' + reConsts = re.MULTILINE+re.DOTALL ++ axiomPattern = re.compile(r'^[ +\t]*\\begin{axiom}(.*?)\\end{axiom}',reConsts) + + def htmlMarkup(code): + newCode = re.compile(r'&', reConsts).sub(r'&',code) +@@ -26,7 +26,7 @@ + newCode = re.compile(r'_', reConsts).sub('_', newCode) + return newCode + +- axiomCodeList = re.compile(axiomPattern,reConsts).findall(body) ++ axiomCodeList = axiomPattern.findall(body) + + (latexCodeList,errors) = renderAxiom(axiomCodeList) + +@@ -60,7 +60,7 @@ + newCode = re.compile(r'\n', = +reConsts).sub(r'\r\n',newCode) + newCode = +'
\r\n'+htmlMarkup(strip(newCode,'\r\n'))+'\r\n
\r\n' + newCodeList.append(newCode) +- body = re.compile(axiomPattern,reConsts).sub(lambda +x:newCodeList.pop(0),body) ++ body = axiomPattern.sub(lambda x:newCodeList.pop(0),body) + else: + body = "
" + body + "
" + errorMessage %(errors) + +diff -Naur AxiomWiki-0.2.0/axiomWrapper.py = +AxiomWiki-0.2.1/axiomWrapper.py +--- AxiomWiki-0.2.0/axiomWrapper.py 2004-07-07 11:27:38.609375000 -0400 ++++ AxiomWiki-0.2.1/axiomWrapper.py 2004-07-07 20:05:30.750000000 -0400 +@@ -22,15 +22,31 @@ + outputPattern = r'(.*?)\n\(\d+\) -> ' + reConsts = re.MULTILINE+re.DOTALL + +-def renderAxiom(axiomCodeList): ++def renderAxiom(axiomCodeList): ++ def securityCheck(code): ++ newCode = re.compile(r'^[ \t]*\)sys([^\n]*)',reConsts).sub(r'-- = +not +allowed: )sys\1\n)sys',code) ++ return newCode ++ + n = 1 + unifiedCode = '' +- for axiomCode in axiomCodeList: +- axiomFileName = fileNameFor(axiomCode, 25, '.%3.3d.input'%n) +- n = n + 1 +- unifiedCode = unifiedCode + ')read %s\n'%axiomFileName ++ for axiomCode in axiomCodeList: ++ newAxiomCode = securityCheck(axiomCode) ++ n = n + 1 ++ if re.match(r'^\s*\)abbrev',newAxiomCode): ++ # Starts like a package so compile as library code ++ axiomFileName = fileNameFor(newAxiomCode, 25, = +'.%3.3d.spad'%n) ++ # This is just for appearances ++ newAxiomCode = newAxiomCode + +'------------------------------------------------------------------------= +\n' ++ unifiedCode = unifiedCode + ')set message prompt none\n' ++ unifiedCode = unifiedCode + ')sys cat %s\n'%axiomFileName ++ unifiedCode = unifiedCode + ')compile %s\n'%axiomFileName ++ unifiedCode = unifiedCode + ')set message prompt step\n' ++ else: ++ # otherwise it is just an input file ++ axiomFileName = fileNameFor(newAxiomCode, 25, = +'.%3.3d.input'%n) ++ unifiedCode = unifiedCode + ')read %s\n'%axiomFileName + axiomFile = open(axiomFileName, 'w') +- axiomFile.write(axiomCode) ++ axiomFile.write(newAxiomCode) + axiomFile.close() + try: + latexCode=runAxiom(unifiedCode,axiomTemplate) + +\start +Date: Thu, 8 Jul 2004 00:01:56 -0400 +From: "Bill Page" +To: "'root'" +Subject: [Axiom-developer] Axiom on the Web library compiler +Cc: 'Bob McElrath' + +I wrote: + +> ... and I also added the ability to compile +> Axiom Library code. With these changes I think I am almost +> ready to announce the availability of "Axiom on the Web" more +> widely to the axiom-users list. I'd like to get some "real" +> user feedback :). + +Here's a link + + +http://page.axiom-developer.org/zope/Plone/Members/billpage/AxiomLibrary/= +vie +w + +Tim, are there any options that I can specify on the Axiom +)compile command to reduce the amount of compiler output? + +\start +Date: Thu, 8 Jul 2004 01:01:48 -0400 +From: root +To: bill.page1@sympatico.ca +Subject: Re: [Axiom-developer] Axiom on the Web library compiler +Cc: bob@mcelrath.org + +re: compiler quiet options. + +These don't exist but we could modify the system to have a )quiet option. +Unless you knew the code would compile, however, you might miss +informative messages. + +\start +Date: Thu, 08 Jul 2004 00:58:18 -0400 +From: William Sit +To: daly@idsi.net +Subject: Re: [Axiom-developer] spool bug? + +Thanks, Tim for putting this as request 9581. Would it be easier then to +provide a lisp command (maybe there is even already one) that duplicates the +)sys cat function? or some piping mechanism back to lisp? (Is the command )read +working with terminal i/o from lisp or does it also start a new shell?) + +Unless, of course, if there are other )sys commands that one wants to capture +... I can think of commands like ls or ps but these seem not to be as critical +for documentation as cat. + +William +----- + +root wrote: +> +> William, +> +> )spool is working with terminal i/o from lisp. +> +> )sys starts a new shell with its own i/o rather than using the lisp i/o. +> +> So it's not really a bug but a request for a feature change. +> +> In theory it should be possible to capture the i/o stream from the +> shell and redirect it thru a lisp i/o stream but that would require a +> different system call from the underlying lisp. I'll look at the code +> and see what it currently does. If there is a way that lisp will let +> me capture the output I'll rewrite )sys. +> +> Tim + +> This request is Feature 9581 which has been added to the bug tracking. + + +William wrote: + +> My request therefore: Is it difficult to modify spool so it will also capture +> all the output from a system command like cat? (I don't expect spool to capture +> other than "terminal" type output streams.) + +\start +Date: Thu, 8 Jul 2004 12:31:01 +0200 +From: "Weiss, Juergen" +To: , +Subject: RE: [Axiom-developer] spool bug? + +I think there are better ways to achieve the same results (spool +commands +on unix, X-Term session capture etc.) than to change Axiom. With the +)sys command you can call an editor or a shell which will not work +within a pipe -- at least not as expected. + +With best regards + +Juergen Weiss + +Juergen Weiss | Universitaet Mainz, Zentrum fuer Datenverarbeitung, +weiss@uni-mainz.de| 55099 Mainz, Tel: +49(6131)39-26361, FAX: ++49(6131)39-26407 + + +> -----Original Message----- +> From: axiom-developer-bounces+weiss=uni-mainz.de@nongnu.org +> [mailto:axiom-developer-bounces+weiss=uni-mainz.de@nongnu.org] +> On Behalf Of William Sit +> Sent: Thursday, July 08, 2004 6:58 AM +> To: daly@idsi.net +> Cc: axiom-developer@nongnu.org +> Subject: Re: [Axiom-developer] spool bug? +> +> Thanks, Tim for putting this as request 9581. Would it be +> easier then to +> provide a lisp command (maybe there is even already one) that +> duplicates the +> )sys cat function? or some piping mechanism back to lisp? (Is +> the command )read +> working with terminal i/o from lisp or does it also start a +> new shell?) +> +> Unless, of course, if there are other )sys commands that one +> wants to capture +> ... I can think of commands like ls or ps but these seem not +> to be as critical +> for documentation as cat. +> +> William +> ----- +> +> root wrote: +> > +> > William, +> > +> > )spool is working with terminal i/o from lisp. +> > +> > )sys starts a new shell with its own i/o rather than using +> the lisp i/o. +> > +> > So it's not really a bug but a request for a feature change. +> > +> > In theory it should be possible to capture the i/o stream from the +> > shell and redirect it thru a lisp i/o stream but that would +> require a +> > different system call from the underlying lisp. I'll look +> at the code +> > and see what it currently does. If there is a way that lisp will let +> > me capture the output I'll rewrite )sys. +> > +> > Tim +> +> > This request is Feature 9581 which has been added to the +> bug tracking. +> +> +> William wrote: +> +> > My request therefore: Is it difficult to modify spool so it +> will also capture +> > all the output from a system command like cat? (I don't +> expect spool to capture +> > other than "terminal" type output streams.) + +\start +Date: Fri, 9 Jul 2004 01:28:15 -0400 +From: "Bill Page" +To: , +Subject: [Axiom-developer] AXIOM book project on Axiom Portal + +Tim, Bob, + +I have begun converting some of the AXIOM book to "wiki" form on +the portal. For the most part I am able to cut-and-paste the +contents of the book LaTeX file directly into the wiki pages. +Some of the LaTeX coding has to be modified, but it doesn't +take very long - mostly getting rid of the simulated Axiom +output since it is now generated automatically by Axiom itself. +To make the editing a little easier I have made a few more +improvements to the Axiom interface. Now I think it is pretty +solid and I would like to advertise it to the rest of the +Axiom user group and a few other places. Tim, is that ok with +you? + +Anyway, take a look at + + http://page.axiom-developer.org/zope/Plone/refs/books/axiombook + +and especially the Graphics section at + + http://page.axiom-developer.org/zope/Plone/refs/books/axiombook/Graphics + +The Axiom graphics Draw program is actually called in this +worksheet but as you know the part that converts the Axiom +intermediate stuff to postscript is not quite ready yet. So +the graphic is actually generated from the same postscript file +that is used in the book. I was quite pleased by how the graphic +looks on the web! + +Bob, because of the printing problems in Plone I was motivated +to upgraded the system to the most recent version of LatexWiki. I +had no problems at all, but unfortunately printing still doesn't +work properly from a Zwiki inside of Plone. Is this a know problem? + +If/when you have an updated version of LatexWiki which includes +the Axiom interface, please let me know and I will give it a try +here. Be sure to get the most recent version of the source since +I have been continuing to make small changes to it. + +\start +Date: Fri, 9 Jul 2004 02:25:13 -0400 +From: root +To: bill.page1@sympatico.ca +Subject: [Axiom-developer] Re: AXIOM book project on Axiom Portal +Cc: bob@mcelrath.org + +Bill, + +clap, clap, clap, (shuffle, stand), clap, clap, (cheer), clap,... +(words don't suffice) + +You're welcome to announce any work you do at any time. + +\start +Date: Fri, 9 Jul 2004 02:04:32 -0700 +From: Bob McElrath +To: Bill Page +Subject: [Axiom-developer] Re: AXIOM book project on Axiom Portal + +Hey that looks great! + +Bill Page [bill.page1@sympatico.ca] wrote: +> Tim, Bob, +> +> I have begun converting some of the AXIOM book to "wiki" form on +> the portal. +[...] +> Bob, because of the printing problems in Plone I was motivated +> to upgraded the system to the most recent version of LatexWiki. I +> had no problems at all, but unfortunately printing still doesn't +> work properly from a Zwiki inside of Plone. Is this a know problem? + +You are not getting the latexwiki stylesheet. Did you install latexwiki +in the quick installer? + +What do you mean "printing doesn't work". What goes wrong? (don't have +a printer here at home to test right now...) + +Be aware that mozilla has a bug in which it can't print transparent +PNG's...it prints them as solid black instead. IE prints okay but the +resolution differences mean that the math looks really crappy. It seems +printing from plone looks ultra crappy anyway. + +I envision a true latex backend for Structured Text which will +dynamically create ps or pdf for printing, rather than expecting the web +browser to do everything correctly. + +> If/when you have an updated version of LatexWiki which includes +> the Axiom interface, please let me know and I will give it a try +> here. Be sure to get the most recent version of the source since +> I have been continuing to make small changes to it. + +If you are up to figuring out darcs, you can create patches against my +darcs repository http://bob.mcelrath.org/darcs/latexwiki. See +http://zwiki.org/ZWikiDarcs for some info on it. Otherwise send me +updated patches or put them on the web somewhere. ;) + +\start +Date: 09 Jul 2004 11:53:57 +0200 +From: WZocher@t-online.de (Wolfgang Zocher) +To: daly@idsi.net +Subject: Re: [Axiom-developer] 20040705 build broken +Cc: camm@enhanced.com + +root writes: + +> I've had problems with CVS from savannah recently. +> Not all of the files get downloaded. +> It has happened several times but I thought it might just be me. +> I'm certain the src/graph subdir is there as David has built it. +> +> Let me know what happens. + +Tim, + +I tried for several times to make an update with "cvs update" but the +"src/graph" directory did not get downloaded... + +\start +Date: Fri, 9 Jul 2004 12:39:16 -0400 +From: root +To: WZocher@t-online.de +Subject: Re: [Axiom-developer] 20040705 build broken +Cc: camm@enhanced.com + +Wolfgang, + +I just tried it again with a clean system. Try the following: + +cvs -d:ext:anoncvs@savannah.nongnu.org:/cvsroot/axiom co axiom/src/graph + +and let me know if you get the src/graph subdirectory. + +\start +Date: Fri, 9 Jul 2004 19:43:05 -0400 +From: root +To: bob@mcelrath.org +Subject: [Axiom-developer] Re: Axiom wiki +Cc: luannebg@yahoo.com, bill.page1@sympatico.ca + +Bob, + +> I have had some user confusion because people think they can use *any* +> latex in a wiki page, but they cannot. Adding more latex-like +> constructs makes this worse. :( I intended latexwiki to be simple to +> edit (hence, StructuredText) plus minimal equations. A full latex +> backend would be nice, but is a different direction than I started. If +> you desire this we should make a new pagetype 'LaTeX' that uses tex4ht. + +Since there hasn't been any discussions of the long term goal of +the axiom wiki I guess it's normal to see things move in surprising +directions. Here are some of the thoughts that Bill's work inspire. + +Axiom is based entirely on pamphlet files. Pamphlet files are just +standard latex with a couple extras to support "inline" code in +the file. They are the basis of the literate programming style in +Axiom. So every file in Axiom is a pamphlet. I'm not familiar with +the details of "pagetypes" but perhaps a pamphlet pagetype is needed. + +If the Axiom wiki effort can support pamphlet <=> webpage translations +it would have two benefits. First it would provide an interesting +front-end to Axiom, especially with Bill's automation of running +Axiom on a wiki web page. This turns out to be nearly as powerful +as Mathematica and Maple notebooks. In fact, with some clever web +page buttons we could probably reproduce their complete functionality. + +If web pages could be converted to, or written originally on the wiki as, +pamphlet files then it would be possible to maintain Axiom directly on +the wiki which would practically be a research breakthru. It would +eliminate the hard-to-use CVS mechanism, enable people to use Axiom +directly as a "service" and encourage open math development on the wiki. + +I've been struggling with the issue of how to develop a browsing +structure for Axiom's pamphlet and this wiki has great potential +to solve that problem in a truly novel way. + +Axiom uses a fairly limited range of Latex mostly because my Latex +talents are limited. Support for the \begin{array} environment or +the \begin{thebibliography} environment are about the most difficult +of the parts of the Latex used. (Actually, if the \bibitems in a +bibliography were automatically turned into hyperlinks that would +be sweet). + +In any case the whole Axiom wiki idea opens up a lot of excellent, +creative directions that I think we need to explore further. + + +\start +Date: Fri, 9 Jul 2004 19:50:04 -0400 +From: root +To: bob@mcelrath.org +Subject: [Axiom-developer] Re: Axiom wiki +Cc: luannebg@yahoo.com, bill.page1@sympatico.ca + +*, + +Currently, as you know, code is delimited in axiom's pamphlet files +using a special "chunk" syntax: + +<>= <<== define code here + code +@ + +and it gets expanded when the "chunk name" gets referenced: + +<> <<== expand code here + + +It occurs to me that we could easily make this more "latex-like" thus: + +\begin{chunk}[chunk name] + code +\end{chunk} + +\expand{chunk}[chunk name] + + +This would be "pseudo-latex" because the only difference between the +current chunk naming method and the latex-like chunk naming method +is syntactic. The pamphlet file would still expand exactly as before. +Only the program that collects and expands chunks (noweb) needs to change. + +If we move to the latex syntax then it would be easy to define latex +environment macros which would do something harmless. + + +\start +Date: Fri, 9 Jul 2004 19:55:06 -0400 +From: root +To: bob@mcelrath.org +Subject: [Axiom-developer] Re: Axiom wiki +Cc: luannebg@yahoo.com, bill.page1@sympatico.ca + +*, + +Another point of inspiration, at least for me, it that Axiom isn't +the only computer algebra system using pamphlets. Magnus is a +special purpose computer algebra system in infinite group theory +that also is using the pamphlet machinery. + +Who knows, with the right advertising, perhaps we could convince +Maxima to do the same. That would make all of these systems useful +in a web environment in the relatively near term. + +\start +Date: Fri, 9 Jul 2004 16:50:29 -0700 +From: Bob McElrath +To: root +Subject: [Axiom-developer] Re: Axiom wiki +Cc: bill.page1@sympatico.ca, luannebg@yahoo.com + +Latex has a command \write18{SHELL COMMAND} which will directly run +shell commands. This is disabled by default and must be enabled by +'latex -shell-escape' I don't know about successive inputs to axiom. I +take it pamphlet files are pre-processed by some tool? + +Clever use of \write18 combined with some named pipes or temporary files +to corral output could enable latex itself to run axiom and include its +output in the resultant ps. This could be done in a style file using +the latex-like syntax you suggest below. If we were super-clever, we +would make the syntax the same for the web stuff... + +\begin{axiom} + code +\end{axiom} + +Obviously, this can be a HUGE security hole, and I would not want people +to be able to edit documents on-line that can run arbitrary commands on +the server. However it suggests a uniform document format... + +root [daly@idsi.net] wrote: +> *, +> +> Currently, as you know, code is delimited in axiom's pamphlet files +> using a special "chunk" syntax: +> +> <>= <<== define code here +> code +> @ +> +> and it gets expanded when the "chunk name" gets referenced: +> +> <> <<== expand code here +> +> +> It occurs to me that we could easily make this more "latex-like" thus: +> +> \begin{chunk}[chunk name] +> code +> \end{chunk} +> +> \expand{chunk}[chunk name] +> +> +> This would be "pseudo-latex" because the only difference between the +> current chunk naming method and the latex-like chunk naming method +> is syntactic. The pamphlet file would still expand exactly as before. +> Only the program that collects and expands chunks (noweb) needs to change. +> +> If we move to the latex syntax then it would be easy to define latex +> environment macros which would do something harmless. + +\start +Date: Fri, 9 Jul 2004 17:31:14 -0700 +From: Bob McElrath +To: root +Subject: [Axiom-developer] Re: Axiom wiki +Cc: zwiki@zwiki.org, bill.page1@sympatico.ca, luannebg@yahoo.com + +root [daly@idsi.net] wrote: +> Bob, +> +> Since there hasn't been any discussions of the long term goal of +> the axiom wiki I guess it's normal to see things move in surprising +> directions. Here are some of the thoughts that Bill's work inspire. +> +> Axiom is based entirely on pamphlet files. Pamphlet files are just +> standard latex with a couple extras to support "inline" code in +> the file. They are the basis of the literate programming style in +> Axiom. So every file in Axiom is a pamphlet. I'm not familiar with +> the details of "pagetypes" but perhaps a pamphlet pagetype is needed. + +A PageType is a ZWiki construct that encapsulates an input format such +as StructuredText, HTML, StructuredText + LaTeX, etc. See +ZWiki/pagetypes. + +The format I have been using is StructuredText + LaTeX. Let me give a +little history on this before you all go converting documents en +masse... StructuredText (stx) is a big hack of formatting rules piled +on top of one another using regexes. It is not well-defined as a +structured grammar. (Though I have been working on this) For instance +it has no well-defined mechanism to escape markup. If you play with it +long enough you WILL run into bugs, particularly when mixing escaping +mechanisms (! for stx, \ for latex). It is nice because it ignores HTML +markup embedded in stx, so you can mix the two. It is simple enough +that anyone can write it, but really, it is a toy. I would not want to +base a large project or documentations system around it. Eventually its +design limitations will become a hinderance. + +reStructuredText (rst) is an attempt to more formally define the +grammar. However its rules differ significantly from StructuredText, +and it uses the backslash as an escape character, meaning mixing latex +with it may be difficult. However as it is a defined grammar one would +need to add latex syntax (including math) rules. If someone wants to +investigate further this would be interesting. + +This leaves pure latex as an input format. Now, clearly, pure latex is +an appropriate and powerful input format for documentation. latex2html +can already generate html (though it is archaic and equations are poorly +aligned -- but we can work on that). There is also the tex4ht variant +of latex2html which can output mathml. This is all done using latex +commands and style files, and is rather slow. Appropriate +web-representation would mean: + + 1) separate the Big Book into individual pages (chapters?) + 2) hyperlinking + 3) referencing/footnoting + 4) in-page hyperlinking for equations a la existing latexwiki? + +So I see a couple options for all this: + + 1) Use a front-end to convert pamphlet files to a web-appropriate + format (stx + latex or rst + latex) + + 2) Use latex all around, defining a new pagetype. The pagetype does + not have to be axiom specific, but it could be. + +I think the existing stx+latex can co-exist with a pure latex format. +Users can "play" with stx+latex, and more formal documentation can be +written in straight latex and placed on the web (but would not be +user-editable -- this also alleviates the security concern I mentioned +earlier if \write18 is used). + +> If the Axiom wiki effort can support pamphlet <=> webpage translations +> it would have two benefits. First it would provide an interesting +> front-end to Axiom, especially with Bill's automation of running +> Axiom on a wiki web page. This turns out to be nearly as powerful +> as Mathematica and Maple notebooks. In fact, with some clever web +> page buttons we could probably reproduce their complete functionality. + +Have you looked at Mozilla's XUL? + + http://www.xulplanet.com/ + +Since Mozilla already knows about MathML, a complete user interface for +a computer algebra system could be implemented in a totally +platform-independent way inside mozilla, running the axiom process +locally or remotely... + +> If web pages could be converted to, or written originally on the wiki as, +> pamphlet files then it would be possible to maintain Axiom directly on +> the wiki which would practically be a research breakthru. It would +> eliminate the hard-to-use CVS mechanism, enable people to use Axiom +> directly as a "service" and encourage open math development on the wiki. + +Don't underestimate the usefulness of the CVS revision-and-patch +mechanism. I've been using darcs lately (better-than-cvs replacement) +and it does this very nicely, incorporating things into logical +patchsets which can be exchanged. Placing files on the wiki and +allowing multiple editors would result in many small edits, and it +becomes difficult to track down (and possibly revert) dangerous changes. + +Especially with mathematical content, changes should be encapsulated in +logical units, carefully reviewed by experts, and run through numerous +test cases to ensure mathematical correctness. + +> I've been struggling with the issue of how to develop a browsing +> structure for Axiom's pamphlet and this wiki has great potential +> to solve that problem in a truly novel way. + +It also gets indexed by google. + +> Axiom uses a fairly limited range of Latex mostly because my Latex +> talents are limited. Support for the \begin{array} environment or +> the \begin{thebibliography} environment are about the most difficult +> of the parts of the Latex used. (Actually, if the \bibitems in a +> bibliography were automatically turned into hyperlinks that would +> be sweet). + +This is something that has been on my TODO list for LatexWiki for a +while. + +\start +Date: Fri, 9 Jul 2004 21:50:47 -0400 +From: root +To: bob@mcelrath.org +Subject: Re: [Axiom-developer] Re: Axiom wiki +Cc: luannebg@yahoo.com, bill.page1@sympatico.ca + +Bob, + +Axiom uses noweb (http://www.eecs.harvard.edu/~nr/noweb) +as its literate programming tool. Historically Knuth constructed +a program called "Web" for literate programming, to support the +coding of Tex, I believe. He wanted to integrate the explanation +with the code. + +Web has two tools, "TANGLE" which takes a literate program and +produces source code and "WEAVE" which takes a literate program +and produces TeX output. Web worked only with Pascal code. + +CWeb is the same idea using C. + +noweb is the same idea but generalizes Web to be language independent. +noweb uses "NOWEAVE" to generate TeX output and "NOTANGLE" to extract +"chunks". (Chunks are just named blocks that get stuck in a hash table +when they are defined. They get expanded when the name is used). + +Axiom was completely rewritten to use a literate programming style +that combines code and documentation in one document we call a pamphlet. +(noweb calls these .nw files). So there are no C, Lisp, Spad, Makefile, +tex, or any other files left. Everything is a pamphlet combining code +and documentation. + +So the current process is: + +noweave foo.pamphlet >foo.tex +latex foo.tex + +notangle foo.pamphlet >foo.c +gcc foo.c + +for each and every file that makes up Axiom. + +This means that every source file is also a document. These documents +are automatically generated and live under mnt/linux/doc in the +distribution. + +There are thousands of these documents. + +So several interesting issues arise which Bill's work could address. + +First, the system is documented by a book (src/doc/book.pamphlet). +Bill is working to put this book online. In particular, he is +automatically recreating the Axiom output which is a very wide +range of test cases. + +Second, chapter 9 of the book is a small selection of the 1100 domains. +All of these domains are documented (poorly) under mnt/linux/doc/algebra +which is where the latex output is placed. If chapter 9 was restructured +carefully we could have all of the domains documented. + +Third, since there are several thousand files the need for some +sort of structuring mechanism (search, hierarchy, crosslinks) arises. +Browser technology gives all of this a common front end. And .dvi +files can contain hyperlink information (some of the \bibitem entries +are hyperlink format already). Bill and I, and others, have talked +about forming the lattice of the algebra code. Such a lattice would +make at least one good structuring mechanism for the mathematics. +Javadoc style navigation output is another possibility. Even simple +alphabetic order access to domain documentation would be useful. + +Fourth, other systems, such as Mathematica have notebooks which contain +code to demonstrate how to use Mathematica in a new domain such as +control theory. I can see developing web pages to explain control +theory backed by Axiom code. Indeed, the example I'm pursuing at +the moment, learning about Clifford algebra, is a case in point. +(http://page.axiom-developer.org/zope/Plone/wiki/June32004). + +Fifth, work is going on in another thread to develop another Axiom +book based on Littlewood's book. Assuming the copyright permission +is given we can release this on the wiki. This would be an experiment +in "open editing" a book related to the mathematics that is essential +to understanding Axiom. + +Sixth, Axiom generates graphics. With some help from Luanne, who +understands how to create Flash files, it should be possible to +generate Flash graphics so that equations can "evolve in time". +That is, you could run a program to create Flash which shows +how a function might evolves. This would be useful in many areas +(trivially you could automate a 3D wave function and watch it +undulate). + +The range of ideas goes on but from these beginning examples you can +understand why the work Bill and you are doing is really a great +breakthru. + + +\start +Date: Fri, 9 Jul 2004 22:01:33 -0400 +From: root +To: bob+zwiki@mcelrath.org +Subject: Re: [Axiom-developer] Re: Axiom wiki +Cc: luannebg@yahoo.com, bill.page1@sympatico.ca, zwiki@zwiki.org + +Bob, + +> Have you looked at Mozilla's XUL? +> +> http://www.xulplanet.com/ +> +> Since Mozilla already knows about MathML, a complete user interface for +> a computer algebra system could be implemented in a totally +> platform-independent way inside mozilla, running the axiom process +> locally or remotely... + +I spent a year involved in XML and its cousins. I realize that the +browser world is moving to XML based systems and we need to evolve +with it. That said, I'm not the right person to lead in that direction. +User interface work is a talent (like scheduling software) that I lack. +So I'm willing to help and to understand but I'm incapable of making +anything user-affectionate :-). + +I will look at the XUL site though. Thanks. + + +\start +Date: Fri, 9 Jul 2004 22:04:07 -0400 +From: root +To: bob+zwiki@mcelrath.org +Subject: Re: [Axiom-developer] Re: Axiom wiki +Cc: luannebg@yahoo.com, bill.page1@sympatico.ca, zwiki@zwiki.org + +Bob, + +> Don't underestimate the usefulness of the CVS revision-and-patch +> mechanism. I've been using darcs lately (better-than-cvs replacement) +> and it does this very nicely, incorporating things into logical +> patchsets which can be exchanged. Placing files on the wiki and +> allowing multiple editors would result in many small edits, and it +> becomes difficult to track down (and possibly revert) dangerous changes. + +Oh, CVS (or arch if I can get it working again) will still be used +for Axiom code. But it would be possible to add new code to Axiom +online and build test cases without damaging anything. And if the +resulting page were (by fortune or design) a near-pamphlet it would +be easy to "promote it into the official Axiom CVS". + +\start +Date: 10 Jul 2004 08:28:10 +0200 +From: WZocher@t-online.de (Wolfgang Zocher) +To: daly@idsi.net +Subject: Re: [Axiom-developer] 20040705 build broken +Cc: camm@enhanced.com, WZocher@t-online.de + +root writes: + +> cvs -d:ext:anoncvs@savannah.nongnu.org:/cvsroot/axiom co axiom/src/graph +> +> and let me know if you get the src/graph subdirectory. + +That works! Thank you. Though, I would like to understand why the "normal" cvs +update doesn't do it ... + +\start +Date: Sat, 10 Jul 2004 17:00:33 +1000 +From: Jason White +To: WZocher@t-online.de (Wolfgang Zocher) +Subject: Re: [Axiom-developer] 20040705 build broken + +Wolfgang Zocher writes: + > root writes: + > + > > cvs -d:ext:anoncvs@savannah.nongnu.org:/cvsroot/axiom co axiom/src/graph + > > + > > and let me know if you get the src/graph subdirectory. + > + > That works! Thank you. Though, I would like to understand why the "normal" cvs + > update doesn't do it ... + +Perhaps because you didn't use the -d option of the update command, as in +cvs update -d + +>From cvs(1): + + -d + + Create any directories that exist in the repository if they're miss- + ing from the working directory. Normally, update acts only on + directories and files that were already enrolled in your working + directory. + + This is useful for updating directories that were created in the + repository since the initial checkout; but it has an unfortunate side + effect. If you deliberately avoided certain directories in the + repository when you created your working directory (either through + use of a module name or by listing explicitly the files and directo- + ries you wanted on the command line), then updating with -d will cre- + ate those directories, which may not be what you want. + +\start +Date: Sat, 10 Jul 2004 04:52:51 -0400 +From: "Bill Page" +To: "'Bob McElrath'" +Subject: RE: [Axiom-developer] Re: AXIOM book project on Axiom Portal + +Bob, + +On Friday, July 09, 2004 1:06 PM you wrote: +>... +> I think 'StructuredText + Latex' not appearing is due to +> Simon not merging one of my patches into zwiki. I'll bug him +> about it. Fix it by replacing your zwiki with a darcs repository: +> +> darcs get -t release-0-32-0 http://zwiki.org/repos/ZWiki +> +> Then grab my patch: +> +> darcs pull http://bob.mcelrath.org/darcs/zwiki +> +> The patch you want is: +> Fri Jun 25 12:32:03 PDT 2004 bob+zwiki@mcelrath.org +> * Consolidate ALLOWED_* PageTypes in pagetypes/ classes. +> No functionality change with this patch. +> + +Thanks! + +Ok, after a long struggle I now have the AxiomWiki stuff working +with the newest versions of both Zwiki and LatexWiki ... many +long steps mostly related to the images directory relative +path problem (again) which I did not recognize at first and +then some changes in the Axiom interface code to use the +right method to get the full path names. Phew! + +After all that, the printing from IE is muct better :) however +it is still cut-off a bit on the right hand side. Any ideas +about what might be causing this? This didn't happen when +printing from Zope/Zwiki with IE in the versions of Zwiki +and LatexWiki. I have attached a sample pdf file created by +IE from + + +http://page.axiom-developer.org:9080/refs/books/axiombook/NumericComputat= +ion + +I can send you the patches against your version of LatexWiki +in darcs, if you like. I am not yet familiar enough with +darcs to know how to do it directly. + +In the process of debugging, I also setup a fully separate +test environment on axiom-developer.org so as not to +disturb what's working so far and what I am about to +announce more widely. This will make it easier to test new +versions and changes. When I am sure that the test version +is working, then I will migrate it to the "production" +version. + +The url for the test version (Plone only so far) is: + + http://axiom-developer.org:9080 + +> Also, the in-line equations on your pages are a few px below +> the surrounding text. Did you set the parameter +> latex_align_fudge? (to make it look okay in IE perhaps?) +> + +No I didn't change it. The funny thing is that they appear +just a little too high in IE but a little too low in Mozilla. +For example check this + + http://page.axiom-developer.org:9080/Members/billpage/TestWiki + +in both browsers. + +Doesn't this happen in the Zope and Plone 1 versions? + +\start +Date: 10 Jul 2004 10:42:07 -0400 +From: Camm Maguire +To: WZocher@t-online.de (Wolfgang Zocher) +Subject: Re: [Axiom-developer] 20040705 build broken +Cc: axiom-developer@nongnu.org, daly@idsi.net + +Greetings! + +WZocher@t-online.de (Wolfgang Zocher) writes: + +> root writes: +> +> > cvs -d:ext:anoncvs@savannah.nongnu.org:/cvsroot/axiom co axiom/src/graph +> > +> > and let me know if you get the src/graph subdirectory. +> +> That works! Thank you. Though, I would like to understand why the "normal" cvs +> update doesn't do it ... +> + +You need update -d. Check out update -h or --help. + +\start +Date: Sat, 10 Jul 2004 12:45:53 -0400 +From: root +To: WZocher@t-online.de +Subject: Re: [Axiom-developer] 20040705 build broken +Cc: camm@enhanced.com, WZocher@t-online.de + +I don't understand why normal cvs doesn't do it either. +Perhaps because CVS is working from the list of local directories +and this is a new directory. I'm sure it is a misunderstanding +on my part as this is too large an error not to have been found +before. + +In any case, I'm glad it works. + +\start +Date: Sat, 10 Jul 2004 12:49:25 -0700 +From: Bob McElrath +To: Bill Page +Subject: Re: [Axiom-developer] Re: AXIOM book project on Axiom Portal + +Bill Page [bill.page1@sympatico.ca] wrote: +> Bob, +> +> Thanks! +> +> Ok, after a long struggle I now have the AxiomWiki stuff working +> with the newest versions of both Zwiki and LatexWiki ... many +> long steps mostly related to the images directory relative +> path problem (again) which I did not recognize at first and +> then some changes in the Axiom interface code to use the +> right method to get the full path names. Phew! + +0.32 will use the full path for the LocalFS images/ by default. Is +there anything I need to fix here? + +> After all that, the printing from IE is muct better :) however +> it is still cut-off a bit on the right hand side. Any ideas +> about what might be causing this? This didn't happen when +> printing from Zope/Zwiki with IE in the versions of Zwiki +> and LatexWiki. I have attached a sample pdf file created by +> IE from + +I don't know what to tell you about printing. I note that printing +pages from moz also looks crappy. In fact, printing pages from the +official plone site in moz looks crappy. (cut off at right, strange +indenting, embedded URL's) It might be possible to fix this in +plonePrint.css. Printing URL's is due to that stylesheet: + div.document a:visited:after { + content: " ( " attr(href) " ) "; + } + +I think for a documentation system we should eventualy strive to produce +postscript/pdf from wiki pages, and not depend on the browser. TeX has +decades of history of producing good-looking output. It will be a very +long time before browsers catch up. + +> http://page.axiom-developer.org:9080/refs/books/axiombook/NumericComputat= +ion +> +> I can send you the patches against your version of LatexWiki +> in darcs, if you like. I am not yet familiar enough with +> darcs to know how to do it directly. + +Use 'darcs send' and give it my email. The other way to do it is put +your repository on the web and I can pull from it. + +> No I didn't change it. The funny thing is that they appear +> just a little too high in IE but a little too low in Mozilla. +> For example check this + +IE is bugged. It implements 'vertical-align: middle' improperly. +Mozilla and Konqueror do it right, it appears that Opera does it wrong. +I started writing some javascript to work around this: + http://mcelrath.org/imgalignx3.html +If I can get this to work cross-browser I'll include it in the next +release. (If someone knows javascript -- please play with this -- I'm +shooting in the dark with this) + +> http://page.axiom-developer.org:9080/Members/billpage/TestWiki +> +> in both browsers. + +Your site is generating different images than mine, despite the fact +that the parameters are the same. What version of ghostscript and PIL +do you have? Compare: + http://mcelrath.org:9674/Plone2/UserOptions + http://axiom-developer.org:9080/Members/mcelrath/UserOptions +as you indicate, your site is making images that are a slightly +different size, and have different amount of space around the letters. +I have ghostscript 7.07 on one computer and 7.07.1 on another (and the +images those two generate are identical). + +> Doesn't this happen in the Zope and Plone 1 versions? + +This is not a zope or plone problem, as the images we are generating are +different. It must be one of: latex, dvips, ghostscript, or PIL. + +\start +Date: Sat, 10 Jul 2004 22:54:02 -0400 +From: "Bill Page" +To: "'Bob McElrath'" +Subject: [Axiom-developer] LatexWiki image path names, + +Bob. + +On Saturday, July 10, 2004 3:49 PM you wrote: + +> I wrote: +> > ... and then some changes in the Axiom interface code +> > to use the right method to get the full path names. +> > Phew! +> +> 0.32 will use the full path for the LocalFS images/ by +> default. Is there anything I need to fix here? + +No, what you wrote in LatexWiki is fine. I just had solved the +path name problem a little differently while getting the +previous version to work and I did not recognize the difference +in my code at first. And I didn't have adequate error checking. + +------ + +While on the subject of image path names, I would like to +propose a change in the way the LocalFS directory is set up +and in the image URLs. What we have now is + + http://computer/path/images/name.png + +In the URL what I would like to see is this + + http://computer/images/path/name.png + + +In other words, we should move the "images" directory *before* +the path rather than after it the way it appears now and the +corresponding file name should include the path. It would be + + workingDir/LatexWiki/path/name.png + +Only the LatexWiki directory, and the LocalFS name 'images' +which maps to it, need to be created at installation time +(as it is now). But if the additional directories in +workingDir/LatexWiki/path do not yet exist, then I they +should to be automatically created. This would mean that +sub-directory structure of workingDir/LatexWiki in the file +system would match the corresponding structure in Zope. PNG +files would be located in the directory corresponding to +the folder where the Zwiki page resides that references them. +In a environment (such as Plone) where there might be many +different folders containing wiki pages, this allows the +images to be grouped into smaller more efficient groups. + +But more importantly for Axiom, the images directory is also +where the compiled library files are saved. Having a sub- +directory corresponding to each user or system folder that +contains an wiki page with Axiom library code would insure +that all of these environments saw their own working +environments - allowing different users to create and +maintain different versions of library packages with the +same name. + +Another thing related thing that I am planning to do is +to enable the Apache front-end (which currently talks to +Zope by reverse proxy) to access the PNG files in the images +directory directly via a rewrite rule. This is quite easy +and would likely lead to a large improvement in the speed +of delivery of the images. This way we take advantage of +the fact that we actually store the images in the file +system rather than in the ZopeDB. + +> ... +> Your site is generating different images than mine, despite +> the fact that the parameters are the same. What version of +> ghostscript and PIL do you have? Compare: +> http://mcelrath.org:9674/Plone2/UserOptions +> http://axiom-developer.org:9080/Members/mcelrath/UserOptions +> as you indicate, your site is making images that are a +> slightly different size, and have different amount of space +> around the letters. I have ghostscript 7.07 on one computer +> and 7.07.1 on another (and the images those two generate are +> identical). + +Yes, I see the difference. It is especially obvious in Mozilla. + +> +> ... +> This is not a zope or plone problem, as the images we are +> generating are different. It must be one of: latex, dvips, +> ghostscript, or PIL. + +Here are the versions I am using: + +[page@axiom-developer page]$ gs -v +GNU Ghostscript 7.05 (2002-04-22) +Copyright (C) 2002 artofcode LLC, Benicia, CA. All rights reserved. + +[page@axiom-developer page]$ latex -v +TeX (Web2C 7.3.1) 3.14159 +kpathsea version 3.3.1 +Copyright (C) 1999 D.E. Knuth. +Kpathsea is copyright (C) 1999 Free Software Foundation, Inc. +There is NO warranty. Redistribution of this software is +covered by the terms of both the TeX copyright and +the GNU General Public License. +For more information about these matters, see the files +named COPYING and the TeX source. +Primary author of TeX: D.E. Knuth. +Kpathsea written by Karl Berry and others. + +[page@axiom-developer page]$ dvips -v +This is dvips(k) 5.86 Copyright 1999 Radical Eye Software +(www.radicaleye.com) + +[page@axiom-developer page]$ /usr/bin/python2.3 -V +Python 2.3.3 + +[page@axiom-developer page]$ ls -d Im* +Imaging-1.1.4 Imaging-1.1.4.tar.gz + +\start +Date: Sat, 10 Jul 2004 23:55:38 -0400 +From: "Bill Page" +To: +Subject: [Axiom-developer] RE: Axiom wiki +Cc: luannebg@yahoo.com, bob@mcelrath.org + +Tim, + +On Friday, July 09, 2004 7:43 PM you wrote: +> ... Here are some of the thoughts that Bill's work inspire. +> +> Axiom is based entirely on pamphlet files. Pamphlet files are +> just standard latex with a couple extras to support "inline" +> code in the file. They are the basis of the literate programming +> style in Axiom. So every file in Axiom is a pamphlet. I'm not +> familiar with the details of "page types" but perhaps a pamphlet +> page type is needed. + +We could define a new page type, but right now what I have done +is just extend the functionality of the existing StructuredText+LaTeX +and HTML+LaTeX page types to include the Pamphlet-style "code-chunk" +concept /begin{axiom} ... /end{axiom} and the ability to run Axiom +itself. + +> +> If the Axiom wiki effort can support pamphlet <=> webpage +> translations it would have two benefits. First it would provide +> an interesting front-end to Axiom, especially with Bill's +> automation of running Axiom on a wiki web page. This turns out +> to be nearly as powerful as Mathematica and Maple notebooks. +> In fact, with some clever web page buttons we could probably +> reproduce their complete functionality. + +As a user of both of these commercial systems, I would say that +in some ways the Axiom Wiki interface is already superior - +especially when it comes to online web-based collaborative +computer algebra. And since it allows full access to LaTeX, +it's ability to display mathematics is also superior to both +M and M. + +> +> If web pages could be converted to, or written originally on +> the wiki as, pamphlet files then it would be possible to +> maintain Axiom directly on the wiki which would practically be +> a research breakthru. It would eliminate the hard-to-use CVS +> mechanism, enable people to use Axiom directly as a "service" +> and encourage open math development on the wiki. + +In fact this is *already* possible with what has been implemented. +It would be quite easy to load all of the existing Axiom algebra +pamphlet files as Axiom Wiki pages in an "algebra" folder. Editing +these pages would cause the .spad files to be created in the +LatexWiki "images" folder/directory. These spad files could then +be accessed as part of the Axiom build script. + +And with a simple extension to the current "images" folder naming +conventions (discussed in a previous email to Bob), this would +also allow people to maintain there own separate variants of the +algebra. + +> +> I've been struggling with the issue of how to develop a browsing +> structure for Axiom's pamphlet and this wiki has great potential +> to solve that problem in a truly novel way. +> + +I agree completely! For example the Search box at the top right +hand corner of the portal page allows you to search for Axiom +Wiki "pamphlet" files based on their content. One can easily +insert links between these pages using the standard wiki +conventions. + +> Axiom uses a fairly limited range of Latex mostly because my +> Latex talents are limited. Support for the \begin{array} +> environment or the \begin{thebibliography} environment are +> about the most difficult of the parts of the Latex used. +> (Actually, if the \bibitems in a bibliography were automatically +> turned into hyperlinks that would be sweet). +> + +This shouldn't be too hard (in principle). But I also agree with +Bob's previous point about not necessarily trying to (or maybe +even deliberately not to) reproduce all of the LaTeX functionality. +Some things are more easily done a new way (StructuredText). + +> In any case the whole Axiom wiki idea opens up a lot of +> excellent, creative directions that I think we need to +> explore further. +> + +Great. Let's do it. :) + +\start +Date: Sun, 11 Jul 2004 14:22:23 -0400 +From: "Bill Page" +To: "'Bill Page'" , +Subject: [Axiom-developer] Axiom Wiki as single user interface +Cc: luannebg@yahoo.com, bob@mcelrath.org + +On Saturday, July 10, 2004 11:56 PM I wrote: + +> ... +> Tim wrote: +> > If the Axiom wiki effort can support pamphlet <=> webpage +> > translations it would have two benefits. First it would +> > provide an interesting front-end to Axiom, especially with +> > Bill's automation of running Axiom on a wiki web page. This +> > turns out to be nearly as powerful as Mathematica and Maple +> > notebooks. In fact, with some clever web page buttons we +> > could probably reproduce their complete functionality. +> +> As a user of both of these commercial systems, I would say +> that in some ways the Axiom Wiki interface is already +> superior - especially when it comes to online web-based +> collaborative computer algebra. And since it allows full +> access to LaTeX, it's ability to display mathematics is also +> superior to both M and M. +> + +I thought that I should also mention that it is quite easy to +install the Zope+ZWiki+LatexWiki+AxiomWiki combination on a +stand alone machine with Axiom. (Plone is optional but some +people might find it useful as a "personal organizer" for +other research materials.) The result is that one can use a +standard web browser to access this locally - no network +required. There is a trend to use the browser interface as +a standard gui instead of writing gui applications in the +traditional way. + +The result of this combination is rather similar to but with +greater functionality than the Texmacs interface to Axiom. +And since these same tools are already available on windows +once we have Axiom running on Windows, we will automatically +have a fully compatible gui for Windows. + +One of the nice things about using Axiom this way is how +easy it would be to share Axiom worksheets with other users. +Zope has facility for exporting and importing web pages +from one site to another. + +\start +Date: 11 Jul 2004 13:51:15 -0400 +From: Camm Maguire +To: daly@idsi.net +Subject: [Axiom-developer] graphics and latest Debian package + +Greetings! I made a small typo in my original 20040705 package which +means I have to do another upload. Given this opportunity, I'm +wondering what should be done about the new graphics items. I +understand that they are not yet callable from axiom proper. So +perhaps we should leave them out of the package for the time being. +If they are to be included, I'm not sure if they logically belong in a +separate package or should be bundled with the main binary. The +latter option will make axiom require X and any libraries used, etc., +while the former will relegate such dependency to an optional add on. + +If viewAlone is to be regarded a standalone binary, then I need to +either write or generate a manpage for it according to Debian policy. + +src/graph/viewports is an empty directory on CVS checkout, and (I +think therefore) is absent on cvs export. But +src/graph/Makefile.pamphlet tries to make a doc/viewports directory +from this directory. + +While it is uncertain how much time remains before the next Debian +stable release, the signs are that it is approaching rather soon. The +major obstacle was removed recently by a developer vote. Once +released, it is likely that two or three years will lapse before the +next Debian stable. Needless to say, I'd like axiom to be as solid +therein as possible. This of course is not to rush axiom development +in any way -- rather I'm just seeking advice on how axiom should be +presented in this release that is likely to be with us a long time. + +Also, if there is any item that is a reasonably low hanging fruit that +needs picking in axiom within this time frame, perhaps I can help. + +\start +Date: Sun, 11 Jul 2004 15:12:12 -0400 +From: root +To: bill.page1@sympatico.ca +Subject: [Axiom-developer] Re: Axiom Wiki as single user interface +Cc: luannebg@yahoo.com, bob@mcelrath.org, bill.page1@sympatico.ca + +Bill, + +Could you tar up an installable package? +I'd like to download it and put it onto one of my standalone machines +so I can get familiar with the details. + +\start +Date: Sun, 11 Jul 2004 14:29:01 -0400 +From: "Bill Page" +To: "'Bill Page'" , "'Bob McElrath'" +Subject: RE: [Axiom-developer] LatexWiki image path names, Axiom library code and + +On Saturday, July 10, 2004 10:54 PM I wrote: +> ... +> While on the subject of image path names, I would like to +> propose a change in the way the LocalFS directory is set up +> and in the image URLs. What we have now is +> +> http://computer/path/images/name.png +> +> In the URL what I would like to see is this +> +> http://computer/images/path/name.png +> + +Actually, I have thought about this a little more and what +I think might be better is something like this + + http://computer/LatexWiki/path/images/name.png + +There would be just one LocalFS map to the + + workingDir/LatexWiki + +sub-directory. Then Axiom could use names like this + + http://computer/LatexWiki/path/axiom/name.spad + +This would have the benefit of keeping the interesting +Axiom code separate from the much less interesting image +files. + +\start +Date: Sun, 11 Jul 2004 14:31:47 -0400 +From: "Bill Page" +To: +Subject: [Axiom-developer] RE: Axiom Wiki as single user interface +Cc: luannebg@yahoo.com, bob@mcelrath.org + +Tim, + +Look for this in a couple of days. I will also have to +write up the installation steps. + +> -----Original Message----- +> From: root [mailto:daly@idsi.net] +> Sent: Sunday, July 11, 2004 3:12 PM +> To: bill.page1@sympatico.ca +> Cc: bill.page1@sympatico.ca; daly@idsi.net; +> axiom-developer@nongnu.org; luannebg@yahoo.com; bob@mcelrath.org +> Subject: Re: Axiom Wiki as single user interface +> +> +> Bill, +> +> Could you tar up an installable package? +> I'd like to download it and put it onto one of my standalone +> machines so I can get familiar with the details. + +\start +Date: Sun, 11 Jul 2004 15:58:22 -0700 +From: Bob McElrath +To: Bill Page +Subject: Re: [Axiom-developer] LatexWiki image path names, Axiom library code and + +One can create more than one LocalFS repository. I would suggest a +totally separate 'axiom' LocalFS directory for this. + +Having LatexWiki put all its images in one directory allows for caching. +I.e. if two unrelated pages both have $x$, it only gets rendered once. +Your proposals would have it rendered twice if the path was different. + +Bill Page [bill.page1@sympatico.ca] wrote: +> On Saturday, July 10, 2004 10:54 PM I wrote: +> > ... +> > While on the subject of image path names, I would like to +> > propose a change in the way the LocalFS directory is set up +> > and in the image URLs. What we have now is +> > +> > http://computer/path/images/name.png +> > +> > In the URL what I would like to see is this +> > +> > http://computer/images/path/name.png +> > +> +> Actually, I have thought about this a little more and what +> I think might be better is something like this +> +> http://computer/LatexWiki/path/images/name.png +> +> There would be just one LocalFS map to the +> +> workingDir/LatexWiki +> +> sub-directory. Then Axiom could use names like this +> +> http://computer/LatexWiki/path/axiom/name.spad +> +> This would have the benefit of keeping the interesting +> Axiom code separate from the much less interesting image +> files. + +\start +Date: Sun, 11 Jul 2004 22:52:15 -0400 +From: "Bill Page" +To: "'Bob McElrath'" +Subject: RE: [Axiom-developer] LatexWiki image path names, Axiom library code and + +Bob, + +On Sunday, July 11, 2004 6:58 PM you wrote: +> +> One can create more than one LocalFS repository. I would +> suggest a totally separate 'axiom' LocalFS directory for +> this. +> +> Having LatexWiki put all its images in one directory allows +> for caching. I.e. if two unrelated pages both have $x$, it +> only gets rendered once. Your proposals would have it +> rendered twice if the path was different. +> + +Yes, I see your point. I hadn't thought about how LatexWiki +caches images based on the LaTeX code that generated them. +I agree that the repository of LaTeX generated images plays a +very different role than the files generated for Axiom. In fact +this sort of caching doesn't make sense for Axiom's output since +the relationship of an Axiom command to the LaTeX output it +generates is not fixed. A separate LocalFS directory and a +separate way of constructing file names makes sense. + +\start +Date: Mon, 12 Jul 2004 00:30:09 -0400 +From: root +To: camm@enhanced.com +Subject: Re: [Axiom-developer] graphics and latest Debian package + +Whether you should include the latest src/graph tree I leave that up to you. +Due to a huge push on Magnus I'm unable to complete the integration of the +graphics in the next couple weeks. If you want to remove the src/graph +tree you can just comment it out in the src/Makefile.pamphlet. It is +pretty self-contained I believe. + +Before graphics is fully integrated I need to recover sman which is another +subtree. That's the next "recovery" push. I have some vacation time coming +up in august so I hope to make a lot of progres then but that will probably +be too late for sarge. + +I have a couple local things that are ready to update such as adding +test cases, redoing the document command, further graphics updates, +etc. but none of them are worth worrying about. + +\start +Date: Tue, 13 Jul 2004 08:14:11 -0400 +From: root +To: bill.page1@sympatico.com +Subject: [Axiom-developer] lattice drawing program + +Bill, + +Remember the problem of drawing the algebra lattice? +I've looked into it a bit more. Take a look at: + +http://www.research.att.com/sw/tools/graphviz + +\start +Date: Tue, 13 Jul 2004 15:44:24 +0200 (MEST) +From: Bertfried Fauser +To: axiom-developer@nongnu.org +Subject: [Axiom-developer] cvs build error on SuSE9.1 + +Dear All, + + I have some troubles to build AXIOM after having newly indstalled +a recent linux, SuSE9.1. + + First, I would have been helpfull, if, say ./configure, would tell +one that certain x11 *.h files are needed. I found them finally in +XFree86-devel, since I had this problem earlier. + + Second, some GMP sub configuration of GCL-2.6.2a things went +wrong, which I was not able to resolve, see log attached below. + +Any help welcome + + +fauser@pc8578:~/axiom> make +0 SPAD=/home/fauser/axiom/mnt/linux SYS=linux SPD=/home/fauser/axiom +LSP=/home/fauser/axiom/lsp GCLDIR=/home/fauser/axiom/lsp/gcl-2.6.2a +SRC=/home/fauser/axiom/src INT=/home/fauser/axiom/int +OBJ=/home/fauser/axiom/obj MNT=/home/fauser/axiom/mnt +ZIPS=/home/fauser/axiom/zips TMP=/home/fauser/axiom/obj/tmp +SPADBIN=/home/fauser/axiom/mnt/linux/bin +INC=/home/fauser/axiom/src/include +CCLBASE=/home/fauser/axiom/obj/linux/ccl/ccllisp PART=cprogs +SUBPART=everything NOISE=-o /home/fauser/axiom/obj/tmp/trace +GCLVERSION=gcl-2.6.2a TANGLE=/home/fauser/axiom/mnt/linux/bin/lib/notangle +10 copying /home/fauser/axiom/src/scripts to +/home/fauser/axiom/mnt/linux/bin +1 making a linux system, PART=cprogs SUBPART=everything +2 Environment SPAD=/home/fauser/axiom/mnt/linux SYS=linux +SPD=/home/fauser/axiom LSP=/home/fauser/axiom/lsp +GCLDIR=/home/fauser/axiom/lsp/gcl-2.6.2a SRC=/home/fauser/axiom/src +INT=/home/fauser/axiom/int OBJ=/home/fauser/axiom/obj +MNT=/home/fauser/axiom/mnt ZIPS=/home/fauser/axiom/zips +TMP=/home/fauser/axiom/obj/tmp SPADBIN=/home/fauser/axiom/mnt/linux/bin +INC=/home/fauser/axiom/src/include +CCLBASE=/home/fauser/axiom/obj/linux/ccl/ccllisp PART=cprogs +SUBPART=everything NOISE=-o /home/fauser/axiom/obj/tmp/trace +GCLVERSION=gcl-2.6.2a TANGLE=/home/fauser/axiom/mnt/linux/bin/lib/notangle +make[1]: Entering directory `/home/fauser/axiom' +11 checking directory structure +12 Environment: PLF=LINUXplatform CCF=-O2 -fno-strength-reduce -Wall +-D_GNU_SOURCE -DLINUXplatform -I/usr/X11/include LDF=-L/usr/X11R6/lib +CC=gcc AWK=gawk RANLIB=ranlib TOUCH=touch TAR=tar +AXIOMXLROOT=/home/fauser/axiom/mnt/linux/compiler O=o BYE=bye LISP=lsp +DAASE=/home/fauser/axiom/src/share XLIB=/usr/X11R6/lib +18 making /home/fauser/axiom/src +make[2]: Entering directory `/home/fauser/axiom/src' +1 making /home/fauser/axiom/src/scripts +make[3]: Entering directory `/home/fauser/axiom/src/scripts' +1 making /home/fauser/axiom/src/scripts +make[3]: Leaving directory `/home/fauser/axiom/src/scripts' +17 making /home/fauser/axiom/src/lib +make[3]: Entering directory `/home/fauser/axiom/src/lib' +34 making /home/fauser/axiom/obj/linux/lib/pixmap.o from +/home/fauser/axiom/int/lib/pixmap.c +/home/fauser/axiom/int/lib/pixmap.c: In function `write_pixmap_file': +/home/fauser/axiom/int/lib/pixmap.c:348: warning: unused variable `attr' +/home/fauser/axiom/int/lib/pixmap.c:349: warning: unused variable +`xireturn' +37 making /home/fauser/axiom/int/lib/prt.c from +/home/fauser/axiom/src/lib/prt.c.pamphlet +38 making /home/fauser/axiom/obj/linux/lib/prt.o from +/home/fauser/axiom/int/lib/prt.c +41 making /home/fauser/axiom/int/lib/sockio-c.c from +/home/fauser/axiom/src/lib/sockio-c.c.pamphlet +42 making /home/fauser/axiom/obj/linux/lib/sockio-c.o from +/home/fauser/axiom/int/lib/sockio-c.c +/home/fauser/axiom/int/lib/sockio-c.c: In function +`connect_to_local_server': +/home/fauser/axiom/int/lib/sockio-c.c:933: warning: `code' might be used +uninitialized in this function +45 making /home/fauser/axiom/int/lib/spadcolors.c from +/home/fauser/axiom/src/lib/spadcolors.c.pamphlet +46 making /home/fauser/axiom/obj/linux/lib/spadcolors.o from +/home/fauser/axiom/int/lib/spadcolors.c +49 making /home/fauser/axiom/int/lib/util.c from +/home/fauser/axiom/src/lib/util.c.pamphlet +50 making /home/fauser/axiom/obj/linux/lib/util.o from +/home/fauser/axiom/int/lib/util.c +53 making /home/fauser/axiom/int/lib/wct.c from +/home/fauser/axiom/src/lib/wct.c.pamphlet +54 making /home/fauser/axiom/obj/linux/lib/wct.o from +/home/fauser/axiom/int/lib/wct.c +/home/fauser/axiom/int/lib/wct.c: In function `skim1Wct': +/home/fauser/axiom/int/lib/wct.c:274: warning: int format, off_t arg (arg +3) +57 making /home/fauser/axiom/int/lib/XDither.c from +/home/fauser/axiom/src/lib/XDither.c.pamphlet +58 making /home/fauser/axiom/obj/linux/lib/XDither.o from +/home/fauser/axiom/int/lib/XDither.c +61 making /home/fauser/axiom/int/lib/XShade.c from +/home/fauser/axiom/src/lib/XShade.c.pamphlet +62 making /home/fauser/axiom/obj/linux/lib/XShade.o from +/home/fauser/axiom/int/lib/XShade.c +65 making /home/fauser/axiom/int/lib/XSpadFill.c from +/home/fauser/axiom/src/lib/XSpadFill.c.pamphlet +66 making /home/fauser/axiom/obj/linux/lib/XSpadFill.o from +/home/fauser/axiom/int/lib/XSpadFill.c +73 making /home/fauser/axiom/obj/linux/lib/libspad.a +ar: creating /home/fauser/axiom/obj/linux/lib/libspad.a +5 making /home/fauser/axiom/int/lib/cfuns-c.c from +/home/fauser/axiom/src/lib/cfuns-c.c.pamphlet +6 making /home/fauser/axiom/obj/linux/lib/cfuns-c.o from +/home/fauser/axiom/int/lib/cfuns-c.c +/home/fauser/axiom/int/lib/cfuns-c.c: In function `make_path_from_file': +/home/fauser/axiom/int/lib/cfuns-c.c:113: warning: `pos' might be used +uninitialized in this function +25 making /home/fauser/axiom/int/lib/hash.c from +/home/fauser/axiom/src/lib/hash.c.pamphlet +26 making /home/fauser/axiom/obj/linux/lib/hash.o from +/home/fauser/axiom/int/lib/hash.c +11 making /home/fauser/axiom/int/doc/src/lib/axiom.sty from +/home/fauser/axiom/src/doc/axiom.sty.pamphlet +3 making /home/fauser/axiom/int/doc/src/lib/bsdsignal.c.dvi from +/home/fauser/axiom/src/lib/bsdsignal.c.pamphlet +4 making /home/fauser/axiom/mnt/linux/doc/src/lib/bsdsignal.c.dvi from +/home/fauser/axiom/int/doc/src/lib/bsdsignal.c.dvi +7 making /home/fauser/axiom/int/doc/src/lib/cfuns-c.c.dvi from +/home/fauser/axiom/src/lib/cfuns-c.c.pamphlet +8 making /home/fauser/axiom/mnt/linux/doc/src/lib/cfuns-c.c.dvi from +/home/fauser/axiom/int/doc/src/lib/cfuns-c.c.dvi +11 making /home/fauser/axiom/int/doc/src/lib/cursor.c.dvi from +/home/fauser/axiom/src/lib/cursor.c.pamphlet +12 making /home/fauser/axiom/mnt/linux/doc/src/lib/cursor.c.dvi from +/home/fauser/axiom/int/doc/src/lib/cursor.c.dvi +15 making /home/fauser/axiom/int/doc/src/lib/edin.c.dvi from +/home/fauser/axiom/src/lib/edin.c.pamphlet +16 making /home/fauser/axiom/mnt/linux/doc/src/lib/edin.c.dvi from +/home/fauser/axiom/int/doc/src/lib/edin.c.dvi +19 making /home/fauser/axiom/int/doc/src/lib/fnct_key.c.dvi from +/home/fauser/axiom/src/lib/fnct_key.c.pamphlet +20 making /home/fauser/axiom/mnt/linux/doc/src/lib/fnct_key.c.dvi from +/home/fauser/axiom/int/doc/src/lib/fnct_key.c.dvi +23 making /home/fauser/axiom/int/doc/src/lib/halloc.c.dvi from +/home/fauser/axiom/src/lib/halloc.c.pamphlet +24 making /home/fauser/axiom/mnt/linux/doc/src/lib/halloc.c.dvi from +/home/fauser/axiom/int/doc/src/lib/halloc.c.dvi +27 making /home/fauser/axiom/int/doc/src/lib/hash.c.dvi from +/home/fauser/axiom/src/lib/hash.c.pamphlet +28 making /home/fauser/axiom/mnt/linux/doc/src/lib/hash.c.dvi from +/home/fauser/axiom/int/doc/src/lib/hash.c.dvi +31 making /home/fauser/axiom/int/doc/src/lib/openpty.c.dvi from +/home/fauser/axiom/src/lib/openpty.c.pamphlet +32 making /home/fauser/axiom/mnt/linux/doc/src/lib/openpty.c.dvi from +/home/fauser/axiom/int/doc/src/lib/openpty.c.dvi +35 making /home/fauser/axiom/int/doc/src/lib/pixmap.c.dvi from +/home/fauser/axiom/src/lib/pixmap.c.pamphlet +36 making /home/fauser/axiom/mnt/linux/doc/src/lib/pixmap.c.dvi from +/home/fauser/axiom/int/doc/src/lib/pixmap.c.dvi +39 making /home/fauser/axiom/int/doc/src/lib/prt.c.dvi from +/home/fauser/axiom/src/lib/prt.c.pamphlet +40 making /home/fauser/axiom/mnt/linux/doc/src/lib/prt.c.dvi from +/home/fauser/axiom/int/doc/src/lib/prt.c.dvi +43 making /home/fauser/axiom/int/doc/src/lib/sockio-c.c.dvi from +/home/fauser/axiom/src/lib/sockio-c.c.pamphlet +44 making /home/fauser/axiom/mnt/linux/doc/src/lib/sockio-c.c.dvi from +/home/fauser/axiom/int/doc/src/lib/sockio-c.c.dvi +71 making /home/fauser/axiom/mnt/linux/doc/src/lib/Makefile.dvi from +/home/fauser/axiom/src/lib/Makefile.dvi +47 making /home/fauser/axiom/int/doc/src/lib/spadcolors.c.dvi from +/home/fauser/axiom/src/lib/spadcolors.c.pamphlet +48 making /home/fauser/axiom/mnt/linux/doc/src/lib/spadcolors.c.dvi from +/home/fauser/axiom/int/doc/src/lib/spadcolors.c.dvi +51 making /home/fauser/axiom/int/doc/src/lib/util.c.dvi from +/home/fauser/axiom/src/lib/util.c.pamphlet +52 making /home/fauser/axiom/mnt/linux/doc/src/lib/util.c.dvi from +/home/fauser/axiom/int/doc/src/lib/util.c.dvi +55 making /home/fauser/axiom/int/doc/src/lib/wct.c.dvi from +/home/fauser/axiom/src/lib/wct.c.pamphlet +56 making /home/fauser/axiom/mnt/linux/doc/src/lib/wct.c.dvi from +/home/fauser/axiom/int/doc/src/lib/wct.c.dvi +59 making /home/fauser/axiom/int/doc/src/lib/XDither.c.dvi from +/home/fauser/axiom/src/lib/XDither.c.pamphlet +60 making /home/fauser/axiom/mnt/linux/doc/src/lib/XDither.c.dvi from +/home/fauser/axiom/int/doc/src/lib/XDither.c.dvi +63 making /home/fauser/axiom/int/doc/src/lib/XShade.c.dvi from +/home/fauser/axiom/src/lib/XShade.c.pamphlet +64 making /home/fauser/axiom/mnt/linux/doc/src/lib/XShade.c.dvi from +/home/fauser/axiom/int/doc/src/lib/XShade.c.dvi +67 making /home/fauser/axiom/int/doc/src/lib/XSpadFill.c.dvi from +/home/fauser/axiom/src/lib/XSpadFill.c.pamphlet +68 making /home/fauser/axiom/mnt/linux/doc/src/lib/XSpadFill.c.dvi from +/home/fauser/axiom/int/doc/src/lib/XSpadFill.c.dvi +72 finished making /home/fauser/axiom/src/lib +make[3]: Leaving directory `/home/fauser/axiom/src/lib' +make[2]: Leaving directory `/home/fauser/axiom/src' +0 PLF=LINUXplatform CCF=-O2 -fno-strength-reduce -Wall -D_GNU_SOURCE +-DLINUXplatform -I/usr/X11/include LDF=-L/usr/X11R6/lib CC=gcc AWK=gawk +RANLIB=ranlib TOUCH=touch TAR=tar +AXIOMXLROOT=/home/fauser/axiom/mnt/linux/compiler O=o BYE=bye LISP=lsp +DAASE=/home/fauser/axiom/src/share XLIB=/usr/X11R6/lib +10 copying /home/fauser/axiom/src/scripts to +/home/fauser/axiom/mnt/linux/bin +20 making /home/fauser/axiom/lsp/Makefile from +/home/fauser/axiom/lsp/Makefile.pamphlet +19 making /home/fauser/axiom/lsp +make[2]: Entering directory `/home/fauser/axiom/lsp' +2 building gcl-2.6.2a +27 renaming gcl to gcl-2.6.2a +3 applying EXTRAS patch to h/linux.defs +patching file linux.defs +4 setup ini files for EXTRAS patch +6 applying libspad.a patch to unixport/makefile +patching file makefile +7 applying toploop patch to unixport/init_gcl.lsp +patching file init_gcl.lsp.in +11 applying tail-recursive noise patch +patching file gcl_cmpflet.lsp +12 applying tail-recursive noise patch +patching file gcl_cmpcall.lsp +26 copy gcl_collectfn.lsp to +/home/fauser/axiom/obj/linux/lsp/collectfn.lsp +26a copy sys-proclaim.lisp to +/home/fauser/axiom/obj/linux/lsp/sys-proclaim.lisp +creating cache ./config.cache +checking host system type... i686-pc-linux-gnu +host=i686-pc-linux-gnu +enable_machine= +use=386-linux +checking for gcc... gcc +checking whether the C compiler (gcc ) works... yes +checking whether the C compiler (gcc ) is a cross-compiler... no +checking whether we are using GNU C... yes +checking whether gcc accepts -g... yes +checking how to run the C preprocessor... gcc -E +checking for gawk... gawk +checking system version (for dynamic loading)... checking for makeinfo... +makeinfo +Linux-2.6.5-7.95-default +checking use_gmp=yes, doing configure in gmp directory... +# +# +# ------------------- +# Subconfigure of GMP +# +# +configure: WARNING: If you wanted to set the --build type, don't use +--host. + If a cross compiler is detected then cross compile mode will be used. +checking build system type... pentium3-pc-linux-gnu +checking host system type... i686-pc-linux-gnu +checking for a BSD-compatible install... /usr/bin/install -c +checking whether build environment is sane... yes +checking for gawk... gawk +checking whether make sets $(MAKE)... yes +checking whether to enable maintainer-specific portions of Makefiles... no +checking compiler gcc -g -O2 -fomit-frame-pointer ... yes +checking whether gcc -march=pentiumpro is good... configure: WARNING: +unrecognised gcc version string: gcc (GCC) 3.3.3 (SuSE Linux) +Copyright (C) 2003 Free Software Foundation, Inc. +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR +PURPOSE. +no +checking compiler gcc -g -O2 -fomit-frame-pointer -march=i486... yes +checking whether gcc -march=pentiumpro is good... (cached) no +checking compiler gcc -g -O2 -fomit-frame-pointer -march=i486 +-march=i486... yes +checking for i686-pc-linux-gnu-gcc... gcc +checking for C compiler default output file name... a.out +checking whether the C compiler works... yes +checking whether we are cross compiling... no +checking for suffix of executables... +checking for suffix of object files... o +checking whether we are using the GNU C compiler... yes +checking whether gcc accepts -g... yes +checking for gcc option to accept ANSI C... none needed +checking for style of include used by make... GNU +checking dependency style of gcc... none +checking how to run the C preprocessor... gcc -E +using ABI="standard" + CC="gcc" + CFLAGS="-g -O2 -fomit-frame-pointer -march=i486 -march=i486" + CPPFLAGS="" +checking for gcc option to accept ANSI C... none needed +checking for sys/types.h... yes +checking for sys/stat.h... yes +checking for stdlib.h... yes +checking for string.h... yes +checking for memory.h... yes +checking for strings.h... yes +checking for inttypes.h... yes +checking for stdint.h... yes +checking for unistd.h... yes +checking for function prototypes... yes +checking for ANSI C header files... no +checking for string.h... (cached) yes +checking for i686-pc-linux-gnu-ar... no +checking for ar... ar +checking for BSD-compatible nm... nm +checking for ld used by GCC... /usr/i586-suse-linux/bin/ld +checking if the linker (/usr/i586-suse-linux/bin/ld) is GNU ld... yes +checking for /usr/i586-suse-linux/bin/ld option to reload object files... +-r +checking whether ln -s works... yes +checking how to recognise dependant libraries... pass_all +checking dlfcn.h usability... yes +checking dlfcn.h presence... yes +checking for dlfcn.h... yes +checking the maximum length of command line arguments... 49153 +checking command to parse nm output from gcc object... ok +checking for objdir... .libs +checking for i686-pc-linux-gnu-ranlib... ranlib +checking for i686-pc-linux-gnu-strip... no +checking for strip... strip +checking if gcc static flag works... yes +checking if gcc supports -fno-rtti -fno-exceptions... no +checking for gcc option to produce PIC... -fPIC +checking if gcc PIC flag -fPIC works... yes +checking if gcc supports -c -o file.o... yes +checking whether the gcc linker (/usr/i586-suse-linux/bin/ld) supports +shared libraries... yes +checking whether -lc should be explicitly linked in... no +checking how to hardcode library paths into programs... immediate +checking whether stripping libraries is possible... yes +checking dynamic linker characteristics... GNU/Linux ld.so +checking if libtool supports shared libraries... yes +checking whether to build shared libraries... yes +checking whether to build static libraries... yes +configure: creating libtool +checking for ANSI C header files... (cached) no +checking whether time.h and sys/time.h may both be included... yes +checking locale.h usability... yes +checking locale.h presence... yes +checking for locale.h... yes +checking sys/mman.h usability... yes +checking sys/mman.h presence... yes +checking for sys/mman.h... yes +checking sys/param.h usability... yes +checking sys/param.h presence... yes +checking for sys/param.h... yes +checking sys/processor.h usability... no +checking sys/processor.h presence... no +checking for sys/processor.h... no +checking sys/resource.h usability... yes +checking sys/resource.h presence... yes +checking for sys/resource.h... yes +checking sys/sysctl.h usability... yes +checking sys/sysctl.h presence... yes +checking for sys/sysctl.h... yes +checking sys/systemcfg.h usability... no +checking sys/systemcfg.h presence... no +checking for sys/systemcfg.h... no +checking sys/time.h usability... yes +checking sys/time.h presence... yes +checking for sys/time.h... yes +checking sys/times.h usability... yes +checking sys/times.h presence... yes +checking for sys/times.h... yes +checking whether fgetc is declared... yes +checking whether fscanf is declared... yes +checking whether optarg is declared... yes +checking whether ungetc is declared... yes +checking whether vfprintf is declared... yes +checking return type of signal handlers... void +checking for intmax_t... yes +checking for long double... yes +checking for long long... yes +checking for ptrdiff_t... no +checking for quad_t... yes +checking for preprocessor stringizing operator... yes +checking whether exists and works... yes +checking whether gcc __attribute__ ((const)) works... yes +checking whether gcc __attribute__ ((malloc)) works... yes +checking whether gcc __attribute__ ((mode (XX))) works... yes +checking whether gcc __attribute__ ((noreturn)) works... yes +checking for inline... inline +checking for main in -lm... yes +checking for working alloca.h... yes +checking for alloca (via gmp-impl.h)... yes +checking how to allocate temporary memory... alloca +checking for alarm... yes +checking for getpagesize... yes +checking for getrusage... yes +checking for gettimeofday... yes +checking for localeconv... yes +checking for memset... yes +checking for mmap... yes +checking for mprotect... yes +checking for obstack_vprintf... yes +checking for popen... yes +checking for processor_info... no +checking for read_real_time... no +checking for strchr... yes +checking for strnlen... yes +checking for strtoul... yes +checking for sysconf... yes +checking for sysctl... yes +checking for sysctlbyname... no +checking for times... yes +checking for vsnprintf... yes +checking whether vsnprintf works... yes +checking whether sscanf needs writable input... no +checking for suitable m4... configure: error: No usable m4 in $PATH or +/usr/5bin (see config.log for reasons). +# +# +# +# Subconfigure of GMP done +# ------------------------ +# +cp: cannot stat `gmp3/gmp.h': No such file or directory +checking for leading underscore in object symbols... no +checking for GNU ld option -Map... yes +checking for size of gmp limbs... Cannot determine mpsize +make[3]: Entering directory `/home/fauser/axiom/lsp/gcl-2.6.2a' +rm -f bin/gcl xbin/gcl +MGCLDIR=`echo /home/fauser/axiom/lsp/gcl-2.6.2a | sed -e +'sX^\([a-z]\):X/\1Xg'` ; \ +GCLDIR=`echo /home/fauser/axiom/lsp/gcl-2.6.2a` ; \ +make install-command "INSTALL_LIB_DIR=$GCLDIR" "prefix=$GCLDIR" +"BINDIR=$MGCLDIR/unixport" +make[4]: Entering directory `/home/fauser/axiom/lsp/gcl-2.6.2a' +rm -f /home/fauser/axiom/lsp/gcl-2.6.2a/bin/gcl +(echo '#!/bin/sh' ; \ +echo exec /home/fauser/axiom/lsp/gcl-2.6.2a/unixport/ \\ ; \ +echo ' -dir' /home/fauser/axiom/lsp/gcl-2.6.2a/unixport/ \\ ; \ +echo ' -libdir' /home/fauser/axiom/lsp/gcl-2.6.2a/ \\ ; \ +echo ' -eval '\''(setq si::*allow-gzipped-file* t)'\' \\ ;\ +! [ -d "" ] || echo ' -eval '\''(setq si::*tk-library* '\"\"')'\' \\;\ +echo ' '\"\$@\" ) > /home/fauser/axiom/lsp/gcl-2.6.2a/bin/gcl; +echo '#' other options: -load "/tmp/foo.o" -load "jo.lsp" -eval '"(joe +3)"' >> /home/fauser/axiom/lsp/gcl-2.6.2a/bin/gcl +chmod a+x /home/fauser/axiom/lsp/gcl-2.6.2a/bin/gcl +rm -f /home/fauser/axiom/lsp/gcl-2.6.2a/bin/gclm.bat +if gcc --version | grep mingw >/dev/null 2>&1 ; then (echo '@SET cd='; \ + echo '@SET promp%prompt%'; \ + echo '@PROMPT SET cd'; \ + echo '@CALL>%temp%.\setdir.bat'; \ + echo '@'; \ + echo '% do not delete this line %'; \ + echo '@ECHO off'; \ + echo 'PROMPT %promp'; \ + echo 'FOR %%c IN (CALL DEL) DO %%c %temp%.\setdir.bat'; \ + echo 'set cwd=%cd%'; \ + echo 'set libdir=%cd%\..\lib\gcl-`cat majvers`.`cat minvers`'; \ + echo 'set unixportdir=%libdir%\unixport'; \ + echo 'path %cd%\..\mingw\bin;%PATH%'; \ + echo "start %unixportdir%\.exe -dir %unixportdir% -libdir %libdir% -eval +\"(setq si::*allow-gzipped-file* t)\" %1 %2 %3 %4 %5 %6 %7 %8 %9" ) > +/home/fauser/axiom/lsp/gcl-2.6.2a/bin/gclm.bat ; fi +rm -f /home/fauser/axiom/lsp/gcl-2.6.2a/bin/gclfinal.bat +if gcc --version | grep -i mingw >/dev/null 2>&1 ; then (echo 'ECHO path +%1\mingw\bin;%PATH% > gcli.bat'; \ + echo "ECHO start %1\lib\gcl-`cat majvers`.`cat minvers`\unixport\.exe +-dir %1\lib\gcl-`cat majvers`.`cat minvers`\unixport -libdir +%1\lib\gcl-`cat majvers`.`cat minvers` -eval \"(setq +si::*allow-gzipped-file* t)\" %1 %2 %3 %4 %5 %6 %7 %8 %9 >> gcli.bat" ) > +/home/fauser/axiom/lsp/gcl-2.6.2a/bin/gclfinal.bat ; fi +make[4]: Leaving directory `/home/fauser/axiom/lsp/gcl-2.6.2a' +(cd xbin ; cp ../bin/gcl .) +cd cmpnew && make gcl_collectfn.o +make[4]: Entering directory `/home/fauser/axiom/lsp/gcl-2.6.2a/cmpnew' +../unixport/saved_pre_gcl ../unixport/ -compile gcl_collectfn.lsp +make[4]: ../unixport/saved_pre_gcl: Command not found +make[4]: *** [gcl_collectfn.o] Error 127 +make[4]: Leaving directory `/home/fauser/axiom/lsp/gcl-2.6.2a/cmpnew' +make[3]: *** [cmpnew/gcl_collectfn.o] Error 2 +make[3]: Leaving directory `/home/fauser/axiom/lsp/gcl-2.6.2a' +/bin/sh: line 1: unixport/saved_gcl: No such file or directory +make[2]: *** [gcldir] Error 127 +make[2]: Leaving directory `/home/fauser/axiom/lsp' +make[1]: *** [lspdir] Error 2 +make[1]: Leaving directory `/home/fauser/axiom' +make: *** [all] Error 2 + +\start +Date: Tue, 13 Jul 2004 09:01:32 -0400 +From: Tim Daly +To: fauser@mis.mpg.de +Subject: [Axiom-developer] (no subject) + +in the README: + +FAQ 1: Xlib.h is not found + +You need to have Xlib.h to build the graphics. If you are building +on a RedHat 8 system you need to install the following RPM: + + rpm -i XFree86-devel-4.2.0-72.i386.rpm + +On Debian GNU/Linux, the package 'xlibs-dev' is needed. + +\start +Date: Tue, 13 Jul 2004 09:04:06 -0400 +From: Tim Daly +To: fauser@mis.mpg.de +Subject: [Axiom-developer] (no subject) + +The second failure you report is more obscure. + +It appears that saved_pre_gcl (a lispish image) did not build +or is not executable. This is a GCL lisp failure. + +\start +Date: Tue, 13 Jul 2004 14:51:21 +0200 (CEST) +From: Bertfried Fauser +To: Tim Daly +Subject: Re: [Axiom-developer] (no subject) + +On Tue, 13 Jul 2004, Tim Daly wrote: + +Hi Tim, + + indeed I found the XFree packge on SuSE also, so this is resolved. + +> It appears that saved_pre_gcl (a lispish image) did not build +> or is not executable. This is a GCL lisp failure. + +Is there a possibility to go for an older GCL, just uncommenting them in +the makefile? + +will try... + +\start +Date: Tue, 13 Jul 2004 15:06:26 +0200 (CEST) +From: Bertfried Fauser +To: Tim Daly +Subject: Re: [Axiom-developer] (no subject) + +Dear All, + + after failing to build AXIOM on SuSE9.1, I tried to build teh +GCL-2.6.1 and GCL-2.6.2(a) directly from their directory. Actually, I did +a +> ./configure (which worked out) +> make +which stoped with the error + +cp: cannot stat `gmp3/gmp.h' : No such file or directory + +actually the directory gmp3 does not contain such or similar files + +Hence also my attempt to use an older GCL to build AXIOM, changed the +Makefile of AXIOM, failed.... + +I have no idea what went wrong.... + +\start +Date: Tue, 13 Jul 2004 09:37:44 -0400 +From: Tim Daly +To: Bertfried.Fauser@uni-konstanz.de +Subject: Re: [Axiom-developer] (no subject) + +This makes no sense to me. + +I could be that some config switch is defaulting a different way +based on SUSE. I'll look at the GCL config file and see if there is a +comment that makes sense. + +\start +Date: Tue, 13 Jul 2004 09:40:35 -0400 +From: Tim Daly +To: Bertfried.Fauser@uni-konstanz.de +Subject: Re: [Axiom-developer] (no subject) + +The GCL files are in the zips subdirectory. +If you go to that directory type: + +cd zips +tar -ztf gcl-2.6.2a.tgz | fgrep gmp.h + +and the file should be there. + +\start +Date: Tue, 13 Jul 2004 15:42:16 +0200 (CEST) +From: Bertfried Fauser +To: Tim Daly +Subject: Re: [Axiom-developer] (no subject) + +On Tue, 13 Jul 2004, Tim Daly wrote: + +Hi, + +> cd zips +> tar -ztf gcl-2.6.2a.tgz | fgrep gmp.h + +I get + gcl/h/mgmp.h +hence not the desired file and hence not in the gmp3 directory. This is +however true for GCL 2.6.1, 2.6.2 and 2.6.2a, so this might be the correct +location, so why is the make looking for a different file.... + +By the way, could the README file of AXIOM be split into two file. The +README and a FQA file. I was scrolling down the README file and stopped +when I saw license busines (not assuming something technical coming below) + +\start +Date: Tue, 13 Jul 2004 10:25:41 -0400 +From: Tim Daly +To: Bertfried.Fauser@uni-konstanz.de +Subject: Re: [Axiom-developer] (no subject) + +> > cd zips +> > tar -ztf gcl-2.6.2a.tgz | fgrep gmp.h +> +> I get +> gcl/h/mgmp.h +> hence not the desired file and hence not in the gmp3 directory. This is +> however true for GCL 2.6.1, 2.6.2 and 2.6.2a, so this might be the correct +> location, so why is the make looking for a different file.... + +curious. I've just did a clean checkout and am building it here to see +if it fails on RedHat. + +My system runs config, creates config.m4 which says: +.... +config.status: creating gmp.h +... + +beyond that it is building normally. So I suspect there is some test +in the config mechanism that is failing in SUSE. I'm trying to read +the config mechanism now. + +> By the way, could the README file of AXIOM be split into two file. The +> README and a FQA file. I was scrolling down the README file and stopped +> when I saw license busines (not assuming something technical coming below) + +Sure, I can split them out. The license business is at the top because +we're all lawyers first and programmers second :-) You'll also notice +that there is a license at the top of every source file (about like +putting a license and patent information on every car part). Sorry, +the whole legal thing just sets me off.... all further discussion of +this will be on axiom-legal. + +\start +Date: Tue, 13 Jul 2004 17:56:10 +0200 +From: Michael Keyl +To: axiom-developer@nongnu.org +Subject: Re: [Axiom-developer] cvs build error on SuSE9.1 + +> checking for suitable m4... configure: error: No usable m4 in $PATH or + +Maybe the problem is that you haven't installed m4? + +\start +Date: Fri, 02 Jul 2004 15:17:31 +0200 +From: Vanuxem =?ISO-8859-1?Q?Gr=E9gory?= +To: Axiom Developer +Subject: [Axiom-developer] patch:RINTERP and algebra/Makefile.pamphlet + +Hi, + +Here is a patch (diff -Naur) for Makefile.pamphlet (07/01/2004) in +src/algebra: + +Change: + +RINTERP DenavitHartenbergMatrix + +by + +RINTERP RationalInterpolation + +Question: + +Why RINTERP is not added to "exposed.lsp.pamphlet" in Hidden section ? + +--=-6pvjqdW5RV6kyhfdfmmX + +LS0tIC91c3IvbG9jYWwvZ3JlZy9heGlvbS9zcmMvYWxnZWJyYS9NYWtlZmlsZS5wYW1waGxldAky +MDA0LTA3LTAyIDAyOjU5OjA2LjAwMDAwMDAwMCArMDIwMA0KKysrIE1ha2VmaWxlLnBhbXBobGV0 +CTIwMDQtMDctMDIgMTU6MDU6MjMuMDAwMDAwMDAwICswMjAwDQpAQCAtMjk0NTYsNyArMjk0NTYs +NyBAQA0KIAlAIGVjaG8gMCBtYWtpbmcgJHtNSUR9L1JJTlRFUlAuc3BhZCBmcm9tICR7SU59L3Jp +bnRlcnAuc3BhZC5wYW1waGxldA0KIAlAKGNkICR7TUlEfSA7IFwNCiAJcm0gLXJmIFJJTlRFUlAu +TlJMSUIgOyBcDQotCSR7VEFOR0xFfSAtUiJkb21haW4gUklOVEVSUCBEZW5hdml0SGFydGVuYmVy +Z01hdHJpeCIgJHtJTn0vcmludGVycC5zcGFkLnBhbXBobGV0ID5SSU5URVJQLnNwYWQgKQ0KKwkk +e1RBTkdMRX0gLVIiZG9tYWluIFJJTlRFUlAgUmF0aW9uYWxJbnRlcnBvbGF0aW9uIiAke0lOfS9y +aW50ZXJwLnNwYWQucGFtcGhsZXQgPlJJTlRFUlAuc3BhZCApDQogCUAgcm0gLWYgJHtJTlR9L2Fs +Z2VicmEvZGJjb21wbGV0ZQ0KIA0KIEANCg== + +--=-6pvjqdW5RV6kyhfdfmmX-- + +\start +Date: Mon, 28 Jun 2004 18:59:36 +0200 +From: Vanuxem =?ISO-8859-1?Q?Gr=E9gory?= +To: Axiom Developer +Subject: RE: [Axiom-developer] Complex exponentiation and 0 + +Le lun 28/06/2004 =E0 12:28, Martin Rubey a =E9crit : +> Shouldn't +> +> [bugs #9313] 0^0 handled inconsistently +> +> be closed? David Mentr=E9 has submitted a second bug report, +> +> [bugs #9424] Bug in handling 0^0 in Axiom +> +> which subsumes the discussion, I think. To summarize: +> +> bugs: +> ----------------------------- +> 0::CARD ^ 0::CARD gives +> +> 0**0 not defined for cardinal numbers. +> +> but should be 1::CARD (a reference should be included in both the bug rep= +ort +> and eventually in the patch) +> ----------------------------- +> complex(0,0)^complex(2,2.0) gives +> +> log 0 generated +> +> but should give 0 + + +complex(0,0)^complex(0,0.0) + +log 0 generated + +but should give 0**0 is undefined + + +> +> ----------------------------- +> non-bugs: +> ----------------------------- +> +> 0^0 +> 1 Type: PositiveInteger +> +> 0.0^0 +> 1.0 Type: Float +> +> are correct, since there is no limit for Integers and the type of zero in= + the +> exponent is Integer. +> ------------------------------ +> 0^0.0 +> +> 0**0 is undefined +> +> 0.0^0.0 +> +> 0**0 is undefined +> +> are correct, since there is a limit for Floats +> ------------------------------ +> ---------------------------------------------------------------- +> +> If all of this is correct, could somebody who is entitled to do so +> +> * add a comment to [bugs #9313] 0^0 handled inconsistently that it is not= + a +> bug, (maybe simply include a pointer to this mail) but there are relate= +d bugs +> described in [bugs #9424] Bug in handling 0^0 in Axiom +> +> * close it. + +\start +Date: Tue, 13 Jul 2004 16:45:29 +0200 (CEST) +From: Bertfried Fauser +To: Michael Keyl , Tim Daly +Subject: Re: [Axiom-developer] cvs build error on SuSE9.1 + +On Tue, 13 Jul 2004, Michael Keyl wrote: + +Uppps + +> > checking for suitable m4... configure: error: No usable m4 in $PATH or + +I missed that one. m4 (what is this?) is not inthe path using "which" but +has a manpage (which explains what it is I guess) + +After having installed m4, the make process progresses, thankX a lot! + +\start +Date: Tue, 13 Jul 2004 18:12:28 +0200 +From: Vanuxem =?ISO-8859-1?Q?Gr=E9gory?= +To: Axiom Developer +Subject: RE: [Axiom-developer] Complex exponentiation and 0 + +Sorry, very old mail sent when reinstalling Bind. + +Greg + +Le lun 28/06/2004 =E0 18:59, Vanuxem Gr=E9gory a =E9crit : +> Le lun 28/06/2004 =E0 12:28, Martin Rubey a =E9crit : +> > Shouldn't +> > +> > [bugs #9313] 0^0 handled inconsistently +> > +> > be closed? David Mentr=E9 has submitted a second bug report, +> > +> > [bugs #9424] Bug in handling 0^0 in Axiom +> > +> > which subsumes the discussion, I think. To summarize: +> > +> > bugs: +> > ----------------------------- +> > 0::CARD ^ 0::CARD gives +> > +> > 0**0 not defined for cardinal numbers. +> > +> > but should be 1::CARD (a reference should be included in both the bug r= +eport +> > and eventually in the patch) +> > ----------------------------- +> > complex(0,0)^complex(2,2.0) gives +> > +> > log 0 generated +> > +> > but should give 0 +> +> +> complex(0,0)^complex(0,0.0) +> +> log 0 generated +> +> but should give 0**0 is undefined +> +> +> > +> > ----------------------------- +> > non-bugs: +> > ----------------------------- +> > +> > 0^0 +> > 1 Type: PositiveInteger +> > +> > 0.0^0 +> > 1.0 Type: Float +> > +> > are correct, since there is no limit for Integers and the type of zero = +in the +> > exponent is Integer. +> > ------------------------------ +> > 0^0.0 +> > +> > 0**0 is undefined +> > +> > 0.0^0.0 +> > +> > 0**0 is undefined +> > +> > are correct, since there is a limit for Floats +> > ------------------------------ +> > ---------------------------------------------------------------- +> > +> > If all of this is correct, could somebody who is entitled to do so +> > +> > * add a comment to [bugs #9313] 0^0 handled inconsistently that it is n= +ot a +> > bug, (maybe simply include a pointer to this mail) but there are rela= +ted bugs +> > described in [bugs #9424] Bug in handling 0^0 in Axiom +> > +> > * close it. + +\start +Date: Tue, 13 Jul 2004 18:13:29 +0200 +From: Vanuxem =?ISO-8859-1?Q?Gr=E9gory?= +To: Axiom Developer +Subject: Re: [Axiom-developer] patch:RINTERP and algebra/Makefile.pamphlet + +Sorry, very old mail sent hen reinstalling Bind. + +Greg + +Le ven 02/07/2004 =E0 15:17, Vanuxem Gr=E9gory a =E9crit : +> Hi, +> +> Here is a patch (diff -Naur) for Makefile.pamphlet (07/01/2004) in +> src/algebra: +> +> Change: +> +> RINTERP DenavitHartenbergMatrix +> +> by +> +> RINTERP RationalInterpolation +> +> Question: +> +> Why RINTERP is not added to "exposed.lsp.pamphlet" in Hidden section ? + +\start +Date: Tue, 13 Jul 2004 11:16:48 -0400 +From: Tim Daly +To: fauser@spock.physik.uni-konstanz.de +Subject: [Axiom-developer] what is m4 + +BF, + +> what is m4? + +m4 is a macro language. m4 is usually installed as a side-effect +of installing sendmail. + +\start +Date: 13 Jul 2004 12:56:26 -0400 +From: Camm Maguire +To: Bertfried Fauser +Subject: Re: [Axiom-developer] cvs build error on SuSE9.1 + +Greetings! Here is your problem: + +Bertfried Fauser writes: + +.... + +> checking whether vsnprintf works... yes +> checking whether sscanf needs writable input... no +> checking for suitable m4... configure: error: No usable m4 in $PATH or +> /usr/5bin (see config.log for reasons). +> # +> # + +In general, the build-dependencies for gcl can be found at the head of +the file debian/control in the gcl source directory. Currently, they +are: + +Build-Depends: debhelper ( >= 4.1.0 ), emacs21 | emacsen, libreadline4-dev, m4, tk8.4-dev, tetex-bin, texinfo, binutils-dev, libgmp3-dev, autotools-dev + +You can forget about the debhelper unless you want to make a Debian +package. + +Take care, + + +> # +> # Subconfigure of GMP done +> # ------------------------ +> # +> cp: cannot stat `gmp3/gmp.h': No such file or directory + +\start +Date: Wed, 14 Jul 2004 00:47:55 -0400 +From: "Page, Bill" +To: "'daly@idsi.net'" +Subject: RE: [Axiom-developer] lattice drawing program +Cc: 'M HEYDTMANN' , + +Tim, + +graphviz looks like it produces really nice graphs. + +I have been experimenting with the "TouchGraph" online graphical +interface for the Axiom Wiki. You can start to play with it here. + +http://page.axiom-developer.org/zope/mathaction/FrontPage/withNavigator + +I don't really have enough example files in this part of the Axiom +Wiki yet to really illustrate this well, but I hope you can get the +idea. + +You might remember that I mentioned this back in April + +http://lists.gnu.org/archive/html/axiom-developer/2004-04/msg00015.html + +The people to implemented this (Mathis Heydtmann and Alex@floop.org.uk) +provided some fairly detailed documentation on how to set it up here + +http://zeck.floop.org.uk/mathis/WikiLiver/InstallingZWikiNavigator + +Nice work gentlemen! + +It only took me a few hours today to get this to work. + +Right now I am working the DHmatrix.spad.pamphlet file as an example. +I intend to gradually put more of the .pamphlet files here so that +we can experiment with this sort of "crystal navigation". + +Comments welcome, everyone! + +> -----Original Message----- +> From: root [mailto:daly@idsi.net] +> Sent: Tuesday, July 13, 2004 8:14 AM +> To: bill.page1@sympatico.com +> Cc: axiom-developer@nongnu.org; daly@idsi.net +> Subject: [Axiom-developer] lattice drawing program +> +> +> Bill, +> +> Remember the problem of drawing the algebra lattice? +> I've looked into it a bit more. Take a look at: +> +> http://www.research.att.com/sw/tools/graphviz +> +> Tim +> +> + + + +-----Original Message----- +From: M HEYDTMANN [mailto:M.HEYDTMANN@bham.ac.uk] +Sent: Tuesday, April 06, 2004 3:51 PM +To: bill.page1@sympatico.ca; bill.page1@sympatico.ca +Subject: WikiLiver + + +Bill, + +Thanks for your interest in our Wikinavigator. +(http://mail.gnu.org/archive/html/axiom-developer/2004-04/msg00015.html) +I have to credit mainly Alex@floop.org.uk for developing it with me and we +are hoping to develop it further... We are currently working on packaging it +and go public in some way also with the aim to get more people involved for +testing on different browsers, ... Watch the space. + +Mathis + +Mathis Heydtmann +The Liver Research Laboratories +Institute for Biomedical Research +Birmingham University +Edgbaston B15 2TH +UK + +\start +Date: Wed, 14 Jul 2004 08:39:00 -0400 +From: Tim Daly +To: Bill.Page@drdc-rddc.gc.ca +Subject: Re: [Bill.Page@drdc-rddc.gc.ca: RE: [Axiom-developer] lattice drawing program] + +> graphviz looks like it produces really nice graphs. + +I'm going to try to revive the effort to define and graph the +axiom algebra lattice. This will make it somewhat easier to +understand and show where more work is needed. Hopefully an +interesting research direction will fall out that can be +proposed for the next round of submissions. + +\start +Date: Wed, 14 Jul 2004 09:13:56 -0400 +From: Tim Daly +To: licensing@att.com +Subject: [Axiom-developer] graphviz + +I've looked at your graphics visualization software +(http://www.research.att.com/sw/tools/graphviz) +and read the license. It seems compatible with the +Modified BSD license that we use for Axiom +(http://savannah.nongnu.org/projects/axiom) +although I can't say that I fully understand all +the possible legal ramifications. + +One item of note is that changes are supposed to be +sent back to AT&T but it doesn't say where and to whom. + +The general mechanism that Axiom uses with software is to +distribute the original tarball unchanged. During the build +process patches are dynamically applied. This is compatible +with your license as I understand it. We need to know, if +we do make changes, where to send copies of these patches. + +In addition, we have a wiki website. If we find this software +useful we're likely to extend it to handle hyperlinking to our +source files. This is non-commercial use and does not involve +distribution in any physical sense. Nevertheless, we're willing +to contribute patches back to the original project. + +Please send me a contact name and email address for patches. + +\start +Date: Wed, 14 Jul 2004 09:19:26 -0400 +From: Tim Daly +To: Stephen North +Subject: [Axiom-developer] graphviz + +Stephen, + +I've looked at your graphics visualization software +(http://www.research.att.com/sw/tools/graphviz) +and read the license. It seems compatible with the +Modified BSD license that we use for Axiom +(http://savannah.nongnu.org/projects/axiom) +although I can't say that I fully understand all +the possible legal ramifications. + +I've contacted your licensing dept (licensing@att.com). + +The general mechanism that Axiom uses with software is to distribute +the original tarball unchanged. During the build process patches are +dynamically applied. This is compatible with your license as I +understand it. + +In addition, we have a wiki website. If we find this software useful +we're likely to extend it to handle hyperlinking to our source +files. This is non-commercial use and does not involve distribution in +any physical sense. Nevertheless, we're willing to contribute patches +back to the original project. + +Can I assume that if we make changes you are the person to receive the +patches? + +\start +Date: Wed, 14 Jul 2004 16:26:47 +0200 +From: Renaud.Rioboo@lip6.fr +To: axiom-developer@nongnu.org +Subject: [Axiom-developer] efficiency consideration in Axiom + +Dear Axiom fans, + +I am wanting to produce new versions for my Real Closure package and I am +willing to use Open Axiom while I was mainly using NAG's Axion version. + +I am using my RealClosure package which is the same for Open Axiom than the +one I use in NAG's Axiom 2.3 since Tim downloaded the RECLOS version from my +website. + +I am however experiencing efficiency problems. Here is an example: + +----------------Open Axiom------------------------------- +(6) -> a3 := sqrt(-(5739 - 9473525*a2),3) + + +------------------------------------------------------------------+ + | +-------------------------------------------------+ + | | +-------------------------------+ + 3| 3| 3| 3+-+ + (6) \|9473525\|92526953\|316737007504\|2 - 399063623035 - 5539 - 5739 + Type: RealClosure Fraction Integer + Time: 48.04 (EV) + 0.01 (OT) + 15.60 (GC) = 63.65 sec +(7) -> a4 := sqrt(-(1 - 1283*a3),3) + + (7) + ROOT + 1283 + * + +------------------------------------------------------------------+ + | +-------------------------------------------------+ + | | +-------------------------------+ + 3| 3| 3| 3+-+ + \|9473525\|92526953\|316737007504\|2 - 399063623035 - 5539 - 5739 + + + - 1 + , + 3 + Type: RealClosure Fraction Integer + Time: 744.11 (EV) + 182.66 (GC) = 926.77 sec +----------------Open Axiom------------------------------- + +wheras + +----------------NAG Axiom's 2.3------------------------------- +G82322 (5) -> a3 := sqrt(-(5739 - 9473525*a2),3) + + +------------------------------------------------------------------+ + | +-------------------------------------------------+ + | | +-------------------------------+ + 3| 3| 3| 3+-+ + (5) \|9473525\|92526953\|316737007504\|2 - 399063623035 - 5539 - 5739 + Type: RealClosure Fraction Integer + Time: 0.07 (EV) = 0.07 sec +G82322 (6) -> a4 := sqrt(-(1 - 1283*a3),3) + + (6) + ROOT + 1283 + * + +------------------------------------------------------------------+ + | +-------------------------------------------------+ + | | +-------------------------------+ + 3| 3| 3| 3+-+ + \|9473525\|92526953\|316737007504\|2 - 399063623035 - 5539 - 5739 + + + - 1 + , + 3 + Type: RealClosure Fraction Integer + Time: 0.59 (EV) + 0.11 (GC) = 0.70 sec +----------------NAG Axiom's 2.3------------------------------- + +Which makes a factor above 1000 ! Anyone has an idea ? + +\start +Date: Wed, 14 Jul 2004 09:37:33 -0400 +From: Tim Daly +To: renaud.rioboo@lip6.fr +Subject: [Axiom-developer] efficiency + +Renaud, + +> I am wanting to produce new versions for my Real Closure package and I am +> willing to use Open Axiom while I was mainly using NAG's Axion version. + +I have no idea but I'll look into it. + +I'll try running the same test here. In particular, I'll recompile +the sources in each image before the tests so I'm sure they are +using the same code. + +\start +Date: Wed, 14 Jul 2004 10:45:31 -0400 +From: "Bill Page" +To: , +Subject: RE: [Axiom-developer] efficiency + +Renaud, Tim, + +Has the version of OpenAxiom that you are using been +"compiled twice" in order to optimize function calls? +(Although if not, I doubt that that could explain a +factor of 1000!) + +Regards, +Bill Page. + +> -----Original Message----- +> From: +> axiom-developer-bounces+bill.page1=sympatico.ca@nongnu.org +> [mailto:axiom-developer-bounces+bill.page1=sympatico.ca@nongnu +> .org] On Behalf Of Tim Daly +> Sent: Wednesday, July 14, 2004 9:38 AM +> To: renaud.rioboo@lip6.fr +> Cc: axiom-developer@nongnu.org; daly@idsi.net +> Subject: [Axiom-developer] efficiency +> +> +> Renaud, +> +> > I am wanting to produce new versions for my Real Closure +> > package and I am willing to use Open Axiom while I was +> > mainly using NAG's Axion version. +> +> I have no idea but I'll look into it. +> +> I'll try running the same test here. In particular, I'll +> recompile the sources in each image before the tests so I'm +> sure they are using the same code. + +\start +Date: Wed, 14 Jul 2004 16:54:25 +0200 +From: Vanuxem =?ISO-8859-1?Q?Gr=E9gory?= +To: Renaud.Rioboo@lip6.fr +Subject: Re: [Axiom-developer] efficiency consideration in Axiom + +Hi + +What is a2 and a1 ? + + +greg + +Le mer 14/07/2004 =E0 16:26, Renaud.Rioboo@lip6.fr a =E9crit : +> Dear Axiom fans, +> +> I am wanting to produce new versions for my Real Closure package and I am +> willing to use Open Axiom while I was mainly using NAG's Axion version. +> +> I am using my RealClosure package which is the same for Open Axiom than t= +he +> one I use in NAG's Axiom 2.3 since Tim downloaded the RECLOS version from= + my +> website. +> +> I am however experiencing efficiency problems. Here is an example: +> +> ----------------Open Axiom------------------------------- +> (6) -> a3 := sqrt(-(5739 - 9473525*a2),3) +> +> +---------------------------------------------------------------= +---+ +> | +-------------------------------------------------+ +> | | +-------------------------------+ +> 3| 3| 3| 3+-+ +> (6) \|9473525\|92526953\|316737007504\|2 - 399063623035 - 5539 - 5= +739 +> Type: RealClosure Fraction Int= +eger +> Time: 48.04 (EV) + 0.01 (OT) + 15.60 (GC) = 63.= +65 sec +> (7) -> a4 := sqrt(-(1 - 1283*a3),3) +> +> (7) +> ROOT +> 1283 +> * +> +-------------------------------------------------------------= +-----+ +> | +-------------------------------------------------+ +> | | +-------------------------------+ +> 3| 3| 3| 3+-+ +> \|9473525\|92526953\|316737007504\|2 - 399063623035 - 5539 -= + 5739 +> + +> - 1 +> , +> 3 +> Type: RealClosure Fraction Int= +eger +> Time: 744.11 (EV) + 182.66 (GC) = 926.= +77 sec +> ----------------Open Axiom------------------------------- +> +> wheras +> +> ----------------NAG Axiom's 2.3------------------------------- +> G82322 (5) -> a3 := sqrt(-(5739 - 9473525*a2),3) +> +> +---------------------------------------------------------------= +---+ +> | +-------------------------------------------------+ +> | | +-------------------------------+ +> 3| 3| 3| 3+-+ +> (5) \|9473525\|92526953\|316737007504\|2 - 399063623035 - 5539 - 5= +739 +> Type: RealClosure Fraction Int= +eger +> Time: 0.07 (EV) = 0.= +07 sec +> G82322 (6) -> a4 := sqrt(-(1 - 1283*a3),3) +> +> (6) +> ROOT +> 1283 +> * +> +-------------------------------------------------------------= +-----+ +> | +-------------------------------------------------+ +> | | +-------------------------------+ +> 3| 3| 3| 3+-+ +> \|9473525\|92526953\|316737007504\|2 - 399063623035 - 5539 -= + 5739 +> + +> - 1 +> , +> 3 +> Type: RealClosure Fraction Int= +eger +> Time: 0.59 (EV) + 0.11 (GC) = 0.= +70 sec +> ----------------NAG Axiom's 2.3------------------------------- +> +> Which makes a factor above 1000 ! Anyone has an idea ? + +\start +Date: Wed, 14 Jul 2004 17:22:15 +0200 +From: Renaud.Rioboo@lip6.fr +To: +Subject: Re: [Axiom-developer] efficiency + +Dear all, + +> Has the version of OpenAxiom that you are using been +> "compiled twice" in order to optimize function calls? +> (Although if not, I doubt that that could explain a +> factor of 1000!) + +Hum, this is beyond my control. + +The only problem I had when compiling axiom was : + +1 finished /usr/local/Install/OpenAxiom/axiom/src/doc +make[3]: Leaving directory `/usr/local/Install/OpenAxiom/axiom/src/doc' +make[2]: *** No rule to make target `/usr/local/Install/OpenAxiom/axiom/src/graph/Makefile.pamphlet', needed by `/usr/local/Install/OpenAxiom/axiom/src/graph/Makefile'. Stop. +make[2]: Leaving directory `/usr/local/Install/OpenAxiom/axiom/src' +make[1]: *** [srcdir] Error 2 +make[1]: Leaving directory `/usr/local/Install/OpenAxiom/axiom' +make: *** [all] Error 2 + +but axiom seems to run and has the correct build date. + +\start +Date: Wed, 14 Jul 2004 10:24:03 -0400 +From: Tim Daly +To: Renaud.Rioboo@lib6.fr +Subject: [Axiom-developer] efficiency + +Renaud, + +I can't reproduce your example. +Can you post the input file you used? + +\start +Date: Wed, 14 Jul 2004 10:26:41 -0400 +From: Tim Daly +To: Renaud.Rioboo@lip6.fr +Subject: [Axiom-developer] efficiency + +Renaud, + +I can't reproduce your example. +Can you post the input file you used? + +\start +Date: Wed, 14 Jul 2004 12:18:59 -0400 +From: Tim Daly +To: north@research.att.com +Subject: [Axiom-developer] documentation + +Stephen, + +I've started writing a package for Axiom that will allow programs +to generate graphs. + +One thing to know about Axiom programs is that they are "literate +programs" meaning that they are actually TeX documents which contain +the source code as well as the documentation. Axiom no longer contains +C, lisp, spad, makefiles, etc. Everything is a TeX document from which +the programs are extracted at build time. + +Rather than rewriting the relevant portions of the docs you provide +I'd rather just quote the text directly. I don't see anything in the +license that prevents that. Unfortunately, I also don't see the +original tex files that make up the documentation. + +Several questions: + +Is it clear to you that the license allows me to quote the docs? +Are the tex documents available? It would save retyping the parts. +If so, where can I get them? +Will they be made part of the distribution? + +\start +Date: Wed, 14 Jul 2004 12:40:16 -0400 +From: Tim Daly +To: north@research.att.com +Subject: [Axiom-developer] documentation + +Stephen, + +> Aren't they in the doc directory? + +The pdf files are there but the tex sources are not. +Pdf is basically a binary, dead-end format. + +I want to write an Axiom version of the tex that has axiom source +code spread all over the file. For instance, in the dotguide file +there is an example of how to create a simple digraph. To incorporate +this into axiom I'd rewrite the section to show what the related +axiom functions are (including their implementation), as well as +the output of an axiom session (which would automatically become +a regression test case). That way the documentation covers both +the source (as it is extracted), the testing (also extracted) and +the end user documentation (automatically built). Besides the +existing documentation I'd be writing a discussion of the design +decisions and the implementation details. That way future maintainers +can understand and maintain the code, tests, and docs all in one place. + +You can fetch files from the Axiom website to see what I mean: + +cvs -d:ext:anoncvs@subversions.gnu.org:/cvsroot/axiom co axiom/src/algebra/dhmatrix.spad.pamphlet + +I extract code and docs using a tool called noweb +(http://www.eecs.harvard.edu/~nr/noweb) written by Norman Ramsey at +Harvard. It is a language-agnostic version of Knuth's Web literate +programming tool. + +I can write all of this documentation from scratch but it's just +so much easier to start with existing work and slice and dice it. + +\start +Date: Wed, 14 Jul 2004 12:51:49 -0400 +From: Tim Daly +To: north@research.att.com +Subject: [Axiom-developer] documentation + +Ok. Got it. The CVS does contain the tex but the tarball does not. +I'll tar up the CVS version and use that, per the license. +Thanks. + +\start +Date: Wed, 14 Jul 2004 20:13:14 +0200 +From: David MENTRE +To: Renaud.Rioboo@lip6.fr +Subject: Re: [Axiom-developer] efficiency + +Hello Rebaud, + +Renaud.Rioboo@lip6.fr writes: + +> make[2]: *** No rule to make target `/usr/local/Install/OpenAxiom/axiom/src/graph/Makefile.pamphlet', needed by `/usr/local/Install/OpenAxiom/axiom/src/graph/Makefile'. Stop. + +Are you sure you have used -d option to cvs update? A missing +directory/file could explain such an error. + +\start +Date: Wed, 14 Jul 2004 14:18:24 -0400 +From: "Bill Page" +To: , +Subject: RE: [Axiom-developer] efficiency + +Tim, Renaud, + +I have tried a simple example on the Axiom Wiki here + + http://page.axiom-developer.org/zope/mathaction/ExperimentHere + +It is based on Renaud's email, but I do not have the actual +value that he may have used for the variable a2. + +Anyway, it seems that at least in the verion of Axiom on +the Axiom Wiki, the performance is pretty good! + +If you have any questions about how to use the Axiom Wiki +and the Axiom Portal, please ask. + + +> -----Original Message----- +> From: +> axiom-developer-bounces+bill.page1=sympatico.ca@nongnu.org +> [mailto:axiom-developer-bounces+bill.page1=sympatico.ca@nongnu +> .org] On Behalf Of Tim Daly +> Sent: Wednesday, July 14, 2004 10:24 AM +> To: Renaud.Rioboo@lib6.fr +> Cc: axiom-developer@nongnu.org; daly@idsi.net +> Subject: [Axiom-developer] efficiency +> +> +> Renaud, +> +> I can't reproduce your example. +> Can you post the input file you used? + +\start +Date: Wed, 14 Jul 2004 20:31:43 +0200 +From: David MENTRE +To: fenner@cs.pitt.edu +Subject: Re: [Axiom-developer] Compilation Methodology Overview and a Specific Problem + +Hello Mark, + +I cannot remember if anybody has replied to your questions, so I give +them a try: + +"Mark E. Fenner" writes: + +> Why does axiom build its own LISP(s) instead of using LISP(s) that I may +> already have on my system? Is this the different characteristics of +> different LISPs mentioned in the top-level README file? + +Axiom has its own Lisp to have a known the build environment and because +Axiom needs to patch the lisp core system for its own purpose (socket +extension). This might change in the future but is not in the short term +plan. + +However, it is possible to make Axiom rely on an external Lisp +(GCL). Camm Maguire is doing it for the Debian Axiom package. + +> Is there any preference of using LISP versions that are 1) the same or 2) +> different from what I have on my machine? For example, if I have gcl 2.5.2 +> installed on my machine, should I necessarily choose GCLVERSION=gcl-2.5.2 in +> my makefile (or from an export GCLVERSION)? + +You should use the default lisp in the current sources of Axiom. + +> Finally, I believe the top level Makefile.dvi description states that gcl +> 2.4.1 is the default gcl version. The CVS toplevel Makefile seems to have +> the GCLVERSION=gcl-2.6.2 line uncommented. Is this as intended or do the +> docs need updated? + +The docs need updates. We will gladly accept any diff -Naur of your +patch. + +\start +Date: Wed, 14 Jul 2004 13:51:35 -0400 +From: Tim Daly +To: david.mentre@wanadoo.fr +Subject: [Axiom-developer] (no subject) +Cc: north@research.att.com + +> I'm not a lawyer but from what I have read, this license makes graphviz, +> albeit open source, not a free software ...[snip]... + +"The first thing we do, let's kill all the lawyers." +"Nay, that I mean to do. Is not this a lamentable thing, that of the +skin of an innocent lamb should be made parchment? That parchment, +being scribbled o'er should undo a man? Some say the bee stings; but +I say, 'tis the bee's wax; for I did but seal once to a thing, and I +was never mine own man since" -- Shakespeare Henry VI, part 2 + +You're right, of course. + +Thus, I need to figure out a way to configure a non-free extension +that is left out of the free distribution. Or wait for AT&T to get a +clue. For the nonce, I choose path one as path two can never occur +for certainly AT&T can have no love of Modified BSD :-) + +"Oh, bother" -- Pooh + +BTW, any further discussion on the legal subject should be copied +ONLY to axiom-legal, and NOT axiom-developer, that being the point +of its creation. + +\start +Date: Wed, 14 Jul 2004 13:58:32 -0400 +From: Tim Daly +To: david.mentre@wanadoo.fr, fenner@cs.pitt.edu +Subject: [Axiom-developer] Compilation Methodology Overview and a Specific Problem + +> Axiom has its own lisp to have a known the build environment and because +> Axiom needs to patch ....[snip]... + +One of the developers has agreed to look at UFFI (if memory serves) +which is rumored to allow C extensions to all of the Lisp systems. +If I have the cover functions for Axiom's GCL extensions then I can +use a pre-installed lisp if such exists. + +The current GCLVERSION should read +GCLVERSION=gcl-2.6.2a + +although the patches are still there for the prior versions and they +used to work. + +\start +Date: Wed, 14 Jul 2004 21:59:00 -0400 +From: root +To: Renaud.Rioboo@lib6.fr +Subject: [Axiom-developer] computation + +I ran both the NAG version and the free version of Axiom on +reclos.input. These are the two consoles. The first one is +from the NAG version, the second from the free version. + +The times compare reasonably. + +Please send me the test case you have. + +================================================================= +=== NAG version +================================================================= + + +bash-2.05b# axiom -nox +Axiom Computer Algebra System (Release 2.3) +Linux 2.2 for Intel i386 (AXLUX23NA) +----------------------------------------------------------------------------- + Issue )copyright to view copyright notices. + Issue )summary for a summary of useful system commands. + Issue )quit to leave AXIOM and return to shell. +----------------------------------------------------------------------------- + +Value = 1 +initial (1) -> +G82322 (1) -> )co reclos.spad + Compiling AXIOM source code from file /tmp/new/reclos.spad using old + system compiler. + POLUTIL abbreviates package RealPolynomialUtilitiesPackage + processing macro definition Z ==> Integer + processing macro definition N ==> NonNegativeInteger + processing macro definition P ==> ThePols +------------------------------------------------------------------------ + initializing NRLIB POLUTIL for RealPolynomialUtilitiesPackage + compiling into NRLIB POLUTIL + compiling exported sturmSequence : ThePols -> List ThePols +Time: 0.46 SEC. + + compiling exported sylvesterSequence : (ThePols,ThePols) -> List ThePols +Time: 0.22 SEC. + +****** Domain: TheField already in scope +augmenting TheField: (OrderedRing) +augmenting $: (SIGNATURE $ boundOfCauchy (TheField ThePols)) +augmenting $: (SIGNATURE $ sturmVariationsOf ((NonNegativeInteger) (List TheField))) +augmenting $: (SIGNATURE $ lazyVariations ((NonNegativeInteger) (List TheField) (Integer) (Integer))) + compiling exported boundOfCauchy : ThePols -> TheField +Time: 0.04 SEC. + + compiling exported sturmVariationsOf : List TheField -> NonNegativeInteger +Time: 0.06 SEC. + + compiling exported lazyVariations : (List TheField,Integer,Integer) -> NonNegativeInteger +Time: 0.12 SEC. + +****** Domain: TheField already in scope +augmenting TheField: (OrderedRing) +augmenting $: (SIGNATURE $ boundOfCauchy (TheField ThePols)) +augmenting $: (SIGNATURE $ sturmVariationsOf ((NonNegativeInteger) (List TheField))) +augmenting $: (SIGNATURE $ lazyVariations ((NonNegativeInteger) (List TheField) (Integer) (Integer))) +(time taken in buildFunctor: 10) + +;;; *** |RealPolynomialUtilitiesPackage| REDEFINED + +;;; *** |RealPolynomialUtilitiesPackage| REDEFINED +Time: 0.01 SEC. + + + Warnings: + [1] sylvesterSequence: res has no value + [2] sturmVariationsOf: ll has no value + + + Cumulative Statistics for Constructor RealPolynomialUtilitiesPackage + Time: 0.91 seconds + + finalizing NRLIB POLUTIL + Processing RealPolynomialUtilitiesPackage for Browser database: +--------(sylvesterSequence ((List ThePols) ThePols ThePols))--------- +--------(sturmSequence ((List ThePols) ThePols))--------- +--------(boundOfCauchy (TheField ThePols))--------- +--------(sturmVariationsOf (N (List TheField)))--------- +--------(lazyVariations (N (List TheField) Z Z))--------- +--------constructor--------- +;; Compiling file "POLUTIL.NRLIB/code.lsp" ++++ |POLUTIL;sturmSequence;ThePolsL;1| compiled, 21 + 12 bytes ++++ |POLUTIL;sylvesterSequence;2ThePolsL;2| compiled, 139 + 48 bytes ++++ |POLUTIL;boundOfCauchy;ThePolsTheField;3| compiled, 178 + 52 bytes ++++ |POLUTIL;sturmVariationsOf;LNni;4| compiled, 165 + 40 bytes ++++ |POLUTIL;lazyVariations;L2INni;5| compiled, 159 + 52 bytes ++++ |RealPolynomialUtilitiesPackage| compiled, 46 + 44 bytes ++++ |RealPolynomialUtilitiesPackage;| compiled, 117 + 92 bytes +;; Compilation complete +------------------------------------------------------------------------ + RealPolynomialUtilitiesPackage is now explicitly exposed in frame + G82322 + RealPolynomialUtilitiesPackage will be automatically loaded when + needed from POLUTIL.NRLIB/code + + RRCC abbreviates category RealRootCharacterizationCategory + processing macro definition Z ==> Integer + processing macro definition N ==> PositiveInteger + processing macro definition PUB ==> -- the constructor capsule +------------------------------------------------------------------------ + initializing NRLIB RRCC for RealRootCharacterizationCategory + compiling into NRLIB RRCC + +;;; *** |RealRootCharacterizationCategory| REDEFINED + ++++ |RealRootCharacterizationCategory| redefined +Time: 0.02 SEC. + + RRCC- abbreviates domain RealRootCharacterizationCategory& +------------------------------------------------------------------------ + initializing NRLIB RRCC- for RealRootCharacterizationCategory& + compiling into NRLIB RRCC- +****** Domain: TheField already in scope + compiling exported zero? : (ThePols,S) -> Boolean +Time: 0.07 SEC. + + compiling exported negative? : (ThePols,S) -> Boolean +Time: 0.03 SEC. + + compiling exported positive? : (ThePols,S) -> Boolean +Time: 0.03 SEC. + + compiling exported rootOf : (ThePols,PositiveInteger) -> Union(S,failed) +Time: 0.08 SEC. + + compiling exported recip : (ThePols,S) -> Union(ThePols,failed) +Time: 0.15 SEC. + +(time taken in buildFunctor: 0) + +;;; *** |RealRootCharacterizationCategory&| REDEFINED +Time: 0.01 SEC. + + + Cumulative Statistics for Constructor RealRootCharacterizationCategory& + Time: 0.37 seconds + + finalizing NRLIB RRCC- + Processing RealRootCharacterizationCategory& for Browser database: +--------(sign (Z ThePols $))--------- +--------(zero? ((Boolean) ThePols $))--------- +--------(negative? ((Boolean) ThePols $))--------- +--------(positive? ((Boolean) ThePols $))--------- +--------(recip ((Union ThePols failed) ThePols $))--------- +--------(definingPolynomial (ThePols $))--------- +--------(allRootsOf ((List $) ThePols))--------- +--------(rootOf ((Union $ failed) ThePols N))--------- +--------(approximate (TheField ThePols $ TheField))--------- +--------(relativeApprox (TheField ThePols $ TheField))--------- +--------constructor--------- +;; Compiling file "RRCC-.NRLIB/code.lsp" ++++ |RRCC-;zero?;ThePolsSB;1| compiled, 16 + 12 bytes ++++ |RRCC-;negative?;ThePolsSB;2| compiled, 15 + 8 bytes ++++ |RRCC-;positive?;ThePolsSB;3| compiled, 16 + 12 bytes ++++ |RRCC-;rootOf;ThePolsPiU;4| compiled, 41 + 24 bytes ++++ |RRCC-;recip;ThePolsSU;5| compiled, 200 + 72 bytes ++++ |RealRootCharacterizationCategory&| compiled, 68 + 44 bytes +;; Compilation complete +------------------------------------------------------------------------ + RealRootCharacterizationCategory& is now explicitly exposed in frame + G82322 + RealRootCharacterizationCategory& will be automatically loaded when + needed from RRCC-.NRLIB/code + finalizing NRLIB RRCC + Processing RealRootCharacterizationCategory for Browser database: +--------(sign (Z ThePols $))--------- +--------(zero? ((Boolean) ThePols $))--------- +--------(negative? ((Boolean) ThePols $))--------- +--------(positive? ((Boolean) ThePols $))--------- +--------(recip ((Union ThePols failed) ThePols $))--------- +--------(definingPolynomial (ThePols $))--------- +--------(allRootsOf ((List $) ThePols))--------- +--------(rootOf ((Union $ failed) ThePols N))--------- +--------(approximate (TheField ThePols $ TheField))--------- +--------(relativeApprox (TheField ThePols $ TheField))--------- +--------constructor--------- +;; Compiling file "RRCC.NRLIB/code.lsp" ++++ |RealRootCharacterizationCategory;AL| treated as if locally SPECIAL ++++ |RealRootCharacterizationCategory;AL| treated as if locally SPECIAL ++++ |RealRootCharacterizationCategory;AL| treated as if locally SPECIAL ++++ |RealRootCharacterizationCategory| compiled, 29 + 24 bytes ++++ |RealRootCharacterizationCategory;CAT| treated as if locally SPECIAL ++++ |RealRootCharacterizationCategory;CAT| treated as if locally SPECIAL ++++ |RealRootCharacterizationCategory;| compiled, 56 + 60 bytes +;; Compilation complete +------------------------------------------------------------------------ + RealRootCharacterizationCategory is now explicitly exposed in frame + G82322 + RealRootCharacterizationCategory will be automatically loaded when + needed from RRCC.NRLIB/code + + RCFIELD abbreviates category RealClosedField + processing macro definition E ==> OutputForm + processing macro definition SUP ==> SparseUnivariatePolynomial + processing macro definition OFIELD ==> -- the constructor category + processing macro definition PME ==> SparseUnivariatePolynomial $ + processing macro definition N ==> NonNegativeInteger + processing macro definition PI ==> PositiveInteger + processing macro definition RN ==> Fraction Integer + processing macro definition Z ==> Integer + processing macro definition POLY ==> Polynomial + processing macro definition PACK ==> SparseUnivariatePolynomialFunctions2 +------------------------------------------------------------------------ + initializing NRLIB RCFIELD for RealClosedField + compiling into NRLIB RCFIELD + +;;; *** |RealClosedField| REDEFINED + ++++ |RealClosedField| redefined +Time: 0.20 SEC. + + RCFIELD- abbreviates domain RealClosedField& +------------------------------------------------------------------------ + initializing NRLIB RCFIELD- for RealClosedField& + compiling into NRLIB RCFIELD- + compiling exported sqrt : S -> S +Time: 0.11 SEC. + + compiling exported sqrt : Fraction Integer -> S +Time: 0.04 SEC. + + compiling exported sqrt : Integer -> S +Time: 0.02 SEC. + + compiling exported characteristic : () -> NonNegativeInteger + RCFIELD-;characteristic;Nni;4 is replaced by 0 +Time: 0.01 SEC. + + compiling exported rootOf : (SparseUnivariatePolynomial S,PositiveInteger,OutputForm) -> Union(S,failed) +Time: 0.05 SEC. + + compiling exported rootOf : (SparseUnivariatePolynomial S,PositiveInteger) -> Union(S,failed) +Time: 0.11 SEC. + + compiling exported sqrt : (S,NonNegativeInteger) -> S +Time: 0.07 SEC. + + compiling exported ** : (S,Fraction Integer) -> S +Time: 0.04 SEC. + + compiling exported nthRoot : (S,Integer) -> S +Time: 0.02 SEC. + + compiling exported allRootsOf : SparseUnivariatePolynomial Fraction Integer -> List S +Time: 0.10 SEC. + + compiling exported allRootsOf : SparseUnivariatePolynomial Integer -> List S +Time: 0.07 SEC. + + compiling exported allRootsOf : Polynomial S -> List S +Time: 0.05 SEC. + + compiling exported allRootsOf : Polynomial Fraction Integer -> List S +Time: 0.10 SEC. + + compiling exported allRootsOf : Polynomial Integer -> List S +Time: 0.17 SEC. + +(time taken in buildFunctor: 10) + +;;; *** |RealClosedField&| REDEFINED +Time: 0.01 SEC. + + + Warnings: + [1] rootOf: not known that (Ring) is of mode (CATEGORY domain (SIGNATURE sqrt (S (Integer))) (SIGNATURE sqrt (S (Fraction (Integer)))) (SIGNATURE sqrt (S S (NonNegativeInteger))) (SIGNATURE allRootsOf ((List S) (Polynomial (Integer)))) (SIGNATURE allRootsOf ((List S) (Polynomial (Fraction (Integer))))) (SIGNATURE allRootsOf ((List S) (Polynomial S))) (SIGNATURE allRootsOf ((List S) (SparseUnivariatePolynomial (Integer)))) (SIGNATURE allRootsOf ((List S) (SparseUnivariatePolynomial (Fraction (Integer))))) (SIGNATURE allRootsOf ((List S) (SparseUnivariatePolynomial S))) (SIGNATURE rootOf ((Union S failed) (SparseUnivariatePolynomial S) (PositiveInteger))) (SIGNATURE rootOf ((Union S failed) (SparseUnivariatePolynomial S) (PositiveInteger) (OutputForm))) (SIGNATURE ** (S S (Fraction (Integer)))) (SIGNATURE nthRoot (S S (Integer))) (SIGNATURE sqrt (S S)) (SIGNATURE ** (S S (Integer))) (SIGNATURE characteristic ((NonNegativeInteger))) (SIGNATURE ** (S S (NonNegativeInteger)! + )) (SIGNATURE ** (S S (PositiveInteger)))) + [2] allRootsOf: not known that (Ring) is of mode (CATEGORY domain (SIGNATURE sqrt (S (Integer))) (SIGNATURE sqrt (S (Fraction (Integer)))) (SIGNATURE sqrt (S S (NonNegativeInteger))) (SIGNATURE allRootsOf ((List S) (Polynomial (Integer)))) (SIGNATURE allRootsOf ((List S) (Polynomial (Fraction (Integer))))) (SIGNATURE allRootsOf ((List S) (Polynomial S))) (SIGNATURE allRootsOf ((List S) (SparseUnivariatePolynomial (Integer)))) (SIGNATURE allRootsOf ((List S) (SparseUnivariatePolynomial (Fraction (Integer))))) (SIGNATURE allRootsOf ((List S) (SparseUnivariatePolynomial S))) (SIGNATURE rootOf ((Union S failed) (SparseUnivariatePolynomial S) (PositiveInteger))) (SIGNATURE rootOf ((Union S failed) (SparseUnivariatePolynomial S) (PositiveInteger) (OutputForm))) (SIGNATURE ** (S S (Fraction (Integer)))) (SIGNATURE nthRoot (S S (Integer))) (SIGNATURE sqrt (S S)) (SIGNATURE ** (S S (Integer))) (SIGNATURE characteristic ((NonNegativeInteger))) (SIGNATURE ** (S S (NonNegativeInte! + ger))) (SIGNATURE ** (S S (PositiveInteger)))) + + + Cumulative Statistics for Constructor RealClosedField& + Time: 0.97 seconds + + finalizing NRLIB RCFIELD- + Processing RealClosedField& for Browser database: +--------(mainForm ((Union E failed) $))--------- +--------(mainDefiningPolynomial ((Union PME failed) $))--------- +--------(mainValue ((Union PME failed) $))--------- +--------(rootOf ((Union $ failed) PME PI E))--------- +--------(rootOf ((Union $ failed) PME PI))--------- +--------(allRootsOf ((List $) PME))--------- +--------(allRootsOf ((List $) (SUP RN)))--------- +--------(allRootsOf ((List $) (SUP Z)))--------- +--------(allRootsOf ((List $) (POLY $)))--------- +--------(allRootsOf ((List $) (POLY RN)))--------- +--------(allRootsOf ((List $) (POLY Z)))--------- +--------(sqrt ($ $ N))--------- +--------(sqrt ($ $))--------- +--------(sqrt ($ RN))--------- +--------(sqrt ($ Z))--------- +--------(rename! ($ $ E))--------- +--------(rename ($ $ E))--------- +--------(approximate (RN $ $))--------- +--------constructor--------- +;; Compiling file "RCFIELD-.NRLIB/code.lsp" ++++ |RCFIELD-;sqrt;2S;1| compiled, 12 + 12 bytes ++++ |RCFIELD-;sqrt;FS;2| compiled, 21 + 16 bytes ++++ |RCFIELD-;sqrt;IS;3| compiled, 21 + 16 bytes ++++ |RCFIELD-;characteristic;Nni;4| compiled, 2 + 8 bytes ++++ |RCFIELD-;rootOf;SupPiOfU;5| compiled, 46 + 24 bytes ++++ |RCFIELD-;rootOf;SupPiU;6| compiled, 41 + 24 bytes ++++ |RCFIELD-;sqrt;SNniS;7| compiled, 268 + 76 bytes ++++ |RCFIELD-;**;SFS;8| compiled, 55 + 40 bytes ++++ |RCFIELD-;nthRoot;SIS;9| compiled, 71 + 36 bytes ++++ |RCFIELD-;allRootsOf;SupL;10| compiled, 23 + 16 bytes ++++ |RCFIELD-;allRootsOf;SupL;10!0| compiled, 10 + 8 bytes ++++ |RCFIELD-;allRootsOf;SupL;11| compiled, 23 + 16 bytes ++++ |RCFIELD-;allRootsOf;SupL;11!0| compiled, 10 + 8 bytes ++++ |RCFIELD-;allRootsOf;PL;12| compiled, 19 + 12 bytes ++++ |RCFIELD-;allRootsOf;PL;13| compiled, 19 + 12 bytes ++++ |RCFIELD-;allRootsOf;PL;14| compiled, 19 + 12 bytes ++++ |RealClosedField&| compiled, 40 + 36 bytes +;; Compilation complete +------------------------------------------------------------------------ + RealClosedField& is now explicitly exposed in frame G82322 + RealClosedField& will be automatically loaded when needed from + RCFIELD-.NRLIB/code + finalizing NRLIB RCFIELD + Processing RealClosedField for Browser database: +--------(mainForm ((Union E failed) $))--------- +--------(mainDefiningPolynomial ((Union PME failed) $))--------- +--------(mainValue ((Union PME failed) $))--------- +--------(rootOf ((Union $ failed) PME PI E))--------- +--------(rootOf ((Union $ failed) PME PI))--------- +--------(allRootsOf ((List $) PME))--------- +--------(allRootsOf ((List $) (SUP RN)))--------- +--------(allRootsOf ((List $) (SUP Z)))--------- +--------(allRootsOf ((List $) (POLY $)))--------- +--------(allRootsOf ((List $) (POLY RN)))--------- +--------(allRootsOf ((List $) (POLY Z)))--------- +--------(sqrt ($ $ N))--------- +--------(sqrt ($ $))--------- +--------(sqrt ($ RN))--------- +--------(sqrt ($ Z))--------- +--------(rename! ($ $ E))--------- +--------(rename ($ $ E))--------- +--------(approximate (RN $ $))--------- +--------constructor--------- +;; Compiling file "RCFIELD.NRLIB/code.lsp" ++++ |RealClosedField;AL| treated as if locally SPECIAL ++++ |RealClosedField;AL| treated as if locally SPECIAL ++++ |RealClosedField| compiled, 8 + 12 bytes ++++ |RealClosedField;| compiled, 71 + 100 bytes +;; Compilation complete +------------------------------------------------------------------------ + RealClosedField is now explicitly exposed in frame G82322 + RealClosedField will be automatically loaded when needed from + RCFIELD.NRLIB/code + + ROIRC abbreviates domain RightOpenIntervalRootCharacterization + processing macro definition Z ==> Integer + processing macro definition P ==> ThePolDom + processing macro definition N ==> NonNegativeInteger + processing macro definition B ==> Boolean + processing macro definition UTIL ==> RealPolynomialUtilitiesPackage(TheField,ThePolDom) + processing macro definition RRCC ==> RealRootCharacterizationCategory + processing macro definition O ==> OutputForm + processing macro definition TwoPoints ==> Record(low: TheField,high: TheField) +------------------------------------------------------------------------ + initializing NRLIB ROIRC for RightOpenIntervalRootCharacterization + compiling into NRLIB ROIRC +****** Domain: TheField already in scope + compiling exported size : $ -> TheField +Time: 0.13 SEC. + + compiling exported relativeApprox : (ThePolDom,$,TheField) -> TheField +Time: 0.15 SEC. + + compiling exported approximate : (ThePolDom,$,TheField) -> TheField +Time: 0.14 SEC. + + compiling local addOne : ThePolDom -> ThePolDom +Time: 0.02 SEC. + + compiling local minus : ThePolDom -> ThePolDom +Time: 0.02 SEC. + + compiling local translate : (ThePolDom,TheField) -> ThePolDom +Time: 0.02 SEC. + + compiling local dilate : (ThePolDom,TheField) -> ThePolDom +Time: 0.02 SEC. + + compiling local evalOne : ThePolDom -> TheField +Time: 0.02 SEC. + + compiling local invert : ThePolDom -> ThePolDom +Time: 0.03 SEC. + + compiling local rootBound : ThePolDom -> TheField +Time: 0.03 SEC. + + compiling local sturmNthRoot : (List ThePolDom,TheField,TheField,NonNegativeInteger,NonNegativeInteger,NonNegativeInteger) -> Union(Record(low: TheField,high: TheField),failed) +Time: 0.15 SEC. + + compiling local sturmIsolate : (List ThePolDom,TheField,TheField,NonNegativeInteger,NonNegativeInteger) -> List Record(low: TheField,high: TheField) +Time: 0.13 SEC. + + compiling local isolate : List ThePolDom -> List Record(low: TheField,high: TheField) +Time: 0.17 SEC. + + compiling exported rootOf : (ThePolDom,PositiveInteger) -> Union($,failed) +Time: 0.18 SEC. + + compiling exported allRootsOf : ThePolDom -> List $ +Time: 0.19 SEC. + + compiling local hasVarsl : List TheField -> Boolean +Time: 0.05 SEC. + + compiling local hasVars : ThePolDom -> Boolean +Time: 0.06 SEC. + + compiling exported mightHaveRoots : (ThePolDom,$) -> Boolean +Time: 1.24 SEC. + + compiling exported coerce : $ -> OutputForm +Time: 0.04 SEC. + + compiling exported = : ($,$) -> Boolean +Time: 0.55 SEC. + + compiling local makeChar : (TheField,TheField,ThePolDom) -> $ +Time: 0.17 SEC. + + compiling exported definingPolynomial : $ -> ThePolDom + ROIRC;definingPolynomial;$ThePolDom;22 is replaced by QVELTrootChar2 +Time: 0 SEC. + + compiling local linearRecip : (ThePolDom,$) -> Union(ThePolDom,failed) +Time: 0.60 SEC. + + compiling exported recip : (ThePolDom,$) -> Union(ThePolDom,failed) +Time: 0.84 SEC. + + compiling local linearSign : (ThePolDom,$) -> Integer +Time: 0.37 SEC. + + compiling exported sign : (ThePolDom,$) -> Integer +Time: 0.69 SEC. + + compiling local linearZero? : (TheField,$) -> Boolean +Time: 0.09 SEC. + + compiling exported zero? : (ThePolDom,$) -> Boolean +Time: 0.56 SEC. + + compiling local refine! : $ -> $ +Time: 0.17 SEC. + + compiling exported refine : $ -> $ +Time: 0.14 SEC. + + compiling exported left : $ -> TheField + ROIRC;left;$TheField;31 is replaced by QVELTrootChar0 +Time: 0 SEC. + + compiling exported right : $ -> TheField + ROIRC;right;$TheField;32 is replaced by QVELTrootChar1 +Time: 0 SEC. + + compiling exported middle : $ -> TheField +Time: 0.04 SEC. + +(time taken in buildFunctor: 20) + +;;; *** |RightOpenIntervalRootCharacterization| REDEFINED + +;;; *** |RightOpenIntervalRootCharacterization| REDEFINED +Time: 0.03 SEC. + + + Cumulative Statistics for Constructor RightOpenIntervalRootCharacterization + Time: 7.04 seconds + + finalizing NRLIB ROIRC + Processing RightOpenIntervalRootCharacterization for Browser database: +--------(left (TheField $))--------- +--------(right (TheField $))--------- +--------(size (TheField $))--------- +--->/usr/local/axiom/mnt/linuxglibc2.1/../../src/algebra/reclos.spad-->RightOpenIntervalRootCharacterization((size (TheField $))): Improper first word in comments: The +"The size of the isolating interval" +--------(middle (TheField $))--------- +--------(refine ($ $))--------- +--------(mightHaveRoots (B P $))--------- +--------(relativeApprox (TheField P $ TheField))--------- +--------constructor--------- +;; Compiling file "ROIRC.NRLIB/code.lsp" ++++ |ROIRC;size;$TheField;1| compiled, 16 + 16 bytes ++++ |ROIRC;relativeApprox;ThePolDom$2TheField;2| compiled, 793 + 112 bytes ++++ |ROIRC;approximate;ThePolDom$2TheField;3| compiled, 600 + 104 bytes ++++ |ROIRC;addOne| compiled, 48 + 28 bytes ++++ |ROIRC;minus| compiled, 39 + 24 bytes ++++ |ROIRC;translate| compiled, 50 + 28 bytes ++++ |ROIRC;dilate| compiled, 23 + 16 bytes ++++ |ROIRC;evalOne| compiled, 63 + 20 bytes ++++ |ROIRC;invert| compiled, 45 + 28 bytes ++++ |ROIRC;invert!0| compiled, 31 + 32 bytes ++++ |ROIRC;rootBound| compiled, 70 + 28 bytes ++++ |ROIRC;sturmNthRoot| compiled, 197 + 64 bytes ++++ |ROIRC;sturmIsolate| compiled, 176 + 60 bytes ++++ |ROIRC;isolate| compiled, 178 + 36 bytes ++++ |ROIRC;rootOf;ThePolDomPiU;14| compiled, 359 + 88 bytes ++++ |ROIRC;allRootsOf;ThePolDomL;15| compiled, 167 + 64 bytes ++++ |ROIRC;hasVarsl| compiled, 79 + 28 bytes ++++ |ROIRC;hasVars| compiled, 54 + 40 bytes ++++ |ROIRC;mightHaveRoots;ThePolDom$B;18| compiled, 104 + 56 bytes ++++ |ROIRC;coerce;$Of;19| compiled, 59 + 32 bytes ++++ |ROIRC;=;2$B;20| compiled, 136 + 48 bytes ++++ |ROIRC;makeChar| compiled, 312 + 84 bytes ++++ |ROIRC;definingPolynomial;$ThePolDom;22| compiled, 4 + 8 bytes ++++ |ROIRC;linearRecip| compiled, 378 + 88 bytes ++++ |ROIRC;recip;ThePolDom$U;24| compiled, 535 + 112 bytes ++++ |ROIRC;linearSign| compiled, 250 + 56 bytes ++++ |ROIRC;sign;ThePolDom$I;26| compiled, 498 + 108 bytes ++++ |ROIRC;linearZero?| compiled, 90 + 44 bytes ++++ |ROIRC;zero?;ThePolDom$B;28| compiled, 307 + 92 bytes ++++ |ROIRC;refine!| compiled, 202 + 44 bytes ++++ |ROIRC;refine;2$;30| compiled, 205 + 60 bytes ++++ |ROIRC;left;$TheField;31| compiled, 4 + 8 bytes ++++ |ROIRC;right;$TheField;32| compiled, 4 + 8 bytes ++++ |ROIRC;middle;$TheField;33| compiled, 36 + 28 bytes ++++ |RightOpenIntervalRootCharacterization| compiled, 46 + 44 bytes ++++ |RightOpenIntervalRootCharacterization;| compiled, 97 + 76 bytes +;; Compilation complete +------------------------------------------------------------------------ + RightOpenIntervalRootCharacterization is now explicitly exposed in + frame G82322 + RightOpenIntervalRootCharacterization will be automatically loaded + when needed from ROIRC.NRLIB/code + + RECLOS abbreviates domain RealClosure + processing macro definition E ==> OutputForm + processing macro definition Z ==> Integer + processing macro definition SE ==> Symbol + processing macro definition B ==> Boolean + processing macro definition SUP ==> SparseUnivariatePolynomial $ + processing macro definition N ==> PositiveInteger + processing macro definition RN ==> Fraction Integer + processing macro definition LF ==> ListFunctions2($,PositiveInteger) + processing macro definition PME ==> SparseUnivariatePolynomial $ + processing macro definition SEG ==> RightOpenIntervalRootCharacterization($,SparseUnivariatePolynomial $) +------------------------------------------------------------------------ + initializing NRLIB RECLOS for RealClosure + compiling into NRLIB RECLOS +****** Domain: TheField already in scope +****** Domain: TheField already in scope + compiling exported relativeApprox : ($,$) -> Fraction Integer +Time: 0.31 SEC. + + compiling exported approximate : ($,$) -> Fraction Integer +Time: 0.10 SEC. + + compiling local newElementIfneeded : (RightOpenIntervalRootCharacterization($,SparseUnivariatePolynomial $),OutputForm) -> $ +Time: 0.09 SEC. + + compiling exported algebraicOf : (RightOpenIntervalRootCharacterization($,SparseUnivariatePolynomial $),OutputForm) -> $ +Time: 0.11 SEC. + + compiling exported rename! : ($,OutputForm) -> $ +Time: 0.02 SEC. + + compiling exported rename : ($,OutputForm) -> $ +Time: 0.05 SEC. + + compiling exported rootOf : (SparseUnivariatePolynomial $,PositiveInteger) -> Union($,failed) +Time: 0.12 SEC. + + compiling exported allRootsOf : SparseUnivariatePolynomial $ -> List $ +Time: 0.22 SEC. + + compiling exported coerce : $ -> $ +Time: 0.08 SEC. + + compiling exported positive? : $ -> Boolean +Time: 0.05 SEC. + + compiling exported negative? : $ -> Boolean +Time: 0.03 SEC. + + compiling exported abs : $ -> $ +Time: 0.01 SEC. + + compiling exported sign : $ -> Integer +Time: 0.04 SEC. + + compiling exported < : ($,$) -> Boolean +Time: 0 SEC. + + compiling exported = : ($,$) -> Boolean +Time: 0.01 SEC. + + compiling exported mainCharacterization : $ -> Union(RightOpenIntervalRootCharacterization($,SparseUnivariatePolynomial $),failed) +Time: 0.02 SEC. + + compiling exported mainDefiningPolynomial : $ -> Union(SparseUnivariatePolynomial $,failed) +Time: 0.05 SEC. + + compiling exported mainForm : $ -> Union(OutputForm,failed) +Time: 0.01 SEC. + + compiling exported mainValue : $ -> Union(SparseUnivariatePolynomial $,failed) +Time: 0.04 SEC. + + compiling exported coerce : $ -> OutputForm +Time: 0.05 SEC. + + compiling exported inv : $ -> $ +Time: 0.02 SEC. + + compiling exported recip : $ -> Union($,failed) +Time: 0.09 SEC. + + compiling exported * : (Integer,$) -> $ +Time: 0.13 SEC. + + compiling exported * : (TheField,$) -> $ +Time: 0.13 SEC. + + compiling exported * : ($,$) -> $ +Time: 0.24 SEC. + + compiling local nonNull : Rec -> $ +Time: 0.09 SEC. + + compiling exported zero? : $ -> Boolean +Time: 0.01 SEC. + + compiling exported + : ($,$) -> $ +Time: 0.17 SEC. + + compiling exported - : $ -> $ +Time: 0.06 SEC. + + compiling exported retractIfCan : $ -> Union(TheField,failed) +Time: 0.02 SEC. + + compiling exported retract : $ -> TheField +Time: 0.03 SEC. + + compiling local lessAlgebraic : $ -> $ +Time: 0.16 SEC. + + compiling exported Zero : () -> $ +Time: 0 SEC. + + compiling exported One : () -> $ +Time: 0 SEC. + + compiling exported coerce : TheField -> $ + RECLOS;coerce;TheField$;35 is replaced by CONS0rn +Time: 0 SEC. + +(time taken in buildFunctor: 170) + +;;; *** |RealClosure| REDEFINED + +;;; *** |RealClosure| REDEFINED +Time: 0.38 SEC. + + + Cumulative Statistics for Constructor RealClosure + Time: 2.94 seconds + + finalizing NRLIB RECLOS + Processing RealClosure for Browser database: +--------(algebraicOf ($ SEG E))--------- +--------(mainCharacterization ((Union SEG failed) $))--------- +--------(relativeApprox (RN $ $))--------- +--------constructor--------- +;; Compiling file "RECLOS.NRLIB/code.lsp" ++++ |RECLOS;relativeApprox;2$F;1| compiled, 58 + 28 bytes ++++ |RECLOS;approximate;2$F;2| compiled, 90 + 40 bytes ++++ |RECLOS;newElementIfneeded| compiled, 129 + 60 bytes ++++ |RECLOS;algebraicOf;RoircOf$;4| compiled, 129 + 60 bytes ++++ |RECLOS;rename!;$Of$;5| compiled, 9 + 8 bytes ++++ |RECLOS;rename;$Of$;6| compiled, 40 + 20 bytes ++++ |RECLOS;rootOf;SupPiU;7| compiled, 170 + 72 bytes ++++ |RECLOS;allRootsOf;SupL;8| compiled, 178 + 68 bytes ++++ |RECLOS;coerce;2$;9| compiled, 79 + 32 bytes ++++ |RECLOS;positive?;$B;10| compiled, 42 + 20 bytes ++++ |RECLOS;negative?;$B;11| compiled, 42 + 20 bytes ++++ |RECLOS;abs;2$;12| compiled, 21 + 12 bytes ++++ |RECLOS;sign;$I;13| compiled, 42 + 20 bytes ++++ |RECLOS;<;2$B;14| compiled, 21 + 12 bytes ++++ |RECLOS;=;2$B;15| compiled, 21 + 12 bytes ++++ |RECLOS;mainCharacterization;$U;16| compiled, 23 + 16 bytes ++++ |RECLOS;mainDefiningPolynomial;$U;17| compiled, 32 + 20 bytes ++++ |RECLOS;mainForm;$U;18| compiled, 23 + 20 bytes ++++ |RECLOS;mainValue;$U;19| compiled, 23 + 16 bytes ++++ |RECLOS;coerce;$Of;20| compiled, 63 + 32 bytes ++++ |RECLOS;inv;2$;21| compiled, 28 + 20 bytes ++++ |RECLOS;recip;$U;22| compiled, 129 + 44 bytes ++++ |RECLOS;*;I2$;23| compiled, 125 + 40 bytes ++++ |RECLOS;*;I2$;23!0| compiled, 16 + 16 bytes ++++ |RECLOS;*;TheField2$;24| compiled, 143 + 48 bytes ++++ |RECLOS;*;TheField2$;24!0| compiled, 16 + 16 bytes ++++ |RECLOS;*;3$;25| compiled, 368 + 60 bytes ++++ |RECLOS;*;3$;25!1| compiled, 16 + 16 bytes ++++ |RECLOS;*;3$;25!0| compiled, 16 + 16 bytes ++++ |RECLOS;nonNull| compiled, 70 + 32 bytes ++++ |RECLOS;zero?;$B;27| compiled, 23 + 12 bytes ++++ |RECLOS;+;3$;28| compiled, 435 + 44 bytes ++++ |RECLOS;-;2$;29| compiled, 79 + 32 bytes ++++ |RECLOS;retractIfCan;$U;30| compiled, 70 + 28 bytes ++++ |RECLOS;retract;$TheField;31| compiled, 63 + 28 bytes ++++ |RECLOS;lessAlgebraic| compiled, 128 + 40 bytes ++++ |RECLOS;Zero;$;33| compiled, 12 + 12 bytes ++++ |RECLOS;One;$;34| compiled, 12 + 12 bytes ++++ |RECLOS;coerce;TheField$;35| compiled, 4 + 8 bytes ++++ |RealClosure| compiled, 41 + 40 bytes ++++ |RealClosure;| compiled, 186 + 144 bytes +;; Compilation complete +------------------------------------------------------------------------ + RealClosure is now explicitly exposed in frame G82322 + RealClosure will be automatically loaded when needed from + RECLOS.NRLIB/code + +G82322 (1) -> )set message time on +G82322 (1) -> )set message autoload off +G82322 (1) -> )read reclos.input + +-- Input generated from RealClosureXmpPage +)clear all + + All user variables and function definitions have been cleared. +Ran := RECLOS(FRAC INT) + + + (1) RealClosure Fraction Integer + Type: Domain + Time: 0 sec +-- +-- Some simple signs for square roots, these correspond to an extension +-- of degree 16 of the rational numbers. +-- these examples were given to me by J. Abbot +-- +fourSquares(a:Ran,b:Ran,c:Ran,d:Ran):Ran == sqrt(a)+sqrt(b) - sqrt(c)-sqrt(d) + + Function declaration fourSquares : (RealClosure Fraction Integer, + RealClosure Fraction Integer,RealClosure Fraction Integer, + RealClosure Fraction Integer) -> RealClosure Fraction Integer has + been added to workspace. + Type: Void + Time: 0 sec +squareDiff1 := fourSquares(73,548,60,586) + + Compiling function fourSquares with type (RealClosure Fraction + Integer,RealClosure Fraction Integer,RealClosure Fraction Integer + ,RealClosure Fraction Integer) -> RealClosure Fraction Integer + + +---+ +--+ +---+ +--+ + (3) - \|586 - \|60 + \|548 + \|73 + Type: RealClosure Fraction Integer + Time: 0.01 (IN) + 0.01 (EV) + 0.01 (OT) + 0.03 (GC) = 0.06 sec +recip(squareDiff1) + + + (4) + +---+ +--+ +--+ +--+ +---+ +---+ + ((54602\|548 + 149602\|73 )\|60 + 49502\|73 \|548 + 9900895)\|586 + + + +--+ +---+ +--+ +---+ +--+ + (154702\|73 \|548 + 30941947)\|60 + 10238421\|548 + 28051871\|73 + Type: Union(RealClosure Fraction Integer,...) + Time: 0.01 (EV) = 0.01 sec +sign(squareDiff1) + + + (5) 1 + Type: PositiveInteger + Time: 0 sec +squareDiff2 := fourSquares(165,778,86,990) + + + +---+ +--+ +---+ +---+ + (6) - \|990 - \|86 + \|778 + \|165 + Type: RealClosure Fraction Integer + Time: 0.01 (EV) = 0.01 sec +recip(squareDiff2) + + + (7) + +---+ +---+ +--+ +---+ +---+ + ((556778\|778 + 1209010\|165 )\|86 + 401966\|165 \|778 + 144019431) + * + +---+ + \|990 + + + +---+ +---+ +--+ +---+ +---+ + (1363822\|165 \|778 + 488640503)\|86 + 162460913\|778 + 352774119\|165 + Type: Union(RealClosure Fraction Integer,...) + Time: 0.01 (EV) = 0.01 sec +sign(squareDiff2) + + + (8) 1 + Type: PositiveInteger + Time: 0 sec +squareDiff3 := fourSquares(217,708,226,692) + + + +---+ +---+ +---+ +---+ + (9) - \|692 - \|226 + \|708 + \|217 + Type: RealClosure Fraction Integer + Time: 0.01 (IN) + 0.01 (EV) = 0.02 sec +recip(squareDiff3) + + + (10) + +---+ +---+ +---+ +---+ +---+ +---+ + ((- 34102\|708 - 61598\|217 )\|226 - 34802\|217 \|708 - 13641141)\|692 + + + +---+ +---+ +---+ +---+ +---+ + (- 60898\|217 \|708 - 23869841)\|226 - 13486123\|708 - 24359809\|217 + Type: Union(RealClosure Fraction Integer,...) + Time: 0.01 (EV) + 0.01 (OT) = 0.02 sec +sign(squareDiff3) + + + (11) - 1 + Type: Integer + Time: 0.01 (EV) = 0.01 sec +squareDiff4 := fourSquares(155,836,162,820) + + + +---+ +---+ +---+ +---+ + (12) - \|820 - \|162 + \|836 + \|155 + Type: RealClosure Fraction Integer + Time: 0.01 (EV) = 0.01 sec +recip(squareDiff4) + + + (13) + +---+ +---+ +---+ +---+ +---+ +---+ + ((- 37078\|836 - 86110\|155 )\|162 - 37906\|155 \|836 - 13645107)\|820 + + + +---+ +---+ +---+ +---+ +---+ + (- 85282\|155 \|836 - 30699151)\|162 - 13513901\|836 - 31384703\|155 + Type: Union(RealClosure Fraction Integer,...) + Time: 0.01 (EV) + 0.01 (OT) = 0.02 sec +sign(squareDiff4) + + + (14) - 1 + Type: Integer + Time: 0 sec +squareDiff5 := fourSquares(591,772,552,818) + + + +---+ +---+ +---+ +---+ + (15) - \|818 - \|552 + \|772 + \|591 + Type: RealClosure Fraction Integer + Time: 0 sec +recip(squareDiff5) + + + (16) + +---+ +---+ +---+ +---+ +---+ +---+ + ((70922\|772 + 81058\|591 )\|552 + 68542\|591 \|772 + 46297673)\|818 + + + +---+ +---+ +---+ +---+ +---+ + (83438\|591 \|772 + 56359389)\|552 + 47657051\|772 + 54468081\|591 + Type: Union(RealClosure Fraction Integer,...) + Time: 0.01 (EV) + 0.01 (OT) = 0.02 sec +sign(squareDiff5) + + + (17) 1 + Type: PositiveInteger + Time: 0 sec +squareDiff6 := fourSquares(434,1053,412,1088) + + + +----+ +---+ +----+ +---+ + (18) - \|1088 - \|412 + \|1053 + \|434 + Type: RealClosure Fraction Integer + Time: 0 sec +recip(squareDiff6) + + + (19) + +----+ +---+ +---+ +---+ +----+ + ((115442\|1053 + 179818\|434 )\|412 + 112478\|434 \|1053 + 76037291) + * + +----+ + \|1088 + + + +---+ +----+ +---+ +----+ +---+ + (182782\|434 \|1053 + 123564147)\|412 + 77290639\|1053 + 120391609\|434 + Type: Union(RealClosure Fraction Integer,...) + Time: 0.01 (OT) = 0.01 sec +sign(squareDiff6) + + + (20) 1 + Type: PositiveInteger + Time: 0.01 (EV) = 0.01 sec +squareDiff7 := fourSquares(514,1049,446,1152) + + + +----+ +---+ +----+ +---+ + (21) - \|1152 - \|446 + \|1049 + \|514 + Type: RealClosure Fraction Integer + Time: 0.01 (EV) = 0.01 sec +recip(squareDiff7) + + + (22) + +----+ +---+ +---+ +---+ +----+ + ((349522\|1049 + 499322\|514 )\|446 + 325582\|514 \|1049 + 239072537) + * + +----+ + \|1152 + + + +---+ +----+ +---+ +----+ +---+ + (523262\|514 \|1049 + 384227549)\|446 + 250534873\|1049 + 357910443\|514 + Type: Union(RealClosure Fraction Integer,...) + Time: 0.01 (EV) = 0.01 sec +sign(squareDiff7) + + + (23) 1 + Type: PositiveInteger + Time: 0 sec +squareDiff8 := fourSquares(190,1751,208,1698) + + + +----+ +---+ +----+ +---+ + (24) - \|1698 - \|208 + \|1751 + \|190 + Type: RealClosure Fraction Integer + Time: 0.01 (IN) = 0.01 sec +recip(squareDiff8) + + + (25) + +----+ +---+ +---+ +---+ +----+ + (- 214702\|1751 - 651782\|190 )\|208 - 224642\|190 \|1751 + + + - 129571901 + * + +----+ + \|1698 + + + +---+ +----+ +---+ +----+ + (- 641842\|190 \|1751 - 370209881)\|208 - 127595865\|1751 + + + +---+ + - 387349387\|190 + Type: Union(RealClosure Fraction Integer,...) + Time: 0.01 (EV) + 0.01 (OT) = 0.02 sec +sign(squareDiff8) + + + (26) - 1 + Type: Integer + Time: 0.01 (EV) = 0.01 sec +relativeApprox(squareDiff8,10**(-3))::Float + + + (27) - 0.2340527771 5937700123 E -10 + Type: Float + Time: 1.38 (EV) + 0.01 (OT) + 0.23 (GC) = 1.62 sec +-- +-- test the Renaud Rioboo fix (Jan 2004) +-- +allRootsOf((x-2)*(x-3)*(x-4))$RECLOS(FRAC INT) + + + (28) [2,3,4] + Type: List RealClosure Fraction Integer + Time: 0.01 (EV) + 0.01 (OT) + 0.01 (GC) = 0.03 sec +-- +-- check out if the sum of all roots is null +-- example from P.V. Koseleff +-- +l := allRootsOf((x**2-2)**2-2)$Ran + + + (29) [%A33,%A34,%A35,%A36] + Type: List RealClosure Fraction Integer + Time: 0.01 (IN) = 0.01 sec +l.1+l.2+l.3+l.4 + + + (30) 0 + Type: RealClosure Fraction Integer + Time: 1.10 (EV) + 0.12 (GC) = 1.22 sec +removeDuplicates map(mainDefiningPolynomial,l) + + + 4 2 + (31) [? - 4? + 2] +Type: List Union(SparseUnivariatePolynomial RealClosure Fraction Integer,"failed") + Time: 0.01 (EV) + 0.01 (OT) = 0.02 sec +map(mainCharacterization,l) + + + (32) [[- 2,- 1[,[- 1,0[,[0,1[,[1,2[] +Type: List Union(RightOpenIntervalRootCharacterization(RealClosure Fraction Integer,SparseUnivariatePolynomial RealClosure Fraction Integer),"failed") + Time: 0.01 (OT) = 0.01 sec +[reduce(+,l),reduce(*,l)-2] + + + (33) [0,0] + Type: List RealClosure Fraction Integer + Time: 1.61 (EV) + 0.02 (OT) + 0.23 (GC) = 1.86 sec +-- +-- a more complicated test that involve an extension of degree 256 +-- example by prof Kahan at ISSAC'92 +-- +)cl prop s2 s5 10 + +(s2, s5, s10) := (sqrt(2)$Ran, sqrt(5)$Ran, sqrt(10)$Ran) + + + +--+ + (34) \|10 + Type: RealClosure Fraction Integer + Time: 0.01 (IN) = 0.01 sec +eq1:=sqrt(s10+3)*sqrt(s5+2) - sqrt(s10-3)*sqrt(s5-2) = sqrt(10*s2+10) + + + +---------+ +--------+ +---------+ +--------+ +-----------+ + | +--+ | +-+ | +--+ | +-+ | +-+ + (35) - \|\|10 - 3 \|\|5 - 2 + \|\|10 + 3 \|\|5 + 2 = \|10\|2 + 10 + Type: Equation RealClosure Fraction Integer + Time: 0.06 (IN) + 0.12 (GC) = 0.18 sec +eq1::Boolean + + + (36) true + Type: Boolean + Time: 0.16 (IN) = 0.16 sec +-- +-- analogous one by [rr] +-- +eq2:=sqrt(s5+2)*sqrt(s2+1) - sqrt(s5-2)*sqrt(s2-1) = sqrt(2*s10+2) + + + +--------+ +--------+ +--------+ +--------+ +----------+ + | +-+ | +-+ | +-+ | +-+ | +--+ + (37) - \|\|5 - 2 \|\|2 - 1 + \|\|5 + 2 \|\|2 + 1 = \|2\|10 + 2 + Type: Equation RealClosure Fraction Integer + Time: 0.02 (IN) + 0.01 (OT) = 0.03 sec +eq2::Boolean + + + (38) true + Type: Boolean + Time: 0.15 (IN) = 0.15 sec +-- +-- these came from J.M. Arnaudies +-- +)cl prop s4 s7 e1 e2 + +s3 := sqrt(3)$Ran + + + +-+ + (39) \|3 + Type: RealClosure Fraction Integer + Time: 0 sec +s7:= sqrt(7)$Ran + + + +-+ + (40) \|7 + Type: RealClosure Fraction Integer + Time: 0 sec +e1 := sqrt(2*s7-3*s3,3) + + + +-------------+ + 3| +-+ +-+ + (41) \|2\|7 - 3\|3 + Type: RealClosure Fraction Integer + Time: 0.01 (EV) = 0.01 sec +e2 := sqrt(2*s7+3*s3,3) + + + +-------------+ + 3| +-+ +-+ + (42) \|2\|7 + 3\|3 + Type: RealClosure Fraction Integer + Time: 0.01 (OT) = 0.01 sec +-- this should be null +ee1:=e2-e1=s3 + + + +-------------+ +-------------+ + 3| +-+ +-+ 3| +-+ +-+ +-+ + (43) \|2\|7 + 3\|3 - \|2\|7 - 3\|3 = \|3 + Type: Equation RealClosure Fraction Integer + Time: 0 sec +ee1::Boolean + + + (44) true + Type: Boolean + Time: 0 sec +)cl prop pol r1 alpha beta + +pol : UP(x,Ran) := x**4+(7/3)*x**2+30*x-(100/3) + + + 4 7 2 100 + (45) x + - x + 30x - --- + 3 3 + Type: UnivariatePolynomial(x,RealClosure Fraction Integer) + Time: 0.23 (IN) + 0.03 (OT) = 0.26 sec +r1 := sqrt(7633)$Ran + + + +----+ + (46) \|7633 + Type: RealClosure Fraction Integer + Time: 0 sec +-- cubic roots +alpha := sqrt(5*r1-436,3)/3 + + + +--------------+ + 1 3| +----+ + (47) - \|5\|7633 - 436 + 3 + Type: RealClosure Fraction Integer + Time: 0.01 (IN) = 0.01 sec +beta := -sqrt(5*r1+436,3)/3 + + + +--------------+ + 1 3| +----+ + (48) - - \|5\|7633 + 436 + 3 + Type: RealClosure Fraction Integer + Time: 0.01 (IN) = 0.01 sec +-- this should be null +pol.(alpha+beta-1/3) + + + (49) 0 + Type: RealClosure Fraction Integer + Time: 0.02 (IN) + 0.10 (EV) = 0.12 sec +)cl prop qol r2 alpha beta + +r2 := sqrt(153)$Ran + + + +---+ + (50) \|153 + Type: RealClosure Fraction Integer + Time: 0 sec +-- roots of order 5 +alpha2 := sqrt(r2-11,5) + + + +-----------+ + 5| +---+ + (51) \|\|153 - 11 + Type: RealClosure Fraction Integer + Time: 0.01 (IN) = 0.01 sec +beta2 := -sqrt(r2+11,5) + + + +-----------+ + 5| +---+ + (52) - \|\|153 + 11 + Type: RealClosure Fraction Integer + Time: 0 sec +qol : UP(x,Ran) := x**5+10*x**3+20*x+22 + + + 5 3 + (53) x + 10x + 20x + 22 + Type: UnivariatePolynomial(x,RealClosure Fraction Integer) + Time: 0.01 (OT) + 0.12 (GC) = 0.13 sec +qol(alpha2+beta2) + + + (54) 0 + Type: RealClosure Fraction Integer + Time: 0.54 (EV) = 0.54 sec +dst1:=sqrt(9+4*s2)=1+2*s2 + + + +---------+ + | +-+ +-+ + (55) \|4\|2 + 9 = 2\|2 + 1 + Type: Equation RealClosure Fraction Integer + Time: 0 sec +dst1::Boolean + + + (56) true + Type: Boolean + Time: 0 sec +s6:Ran:=sqrt 6 + + + +-+ + (57) \|6 + Type: RealClosure Fraction Integer + Time: 0 sec +dst2:=sqrt(5+2*s6)+sqrt(5-2*s6) = 2*s3 + + + +-----------+ +---------+ + | +-+ | +-+ +-+ + (58) \|- 2\|6 + 5 + \|2\|6 + 5 = 2\|3 + Type: Equation RealClosure Fraction Integer + Time: 0.01 (IN) = 0.01 sec +dst2::Boolean + + + (59) true + Type: Boolean + Time: 0 sec +s29:Ran:=sqrt 29 + + + +--+ + (60) \|29 + Type: RealClosure Fraction Integer + Time: 0 sec +dst4:=sqrt(16-2*s29+2*sqrt(55-10*s29)) = sqrt(22+2*s5)-sqrt(11+2*s29)+s5 + + + (61) + +--------------------------------+ + | +--------------+ +-----------+ +----------+ + | | +--+ +--+ | +--+ | +-+ +-+ + \|2\|- 10\|29 + 55 - 2\|29 + 16 = - \|2\|29 + 11 + \|2\|5 + 22 + \|5 + Type: Equation RealClosure Fraction Integer + Time: 0.01 (IN) + 0.01 (EV) + 0.01 (OT) = 0.03 sec +dst4::Boolean + + + (62) true + Type: Boolean + Time: 0.52 (IN) + 0.12 (GC) = 0.64 sec +dst6:=sqrt((112+70*s2)+(46+34*s2)*s5) = (5+4*s2)+(3+s2)*s5 + + + +--------------------------------+ + | +-+ +-+ +-+ +-+ +-+ +-+ + (63) \|(34\|2 + 46)\|5 + 70\|2 + 112 = (\|2 + 3)\|5 + 4\|2 + 5 + Type: Equation RealClosure Fraction Integer + Time: 0.02 (IN) + 0.01 (EV) = 0.03 sec +dst6::Boolean + + + (64) true + Type: Boolean + Time: 0 sec +f3:Ran:=sqrt(3,5) + + + 5+-+ + (65) \|3 + Type: RealClosure Fraction Integer + Time: 0.01 (IN) = 0.01 sec +f25:Ran:=sqrt(1/25,5) + + + +--+ + | 1 + (66) 5|-- + \|25 + Type: RealClosure Fraction Integer + Time: 0.01 (IN) = 0.01 sec +f32:Ran:=sqrt(32/5,5) + + + +--+ + |32 + (67) 5|-- + \| 5 + Type: RealClosure Fraction Integer + Time: 0 sec +f27:Ran:=sqrt(27/5,5) + + + +--+ + |27 + (68) 5|-- + \| 5 + Type: RealClosure Fraction Integer + Time: 0.01 (IN) = 0.01 sec +dst5:=sqrt((f32-f27,3)) = f25*(1+f3-f3**2) + + + +---------------+ + | +--+ +--+ +--+ + | |27 |32 5+-+2 5+-+ | 1 + (69) 3|- 5|-- + 5|-- = (- \|3 + \|3 + 1) 5|-- + \| \| 5 \| 5 \|25 + Type: Equation RealClosure Fraction Integer + Time: 0.01 (IN) + 0.03 (EV) = 0.04 sec +dst5::Boolean + + + (70) true + Type: Boolean + Time: 2.65 (IN) + 0.01 (OT) + 0.65 (GC) = 3.31 sec +G82322 (71) -> )quit + Please enter y or yes if you really want to leave the interactive + environment and return to the operating system: +y + + +bash-2.05b# + +================================================================= +=== free version +================================================================= + + +bash-2.05b# axiom + AXIOM Computer Algebra System + Version of Tuesday July 13, 2004 at 11:21:33 +----------------------------------------------------------------------------- + Issue )copyright to view copyright notices. + Issue )summary for a summary of useful system commands. + Issue )quit to leave AXIOM and return to shell. +----------------------------------------------------------------------------- + + Re-reading compress.daase Re-reading interp.daase + Re-reading operation.daase + Re-reading category.daase + Re-reading browse.daase + +"running /root/.axiom.input" +Value = NIL +Value = NIL +(1) -> )set message time on +(1) -> )set message autoload off +(1) -> )co reclos.spad + Compiling AXIOM source code from file /tmp/old/reclos.spad using old + system compiler. + POLUTIL abbreviates package RealPolynomialUtilitiesPackage + processing macro definition Z ==> Integer + processing macro definition N ==> NonNegativeInteger + processing macro definition P ==> ThePols +------------------------------------------------------------------------ + initializing NRLIB POLUTIL for RealPolynomialUtilitiesPackage + compiling into NRLIB POLUTIL + compiling exported sturmSequence : ThePols -> List ThePols +Time: 0.12 SEC. + + compiling exported sylvesterSequence : (ThePols,ThePols) -> List ThePols +Time: 0.06 SEC. + +****** Domain: TheField already in scope +augmenting TheField: (OrderedRing) +augmenting $: (SIGNATURE $ boundOfCauchy (TheField ThePols)) +augmenting $: (SIGNATURE $ sturmVariationsOf ((NonNegativeInteger) (List TheField))) +augmenting $: (SIGNATURE $ lazyVariations ((NonNegativeInteger) (List TheField) (Integer) (Integer))) + compiling exported boundOfCauchy : ThePols -> TheField +Time: 0.02 SEC. + + compiling exported sturmVariationsOf : List TheField -> NonNegativeInteger +Time: 0.03 SEC. + + compiling exported lazyVariations : (List TheField,Integer,Integer) -> NonNegativeInteger +Time: 0.09 SEC. + +****** Domain: TheField already in scope +augmenting TheField: (OrderedRing) +augmenting $: (SIGNATURE $ boundOfCauchy (TheField ThePols)) +augmenting $: (SIGNATURE $ sturmVariationsOf ((NonNegativeInteger) (List TheField))) +augmenting $: (SIGNATURE $ lazyVariations ((NonNegativeInteger) (List TheField) (Integer) (Integer))) +(time taken in buildFunctor: 0) + +;;; *** |RealPolynomialUtilitiesPackage| REDEFINED + +;;; *** |RealPolynomialUtilitiesPackage| REDEFINED +Time: 0 SEC. + + + Warnings: + [1] sylvesterSequence: res has no value + [2] sturmVariationsOf: ll has no value + + + Cumulative Statistics for Constructor RealPolynomialUtilitiesPackage + Time: 0.32 seconds + + finalizing NRLIB POLUTIL + Processing RealPolynomialUtilitiesPackage for Browser database: +--------(sylvesterSequence ((List ThePols) ThePols ThePols))--------- +--------(sturmSequence ((List ThePols) ThePols))--------- +--------(boundOfCauchy (TheField ThePols))--------- +--------(sturmVariationsOf (N (List TheField)))--------- +--------(lazyVariations (N (List TheField) Z Z))--------- +--------constructor--------- +Compiling /tmp/old/POLUTIL.NRLIB/code.lsp. +End of Pass 1. +End of Pass 2. +OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 +Finished compiling /tmp/old/POLUTIL.NRLIB/code.lsp. +------------------------------------------------------------------------ + RealPolynomialUtilitiesPackage is now explicitly exposed in frame + initial + RealPolynomialUtilitiesPackage will be automatically loaded when + needed from /tmp/old/POLUTIL.NRLIB/code + + RRCC abbreviates category RealRootCharacterizationCategory + processing macro definition Z ==> Integer + processing macro definition N ==> PositiveInteger + processing macro definition PUB ==> -- the constructor capsule +------------------------------------------------------------------------ + initializing NRLIB RRCC for RealRootCharacterizationCategory + compiling into NRLIB RRCC + +;;; *** |RealRootCharacterizationCategory| REDEFINED +Time: 0.01 SEC. + + RRCC- abbreviates domain RealRootCharacterizationCategory& +------------------------------------------------------------------------ + initializing NRLIB RRCC- for RealRootCharacterizationCategory& + compiling into NRLIB RRCC- +****** Domain: TheField already in scope + compiling exported zero? : (ThePols,S) -> Boolean +Time: 0.02 SEC. + + compiling exported negative? : (ThePols,S) -> Boolean +Time: 0.01 SEC. + + compiling exported positive? : (ThePols,S) -> Boolean +Time: 0.02 SEC. + + compiling exported rootOf : (ThePols,PositiveInteger) -> Union(S,failed) +Time: 0.03 SEC. + + compiling exported recip : (ThePols,S) -> Union(ThePols,failed) +Time: 0.06 SEC. + +(time taken in buildFunctor: 1) + +;;; *** |RealRootCharacterizationCategory&| REDEFINED +Time: 0.01 SEC. + + + Cumulative Statistics for Constructor RealRootCharacterizationCategory& + Time: 0.15 seconds + + finalizing NRLIB RRCC- + Processing RealRootCharacterizationCategory& for Browser database: +--------(sign (Z ThePols $))--------- +--------(zero? ((Boolean) ThePols $))--------- +--------(negative? ((Boolean) ThePols $))--------- +--------(positive? ((Boolean) ThePols $))--------- +--------(recip ((Union ThePols failed) ThePols $))--------- +--------(definingPolynomial (ThePols $))--------- +--------(allRootsOf ((List $) ThePols))--------- +--------(rootOf ((Union $ failed) ThePols N))--------- +--------(approximate (TheField ThePols $ TheField))--------- +--------(relativeApprox (TheField ThePols $ TheField))--------- +--------constructor--------- +Compiling /tmp/old/RRCC-.NRLIB/code.lsp. +End of Pass 1. +End of Pass 2. +OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 +Finished compiling /tmp/old/RRCC-.NRLIB/code.lsp. +------------------------------------------------------------------------ + RealRootCharacterizationCategory& is now explicitly exposed in frame + initial + RealRootCharacterizationCategory& will be automatically loaded when + needed from /tmp/old/RRCC-.NRLIB/code + finalizing NRLIB RRCC + Processing RealRootCharacterizationCategory for Browser database: +--------(sign (Z ThePols $))--------- +--------(zero? ((Boolean) ThePols $))--------- +--------(negative? ((Boolean) ThePols $))--------- +--------(positive? ((Boolean) ThePols $))--------- +--------(recip ((Union ThePols failed) ThePols $))--------- +--------(definingPolynomial (ThePols $))--------- +--------(allRootsOf ((List $) ThePols))--------- +--------(rootOf ((Union $ failed) ThePols N))--------- +--------(approximate (TheField ThePols $ TheField))--------- +--------(relativeApprox (TheField ThePols $ TheField))--------- +--------constructor--------- +Compiling /tmp/old/RRCC.NRLIB/code.lsp. +; (DEFUN |RealRootCharacterizationCategory| ...) is being compiled. +;; The variable |RealRootCharacterizationCategory;AL| is undefined. +;; The compiler will assume this variable is a global. +; (DEFUN |RealRootCharacterizationCategory;| ...) is being compiled. +;; The variable |RealRootCharacterizationCategory;CAT| is undefined. +;; The compiler will assume this variable is a global. +End of Pass 1. +End of Pass 2. +OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 +Finished compiling /tmp/old/RRCC.NRLIB/code.lsp. +------------------------------------------------------------------------ + RealRootCharacterizationCategory is now explicitly exposed in frame + initial + RealRootCharacterizationCategory will be automatically loaded when + needed from /tmp/old/RRCC.NRLIB/code + + RCFIELD abbreviates category RealClosedField + processing macro definition E ==> OutputForm + processing macro definition SUP ==> SparseUnivariatePolynomial + processing macro definition OFIELD ==> -- the constructor category + processing macro definition PME ==> SparseUnivariatePolynomial $ + processing macro definition N ==> NonNegativeInteger + processing macro definition PI ==> PositiveInteger + processing macro definition RN ==> Fraction Integer + processing macro definition Z ==> Integer + processing macro definition POLY ==> Polynomial + processing macro definition PACK ==> SparseUnivariatePolynomialFunctions2 +------------------------------------------------------------------------ + initializing NRLIB RCFIELD for RealClosedField + compiling into NRLIB RCFIELD + +;;; *** |RealClosedField| REDEFINED +Time: 0.03 SEC. + + RCFIELD- abbreviates domain RealClosedField& +------------------------------------------------------------------------ + initializing NRLIB RCFIELD- for RealClosedField& + compiling into NRLIB RCFIELD- + compiling exported sqrt : S -> S +Time: 0.03 SEC. + + compiling exported sqrt : Fraction Integer -> S +Time: 0.02 SEC. + + compiling exported sqrt : Integer -> S +Time: 0.01 SEC. + + compiling exported characteristic : () -> NonNegativeInteger + RCFIELD-;characteristic;Nni;4 is replaced by 0 +Time: 0.01 SEC. + + compiling exported rootOf : (SparseUnivariatePolynomial S,PositiveInteger,OutputForm) -> Union(S,failed) +Time: 0.02 SEC. + + compiling exported rootOf : (SparseUnivariatePolynomial S,PositiveInteger) -> Union(S,failed) +Time: 0.05 SEC. + + compiling exported sqrt : (S,NonNegativeInteger) -> S +Time: 0.02 SEC. + + compiling exported ** : (S,Fraction Integer) -> S +Time: 0.01 SEC. + + compiling exported nthRoot : (S,Integer) -> S +Time: 0.01 SEC. + + compiling exported allRootsOf : SparseUnivariatePolynomial Fraction Integer -> List S +Time: 0.05 SEC. + + compiling exported allRootsOf : SparseUnivariatePolynomial Integer -> List S +Time: 0.04 SEC. + + compiling exported allRootsOf : Polynomial S -> List S +Time: 0.08 SEC. + + compiling exported allRootsOf : Polynomial Fraction Integer -> List S +Time: 0.03 SEC. + + compiling exported allRootsOf : Polynomial Integer -> List S +Time: 0.08 SEC. + +(time taken in buildFunctor: 0) + +;;; *** |RealClosedField&| REDEFINED +Time: 0 SEC. + + + Warnings: + [1] rootOf: not known that (Ring) is of mode (CATEGORY domain (SIGNATURE sqrt (S (Integer))) (SIGNATURE sqrt (S (Fraction (Integer)))) (SIGNATURE sqrt (S S (NonNegativeInteger))) (SIGNATURE allRootsOf ((List S) (Polynomial (Integer)))) (SIGNATURE allRootsOf ((List S) (Polynomial (Fraction (Integer))))) (SIGNATURE allRootsOf ((List S) (Polynomial S))) (SIGNATURE allRootsOf ((List S) (SparseUnivariatePolynomial (Integer)))) (SIGNATURE allRootsOf ((List S) (SparseUnivariatePolynomial (Fraction (Integer))))) (SIGNATURE allRootsOf ((List S) (SparseUnivariatePolynomial S))) (SIGNATURE rootOf ((Union S failed) (SparseUnivariatePolynomial S) (PositiveInteger))) (SIGNATURE rootOf ((Union S failed) (SparseUnivariatePolynomial S) (PositiveInteger) (OutputForm))) (SIGNATURE ** (S S (Fraction (Integer)))) (SIGNATURE nthRoot (S S (Integer))) (SIGNATURE sqrt (S S)) (SIGNATURE ** (S S (Integer))) (SIGNATURE characteristic ((NonNegativeInteger))) (SIGNATURE ** (S S (NonNegativeInteger)! + )) (SIGNATURE ** (S S (PositiveInteger)))) + [2] allRootsOf: not known that (Ring) is of mode (CATEGORY domain (SIGNATURE sqrt (S (Integer))) (SIGNATURE sqrt (S (Fraction (Integer)))) (SIGNATURE sqrt (S S (NonNegativeInteger))) (SIGNATURE allRootsOf ((List S) (Polynomial (Integer)))) (SIGNATURE allRootsOf ((List S) (Polynomial (Fraction (Integer))))) (SIGNATURE allRootsOf ((List S) (Polynomial S))) (SIGNATURE allRootsOf ((List S) (SparseUnivariatePolynomial (Integer)))) (SIGNATURE allRootsOf ((List S) (SparseUnivariatePolynomial (Fraction (Integer))))) (SIGNATURE allRootsOf ((List S) (SparseUnivariatePolynomial S))) (SIGNATURE rootOf ((Union S failed) (SparseUnivariatePolynomial S) (PositiveInteger))) (SIGNATURE rootOf ((Union S failed) (SparseUnivariatePolynomial S) (PositiveInteger) (OutputForm))) (SIGNATURE ** (S S (Fraction (Integer)))) (SIGNATURE nthRoot (S S (Integer))) (SIGNATURE sqrt (S S)) (SIGNATURE ** (S S (Integer))) (SIGNATURE characteristic ((NonNegativeInteger))) (SIGNATURE ** (S S (NonNegativeInte! + ger))) (SIGNATURE ** (S S (PositiveInteger)))) + + + Cumulative Statistics for Constructor RealClosedField& + Time: 0.46 seconds + + finalizing NRLIB RCFIELD- + Processing RealClosedField& for Browser database: +--------(mainForm ((Union E failed) $))--------- +--------(mainDefiningPolynomial ((Union PME failed) $))--------- +--------(mainValue ((Union PME failed) $))--------- +--------(rootOf ((Union $ failed) PME PI E))--------- +--------(rootOf ((Union $ failed) PME PI))--------- +--------(allRootsOf ((List $) PME))--------- +--------(allRootsOf ((List $) (SUP RN)))--------- +--------(allRootsOf ((List $) (SUP Z)))--------- +--------(allRootsOf ((List $) (POLY $)))--------- +--------(allRootsOf ((List $) (POLY RN)))--------- +--------(allRootsOf ((List $) (POLY Z)))--------- +--------(sqrt ($ $ N))--------- +--------(sqrt ($ $))--------- +--------(sqrt ($ RN))--------- +--------(sqrt ($ Z))--------- +--------(rename! ($ $ E))--------- +--------(rename ($ $ E))--------- +--------(approximate (RN $ $))--------- +--------constructor--------- +Compiling /tmp/old/RCFIELD-.NRLIB/code.lsp. +; (DEFUN |RCFIELD-;characteristic;Nni;4| ...) is being compiled. +;; Warning: The variable $ is not used. +End of Pass 1. +End of Pass 2. +OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 +Finished compiling /tmp/old/RCFIELD-.NRLIB/code.lsp. +------------------------------------------------------------------------ + RealClosedField& is now explicitly exposed in frame initial + RealClosedField& will be automatically loaded when needed from + /tmp/old/RCFIELD-.NRLIB/code + finalizing NRLIB RCFIELD + Processing RealClosedField for Browser database: +--------(mainForm ((Union E failed) $))--------- +--------(mainDefiningPolynomial ((Union PME failed) $))--------- +--------(mainValue ((Union PME failed) $))--------- +--------(rootOf ((Union $ failed) PME PI E))--------- +--------(rootOf ((Union $ failed) PME PI))--------- +--------(allRootsOf ((List $) PME))--------- +--------(allRootsOf ((List $) (SUP RN)))--------- +--------(allRootsOf ((List $) (SUP Z)))--------- +--------(allRootsOf ((List $) (POLY $)))--------- +--------(allRootsOf ((List $) (POLY RN)))--------- +--------(allRootsOf ((List $) (POLY Z)))--------- +--------(sqrt ($ $ N))--------- +--------(sqrt ($ $))--------- +--------(sqrt ($ RN))--------- +--------(sqrt ($ Z))--------- +--------(rename! ($ $ E))--------- +--------(rename ($ $ E))--------- +--------(approximate (RN $ $))--------- +--------constructor--------- +Compiling /tmp/old/RCFIELD.NRLIB/code.lsp. +; (DEFUN |RealClosedField| ...) is being compiled. +;; The variable |RealClosedField;AL| is undefined. +;; The compiler will assume this variable is a global. +;; Warning: The variable #:G6884 is not used. +End of Pass 1. +End of Pass 2. +OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 +Finished compiling /tmp/old/RCFIELD.NRLIB/code.lsp. +------------------------------------------------------------------------ + RealClosedField is now explicitly exposed in frame initial + RealClosedField will be automatically loaded when needed from + /tmp/old/RCFIELD.NRLIB/code + + ROIRC abbreviates domain RightOpenIntervalRootCharacterization + processing macro definition Z ==> Integer + processing macro definition P ==> ThePolDom + processing macro definition N ==> NonNegativeInteger + processing macro definition B ==> Boolean + processing macro definition UTIL ==> RealPolynomialUtilitiesPackage(TheField,ThePolDom) + processing macro definition RRCC ==> RealRootCharacterizationCategory + processing macro definition O ==> OutputForm + processing macro definition TwoPoints ==> Record(low: TheField,high: TheField) +------------------------------------------------------------------------ + initializing NRLIB ROIRC for RightOpenIntervalRootCharacterization + compiling into NRLIB ROIRC +****** Domain: TheField already in scope + compiling exported size : $ -> TheField +Time: 0.04 SEC. + + compiling exported relativeApprox : (ThePolDom,$,TheField) -> TheField +Time: 0.05 SEC. + + compiling exported approximate : (ThePolDom,$,TheField) -> TheField +Time: 0.05 SEC. + + compiling local addOne : ThePolDom -> ThePolDom +Time: 0.01 SEC. + + compiling local minus : ThePolDom -> ThePolDom +Time: 0 SEC. + + compiling local translate : (ThePolDom,TheField) -> ThePolDom +Time: 0.01 SEC. + + compiling local dilate : (ThePolDom,TheField) -> ThePolDom +Time: 0.01 SEC. + + compiling local evalOne : ThePolDom -> TheField +Time: 0 SEC. + + compiling local invert : ThePolDom -> ThePolDom +Time: 0.01 SEC. + + compiling local rootBound : ThePolDom -> TheField +Time: 0.02 SEC. + + compiling local sturmNthRoot : (List ThePolDom,TheField,TheField,NonNegativeInteger,NonNegativeInteger,NonNegativeInteger) -> Union(Record(low: TheField,high: TheField),failed) +Time: 0.06 SEC. + + compiling local sturmIsolate : (List ThePolDom,TheField,TheField,NonNegativeInteger,NonNegativeInteger) -> List Record(low: TheField,high: TheField) +Time: 0.08 SEC. + + compiling local isolate : List ThePolDom -> List Record(low: TheField,high: TheField) +Time: 0.08 SEC. + + compiling exported rootOf : (ThePolDom,PositiveInteger) -> Union($,failed) +Time: 0.12 SEC. + + compiling exported allRootsOf : ThePolDom -> List $ +Time: 0.09 SEC. + + compiling local hasVarsl : List TheField -> Boolean +Time: 0.02 SEC. + + compiling local hasVars : ThePolDom -> Boolean +Time: 0.02 SEC. + + compiling exported mightHaveRoots : (ThePolDom,$) -> Boolean +Time: 0.42 SEC. + + compiling exported coerce : $ -> OutputForm +Time: 0.01 SEC. + + compiling exported = : ($,$) -> Boolean +Time: 0.18 SEC. + + compiling local makeChar : (TheField,TheField,ThePolDom) -> $ +Time: 0.06 SEC. + + compiling exported definingPolynomial : $ -> ThePolDom + ROIRC;definingPolynomial;$ThePolDom;22 is replaced by QVELTrootChar2 +Time: 0 SEC. + + compiling local linearRecip : (ThePolDom,$) -> Union(ThePolDom,failed) +Time: 0.20 SEC. + + compiling exported recip : (ThePolDom,$) -> Union(ThePolDom,failed) +Time: 0.38 SEC. + + compiling local linearSign : (ThePolDom,$) -> Integer +Time: 0.13 SEC. + + compiling exported sign : (ThePolDom,$) -> Integer +Time: 0.28 SEC. + + compiling local linearZero? : (TheField,$) -> Boolean +Time: 0.09 SEC. + + compiling exported zero? : (ThePolDom,$) -> Boolean +Time: 0.26 SEC. + + compiling local refine! : $ -> $ +Time: 0.07 SEC. + + compiling exported refine : $ -> $ +Time: 0.06 SEC. + + compiling exported left : $ -> TheField + ROIRC;left;$TheField;31 is replaced by QVELTrootChar0 +Time: 0.01 SEC. + + compiling exported right : $ -> TheField + ROIRC;right;$TheField;32 is replaced by QVELTrootChar1 +Time: 0 SEC. + + compiling exported middle : $ -> TheField +Time: 0.01 SEC. + +(time taken in buildFunctor: 0) + +;;; *** |RightOpenIntervalRootCharacterization| REDEFINED + +;;; *** |RightOpenIntervalRootCharacterization| REDEFINED +Time: 0.01 SEC. + + + Cumulative Statistics for Constructor RightOpenIntervalRootCharacterization + Time: 2.84 seconds + + finalizing NRLIB ROIRC + Processing RightOpenIntervalRootCharacterization for Browser database: +--------(left (TheField $))--------- +--------(right (TheField $))--------- +--------(size (TheField $))--------- +--->/tmp/axiom/mnt/linux/../../src/algebra/ROIRC.spad-->RightOpenIntervalRootCharacterization((size (TheField $))): Improper first word in comments: The +"The size of the isolating interval" +--------(middle (TheField $))--------- +--------(refine ($ $))--------- +--------(mightHaveRoots (B P $))--------- +--------(relativeApprox (TheField P $ TheField))--------- +--------constructor--------- +Compiling /tmp/old/ROIRC.NRLIB/code.lsp. +; (DEFUN |ROIRC;definingPolynomial;$ThePolDom;22| ...) is being compiled. +;; Warning: The variable $ is not used. +; (DEFUN |ROIRC;left;$TheField;31| ...) is being compiled. +;; Warning: The variable $ is not used. +; (DEFUN |ROIRC;right;$TheField;32| ...) is being compiled. +;; Warning: The variable $ is not used. +End of Pass 1. +End of Pass 2. +OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 +Finished compiling /tmp/old/ROIRC.NRLIB/code.lsp. +------------------------------------------------------------------------ + RightOpenIntervalRootCharacterization is now explicitly exposed in + frame initial + RightOpenIntervalRootCharacterization will be automatically loaded + when needed from /tmp/old/ROIRC.NRLIB/code + + RECLOS abbreviates domain RealClosure + processing macro definition E ==> OutputForm + processing macro definition Z ==> Integer + processing macro definition SE ==> Symbol + processing macro definition B ==> Boolean + processing macro definition SUP ==> SparseUnivariatePolynomial $ + processing macro definition N ==> PositiveInteger + processing macro definition RN ==> Fraction Integer + processing macro definition LF ==> ListFunctions2($,PositiveInteger) + processing macro definition PME ==> SparseUnivariatePolynomial $ + processing macro definition SEG ==> RightOpenIntervalRootCharacterization($,SparseUnivariatePolynomial $) +------------------------------------------------------------------------ + initializing NRLIB RECLOS for RealClosure + compiling into NRLIB RECLOS +****** Domain: TheField already in scope +****** Domain: TheField already in scope + compiling exported relativeApprox : ($,$) -> Fraction Integer +Time: 0.13 SEC. + + compiling exported approximate : ($,$) -> Fraction Integer +Time: 0.05 SEC. + + compiling local newElementIfneeded : (RightOpenIntervalRootCharacterization($,SparseUnivariatePolynomial $),OutputForm) -> $ +Time: 0.04 SEC. + + compiling exported algebraicOf : (RightOpenIntervalRootCharacterization($,SparseUnivariatePolynomial $),OutputForm) -> $ +Time: 0.05 SEC. + + compiling exported rename! : ($,OutputForm) -> $ +Time: 0 SEC. + + compiling exported rename : ($,OutputForm) -> $ +Time: 0.03 SEC. + + compiling exported rootOf : (SparseUnivariatePolynomial $,PositiveInteger) -> Union($,failed) +Time: 0.13 SEC. + + compiling exported allRootsOf : SparseUnivariatePolynomial $ -> List $ +Time: 0.12 SEC. + + compiling exported coerce : $ -> $ +Time: 0.03 SEC. + + compiling exported positive? : $ -> Boolean +Time: 0.03 SEC. + + compiling exported negative? : $ -> Boolean +Time: 0.03 SEC. + + compiling exported abs : $ -> $ +Time: 0.01 SEC. + + compiling exported sign : $ -> Integer +Time: 0.02 SEC. + + compiling exported < : ($,$) -> Boolean +Time: 0 SEC. + + compiling exported = : ($,$) -> Boolean +Time: 0 SEC. + + compiling exported mainCharacterization : $ -> Union(RightOpenIntervalRootCharacterization($,SparseUnivariatePolynomial $),failed) +Time: 0 SEC. + + compiling exported mainDefiningPolynomial : $ -> Union(SparseUnivariatePolynomial $,failed) +Time: 0.03 SEC. + + compiling exported mainForm : $ -> Union(OutputForm,failed) +Time: 0 SEC. + + compiling exported mainValue : $ -> Union(SparseUnivariatePolynomial $,failed) +Time: 0.03 SEC. + + compiling exported coerce : $ -> OutputForm +Time: 0.03 SEC. + + compiling exported inv : $ -> $ +Time: 0.01 SEC. + + compiling exported recip : $ -> Union($,failed) +Time: 0.05 SEC. + + compiling exported * : (Integer,$) -> $ +Time: 0.06 SEC. + + compiling exported * : (TheField,$) -> $ +Time: 0.08 SEC. + + compiling exported * : ($,$) -> $ +Time: 0.16 SEC. + + compiling local nonNull : Rec -> $ +Time: 0.05 SEC. + + compiling exported zero? : $ -> Boolean +Time: 0 SEC. + + compiling exported + : ($,$) -> $ +Time: 0.07 SEC. + + compiling exported - : $ -> $ +Time: 0.03 SEC. + + compiling exported retractIfCan : $ -> Union(TheField,failed) +Time: 0.01 SEC. + + compiling exported retract : $ -> TheField +Time: 0.02 SEC. + + compiling local lessAlgebraic : $ -> $ +Time: 0.08 SEC. + + compiling exported Zero : () -> $ +Time: 0 SEC. + + compiling exported One : () -> $ +Time: 0 SEC. + + compiling exported coerce : TheField -> $ + RECLOS;coerce;TheField$;35 is replaced by CONS0rn +Time: 0 SEC. + +(time taken in buildFunctor: 2) + +;;; *** |RealClosure| REDEFINED + +;;; *** |RealClosure| REDEFINED +Time: 0.05 SEC. + + + Cumulative Statistics for Constructor RealClosure + Time: 1.43 seconds + + finalizing NRLIB RECLOS + Processing RealClosure for Browser database: +--------(algebraicOf ($ SEG E))--------- +--------(mainCharacterization ((Union SEG failed) $))--------- +--------(relativeApprox (RN $ $))--------- +--------constructor--------- +Compiling /tmp/old/RECLOS.NRLIB/code.lsp. +; (DEFUN |RECLOS;rename!;$Of$;5| ...) is being compiled. +;; Warning: The variable $ is not used. +; (DEFUN |RECLOS;rename;$Of$;6| ...) is being compiled. +;; Warning: The variable $ is not used. +; (DEFUN |RECLOS;mainCharacterization;$U;16| ...) is being compiled. +;; Warning: The variable $ is not used. +; (DEFUN |RECLOS;mainForm;$U;18| ...) is being compiled. +;; Warning: The variable $ is not used. +; (DEFUN |RECLOS;mainValue;$U;19| ...) is being compiled. +;; Warning: The variable $ is not used. +; (DEFUN |RECLOS;coerce;TheField$;35| ...) is being compiled. +;; Warning: The variable $ is not used. +End of Pass 1. +End of Pass 2. +OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 +Finished compiling /tmp/old/RECLOS.NRLIB/code.lsp. +------------------------------------------------------------------------ + RealClosure is now explicitly exposed in frame initial + RealClosure will be automatically loaded when needed from + /tmp/old/RECLOS.NRLIB/code + +(1) -> )read reclos.input + +-- Input generated from RealClosureXmpPage +)clear all + + All user variables and function definitions have been cleared. +Ran := RECLOS(FRAC INT) + + + (1) RealClosure Fraction Integer + Type: Domain + Time: 0 sec +-- +-- Some simple signs for square roots, these correspond to an extension +-- of degree 16 of the rational numbers. +-- these examples were given to me by J. Abbot +-- +fourSquares(a:Ran,b:Ran,c:Ran,d:Ran):Ran == sqrt(a)+sqrt(b) - sqrt(c)-sqrt(d) + + Function declaration fourSquares : (RealClosure Fraction Integer, + RealClosure Fraction Integer,RealClosure Fraction Integer, + RealClosure Fraction Integer) -> RealClosure Fraction Integer has + been added to workspace. + Type: Void + Time: 0 sec +squareDiff1 := fourSquares(73,548,60,586) + + Compiling function fourSquares with type (RealClosure Fraction + Integer,RealClosure Fraction Integer,RealClosure Fraction Integer + ,RealClosure Fraction Integer) -> RealClosure Fraction Integer + + +---+ +--+ +---+ +--+ + (3) - \|586 - \|60 + \|548 + \|73 + Type: RealClosure Fraction Integer + Time: 0.02 (EV) + 0.06 (OT) = 0.08 sec +recip(squareDiff1) + + + (4) + +---+ +--+ +--+ +--+ +---+ +---+ + ((54602\|548 + 149602\|73 )\|60 + 49502\|73 \|548 + 9900895)\|586 + + + +--+ +---+ +--+ +---+ +--+ + (154702\|73 \|548 + 30941947)\|60 + 10238421\|548 + 28051871\|73 + Type: Union(RealClosure Fraction Integer,...) + Time: 0 sec +sign(squareDiff1) + + + (5) 1 + Type: PositiveInteger + Time: 0 sec +squareDiff2 := fourSquares(165,778,86,990) + + + +---+ +--+ +---+ +---+ + (6) - \|990 - \|86 + \|778 + \|165 + Type: RealClosure Fraction Integer + Time: 0.01 (EV) = 0.01 sec +recip(squareDiff2) + + + (7) + +---+ +---+ +--+ +---+ +---+ + ((556778\|778 + 1209010\|165 )\|86 + 401966\|165 \|778 + 144019431) + * + +---+ + \|990 + + + +---+ +---+ +--+ +---+ +---+ + (1363822\|165 \|778 + 488640503)\|86 + 162460913\|778 + 352774119\|165 + Type: Union(RealClosure Fraction Integer,...) + Time: 0 sec +sign(squareDiff2) + + + (8) 1 + Type: PositiveInteger + Time: 0 sec +squareDiff3 := fourSquares(217,708,226,692) + + + +---+ +---+ +---+ +---+ + (9) - \|692 - \|226 + \|708 + \|217 + Type: RealClosure Fraction Integer + Time: 0 sec +recip(squareDiff3) + + + (10) + +---+ +---+ +---+ +---+ +---+ +---+ + ((- 34102\|708 - 61598\|217 )\|226 - 34802\|217 \|708 - 13641141)\|692 + + + +---+ +---+ +---+ +---+ +---+ + (- 60898\|217 \|708 - 23869841)\|226 - 13486123\|708 - 24359809\|217 + Type: Union(RealClosure Fraction Integer,...) + Time: 0.01 (EV) + 0.06 (GC) = 0.07 sec +sign(squareDiff3) + + + (11) - 1 + Type: Integer + Time: 0.01 (OT) = 0.01 sec +squareDiff4 := fourSquares(155,836,162,820) + + + +---+ +---+ +---+ +---+ + (12) - \|820 - \|162 + \|836 + \|155 + Type: RealClosure Fraction Integer + Time: 0.01 (IN) = 0.01 sec +recip(squareDiff4) + + + (13) + +---+ +---+ +---+ +---+ +---+ +---+ + ((- 37078\|836 - 86110\|155 )\|162 - 37906\|155 \|836 - 13645107)\|820 + + + +---+ +---+ +---+ +---+ +---+ + (- 85282\|155 \|836 - 30699151)\|162 - 13513901\|836 - 31384703\|155 + Type: Union(RealClosure Fraction Integer,...) + Time: 0.01 (OT) = 0.01 sec +sign(squareDiff4) + + + (14) - 1 + Type: Integer + Time: 0 sec +squareDiff5 := fourSquares(591,772,552,818) + + + +---+ +---+ +---+ +---+ + (15) - \|818 - \|552 + \|772 + \|591 + Type: RealClosure Fraction Integer + Time: 0 sec +recip(squareDiff5) + + + (16) + +---+ +---+ +---+ +---+ +---+ +---+ + ((70922\|772 + 81058\|591 )\|552 + 68542\|591 \|772 + 46297673)\|818 + + + +---+ +---+ +---+ +---+ +---+ + (83438\|591 \|772 + 56359389)\|552 + 47657051\|772 + 54468081\|591 + Type: Union(RealClosure Fraction Integer,...) + Time: 0 sec +sign(squareDiff5) + + + (17) 1 + Type: PositiveInteger + Time: 0 sec +squareDiff6 := fourSquares(434,1053,412,1088) + + + +----+ +---+ +----+ +---+ + (18) - \|1088 - \|412 + \|1053 + \|434 + Type: RealClosure Fraction Integer + Time: 0 sec +recip(squareDiff6) + + + (19) + +----+ +---+ +---+ +---+ +----+ + ((115442\|1053 + 179818\|434 )\|412 + 112478\|434 \|1053 + 76037291) + * + +----+ + \|1088 + + + +---+ +----+ +---+ +----+ +---+ + (182782\|434 \|1053 + 123564147)\|412 + 77290639\|1053 + 120391609\|434 + Type: Union(RealClosure Fraction Integer,...) + Time: 0.06 (GC) = 0.06 sec +sign(squareDiff6) + + + (20) 1 + Type: PositiveInteger + Time: 0 sec +squareDiff7 := fourSquares(514,1049,446,1152) + + + +----+ +---+ +----+ +---+ + (21) - \|1152 - \|446 + \|1049 + \|514 + Type: RealClosure Fraction Integer + Time: 0 sec +recip(squareDiff7) + + + (22) + +----+ +---+ +---+ +---+ +----+ + ((349522\|1049 + 499322\|514 )\|446 + 325582\|514 \|1049 + 239072537) + * + +----+ + \|1152 + + + +---+ +----+ +---+ +----+ +---+ + (523262\|514 \|1049 + 384227549)\|446 + 250534873\|1049 + 357910443\|514 + Type: Union(RealClosure Fraction Integer,...) + Time: 0 sec +sign(squareDiff7) + + + (23) 1 + Type: PositiveInteger + Time: 0.01 (EV) = 0.01 sec +squareDiff8 := fourSquares(190,1751,208,1698) + + + +----+ +---+ +----+ +---+ + (24) - \|1698 - \|208 + \|1751 + \|190 + Type: RealClosure Fraction Integer + Time: 0 sec +recip(squareDiff8) + + + (25) + +----+ +---+ +---+ +---+ +----+ + (- 214702\|1751 - 651782\|190 )\|208 - 224642\|190 \|1751 + + + - 129571901 + * + +----+ + \|1698 + + + +---+ +----+ +---+ +----+ + (- 641842\|190 \|1751 - 370209881)\|208 - 127595865\|1751 + + + +---+ + - 387349387\|190 + Type: Union(RealClosure Fraction Integer,...) + Time: 0 sec +sign(squareDiff8) + + + (26) - 1 + Type: Integer + Time: 0 sec +relativeApprox(squareDiff8,10**(-3))::Float + + + (27) - 0.2340527771 5937700123 E -10 + Type: Float + Time: 0.01 (IN) + 1.48 (EV) + 0.01 (OT) + 1.26 (GC) = 2.76 sec +-- +-- test the Renaud Rioboo fix (Jan 2004) +-- +allRootsOf((x-2)*(x-3)*(x-4))$RECLOS(FRAC INT) + + + (28) [2,3,4] + Type: List RealClosure Fraction Integer + Time: 0.01 (EV) + 0.02 (OT) = 0.03 sec +-- +-- check out if the sum of all roots is null +-- example from P.V. Koseleff +-- +l := allRootsOf((x**2-2)**2-2)$Ran + + + (29) [%A33,%A34,%A35,%A36] + Type: List RealClosure Fraction Integer + Time: 0.01 (EV) = 0.01 sec +l.1+l.2+l.3+l.4 + + + (30) 0 + Type: RealClosure Fraction Integer + Time: 0.47 (EV) + 0.01 (OT) + 0.20 (GC) = 0.68 sec +removeDuplicates map(mainDefiningPolynomial,l) + + + 4 2 + (31) [? - 4? + 2] +Type: List Union(SparseUnivariatePolynomial RealClosure Fraction Integer,"failed") + Time: 0.01 (OT) = 0.01 sec +map(mainCharacterization,l) + + + (32) [[- 2,- 1[,[- 1,0[,[0,1[,[1,2[] +Type: List Union(RightOpenIntervalRootCharacterization(RealClosure Fraction Integer,SparseUnivariatePolynomial RealClosure Fraction Integer),"failed") + Time: 0.01 (OT) = 0.01 sec +[reduce(+,l),reduce(*,l)-2] + + + (33) [0,0] + Type: List RealClosure Fraction Integer + Time: 0.66 (EV) + 0.01 (OT) + 0.29 (GC) = 0.96 sec +-- +-- a more complicated test that involve an extension of degree 256 +-- example by prof Kahan at ISSAC'92 +-- +)cl prop s2 s5 10 + +(s2, s5, s10) := (sqrt(2)$Ran, sqrt(5)$Ran, sqrt(10)$Ran) + + + +--+ + (34) \|10 + Type: RealClosure Fraction Integer + Time: 0.01 (OT) = 0.01 sec +eq1:=sqrt(s10+3)*sqrt(s5+2) - sqrt(s10-3)*sqrt(s5-2) = sqrt(10*s2+10) + + + +---------+ +--------+ +---------+ +--------+ +-----------+ + | +--+ | +-+ | +--+ | +-+ | +-+ + (35) - \|\|10 - 3 \|\|5 - 2 + \|\|10 + 3 \|\|5 + 2 = \|10\|2 + 10 + Type: Equation RealClosure Fraction Integer + Time: 0.01 (IN) + 0.02 (OT) = 0.03 sec +eq1::Boolean + + + (36) true + Type: Boolean + Time: 0.09 (IN) + 0.01 (OT) = 0.10 sec +-- +-- analogous one by [rr] +-- +eq2:=sqrt(s5+2)*sqrt(s2+1) - sqrt(s5-2)*sqrt(s2-1) = sqrt(2*s10+2) + + + +--------+ +--------+ +--------+ +--------+ +----------+ + | +-+ | +-+ | +-+ | +-+ | +--+ + (37) - \|\|5 - 2 \|\|2 - 1 + \|\|5 + 2 \|\|2 + 1 = \|2\|10 + 2 + Type: Equation RealClosure Fraction Integer + Time: 0.01 (IN) = 0.01 sec +eq2::Boolean + + + (38) true + Type: Boolean + Time: 0.06 (IN) + 0.08 (GC) = 0.14 sec +-- +-- these came from J.M. Arnaudies +-- +)cl prop s4 s7 e1 e2 + +s3 := sqrt(3)$Ran + + + +-+ + (39) \|3 + Type: RealClosure Fraction Integer + Time: 0 sec +s7:= sqrt(7)$Ran + + + +-+ + (40) \|7 + Type: RealClosure Fraction Integer + Time: 0 sec +e1 := sqrt(2*s7-3*s3,3) + + + +-------------+ + 3| +-+ +-+ + (41) \|2\|7 - 3\|3 + Type: RealClosure Fraction Integer + Time: 0 sec +e2 := sqrt(2*s7+3*s3,3) + + + +-------------+ + 3| +-+ +-+ + (42) \|2\|7 + 3\|3 + Type: RealClosure Fraction Integer + Time: 0 sec +-- this should be null +ee1:=e2-e1=s3 + + + +-------------+ +-------------+ + 3| +-+ +-+ 3| +-+ +-+ +-+ + (43) \|2\|7 + 3\|3 - \|2\|7 - 3\|3 = \|3 + Type: Equation RealClosure Fraction Integer + Time: 0 sec +ee1::Boolean + + + (44) true + Type: Boolean + Time: 0.01 (IN) = 0.01 sec +)cl prop pol r1 alpha beta + +pol : UP(x,Ran) := x**4+(7/3)*x**2+30*x-(100/3) + + + 4 7 2 100 + (45) x + - x + 30x - --- + 3 3 + Type: UnivariatePolynomial(x,RealClosure Fraction Integer) + Time: 0.08 (IN) + 0.04 (OT) = 0.12 sec +r1 := sqrt(7633)$Ran + + + +----+ + (46) \|7633 + Type: RealClosure Fraction Integer + Time: 0 sec +-- cubic roots +alpha := sqrt(5*r1-436,3)/3 + + + +--------------+ + 1 3| +----+ + (47) - \|5\|7633 - 436 + 3 + Type: RealClosure Fraction Integer + Time: 0.01 (OT) = 0.01 sec +beta := -sqrt(5*r1+436,3)/3 + + + +--------------+ + 1 3| +----+ + (48) - - \|5\|7633 + 436 + 3 + Type: RealClosure Fraction Integer + Time: 0 sec +-- this should be null +pol.(alpha+beta-1/3) + + + (49) 0 + Type: RealClosure Fraction Integer + Time: 0.01 (IN) + 0.08 (EV) = 0.09 sec +)cl prop qol r2 alpha beta + +r2 := sqrt(153)$Ran + + + +---+ + (50) \|153 + Type: RealClosure Fraction Integer + Time: 0 sec +-- roots of order 5 +alpha2 := sqrt(r2-11,5) + + + +-----------+ + 5| +---+ + (51) \|\|153 - 11 + Type: RealClosure Fraction Integer + Time: 0 sec +beta2 := -sqrt(r2+11,5) + + + +-----------+ + 5| +---+ + (52) - \|\|153 + 11 + Type: RealClosure Fraction Integer + Time: 0.01 (IN) = 0.01 sec +qol : UP(x,Ran) := x**5+10*x**3+20*x+22 + + + 5 3 + (53) x + 10x + 20x + 22 + Type: UnivariatePolynomial(x,RealClosure Fraction Integer) + Time: 0.01 (IN) = 0.01 sec +qol(alpha2+beta2) + + + (54) 0 + Type: RealClosure Fraction Integer + Time: 0.33 (EV) + 0.22 (GC) = 0.55 sec +dst1:=sqrt(9+4*s2)=1+2*s2 + + + +---------+ + | +-+ +-+ + (55) \|4\|2 + 9 = 2\|2 + 1 + Type: Equation RealClosure Fraction Integer + Time: 0.01 (IN) = 0.01 sec +dst1::Boolean + + + (56) true + Type: Boolean + Time: 0 sec +s6:Ran:=sqrt 6 + + + +-+ + (57) \|6 + Type: RealClosure Fraction Integer + Time: 0 sec +dst2:=sqrt(5+2*s6)+sqrt(5-2*s6) = 2*s3 + + + +-----------+ +---------+ + | +-+ | +-+ +-+ + (58) \|- 2\|6 + 5 + \|2\|6 + 5 = 2\|3 + Type: Equation RealClosure Fraction Integer + Time: 0 sec +dst2::Boolean + + + (59) true + Type: Boolean + Time: 0 sec +s29:Ran:=sqrt 29 + + + +--+ + (60) \|29 + Type: RealClosure Fraction Integer + Time: 0 sec +dst4:=sqrt(16-2*s29+2*sqrt(55-10*s29)) = sqrt(22+2*s5)-sqrt(11+2*s29)+s5 + + + (61) + +--------------------------------+ + | +--------------+ +-----------+ +----------+ + | | +--+ +--+ | +--+ | +-+ +-+ + \|2\|- 10\|29 + 55 - 2\|29 + 16 = - \|2\|29 + 11 + \|2\|5 + 22 + \|5 + Type: Equation RealClosure Fraction Integer + Time: 0.01 (OT) = 0.01 sec +dst4::Boolean + + + (62) true + Type: Boolean + Time: 0.57 (IN) + 0.29 (GC) = 0.86 sec +dst6:=sqrt((112+70*s2)+(46+34*s2)*s5) = (5+4*s2)+(3+s2)*s5 + + + +--------------------------------+ + | +-+ +-+ +-+ +-+ +-+ +-+ + (63) \|(34\|2 + 46)\|5 + 70\|2 + 112 = (\|2 + 3)\|5 + 4\|2 + 5 + Type: Equation RealClosure Fraction Integer + Time: 0.01 (EV) = 0.01 sec +dst6::Boolean + + + (64) true + Type: Boolean + Time: 0.01 (IN) = 0.01 sec +f3:Ran:=sqrt(3,5) + + + 5+-+ + (65) \|3 + Type: RealClosure Fraction Integer + Time: 0 sec +f25:Ran:=sqrt(1/25,5) + + + +--+ + | 1 + (66) 5|-- + \|25 + Type: RealClosure Fraction Integer + Time: 0 sec +f32:Ran:=sqrt(32/5,5) + + + +--+ + |32 + (67) 5|-- + \| 5 + Type: RealClosure Fraction Integer + Time: 0 sec +f27:Ran:=sqrt(27/5,5) + + + +--+ + |27 + (68) 5|-- + \| 5 + Type: RealClosure Fraction Integer + Time: 0 sec +dst5:=sqrt((f32-f27,3)) = f25*(1+f3-f3**2) + + + +---------------+ + | +--+ +--+ +--+ + | |27 |32 5+-+2 5+-+ | 1 + (69) 3|- 5|-- + 5|-- = (- \|3 + \|3 + 1) 5|-- + \| \| 5 \| 5 \|25 + Type: Equation RealClosure Fraction Integer + Time: 0.01 (EV) + 0.01 (OT) = 0.02 sec +dst5::Boolean + + + (70) true + Type: Boolean + Time: 1.94 (IN) + 0.84 (GC) = 2.78 sec +(71) -> )quit + +bash-2.05b# + + +\start +Date: Wed, 14 Jul 2004 23:23:47 -0400 +From: root +To: axiom-developer@nongnu.org +Subject: [Axiom-developer] change + +The FAQ file was split out of the README file, per request. + +\start +Date: 14 Jul 2004 22:32:04 -0400 +From: Camm Maguire +To: "'daly@idsi.net'" , axiom-developer@nongnu.org +Subject: [Axiom-developer] Foreseeing future build problems.... + +Greetings! Just a quick note on an observation I've made in putting +together the latest Debian package. As you may recall, we are +skipping the database rebuilding step on ia64, alpha, hppa, mips and +mipsel, as we cannot natively relocate objects on these machines yet, +and they therefore use dlopen, which takes up too many file handles in +this step. Even were this surmounted, another difficulty would arise +-- all the algebra files are compiled with the filename "code.lsp" +before renaming the .o file as appropriate. This names the lisp +initialization function in each object "init_code", causing a linker +conflict, and results in a failure to find the sought init functions +determined by filename at load time, e.g. init_AHYB, etc. + +We do intend to get native relocation on these machines, but it will +likely take considerable time. Might it be quicker to rename the +code.lsp before compiling? + +\start +Date: Wed, 14 Jul 2004 23:50:04 -0400 +From: root +To: camm@enhanced.com +Subject: [Axiom-developer] Re: Foreseeing future build problems.... + +> We do intend to get native relocation on these machines, but it will +> likely take considerable time. Might it be quicker to rename the +> code.lsp before compiling? + +I'll look at it. + +\start +Date: Thu, 15 Jul 2004 00:30:59 -0400 +From: root +To: axiom-developer@nongnu.org +Subject: [Axiom-developer] kuipers.input.pamphlet + +added to input test cases. +created doc/src/input subdirectory + +\start +Date: Thu, 15 Jul 2004 12:50:31 +0200 +From: Renaud.Rioboo@lip6.fr +To: axiom-developer@nongnu.org +Subject: [Axiom-developer] performance issues solved + +Dear Axiom lovers, + +The issue I had with the version of my Real Closure Package is solved. I was +not using the same sources for the different versions. + +The issue came because version 1.1 was released too early with Axiom 2.3 and +still contained problems. When I fixed a bug in January, I fixed it from the +NAG version and not from my version which contains more code. + +I have sent Tim the new version. Here is the example I used. It is due to John +Abott. + +Ran := RECLOS(FRAC INT) +)se me ti on +a0 := sqrt(2,3)$Ran +a1 := sqrt(-(399063623035 - 316737007504*a0),3) +a2 := sqrt(-(5539 - 92526953*a1),3) +a3 := sqrt(-(5739 - 9473525*a2),3) +a4 := sqrt(-(1 - 1283*a3),3) +a5 := sqrt(-(4579804 - 191560867*a4),3) +a6 := sqrt(-(49400 - 220877349*a5),3) + +------------------computation of a5 with Axiom 2.3------------------ + Type: RealClosure Fraction Integer + Time: 34.60 (EV) + 0.01 (OT) + 1.12 (GC) = 35.73 sec +------------------computation of a5 with Axiom 2.3------------------ + +and + +------------------computation of a5 with Open Axiom------------------ + Type: RealClosure Fraction Integer + Time: 35.60 (EV) + 7.96 (GC) = 43.56 sec +------------------computation of a5 with Open Axiom------------------ + +Thanks to all of you for your help. + +\start +Date: Thu, 15 Jul 2004 09:41:49 -0400 +From: Tim Daly +To: xli96@uwo.ca +Subject: [Axiom-developer] dense is slower than sparse + +> could you please give me some suggestion why my DUP is slower than SUP + +This is a significant pile of code you sent. You have to hand-optimize +each line rather than copy SUP. It has nothing to do with fixnum +arithmetic. The difference between an SUP and a DUP representation is +the key to speedups. + +In general, a dense representation will be slower than a sparse +representation for the simple reason that the dense representation has +more terms. Given good code I'd expect sparse to outperform dense in +almost every case. + +If the sparse representation does an O(1) lookup (such as an array +access or hash table) for terms then it should be approximately as +fast as the dense representation in the worst case. This won't be true +in practice because a dense representation can assume the index of the +next term and can use a straight loop to walk terms. Thus a dense +representation can do: + + for i in 0..maxterm (process term i) + +whereas a sparse representation must do + + for i in (lookup(term))..(lookup(term)) (process term i) + +and thus the lookup speed is vital. Depending on the cost to process +a term this can be a dominant factor (e.g. adding terms) or not (e.g. +computing the integral of the term). + +Find all of the places where terms are accessed and make sure you +are fully using the fact that you know the bounds. + +Another cost tradeoff is that a dense representation knows how large +the result must be whereas a sparse representation does not. So memory +allocation can be fast in a dense representation. If you assume worst +case terms in a sparse representation you can do a fast memory allocate, +collect the nonzero terms, and reallocate. By definition it's still +going to be more expensive. Thus a dense representation can do: + + allocate max memory + compute all the terms + +whereas a sparse does + + compute a term + add it to a list (or whatever rep it uses) + +or + allocate max memory + compute the terms + compute new memory bound + allocate smaller memory + copy the results + deallocate max memory + +So, did you find every place that SUP uses dynamic memory allocation +rather than fore-knowledge? + +Sparse representation can also be clever in storing the terms so +that maximum cancellation occurs (e.g. knowing that X=0 means +that you don't have to compute a lot of terms because they vanish). +To use this trick you need to know a lot about the domain and I +don't see SUP using it anywhere. + +\start +Date: Thu, 15 Jul 2004 11:02:56 -0400 +From: "Bill Page" +To: +Subject: [Axiom-developer] FW: [Axiom-mail] Axiom on the Web + +-----Original Message----- +From: Bill Page [mailto:bill.page1@sympatico.ca] +Sent: Thursday, July 15, 2004 10:46 AM +To: 'Mike Dewar' +Subject: RE: [Axiom-mail] Axiom on the Web + + +Mike, + +Thank you very much for this observation. I am trying to plug such = +security +holes and have just added )lisp, )fin and )spool to the list of disabled +commands. If you try your test again you should see that it fails with a +reasonable error message. + +It is a pity that we have to lock out lisp access. I wonder if anyone = +has +done any work on a "secure mode" for lisp? + +About performance. This system collects all the Axiom commands embedded = +in a +web page and internally prepares a script that is run by Axiom as a = +batch. +The output is parsed and re-inserted back into the code for the web = +page. +This happens only once when the user clicks Save. + +The LaTeX rendering done by the LatexWiki component which calls the +combination of latex+dvips+ghostscript is likewise done only once. = +Moreover +the images that it creates for inclusion in the final web page are = +cached +based on the LaTeX code that created them. These are keep in an "image +repository" so latex et al are never called more than once for each such +construct. + +Regards, +Bill Page. + +> -----Original Message----- +> From: Mike Dewar [mailto:miked@nag.co.uk] +> Sent: Thursday, July 15, 2004 5:36 AM +> To: Bill Page +> Cc: Mike Dewar +> Subject: Re: [Axiom-mail] Axiom on the Web +> +> +> Hi Bill, +> +> This is very nice, and not as slow as I expected it would be. +> +> There is a problem with this kind of set-up in that an +> unscrupulous user can get access to your machine via Axiom's +> underlying Lisp system. Unfortunately its impossible to make +> the Lisp system completely secure without disabling file I/O +> which of course stops you opening libraries, databases etc. +> However you might want to disable ")lisp" in the interpreter +> and the lisp system command, both of which seem to be working +> at present, i.e. stop people doing +> )lisp (system "cat /etc/passwd") +> :-) +> +> Cheers, Mike. +> +> On Thu, Jul 15, 2004 at 02:31:41AM -0400, Bill Page wrote: +> > Dear Axiom Users: +> > +> > Now you can try Axiom online with only a web browser! +> > +> > http://page.axiom-developer.org +> > +> > Use the "wiki" feature to insert Axiom commands into a web +> page. When +> > you click Save you will see the output generated by Axiom +> displayed as +> > nicely formatted mathematics. +> > +> ... + +\start +Date: Thu, 15 Jul 2004 16:22:10 +0200 (CEST) +From: Bertfried Fauser +To: Bill Page +Subject: [Axiom-developer] page.axiom-developed.org LaTeX broken + +Hi Bill, + + on my page at page.axiom-develoer.org the (formerly functioning) +LaTeX doesn work any longer...? + +\start +Date: Thu, 15 Jul 2004 12:02:27 -0400 +From: "Bill Page" +To: +Subject: [Axiom-developer] RE: page.axiom-developed.org LaTeX broken + +Bertfried, + +I just tried your web page at + + http://page.axiom-developer.org/zope/Plone/Members/Bertfried + +It still renders properly for me. What error did you get? + +Regards, +Bill Page. + +> -----Original Message----- +> From: Bertfried Fauser [mailto:fauser@spock.physik.uni-konstanz.de] +> Sent: Thursday, July 15, 2004 10:22 AM +> To: Bill Page +> Cc: axiom-developer@nongnu.org +> Subject: page.axiom-developed.org LaTeX broken +> +> +> Hi Bill, +> +> on my page at page.axiom-develoer.org the (formerly +> functioning) LaTeX doesn work any longer...? +> +> ciao +> BF. + +\start +Date: Thu, 15 Jul 2004 12:08:45 -0400 +From: "Bill Page" +To: +Subject: [Axiom-developer] RE: page.axiom-developed.org LaTeX broken + +Bertfried, + +Maybe you were talking about your web page on the "test" +version at + + http://test.axiom-developer.org/Members/Bertfried/FrontPage + +I just tried it and yes, it did not appear correctly. The +problem was that when I split the original version of the +Axiom portal into two versions - one for general use and +one for testing and development - I forgot that I had to +regenerate any of the previously existing pages. + +What I just did was click Edit on this page, make a simple +change that forces LatexWiki to regenerate the page, and +click Save. Now it seems to look ok. + +Is it ok for you now (on both page.axiom-developer and +on test.axiom-developer)? + +Cheers, +Bill Page. + +> -----Original Message----- +> From: Bill Page [mailto:bill.page1@sympatico.ca] +> Sent: Thursday, July 15, 2004 12:02 PM +> To: 'Bertfried.Fauser@uni-konstanz.de' +> Cc: 'axiom-developer@nongnu.org' +> Subject: RE: page.axiom-developed.org LaTeX broken +> +> +> Bertfried, +> +> I just tried your web page at +> +> http://page.axiom-developer.org/zope/Plone/Members/Bertfried +> +> It still renders properly for me. What error did you get? +> +> Regards, +> Bill Page. +> +> > -----Original Message----- +> > From: Bertfried Fauser [mailto:fauser@spock.physik.uni-konstanz.de] +> > Sent: Thursday, July 15, 2004 10:22 AM +> > To: Bill Page +> > Cc: axiom-developer@nongnu.org +> > Subject: page.axiom-developed.org LaTeX broken + +\start +Date: Thu, 15 Jul 2004 16:54:24 +0200 (CEST) +From: Bertfried Fauser +To: Bill Page +Subject: Re: [Axiom-developer] RE: page.axiom-developed.org LaTeX broken + +On Thu, 15 Jul 2004, Bill Page wrote: + +> Is it ok for you now (on both page.axiom-developer and +> on test.axiom-developer)? + +Hi Bill, + +everything works out now on both locations. Even AXIOM seems to work very +nicely in the sandbox You will however not be angry seeing me using +my local mashine and AXIOM + +Is axiom available from teh Members/Bertfried pages too, so that one +could display certain calculations? How can I upload files containing +AXIOM code for such examples? + +\start +Date: Thu, 15 Jul 2004 12:38:24 -0400 +From: "Bill Page" +To: +Subject: RE: [Axiom-developer] RE: page.axiom-developed.org LaTeX broken + +Bertfried, + +On Thursday, July 15, 2004 10:54 AM you wrote: +> +> On Thu, 15 Jul 2004, Bill Page wrote: +> +> > Is it ok for you now (on both page.axiom-developer and +> > on test.axiom-developer)? +> +> Hi Bill, +> +> everything works out now on both locations. Even AXIOM seems +> to work very nicely in the sandbox You will however +> not be angry seeing me using my local machine and AXIOM + +Of course not. That's great. + +> +> Is axiom available from the Members/Bertfried pages too, so +> that one could display certain calculations? How can I upload +> files containing AXIOM code for such examples? +> + +Yes, Axiom is available on all pages that also support LaTeX +(only "wiki pages" with page type ...+Latex) + +The simplest way to create a new page would be to first edit +the existing page and add a "wiki word", that is a word that +contains at least two capital letters LikeThis. When you click +Save, the page will be displayed with the word LikeThis? with +a question mark beside it. If you now click on that question +mark, a new page will be created named LikeThis. + +Now to add some AXIOM code this page, the simplest way is +just to use cut-and-paste from the Axiom code displayed in +another window. You will have to edit it to include the + + \begin{axiom} + ... + \end{axiom} + +and any other static LaTeX coding that you want. + +Click Save. And that's it (unless there is an error of +course and then you just fix it and try again). + +You can also go to "my folders" and if you like create a +new folder for some new work. Then just go to that folder +and Add a new wiki page. Now you have a place for stuff that +is separate from you main home page. And you can add as many +new pages here as you want using the same method as above. + +I hope this helps. + +\start +Date: Thu, 15 Jul 2004 09:40:51 -0700 +From: Bob McElrath +To: Bill Page +Subject: Re: [Axiom-developer] RE: page.axiom-developed.org LaTeX broken +Cc: Bertfried.Fauser@uni-konstanz.de + +Sometime in the last few versions I added the following to the top of +the LatexTemplate I distribute: + + %% This file is used as a python printf() string. As such, the document we are + %% trying to render is placed at the location of the percent-s below, and any + %% comments in this file must be preceeded by TWO percent signs. + +I'm not so fond of using LatexTemplate as a python printf string, and +would happily entertain other suggestions. + +Secondly, when upgrading LatexWiki or ZWiki, one should run the +/upgradeAll method on the site, which will cause all pages to be +re-rendered. If you get the latex alignment problem that we discussed +fixed, I suggest you delete the contents of the var/LatexWiki directory +(where the png's are), and run /upgradeAll, which will cause LatexWiki +to regenerate its images. + +For a single page the method is /clearCache. Run them like by appending +/upgradeAll or /clearCache to any wiki page like this: + + http://page.axiom-developer.org/zope/Plone/wiki/FrontPage/clearCache + http://page.axiom-developer.org/zope/Plone/wiki/FrontPage/upgradeAll + +Note that upgradeAll may take some time when your wiki becomes large, +especially when rendering lots of latex and axiom expressions! I hope +to further improve the speed of ZWiki itself in the future. + +Bill Page [bill.page1@sympatico.ca] wrote: +> Bertfried, +> +> Maybe you were talking about your web page on the "test" +> version at +> +> http://test.axiom-developer.org/Members/Bertfried/FrontPage +> +> I just tried it and yes, it did not appear correctly. The +> problem was that when I split the original version of the +> Axiom portal into two versions - one for general use and +> one for testing and development - I forgot that I had to +> regenerate any of the previously existing pages. +> +> What I just did was click Edit on this page, make a simple +> change that forces LatexWiki to regenerate the page, and +> click Save. Now it seems to look ok. +> +> Is it ok for you now (on both page.axiom-developer and +> on test.axiom-developer)? + +\start +Date: 15 Jul 2004 16:06:16 -0400 +From: Camm Maguire +To: axiom-developer@nongnu.org +Subject: [Axiom-developer] GCL 2.6.3 is released +Cc: Maxima List , acl2@lists.cc.utexas.edu + +The following message is a courtesy copy of an article +that has been posted to comp.lang.lisp as well. + +The GCL team is happy to announce the release of version 2.6.3, the +latest achievement in the 'stable' series. This release is a minor +modification to version 2.6.2, incorporating corrections to the few +errata discovered immediately after 2.6.2 was released. From the +changelog: + + Correctly parse gcc version strings in gmp3 subconfigure on arm + + Fix variable capture error in dotimes macro + + Better sed separator for LI-CC in unixport/makefile + + Fix segfault in string-match + + vs_top=sup -> (reset-top) where possible in compiler + + Correct room report to show proper percentages when sgc is on + + Fix value stack leak in rare compiled call sequence + + Read in RELOC environment variable if set as default in debian/rules + + Remove local bfd libraries from libs variables as their objects are + incorporated into libgcl and as the source directory may not be + available at runtime + + Remove pcl/pcl_gazonk*lsp build-generated files from source + +For the latest information, capabilities, and status of GCL stable, +please see the 2.6.2 release notes at + +http://www.gnu.org/software/gcl/RELEASE-2.6.2.html + +\start +Date: Fri, 16 Jul 2004 00:05:05 -0400 +From: root +To: camm@enhanced.com +Subject: Re: [Axiom-developer] GCL 2.6.3 is released + +Camm, + +which CVS command should I use to get 2.6.3? +does it have a different -r version? + +\start +Date: Fri, 16 Jul 2004 00:43:27 -0400 +From: xli96@uwo.ca +To: axiom-developer@nongnu.org +Subject: [Axiom-developer] is there any specification about how to use Lisp + +Dear all, + +for example, +I can make a 10 element array by using MAKE_-ARRAY(10)$Lisp +but how to specify those arguments? + +make-array dimensions &key :element-type :initial-element :initial-contents +:adjustable :fill-pointer :displaced-to :displaced-index-offset + +\start +Date: Fri, 16 Jul 2004 10:04:46 +0100 +From: Mike Dewar +To: xli96@uwo.ca +Subject: Re: [Axiom-developer] is there any specification about how to use Lisp operations in AXIOM + +You can't provide optional parameters to Lisp functions using $Lisp +because the Axiom interpreter doesn't understand the syntactic meaning +of ":". You must either provide a Lisp cover function like e.g.: +)lisp (defun myarray (dims in-el) (make-array dims :initial-element in-el)) +MYARRAY(10,1)$Lisp +or alternatively try to find an Axiom equivalent. In this case it is +quite likely that the domain PrimitiveArray has the functionality you +need, for example the result of: +new(10,1)$PrimitiveArray(Integer) +is identical to that of myarray above. + +Regards, Mike. + +On Fri, Jul 16, 2004 at 12:43:27AM -0400, xli96@uwo.ca wrote: +> Dear all, +> +> for example, +> I can make a 10 element array by using MAKE_-ARRAY(10)$Lisp +> but how to specify those arguments? +> +> make-array dimensions &key :element-type :initial-element :initial-contents +> :adjustable :fill-pointer :displaced-to :displaced-index-offset + +\start +Date: Fri, 16 Jul 2004 11:25:20 +0100 +From: Nic Doye +To: Mike Dewar +Subject: Re: [Axiom-developer] is there any specification about how to use Lisp operations in AXIOM + +Question: Why do people want to call Lisp directly from the interpreter +directly? It seems counter-intuitive to me. + +Write a boot function and load it at run time and then use Axiom syntax. + +\start +Date: Fri, 16 Jul 2004 09:41:12 -0400 +From: Camm Maguire +To: daly@idsi.net +Subject: [Axiom-developer] GCL 2.6.3 is released + +Greetings! You can either retrieve a tarball from + +http://ftp.gnu.org/gnu/gcl/gcl-2.6.3.tar.gz + +or via cvs with + +export CVS_RSH=ssh +export CVSROOT=:ext:anoncvs@subversions.gnu.org:/cvsroot/gcl +cvs -z9 -q co -d gcl-2.6.3 -r Version_2_6_3 gcl + +Please let me know if there are problems. + +\start +Date: Fri, 16 Jul 2004 14:45:26 +0100 +From: Mike Dewar +To: axiom-developer@nongnu.org +Subject: [Axiom-developer] OpenMath 2 Released + +Since there has been some discussion of OpenMath on this list, you may +be interested to know that OpenMath 2 has been released over at +http://www.openmath.org. + +\start +Date: 16 Jul 2004 09:52:49 -0400 +From: Camm Maguire +To: daly@idsi.net +Subject: [Axiom-developer] Re: Foreseeing future build problems.... + +Greetings! Just a further update. The multiple filename code.lsp +resulting in the multiple function definition init_code also prevents +the performance rebuild of the system we're currently using in the +Debian package, (i.e. touch *.lisp *.lsp && make, loading the .fn +files this time.) + +\start +Date: 19 Jul 2004 12:14:28 -0400 +From: Camm Maguire +To: daly@idsi.net +Subject: Re: [Axiom-developer] efficiency + +Greetings! Just a short note, as I've missed the head of this +thread. Please bring to my attention any significant performance +deficiencies of open axiom vis a vis the NAG version. Accompanying +any such by an as compact example as possible is always helpful. + +Take care, + +Tim Daly writes: + +> Renaud, +> +> I can't reproduce your example. +> Can you post the input file you used? + +\start +Date: Mon, 19 Jul 2004 13:05:06 -0400 +From: root +To: camm@enhanced.com +Subject: Re: [Axiom-developer] efficiency + +Camm, + +As I understand the issue the original comparison was flawed. +(Renaud, please correct me if I'm wrong). + +There were two versions of the code, one with debugging enabled +and one without. The GCL/Axiom was run with debugging, the NAG +version without. + +I performed the same tests using the same source code and the +results are comparable. There was just a minor misunderstanding +about comparing debugging vs non-debugging code. This was cleared +up later. + +\start +Date: Mon, 19 Jul 2004 12:41:38 -0400 +From: "Page, Bill" +To: "'daly@idsi.net'" +Subject: RE: [Axiom-developer] efficiency +Cc: camm@enhanced.com + +Tim, + +On Thursday Renaud refers to a bug and to "a new version" of +the code that he sent to you. Is that new version in the Axiom +CVS? + +Regards, +Bill Page. + +> -----Original Message----- +> From: root [mailto:daly@idsi.net] +> Sent: Monday, July 19, 2004 1:05 PM +> To: camm@enhanced.com +> Cc: axiom-developer@nongnu.org; daly@idsi.net +> Subject: Re: [Axiom-developer] efficiency +> +> +> Camm, +> +> As I understand the issue the original comparison was flawed. +> (Renaud, please correct me if I'm wrong). +> +> There were two versions of the code, one with debugging enabled +> and one without. The GCL/Axiom was run with debugging, the NAG +> version without. +> +> I performed the same tests using the same source code and the +> results are comparable. There was just a minor misunderstanding +> about comparing debugging vs non-debugging code. This was cleared +> up later. +> +> Tim +> + + +> From: Renaud.Rioboo@lip6.fr [mailto:Renaud.Rioboo@lip6.fr] +> Sent: Thursday, July 15, 2004 6:51 AM +> To: axiom-developer@nongnu.org +> Subject: [Axiom-developer] performance issues solved +> +> +> Dear Axiom lovers, +> +> The issue I had with the version of my Real Closure Package +> is solved. I was not using the same sources for the different +> versions. +> +> The issue came because version 1.1 was released too early +> with Axiom 2.3 and still contained problems. When I fixed a +> bug in January, I fixed it from the NAG version and not from +> my version which contains more code. +> +> I have sent Tim the new version. Here is the example I used. +> ... + +\start +Date: Mon, 19 Jul 2004 13:34:28 -0400 +From: root +To: Bill.Page@drdc-rddc.gc.ca +Subject: Re: [Axiom-developer] efficiency +Cc: camm@enhanced.com + +checking... + +\start +Date: Mon, 19 Jul 2004 15:26:41 -0400 +From: root +To: Bill.Page@drdc-rddc.gc.ca +Subject: Re: [Axiom-developer] efficiency +Cc: camm@enhanced.com + +Bill, + +The new version was in the CVS (new relative to the original NAG code). +However, the CVS did not contain Renaud's latest performance patch. + +I've fixed this and am now doing "round trip" testing. +The CVS is updated with the performance patch. + +\start +Date: Mon, 19 Jul 2004 15:16:32 -0400 +From: "Page, Bill" +To: "'daly@idsi.net'" +Subject: RE: [Axiom-developer] efficiency + +Thanks Tim! + +> -----Original Message----- +> From: root [mailto:daly@idsi.net] +> Sent: Monday, July 19, 2004 3:27 PM +> To: Bill.Page@drdc-rddc.gc.ca +> Cc: daly@idsi.net; axiom-developer@nongnu.org; camm@enhanced.com +> Subject: Re: [Axiom-developer] efficiency +> +> +> Bill, +> +> The new version was in the CVS (new relative to the original +> NAG code). However, the CVS did not contain Renaud's latest +> performance patch. +> +> I've fixed this and am now doing "round trip" testing. +> The CVS is updated with the performance patch. + +\start +Date: Mon, 19 Jul 2004 19:00:52 +0100 +From: Mark Murray +To: Axiom Developers +Subject: [Axiom-developer] Build breakage on FreeBSD with GCL-2.6.3 + +Hi + +I have build breakage with GCL-2.6.3 on FreeBSD (IIRC, its also there +with GCL-2.6.2). + +Like this: +Loading /usr/ports/math/axiom/work/axiom-0.0/int/interp/setq.lisp +Finished loading /usr/ports/math/axiom/work/axiom-0.0/int/interp/setq.lisp +Loading /usr/ports/math/axiom/work/axiom-0.0/int/interp/property.lisp +Finished loading /usr/ports/math/axiom/work/axiom-0.0/int/interp/property.lisp +Loading /usr/ports/math/axiom/work/axiom-0.0/int/interp/unlisp.lisp +Finished loading /usr/ports/math/axiom/work/axiom-0.0/int/interp/unlisp.lisp +Loading /usr/ports/math/axiom/work/axiom-0.0/int/interp/foam_l.lisp +Finished loading /usr/ports/math/axiom/work/axiom-0.0/int/interp/foam_l.lisp +Loading /usr/ports/math/axiom/work/axiom-0.0/int/interp/axext_l.lisp +Finished loading /usr/ports/math/axiom/work/axiom-0.0/int/interp/axext_l.lisp + +Error: The function COMPILER::MAKE-PROCLAIMS is undefined. +Fast links are on: do (si::use-fast-links nil) for debugging +Error signalled by PROGN. +Backtrace: system:universal-error-handler > evalhook > load > build-depsys > make-depsys > let > let > unwind-protect > progn > lambda > lambda-closure > block > apply > APPLY + +Broken at READ. +>> +NIL +>> +"/usr/ports/math/axiom/work/axiom-0.0/obj/freebsd/bin/depsys" +BOOT>>gmake[3]: *** [/usr/ports/math/axiom/work/axiom-0.0/obj/freebsd/bin/depsys] Error 255 +gmake[3]: Leaving directory `/usr/ports/math/axiom/work/axiom-0.0/src/interp' +gmake[2]: *** [interpdir] Error 2 +gmake[2]: Leaving directory `/usr/ports/math/axiom/work/axiom-0.0/src' +gmake[1]: *** [srcdir] Error 2 +gmake[1]: Leaving directory `/usr/ports/math/axiom/work/axiom-0.0' +gmake: *** [all] Error 2 +*** Error code 2 + +Stop in /usr/ports/math/axiom. + +Any ideas? I am clueless with Lisp. + +\start +Date: Mon, 19 Jul 2004 19:15:16 -0400 +From: root +To: mark@grondar.org +Subject: Re: [Axiom-developer] Build breakage on FreeBSD with GCL-2.6.3 + +Mark, + +I'm building the system on gcl-2.6.3 as we speak. + +Your version of the build appears to have failed in loading +obj/linux/bin/makedep.lisp. This is a dynamically created file +which is used to build a new depsys image. The command it is +interpreting looks to be: + +(build-depsys + (quote + ( "/boot/axiom/int/interp/vmlisp.lisp" + "/boot/axiom/int/interp/ggreater.lisp" + "/boot/axiom/int/interp/hash.lisp" + "/boot/axiom/int/interp/bootfuns.lisp" + "/boot/axiom/int/interp/union.lisp" + "/boot/axiom/int/interp/nlib.lisp" + "/boot/axiom/int/interp/macros.lisp" + "/boot/axiom/int/interp/comp.lisp" + "/boot/axiom/int/interp/spaderror.lisp" + "/boot/axiom/int/interp/debug.lisp" + "/boot/axiom/int/interp/spad.lisp" + "/boot/axiom/int/interp/bits.lisp" + "/boot/axiom/int/interp/setq.lisp" + "/boot/axiom/int/interp/property.lisp" + "/boot/axiom/int/interp/unlisp.lisp" + "/boot/axiom/int/interp/foam_l.lisp" + "/boot/axiom/int/interp/axext_l.lisp")) + "/boot/axiom/mnt/linux" + "/boot/axiom/lsp/gcl-2.6.3" + "/boot/axiom/src" + "/boot/axiom/int" + "/boot/axiom/obj" + "/boot/axiom/mnt" + "linux") + +The make-depsys function lives in src/interp/util.lisp.pamphlet + +I'll see if it fails here before debugging it further. + +\start +Date: 19 Jul 2004 18:51:21 -0400 +From: Camm Maguire +To: Mark Murray +Subject: Re: [Axiom-developer] Build breakage on FreeBSD with GCL-2.6.3 + +Greetings! Mark, are you still using the axiom build patches to use +external gcl? If so, they need updating. In particular, +gcl_collectfn needs to be in the image at an earlier point, which is +the cause of your failure below. + +Here is what I'm testing at the moment: + +============================================================================= +patch.all +============================================================================= +--- ./src/Makefile.pamphlet.orig 2004-06-27 15:00:46.000000000 +0000 ++++ ./src/Makefile.pamphlet 2004-07-05 15:56:03.000000000 +0000 +@@ -24,8 +24,11 @@ + + <>= + SETUP=scriptsdir libdir +-DIRS=bootdir interpdir sharedir algebradir inputdir etcdir clefdir docdir \ +- graphdir ++ifeq ($(PASS1),) ++DIRS=bootdir interpdir sharedir algebradir inputdir etcdir clefdir docdir graphdir ++else ++DIRS=bootdir interpdir sharedir algebradir #inputdir etcdir clefdir docdir graphdir ++endif + DOCS=scriptsdocument libdocument ${DIRS:dir=document} + CLNS=scriptsclean libclean ${DIRS:dir=clean} + +--- ./src/graph/Makefile.pamphlet.orig 2004-06-27 15:00:59.000000000 +0000 ++++ ./src/graph/Makefile.pamphlet 2004-07-05 19:53:59.000000000 +0000 +@@ -414,7 +414,7 @@ + + ${DOC}/viewports: + @ echo 25 making ${DOC}/viewports from ${IN}/viewports +- @ cp -pr ${IN}/viewports ${DOC} ++# @ cp -pr ${IN}/viewports ${DOC} + + <> + <> +============================================================================= +patch.nosave (i386 amd64 m68k sparc s390 powerpc arm) +============================================================================= +--- ./lsp/Makefile.pamphlet.orig 2004-07-01 21:24:34.000000000 +0000 ++++ ./lsp/Makefile.pamphlet 2004-07-05 16:09:27.000000000 +0000 +@@ -457,15 +457,7 @@ + @echo 1 building ${LSP} ${GCLVERSION} + + gcldir: +- @echo 2 building ${GCLVERSION} +- @tar -zxf ${ZIPS}/${GCLVERSION}.tgz +-<> +-<> +-<> +-<> +-<> +-<> +-<> ++ echo '(compiler::link nil "${OUT}/lisp" (format nil "(progn (let ((*load-path* (cons ~S *load-path*))) (compiler::emit-fn t))(when (fboundp (quote si::sgc-on)) (si::sgc-on t))(setq compiler::*default-system-p* t))" si::*system-directory*) "${OBJ}/${SYS}/lib/cfuns-c.o ${OBJ}/${SYS}/lib/sockio-c.o ${OBJ}/${SYS}/lib/libspad.a")' | gcl + @echo 13 finished system build on `date` | tee >gcldir + + ccldir: ${LSP}/ccl/Makefile +--- ./src/interp/Makefile.pamphlet.orig 2004-06-27 15:01:27.000000000 +0000 ++++ ./src/interp/Makefile.pamphlet 2004-07-05 16:16:32.000000000 +0000 +@@ -669,8 +669,10 @@ + @ echo '#+:akcl (setq compiler::*suppress-compiler-notes* t)' >> ${OUT}/makeint.lisp + @ echo '#+:akcl (si::gbc-time 0)' >> ${OUT}/makeint.lisp + @ echo '#+:akcl (setq si::*system-directory* "${SPAD}/bin/")' >> ${OUT}/makeint.lisp ++# @ (cd ${OBJ}/${SYS}/bin ; \ ++# echo '(progn (gbc t) (load "${OUT}/makeint.lisp") (gbc t) (user::spad-save "${SAVESYS}"))' | ${LISPSYS} ) + @ (cd ${OBJ}/${SYS}/bin ; \ +- echo '(progn (gbc t) (load "${OUT}/makeint.lisp") (gbc t) (user::spad-save "${SAVESYS}"))' | ${LISPSYS} ) ++ echo '(progn (gbc t) (setq x si::*system-directory*)(load "${OUT}/makeint.lisp") (setq si::*system-directory* x) (unintern (quote x))(gbc t) (user::spad-save "${SAVESYS}"))' | ${LISPSYS} ) + @ echo 6 ${SAVESYS} created + @ cp ${SAVESYS} ${AXIOMSYS} + @ echo 6a ${AXIOMSYS} created +============================================================================= +patch.save (ia64 mips mipsel hppa alpha) +============================================================================= +--- ./lsp/Makefile.pamphlet.orig 2004-07-01 21:24:34.000000000 +0000 ++++ ./lsp/Makefile.pamphlet 2004-07-05 16:09:27.000000000 +0000 +@@ -457,15 +457,7 @@ + @echo 1 building ${LSP} ${GCLVERSION} + + gcldir: +- @echo 2 building ${GCLVERSION} +- @tar -zxf ${ZIPS}/${GCLVERSION}.tgz +-<> +-<> +-<> +-<> +-<> +-<> +-<> ++ echo '(compiler::link nil "${OUT}/lisp" (format nil "(progn (let ((*load-path* (cons ~S *load-path*))(si::*load-types* ~S)) (compiler::emit-fn t))(when (fboundp (quote si::sgc-on)) (si::sgc-on t))(setq compiler::*default-system-p* t))" si::*system-directory* (quote (list ".lsp"))) "${OBJ}/${SYS}/lib/cfuns-c.o ${OBJ}/${SYS}/lib/sockio-c.o ${OBJ}/${SYS}/lib/libspad.a")' | gcl + @echo 13 finished system build on `date` | tee >gcldir + + ccldir: ${LSP}/ccl/Makefile +--- ./src/algebra/Makefile.pamphlet.orig 2004-07-15 02:15:39.000000000 +0000 ++++ ./src/algebra/Makefile.pamphlet 2004-07-15 02:16:48.000000000 +0000 +@@ -35190,7 +35190,8 @@ + @ cp ${SRC}/doc/gloss.text ${OUT} + @ cp ${SRC}/doc/topics.data ${MID} + @ cp ${SRC}/doc/topics.data ${OUT} +- @ (cd ${MID} ; echo ')lisp (make-databases "" nil)' | ${INTERPSYS} ) ++# @ (cd ${MID} ; echo ')lisp (make-databases "" nil)' | ${INTERPSYS} ) ++ @ (cp ${SRC}/../debian/*.daase ${MID}) + @ cp ${MID}/*.daase ${OUT} + @ echo "databases up to date" >${INT}/algebra/dbcomplete + +--- ./src/boot/Makefile.pamphlet.orig 2004-06-27 15:00:58.000000000 +0000 ++++ ./src/boot/Makefile.pamphlet 2004-07-05 16:19:42.000000000 +0000 +@@ -1151,7 +1151,8 @@ + expansion. Adding a single quote symbol will break this expansion. + + <>= +-CMD0= (progn (mapcar (function (lambda (x) (load x))) (quote (${OBJS1}))) (system::save-system "${SAVESYS}")) ++CMD0= (compiler::link (quote (${OBJS1})) "${SAVESYS}" (format nil "(let ((*load-path* (cons ~S *load-path*))(si::*load-types* ~S)) (compiler::emit-fn t)) (when (fboundp (quote si::sgc-on)) (si::sgc-on t)) (setq compiler::*default-system-p* t)" si::*system-directory* (quote (list ".lsp")))) ++#CMD0= (progn (mapcar (function (lambda (x) (load x))) (quote (${OBJS1}))) (system::save-system "${SAVESYS}")) + + @ + \subsection{boothdr.lisp \cite{1}} +--- ./src/interp/Makefile.pamphlet.orig 2004-06-27 15:01:27.000000000 +0000 ++++ ./src/interp/Makefile.pamphlet 2004-07-05 16:43:38.000000000 +0000 +@@ -616,8 +616,31 @@ + @ echo '(load "${OUT}/c-util")' >> ${OUT}/makedep.lisp + @ echo '(unless (probe-file "${OUT}/g-util.${O}") (compile-file "${OUT}/g-util.${LISP}" :output-file "${OUT}/g-util.${O}"))' >> ${OUT}/makedep.lisp + @ echo '(load "${OUT}/g-util")' >> ${OUT}/makedep.lisp ++# @ (cd ${MNT}/${SYS}/bin ; \ ++# echo '(progn (load "${OUT}/makedep.lisp") (spad-save "${DEPSYS}"))' | ${LISPSYS}) + @ (cd ${MNT}/${SYS}/bin ; \ +- echo '(progn (load "${OUT}/makedep.lisp") (spad-save "${DEPSYS}"))' | ${LISPSYS}) ++ echo '(progn \ ++ (setq si::*collect-binary-modules* t) \ ++ (load "${OUT}/makedep.lisp") \ ++ (compiler::link \ ++ (remove-duplicates si::*binary-modules* :test (quote equal)) \ ++ "$(DEPSYS)" \ ++ (format nil "\ ++ (setq si::*collect-binary-modules* t) \ ++ (let ((si::*load-path* (cons ~S si::*load-path*))\ ++ (si::*load-types* ~S))\ ++ (compiler::emit-fn t))\ ++ (load \"$(OUT)/makedep.lisp\")\ ++ (gbc t)\ ++ (when si::*binary-modules* \ ++ (error si::*binary-modules*))\ ++ (setq si::collect-binary-modules* nil si::*binary-modules* nil)\ ++ (gbc t)\ ++ (when (fboundp (quote si::sgc-on)) (si::sgc-on t))\ ++ (setq compiler::*default-system-p* t)\ ++ " si::*system-directory* (quote (list ".lsp")))\ ++ "" \ ++ nil))' | $(LISPSYS)) + @ echo 4 ${DEPSYS} created + + @ +@@ -669,8 +689,36 @@ + @ echo '#+:akcl (setq compiler::*suppress-compiler-notes* t)' >> ${OUT}/makeint.lisp + @ echo '#+:akcl (si::gbc-time 0)' >> ${OUT}/makeint.lisp + @ echo '#+:akcl (setq si::*system-directory* "${SPAD}/bin/")' >> ${OUT}/makeint.lisp ++# @ (cd ${OBJ}/${SYS}/bin ; \ ++# echo '(progn (gbc t) (load "${OUT}/makeint.lisp") (gbc t) (user::spad-save "${SAVESYS}"))' | ${LISPSYS} ) + @ (cd ${OBJ}/${SYS}/bin ; \ +- echo '(progn (gbc t) (load "${OUT}/makeint.lisp") (gbc t) (user::spad-save "${SAVESYS}"))' | ${LISPSYS} ) ++ echo '(progn \ ++ (setq si::*collect-binary-modules* t)\ ++ (setq x si::*system-directory*)\ ++ (load "${OUT}/makeint.lisp")\ ++ (setq si::*system-directory* x)\ ++ (unintern (quote x))\ ++ (compiler::link \ ++ (remove-duplicates si::*binary-modules* :test (quote equal))\ ++ "$(SAVESYS)" \ ++ (format nil "\ ++ (let ((si::*load-path* (cons ~S si::*load-path*))\ ++ (si::*load-types* ~S))\ ++ (compiler::emit-fn t))\ ++ (setq si::*collect-binary-modules* t)\ ++ (setq x si::*system-directory*)\ ++ (load \"$(OUT)/makeint.lisp\")\ ++ (setq si::*system-directory* x)\ ++ (unintern (quote x))\ ++ (when si::*binary-modules* \ ++ (error si::*binary-modules*))\ ++ (setq si::collect-binary-modules* nil si::*binary-modules* nil)\ ++ (gbc t)\ ++ (when (fboundp (quote si::sgc-on)) (si::sgc-on t))\ ++ (setq compiler::*default-system-p* t)\ ++ " si::*system-directory* (quote (list ".lsp")))\ ++ "$(OBJ)/$(SYS)/lib/sockio-c.o $(OBJ)/$(SYS)/lib/cfuns-c.o $(OBJ)/$(SYS)/lib/libspad.a" \ ++ nil))' | $(LISPSYS)) + @ echo 6 ${SAVESYS} created + @ cp ${SAVESYS} ${AXIOMSYS} + @ echo 6a ${AXIOMSYS} created +--- src/interp/nlib.lisp.pamphlet~ 2004-05-24 22:53:55.000000000 +0000 ++++ src/interp/nlib.lisp.pamphlet 2004-07-19 19:59:00.000000000 +0000 +@@ -295,7 +295,16 @@ + (defun rpackfile (filespec) + (setq filespec (make-filename filespec)) + (if (string= (pathname-type filespec) "NRLIB") +- (recompile-lib-file-if-necessary (concat (namestring filespec) "/code.lsp")) ++ (let* ((base (pathname-name filespec)) ++ (code (concatenate 'string (namestring filespec) "/code.lsp")) ++ (temp (concatenate 'string (namestring filespec) "/" base ".lsp")) ++ (o (make-pathname :type "o"))) ++ (si::system (format nil "cp ~S ~S" code temp)) ++ (recompile-lib-file-if-necessary temp) ++ (si::system (format nil "mv ~S ~S~%" ++ (namestring (merge-pathnames o temp)) ++ (namestring (merge-pathnames o code))))) ++ ;(recompile-lib-file-if-necessary (concat (namestring filespec) "/code.lsp")) + ;; only pack non libraries to avoid lucid file handling problems + (let* ((rstream (rdefiostream (list (cons 'file filespec) (cons 'mode 'input)))) + (nstream nil) +============================================================================= + +Take care, + +Mark Murray writes: + +> Hi +> +> I have build breakage with GCL-2.6.3 on FreeBSD (IIRC, its also there +> with GCL-2.6.2). +> +> Like this: +> Loading /usr/ports/math/axiom/work/axiom-0.0/int/interp/setq.lisp +> Finished loading /usr/ports/math/axiom/work/axiom-0.0/int/interp/setq.lisp +> Loading /usr/ports/math/axiom/work/axiom-0.0/int/interp/property.lisp +> Finished loading /usr/ports/math/axiom/work/axiom-0.0/int/interp/property.lisp +> Loading /usr/ports/math/axiom/work/axiom-0.0/int/interp/unlisp.lisp +> Finished loading /usr/ports/math/axiom/work/axiom-0.0/int/interp/unlisp.lisp +> Loading /usr/ports/math/axiom/work/axiom-0.0/int/interp/foam_l.lisp +> Finished loading /usr/ports/math/axiom/work/axiom-0.0/int/interp/foam_l.lisp +> Loading /usr/ports/math/axiom/work/axiom-0.0/int/interp/axext_l.lisp +> Finished loading /usr/ports/math/axiom/work/axiom-0.0/int/interp/axext_l.lisp +> +> Error: The function COMPILER::MAKE-PROCLAIMS is undefined. +> Fast links are on: do (si::use-fast-links nil) for debugging +> Error signalled by PROGN. +> Backtrace: system:universal-error-handler > evalhook > load > build-depsys > make-depsys > let > let > unwind-protect > progn > lambda > lambda-closure > block > apply > APPLY +> +> Broken at READ. +> >> +> NIL +> >> +> "/usr/ports/math/axiom/work/axiom-0.0/obj/freebsd/bin/depsys" +> BOOT>>gmake[3]: *** [/usr/ports/math/axiom/work/axiom-0.0/obj/freebsd/bin/depsys] Error 255 +> gmake[3]: Leaving directory `/usr/ports/math/axiom/work/axiom-0.0/src/interp' +> gmake[2]: *** [interpdir] Error 2 +> gmake[2]: Leaving directory `/usr/ports/math/axiom/work/axiom-0.0/src' +> gmake[1]: *** [srcdir] Error 2 +> gmake[1]: Leaving directory `/usr/ports/math/axiom/work/axiom-0.0' +> gmake: *** [all] Error 2 +> *** Error code 2 +> +> Stop in /usr/ports/math/axiom. +> +> +> +> +> Any ideas? I am clueless with Lisp. + +\start +Date: Mon, 19 Jul 2004 19:45:37 -0400 +From: root +To: camm@enhanced.com +Subject: Re: [Axiom-developer] Build breakage on FreeBSD with GCL-2.6.3 + +Camm, Mark, + +Perhaps we should make a separate system build name such as + 'external' +to handle these builds. + +The design of the axiom makefile build tree is that each system, +such as linux, which requires changes in the makefiles to build +has its own build name. Thus, to build on a solaris system one +sets the AXIOM variable: + + (path)/axiom/mnt/solaris + +which causes the top level Makefile to dynamically generate + + Makefile.solaris + +These changes for an external lisp should properly be added to +the top level Makefile.pamphlet, a new build name such as 'external' +should be defined. Then the AXIOM variable would be set to: + + (path)/axiom/mnt/external + +which causes the top level Makefile to dynamically generate + + Makefile.external + +to handle all of the changes. I'll look at your patches and +see if I can incorporate them into the main branch rather than +apply them as patches. + +\start +Date: Mon, 19 Jul 2004 20:23:52 -0400 +From: root +To: mark@grondar.org +Subject: Re: [Axiom-developer] Build breakage on FreeBSD with GCL-2.6.3 + +Mark, + +My system build has progressed past the make-depsys and is now +successfully compiling the algebra. So whatever the issue you +are have found is, it isn't present here. + +Are you building with GCLVERSION=gcl-2.6.2a? + +\start +Date: Tue, 20 Jul 2004 08:19:13 +0100 +From: Mark Murray +To: daly@idsi.net +Subject: Re: [Axiom-developer] Build breakage on FreeBSD with GCL-2.6.3 + +root writes: +> My system build has progressed past the make-depsys and is now +> successfully compiling the algebra. So whatever the issue you +> are have found is, it isn't present here. +> +> Are you building with GCLVERSION=gcl-2.6.2a? + +No. I'm building with GCLVERSION=gcl-system and the patches that I sent +you last November and a week or two ago. + +The "internal" GCL build is completely non-usable for us FreeBSD +folks, sorry! + +\start +Date: Tue, 20 Jul 2004 08:16:50 +0100 +From: Mark Murray +To: daly@idsi.net +Subject: Re: [Axiom-developer] Build breakage on FreeBSD with GCL-2.6.3 +Cc: camm@enhanced.com + +root writes: +> Perhaps we should make a separate system build name such as +> 'external' to handle these builds. + +The patches that I sent you do exactly this! (Except I call it gcl-system) + +> The design of the axiom makefile build tree is that each system, +> such as linux, which requires changes in the makefiles to build +> has its own build name. Thus, to build on a solaris system one +> sets the AXIOM variable: +> +> (path)/axiom/mnt/solaris +> +> which causes the top level Makefile to dynamically generate +> +> Makefile.solaris +> +> These changes for an external lisp should properly be added to +> the top level Makefile.pamphlet, a new build name such as 'external' +> should be defined. Then the AXIOM variable would be set to: +> +> (path)/axiom/mnt/external +> +> which causes the top level Makefile to dynamically generate +> +> Makefile.external +> +> to handle all of the changes. I'll look at your patches and +> see if I can incorporate them into the main branch rather than +> apply them as patches. + +I sent you patches that do this for Makefile.freebsd. + +\start +Date: 20 Jul 2004 14:56:56 -0400 +From: Camm Maguire +To: daly@idsi.net +Subject: Re: [Axiom-developer] Build breakage on FreeBSD with GCL-2.6.3 + +Greetings! + +I think this is a good idea, Tim! Please let me know if you need my +assistance. + +Take care, + +root writes: + +> Camm, Mark, +> +> Perhaps we should make a separate system build name such as +> 'external' +> to handle these builds. +> +> The design of the axiom makefile build tree is that each system, +> such as linux, which requires changes in the makefiles to build +> has its own build name. Thus, to build on a solaris system one +> sets the AXIOM variable: +> +> (path)/axiom/mnt/solaris +> +> which causes the top level Makefile to dynamically generate +> +> Makefile.solaris +> +> These changes for an external lisp should properly be added to +> the top level Makefile.pamphlet, a new build name such as 'external' +> should be defined. Then the AXIOM variable would be set to: +> +> (path)/axiom/mnt/external +> +> which causes the top level Makefile to dynamically generate +> +> Makefile.external +> +> to handle all of the changes. I'll look at your patches and +> see if I can incorporate them into the main branch rather than +> apply them as patches. + +\start +Date: Tue, 20 Jul 2004 19:28:55 -0400 +From: "Page, Bill" +To: axiom-developer@nongnu.org +Subject: [Axiom-developer] RE: lattice drawing program + +Tim, + +On Tuesday, July 13, 2004 8:14 AM you wrote: +> +> Remember the problem of drawing the algebra lattice? +> I've looked into it a bit more... +> + +When you get a chance I would really appreciate your opinions +about my first attempts to draw and navigate through Axiom's +algebra lattice (actually, directed graph) using TouchGraph as +part of MathAction, the Axiom Wiki. It is sort of like the old +Axiom hyperdoc (only better, I think :) + +The graph is built automatically by the interface to TouchGraph +based on the Axiom Algebra Database. I hope to get some help +from other people to complete this Project to convert the +algebra pamphlet and spad files to AxiomWiki page format. The +conversion is not difficult but there are a lot of files, so +it is quite time consuming - as you so very well know Tim! + +Anyway, so far I have only about 15 of the major Axiom +categories and a few domain. But already you can get a good +idea of how this might work. + +Please take a look here: + + http://page.axiom-developer.org/zope/mathaction/withNavigator + +This will start the Axiom wiki with a graphical "navigator" in +the top panel. Later you will probably want to increase the size +of the panel containing the graph. You can do this by positioning +the cursor just under the top horizontal slider bar until you +see the cursor change to a up-down arrow. Hold the left mouse +button down and drag the border down to make the top panel bigger. + +Double-clicking on a node of the graph in the upper panel will +cause the contents of the lower panel to change. You can also use +a "right-click" on the node to hide, expand, re-center etc. the +node. You can click-and-hold a node to drag it to another part +of the panel. The graph will respond like a network of springs +with the edges stretching and then relaxing into a new shape. +Clicking and holding somewhere else on the upper panel other +than a node will "drag" the whole graph up-down or left right +so that you can pan into a new area. The slider bar at the +bottom of the top panel changes the scale. It takes a little +practice to play with this, but it is rather fun! + +Now do a search for say, 'semigroup' by typing that word in the +box at the to right of the lower panel. Pressing Enter will +perform a search for any pages contain the word. Click on the +link labelled 'SemiGroup' under the heading Page Names. + +Notice how the graph in the top panel changes - re-centering +on the page that you selected. One of the prominent features +you will notice right away is the Integer node with what seems +like a "pin-cushion" of links surrounding it. Since this is +detail we don't need right now, use a "right-click" on the +Integer node to hide it. Now you will see a reasonable sized +graph centred on the 'SemiGroup' category. The graph displays +the relationships between the other categorys, domains and +packages "near" SemiGroup. + +The links between the nodes are build automatically by parsing +the autoloading messages generated by the Axiom compiler. Some +of the nodes will also be "documentation" nodes as well as the +library code nodes themselves. Documentation nodes can make +reference to different parts of the graph and serve as a +further add to navigating the structure. + +Axiom commands that are run using the option + + )set message autoload on + +will also generate hyperlink references to the packages, +domains and categorys required by the code. I have also set +up the other parts of the web site + + http://page.axiom-developer.org + +so these hyperlink references point back to the nodes in +the Axiom algebra database in the MathAction wiki. + + etc. etc. ... + +I've probably already spent too much time having fun playing +with this, so I am interested to hear what other people think. +Will this be a useful tool to help manage the complexity of +Axiom's algebraic structures? + +So everyone, please give it a try and give me some feedback... + +\start +Date: Tue, 20 Jul 2004 23:49:09 -0400 +From: root +To: axiom-developer@nongnu.org +Subject: [Axiom-developer] gcl-2.6.3 + +The system has been updated and verified to work with gcl-2.6.3. + +\start +Date: Wed, 21 Jul 2004 12:24:52 -0400 +From: Camm Maguire +To: root +Subject: [Axiom-developer] FYI: CAS extension design paper mentioning + +... can be found here: + +http://www.cs.berkeley.edu/~fateman/papers/addformat.pdf + +\start +Date: Wed, 21 Jul 2004 11:31:33 -0400 +From: Tim Daly +To: camm@enhanced.com +Subject: [Axiom-developer] fateman paper mentioning axiom + +re: fateman paper mentioning axiom + +downloaded it. thanks for the pointer. + +\start +Date: Thu, 22 Jul 2004 12:33:13 -0400 +From: "Bill Page" +To: "'Bob McElrath'" +Subject: RE: [Axiom-developer] RE: lattice drawing program + +Bob, + +I think I now understand how the darcs repository works, so +I have set up two repositories for the AxiomWiki project +that you can get to from here: + + http://page.axiom-developer.org/repository.html + +One contains the patches to LatexWiki to include Axiom, +the other contains minor patches to Zwiki. + +Please let me know if you can access these or if I have done +something wrong in using darcs. + +I am starting to like darcs, so if everything is ok, with +Tim Daly's approval I might setup a repository here also +for Axiom itself. Ideally, I would like to link this Axiom +repository to changes that might be made to Axiom library +code online from the Axiom Wiki. + +\start +Date: Thu, 22 Jul 2004 11:39:02 -0400 +From: Tim Daly +To: bill.page1@sympatico.ca, bob+axiom@mcelrath.org +Subject: [Axiom-developer] lattice drawing program + +Bill, + +It's easier to apologize than to get permission :-) +You have blanket permission to set up what you need. +I trust you to act reasonably. +Try to keep me informed :-) + +\start +Date: Thu, 22 Jul 2004 09:51:36 -0700 +From: Bob McElrath +To: Bill Page +Subject: Re: [Axiom-developer] RE: lattice drawing program +Cc: zwiki@zwiki.org + +Awesome! I will be travelling to conferences for the next month, so I'm +not sure I will have time to work on this again until the end of August. +:( + +You should let the zwiki folks know of your repository, so they can pull +your patches into the next release. They are very regular with monthly +releases. + +Bill Page [bill.page1@sympatico.ca] wrote: +> Bob, +> +> I think I now understand how the darcs repository works, so +> I have set up two repositories for the AxiomWiki project +> that you can get to from here: +> +> http://page.axiom-developer.org/repository.html +> +> One contains the patches to LatexWiki to include Axiom, +> the other contains minor patches to Zwiki. +> +> Please let me know if you can access these or if I have done +> something wrong in using darcs. +> +> I am starting to like darcs, so if everything is ok, with +> Tim Daly's approval I might setup a repository here also +> for Axiom itself. Ideally, I would like to link this Axiom +> repository to changes that might be made to Axiom library +> code online from the Axiom Wiki. +> +> Thanks. + +\start +Date: Thu, 22 Jul 2004 18:34:12 -0700 +From: Bob McElrath +To: Bill Page +Subject: [Axiom-developer] LatexWiki/Axiom wide output + +Axiom can sometimes generate output that is wider than a usual printed +page, generating LatexWiki images that are black on the part that is +wider than the page. See: + + http://test.axiom-developer.org/Members/mcelrath/Kxaxiomtest + +For an example. This can be partially worked around by adding the +-g10000x10000 option to ghostscript, where 10000 is the resolution in +pixels of the output png. However this makes for larger temporary +files, longer ghostscript running, and longer PIL processing to chop the +image down to size. + +I have been wrestling with getting ghostscript to be more efficent about +this for some time. It would be ideal if I could get it to generate +png's sized according to the bounding box, but it will not. If you have +any ideas... + +Axiom should also be chopping up its output so that it is not wider than +a page. + +\start +Date: Thu, 22 Jul 2004 22:29:25 -0400 +From: "Bill Page" +To: "'Bob McElrath'" +Subject: RE: [Axiom-developer] LatexWiki/Axiom wide output + +Bob, + +On Thursday, July 22, 2004 9:34 PM you wrote: +> ... +> Axiom should also be chopping up its output so that it is +> not wider than a page. + +A C program written by Robert Sutor exists to do that. +I have a version of the TeXmacs interface for Axiom that +includes this program but the developer of TeXmacs said +that he preferred to enhance TeXmacs native ability to +split long LaTeX lines, so it is not currently included +in the TeXmacs distribution. + +Anyway, I am planning to include this in the LatexWiki +Axiom interface ... just as soon as I have a enough time +to work out the details of calling a C subroutine from +Python. I know it is quite easily done, but do you happen +to know where I can find a simple example? + +\start +Date: Thu, 22 Jul 2004 19:35:25 -0700 +From: Bob McElrath +To: Bill Page +Subject: Re: [Axiom-developer] LatexWiki/Axiom wide output + +Bill Page [bill.page1@sympatico.ca] wrote: +> Bob, +> +> On Thursday, July 22, 2004 9:34 PM you wrote: +> > ... +> > Axiom should also be chopping up its output so that it is +> > not wider than a page. +> +> A C program written by Robert Sutor exists to do that. +> I have a version of the TeXmacs interface for Axiom that +> includes this program but the developer of TeXmacs said +> that he preferred to enhance TeXmacs native ability to +> split long LaTeX lines, so it is not currently included +> in the TeXmacs distribution. +> +> Anyway, I am planning to include this in the LatexWiki +> Axiom interface ... just as soon as I have a enough time +> to work out the details of calling a C subroutine from +> Python. I know it is quite easily done, but do you happen +> to know where I can find a simple example? + +pydoc os + +or use the existing 'runCommand' that I wrote. (there are enhancements +to this function in my darcs, BTW) Unless the algorithm is terribly +complicated, it might be worthwhile to just port the algorithm to +native python. Python excels at string-processing anyway. + +\start +Date: Fri, 23 Jul 2004 17:14:38 -0400 +From: xli96@uwo.ca +To: axiom-developer@nongnu.org +Subject: [Axiom-developer] how to build functions into kernel? + +> what's in the Lisp kernel? + +> how to build performance-critical parts of the libraries into the kernel? + +\start +Date: Fri, 23 Jul 2004 18:24:15 -0400 +From: root +To: xli96@uwo.ca +Subject: Re: [Axiom-developer] how to build functions into kernel? + +The correct method to modify the lisp kernel would be to use UFFI +(the universal foreign function interface). This should allow you +to use C code. + +The question, however, is why. With proper type optimization it +is possible to generate lisp that is nearly optimal. I've seen +CAR, CDR, and the various mathematical operations like + reduced +to a single generated machine instruction. Except for truly +data-intensive numeric operations, like matrix multiply, there +is not much gain. The huge gains in time come from better high +level algorithms. You don't have to perform a 1000x1000 matrix +multiply if you can prove the result must be zero before you start. + + +\start +Date: Thu, 29 Jul 2004 18:33:05 +0200 +From: Marcus Better +To: axiom-developer@nongnu.org +Subject: [Axiom-developer] Compiling spad files on Debian + +Hi, + +I'm using the Axiom package for Debian, version 0.20040128-4. I try to +compile my own package (in a spad file) using + )comp mypackage + +It seems to compile the LISP code, but then the C compiler complains: + +End of Pass 1. +End of Pass 2. +code.c:2:24: cmpinclude.h: No such file or directory +In file included from code.c:3: +code.h:3: error: parse error before "LI1" +code.h:9: error: parse error before "LI3" +code.h:32: error: parse error before "LnkTLI7" +...(lots of errors follow) + +Is cmpinclude.h missing or am I doing something wrong? + +\start +Date: Thu, 29 Jul 2004 11:38:33 -0400 +From: Tim Daly +To: marcusb@math.su.se +Subject: [Axiom-developer] Compileing spad files on Debian + +Marcus, + +Send me the source code and let me try it here. + +\start +Date: Thu, 29 Jul 2004 12:18:07 -0400 +From: Tim Daly +To: dirk@eddelbuettel.com, bill.page1@sympatico.ca +Subject: [Axiom-developer] (no subject) +Cc: sam@integretechpub.com, manuel.bronstein@sophia.inria.fr, wen-shin.lee@sophia.inria.fr, volcheck@speakeasy.net + +Reply-to: daly@idsi.net +Subject: Quantian +--text follows this line-- +Dirk, Bill, + +I want to introduce you two. + +Dirk Eddelbuettel is responsible for Quantian, a Knoppix-live CD +distribution of mathematical software. He maintains the distribution +at: http://dirk.eddelbuettel.com/quantian.html + +Quantian is a very sweet idea. Basically a lot of mathematical +software is collected on one linux distribution. I'd like this +distribution to eventually get distributed as the "standard" +computational mathematics platform. + +Bill Page is responsible for the wiki pages (originally Axiom, now +expanding to REDUCE and possibly others) which is another sweet idea. +It allows online creation of mathematics. The wiki may eventually get +split out as a standalone front end that can be packaged with Axiom or +other systems. + +I think there is the possibility of a couple different events that +could quickly come together with little effort. + +First to have a merger that puts Bill's work on Quantian. This would +bring the wiki front end to other systems. + +Second to promote Quantian as a platform for doing computational +mathematics. Dirk has already collected a fair number of systems onto +one CD. If we can coordinate efforts we could arrange to have Quantian +CDs distributed at all of the math-related conferences. + +Third to coordinate the next ISSAC conference to have at least poster +sessions demonstrating the use of the Page+Quantian effort. This would +involve actively creating some demonstrations using various systems. + +Thoughts? + +\start +Date: Thu, 29 Jul 2004 12:18:07 -0400 +From: Tim Daly +To: dirk@eddelbuettel.com, bill.page1@sympatico.ca +Subject: [Axiom-developer] (no subject) +Cc: sam@integretechpub.com, manuel.bronstein@sophia.inria.fr, wen-shin.lee@sophia.inria.fr, volcheck@speakeasy.net + +Reply-to: daly@idsi.net +Subject: Quantian +--text follows this line-- +Dirk, Bill, + +I want to introduce you two. + +Dirk Eddelbuettel is responsible for Quantian, a Knoppix-live CD +distribution of mathematical software. He maintains the distribution +at: http://dirk.eddelbuettel.com/quantian.html + +Quantian is a very sweet idea. Basically a lot of mathematical +software is collected on one linux distribution. I'd like this +distribution to eventually get distributed as the "standard" +computational mathematics platform. + +Bill Page is responsible for the wiki pages (originally Axiom, now +expanding to REDUCE and possibly others) which is another sweet idea. +It allows online creation of mathematics. The wiki may eventually get +split out as a standalone front end that can be packaged with Axiom or +other systems. + +I think there is the possibility of a couple different events that +could quickly come together with little effort. + +First to have a merger that puts Bill's work on Quantian. This would +bring the wiki front end to other systems. + +Second to promote Quantian as a platform for doing computational +mathematics. Dirk has already collected a fair number of systems onto +one CD. If we can coordinate efforts we could arrange to have Quantian +CDs distributed at all of the math-related conferences. + +Third to coordinate the next ISSAC conference to have at least poster +sessions demonstrating the use of the Page+Quantian effort. This would +involve actively creating some demonstrations using various systems. + +Thoughts? + +\start +Date: Thu, 29 Jul 2004 13:37:30 -0500 +From: Dirk Eddelbuettel +To: Tim Daly +Subject: [Axiom-developer] Re: your mail +Cc: sam@integretechpub.com, manuel.bronstein@sophia.inria.fr, bill.page1@sympatico.ca, wen-shin.lee@sophia.inria.fr, dirk@eddelbuettel.com, Ed Pegg Jr , volcheck@speakeasy.net + +Hi Tim, + +Excellent to get email from you -- I had been meaning to send you one to see +where your efforts with respect to Quantian for ISSAC went... + +On Thu, Jul 29, 2004 at 12:18:07PM -0400, Tim Daly wrote: +> Reply-to: daly@idsi.net +> Subject: Quantian +> --text follows this line-- +> Dirk, Bill, +> +> I want to introduce you two. + +Hi Bill :) + +> Dirk Eddelbuettel is responsible for Quantian, a Knoppix-live CD +> distribution of mathematical software. He maintains the distribution +> at: http://dirk.eddelbuettel.com/quantian.html + +These days it is actually a dvd as 700mb was too small, even at approx 3:1 +compression. With the dvd size, we can pack much more documentation -- I am +planning to eventually put almost all (that is easily available, which means +Debian doc packages for the binary packages) in there. + +The most recent release came in at 1.2gb. I have a few HOWTOs on the site +showing how to boot that even if you don't have a dvd drive, let alone a +writer. Also, within days of "going dvd" I had heard from two dvd vendors +that Quantian dvds available for just a few dollars. + +> Quantian is a very sweet idea. Basically a lot of mathematical +> software is collected on one linux distribution. I'd like this +> distribution to eventually get distributed as the "standard" +> computational mathematics platform. + +Yes, though Quantian tries to stay somewhat agnostic of disciplines. Hence, +my focus is not primarily math -- it just so happens that a large number of +CAS systems were already available as good Debian packages, so I included +them. Personally, I work more on the empirical front. + +That said, we have a lot of "quantiative" or "numerical" or "scientific" +software in here which make Quantian appealing to different "disciplines" -- +I really welcome input like this and will try to accomate specific requests +where I can as this tends to improve things for others as a side effect. An +almost free lunch, if you wish. + +I will also CC Ed Pegg, who is into math (as editor of Math Games at the +MAA), and who has been a supporter of Quantian for a while -- and has +contributed a very nice background image too. So everybody, meet Ed. He may +have some thoughts on making Quantian a base for math endeavours. + +> Bill Page is responsible for the wiki pages (originally Axiom, now +> expanding to REDUCE and possibly others) which is another sweet idea. +> It allows online creation of mathematics. The wiki may eventually get +> split out as a standalone front end that can be packaged with Axiom or +> other systems. +> +> I think there is the possibility of a couple different events that +> could quickly come together with little effort. +> +> First to have a merger that puts Bill's work on Quantian. This would +> bring the wiki front end to other systems. + +The best way for this would be decent Debian packages. It doesn't have to be +in the main Debian archive, though that is preferable. I do take for example +Scientific Python packages from a contributor site as .deb packages, and it +is the same with the giac/xcas CAS by B. Parisse. + +> Second to promote Quantian as a platform for doing computational +> mathematics. Dirk has already collected a fair number of systems onto +> one CD. If we can coordinate efforts we could arrange to have Quantian +> CDs distributed at all of the math-related conferences. + +That would be sweet. The cd/dvd printer may help and give volume discounts. + +> Third to coordinate the next ISSAC conference to have at least poster +> sessions demonstrating the use of the Page+Quantian effort. This would +> involve actively creating some demonstrations using various systems. + +I'd be up for that too, though my Ph.D. is in math econ. I better say that +now as I don't want to get you guys thrown out of your conferences if you +work with an Economist :) + +> Thoughts? + +Sounds good, let's keep it rolling. + +Dirk + +\start +Date: Thu, 29 Jul 2004 16:01:28 -0500 +From: Ed Pegg Jr +To: Dirk Eddelbuettel +Subject: [Axiom-developer] Re: your mail +Cc: sam@integretechpub.com, manuel.bronstein@sophia.inria.fr, bill.page1@sympatico.ca, wen-shin.lee@sophia.inria.fr, dirk@eddelbuettel.com, volcheck@speakeasy.net + +> I will also CC Ed Pegg, who is into math (as editor of Math Games at the +> MAA), and who has been a supporter of Quantian for a while -- and has +> contributed a very nice background image too. So everybody, meet Ed. He may +> have some thoughts on making Quantian a base for math endeavours. + +My initial desire is a page or something that will allow a new user to +do something neat with each program. + +The Axiom WIKI (what is the URL?) would be nice for that, since +experts in a particular area could add things to it. For example -- +Python ... here's a quick program ... here's how to run it ... here's +links to Python material. + +Perhaps later, http://planetmath.org/ and +http://en.wikipedia.org/wiki/Mathematics can have individual math +entries updated with short programs, with links to the appropriate +languages and Quantian (which will be the program with everything). + +Incidently, I can turn over quantian.org (currently a redirect) to +anyone, if that would be a good spot for a WIKI. I have hosting +arranged at Eskimo.com + +\start +Date: Thu, 29 Jul 2004 16:01:28 -0500 +From: Ed Pegg Jr +To: Dirk Eddelbuettel +Subject: [Axiom-developer] Re: your mail +Cc: sam@integretechpub.com, manuel.bronstein@sophia.inria.fr, bill.page1@sympatico.ca, wen-shin.lee@sophia.inria.fr, dirk@eddelbuettel.com, volcheck@speakeasy.net + +> I will also CC Ed Pegg, who is into math (as editor of Math Games at the +> MAA), and who has been a supporter of Quantian for a while -- and has +> contributed a very nice background image too. So everybody, meet Ed. He may +> have some thoughts on making Quantian a base for math endeavours. + +My initial desire is a page or something that will allow a new user to +do something neat with each program. + +The Axiom WIKI (what is the URL?) would be nice for that, since +experts in a particular area could add things to it. For example -- +Python ... here's a quick program ... here's how to run it ... here's +links to Python material. + +Perhaps later, http://planetmath.org/ and +http://en.wikipedia.org/wiki/Mathematics can have individual math +entries updated with short programs, with links to the appropriate +languages and Quantian (which will be the program with everything). + +Incidently, I can turn over quantian.org (currently a redirect) to +anyone, if that would be a good spot for a WIKI. I have hosting +arranged at Eskimo.com + +\start +Date: Thu, 29 Jul 2004 17:22:05 -0400 +From: "Bill Page" +To: "'Ed Pegg Jr'" +Subject: RE: [Axiom-developer] Re: your mail +Cc: sam@integretechpub.com, manuel.bronstein@sophia.inria.fr, wen-shin.lee@sophia.inria.fr, dirk@eddelbuettel.com, 'Dirk Eddelbuettel' , volcheck@speakeasy.net + +On Thursday, July 29, 2004 5:01 PM Ed Pegg Jr wrote: +> ... +> My initial desire is a page or something that will allow a new +> user to do something neat with each program. +> +> The Axiom WIKI (what is the URL?) would be nice for that, since +> experts in a particular area could add things to it. + +See: + + http://page.axiom-developer.org + +> For example -- Python ... here's a quick program ... here's how +> to run it ... here's links to Python material. + +Python? + +> +> Perhaps later, http://planetmath.org/ and +> http://en.wikipedia.org/wiki/Mathematics can have individual math +> entries updated with short programs, with links to the appropriate +> languages and Quantian (which will be the program with everything). +> + +Yes, I think it would be great to have "active" mathematics based on +Axiom in planetmath and wikipedia. + +> Incidently, I can turn over quantian.org (currently a redirect) to +> anyone, if that would be a good spot for a WIKI. I have hosting +> arranged at Eskimo.com +> + +I am willing to build a mirror site based on page.axiom-developer.org +at another location. Currently it runs on a RedHat 9 system. I need +to install Zope, Zwiki, LatexWiki + my extensions, Plone, Axiom etc. +And currently I use Apache to front for Zope (optional). + +\start +Date: Thu, 29 Jul 2004 17:22:05 -0400 +From: "Bill Page" +To: "'Ed Pegg Jr'" +Subject: RE: [Axiom-developer] Re: your mail +Cc: sam@integretechpub.com, manuel.bronstein@sophia.inria.fr, wen-shin.lee@sophia.inria.fr, dirk@eddelbuettel.com, 'Dirk Eddelbuettel' , volcheck@speakeasy.net + +On Thursday, July 29, 2004 5:01 PM Ed Pegg Jr wrote: +> ... +> My initial desire is a page or something that will allow a new +> user to do something neat with each program. +> +> The Axiom WIKI (what is the URL?) would be nice for that, since +> experts in a particular area could add things to it. + +See: + + http://page.axiom-developer.org + +> For example -- Python ... here's a quick program ... here's how +> to run it ... here's links to Python material. + +Python? + +> +> Perhaps later, http://planetmath.org/ and +> http://en.wikipedia.org/wiki/Mathematics can have individual math +> entries updated with short programs, with links to the appropriate +> languages and Quantian (which will be the program with everything). +> + +Yes, I think it would be great to have "active" mathematics based on +Axiom in planetmath and wikipedia. + +> Incidently, I can turn over quantian.org (currently a redirect) to +> anyone, if that would be a good spot for a WIKI. I have hosting +> arranged at Eskimo.com +> + +I am willing to build a mirror site based on page.axiom-developer.org +at another location. Currently it runs on a RedHat 9 system. I need +to install Zope, Zwiki, LatexWiki + my extensions, Plone, Axiom etc. +And currently I use Apache to front for Zope (optional). + +\start +Date: Thu, 29 Jul 2004 16:32:33 -0500 +From: Dirk Eddelbuettel +To: Bill Page +Subject: Re: [Axiom-developer] Re: your mail +Cc: sam@integretechpub.com, manuel.bronstein@sophia.inria.fr, wen-shin.lee@sophia.inria.fr, dirk@eddelbuettel.com, 'Dirk Eddelbuettel' , 'Ed Pegg Jr' , volcheck@speakeasy.net + +Wow, that Java navigator thingie is pretty neato :) + +On Thu, Jul 29, 2004 at 05:22:05PM -0400, Bill Page wrote: +> Yes, I think it would be great to have "active" mathematics based on +> Axiom in planetmath and wikipedia. +> +> > Incidently, I can turn over quantian.org (currently a redirect) to +> > anyone, if that would be a good spot for a WIKI. I have hosting +> > arranged at Eskimo.com +> > +> +> I am willing to build a mirror site based on page.axiom-developer.org +> at another location. Currently it runs on a RedHat 9 system. I need +> to install Zope, Zwiki, LatexWiki + my extensions, Plone, Axiom etc. +> And currently I use Apache to front for Zope (optional). + +I could pull in some Zope/Plone expertise from the folks currently hosting +Quantian at UW, but am pretty clueless with that system myself. + +That said, we can try on one of my Debian boxen at home. Could you work on +that via ssh? I would have to keep root access to myself, but Debian should +have most of what we need (but maybe not latexwiki). See below for a quick +apt-cache search. + +Dirk + + +edd@homebud:~> apt-cache search "^zope" +libroxen-zopegw - Zope relay module for the Roxen Challenger web server +zope - Open Source Web Application Server +zope-backtalk - A document annotation, editing, and production system - Zope +zope-book - Zope Open Content Book +zope-btreefolder2 - Zope folder that can contain many more objects efficiently +zope-callprofiler - profile your Zope website +zope-cmf - Zope Content Management Framework (CMF) +zope-cmfcalendar - Zope CMF Calendar +zope-cmfcore - Zope CMF Core services +zope-cmfdefault - Zope CMF Default (basic) content +zope-cmfforum - Zope Content Management Framework Forum Module +zope-cmfldap - Zope CMF LDAP membership management tools +zope-cmfpgforum - CMFpgForum is a CMF forum that uses a PostgreSQL database +zope-cmfphoto - Zope Content Management Framework Photo module +zope-cmfphotoalbum - Zope Content Management Framework Photo Album module +zope-cmfplone - A zope/cmf-based content management system +zope-cmftopic - Zope CMF Topic +zope-cmfworkflow - Zope CMF workflow module +zope-devguide - Zope Developer's Guide +zope-devguide-example - Example contained in the Zope Developer's Guide +zope-docfindereverywhere - Find documentation for a Zope product using a doc tab +zope-dtmlcalendar - Calendar DTML Tag - Zope +zope-emarket - Simple e-commerce system for Zope +zope-epoz - cross-browser WYSIWYG editor for Zope +zope-externaleditor - Zope External Editor +zope-extfile - Stores large files outside Zope database +zope-exuserfolder - XUF -- user authentication, properties and sessions +zope-formulator - A tool to create and validate web forms in Zope +zope-kinterbasdbda - Zope Database Adapter for Interbase/Firebird +zope-ldap - A driver for connecting Zope with Ldap system +zope-ldapuserfolder - The Zope LDAP user folder +zope-localizer - Helps build multilingual web sites and multilingual Zope products +zope-lockablefolder - variant of the standard Folder that can restrict access to its contents +zope-loginmanager - User Folder workalike and replacement for Zope +zope-mysqlda - A Zope Database Adapter for MySQL +zope-parsedxml - ParsedXML Zope Product +zope-photo - Zope product for managing digital images in Zope +zope-popyda - A Database Adapter connecting Zope and PostgreSQL +zope-psycopgda - Zope Database Adapter based on python-psycopg +zope-rdfgrabber - Zope Product to search foreign webpages by their RDF files +zope-replacesupport - Add search and replace functionality to TTW Zope objects +zope-sqlrelayda - SQL Relay Zope database adapter +zope-testcase - unit testing framework and test case for Zope +zope-textindexng2 - Full text index for Zope +zope-tinytable - Present tabular data in Zope +zope-tinytableplus - Present tabular data in Zope +zope-translationservice - A location-aware translation service for Zope +zope-ttwtype - Enables portal administrators to create new content types +zope-verbosesecurity - Helps to explain the reason for denied access +zope-xmlmethods - XMLMethods Zope Product +zope-zms - Content management for science, technology and medicine +zope-znavigator - Zope product for creating navigation bars +zope-zpatterns - Database Independence and Framework Integration for Zope +zope-zshell - command line interface to Zope +zope-zwiki - WikiWikiWeb on Zope +zope2.7 - Open Source Web Application Server +zopectl - Zope instances controlling utility +zopeedit - Helper Application for Zope External Editor +edd@homebud:~> apt-cache search "plone" +plone - A zope/cmf-based content management system +zope-cmfforum - Zope Content Management Framework Forum Module +zope-cmfpgforum - CMFpgForum is a CMF forum that uses a PostgreSQL database +zope-cmfphoto - Zope Content Management Framework Photo module +zope-cmfphotoalbum - Zope Content Management Framework Photo Album module +zope-cmfplone - A zope/cmf-based content management system +zope-epoz - cross-browser WYSIWYG editor for Zope +zope-ttwtype - Enables portal administrators to create new content types +edd@homebud:~> + +\start +Date: Thu, 29 Jul 2004 18:37:09 -0400 +From: "Bill Page" +To: +Subject: [Axiom-developer] REDUCE on test.axiom-developer.org + +Everyone: + +I have a very preliminary implementation of an interface +to REDUCE implemented on the test.axom-developer.org site. +Please see: + + http://test.axiom-developer.org/Members/billpage/TestReduce + +for some initial examples. + +I would appreciate the help of those Axiom developers who +know REDUCE (or want to learn) to test this. Let me know +what goes wrong, what is missing and especially any hints +and tips about security issues. + +\start +Date: Thu, 29 Jul 2004 20:26:15 -0400 +From: root +To: Bill.page1@sympatico.ca +Subject: [Axiom-developer] REDUCE vs Axiom + +Bill, + +Attached is the Rosetta document which details some of the differences +between Axiom and other system's syntax. In particular, it lists REDUCE. + +Tim + +================================================================= +\documentclass{book} +\normalsize\baselineskip=12pt +\parskip=0pt +\parindent=10pt +\tolerance=5000 +\pretolerance=5000 +\frenchspacing +\hangindent=10pt +\skip\footins=18pt +\global\textwidth 31pc \global\textheight 47pc +\headsep 12pt +\oddsidemargin 0pt +\evensidemargin 0pt +% +\renewcommand{\textfraction}{.1} +\renewcommand{\floatpagefraction}{.75} +% +\def\chaptername{} +% +\catcode`@=11 +\def\ps@plain{\let\@mkboth\@gobbletwo% + \let\@oddhead\@empty\def\@oddfoot{\sysdetails} + \let\@evenhead\@empty\let\@evenfoot\@oddfoot} +\def\ps@empty{\let\@mkboth\@gobbletwo% + \let\@oddhead\@empty\def\@oddfoot{\sysdetails} + \let\@evenhead\@empty\let\@evenfoot\@oddfoot} +\catcode`@=12 +% +\def\sysdetails{\parbox{\textwidth}{% +Based on material originally published in {\sl Computer Algebra Systems: A +Practical Guide\/} edited by Michael J.\ Wester, John Wiley \& Sons, +Chichester, United Kingdom, ISBN 0-471-98353-5, xvi+436 pages, 1999.}} +% +\pagestyle{plain} + +\begin{document} +% +% \nth{n} produces 1^{st}, 2^{nd}, 3^{rd}, 4^{th}, etc. +% +\def\nth#1{$#1^{\rm \ifcase#1 th\or st\or nd\or rd\else th\fi}$} +% +% Abbreviations +% +\newcommand{\Axiom}{{\sf Axiom}} +\newcommand{\Derive}{{\sf Derive}} +\newcommand{\DoCon}{{\sf DoCon}} +\newcommand{\GAP}{{\sf GAP}} +\newcommand{\Gmp}{{\sf Gmp}} +\newcommand{\Macsyma}{{\sf Macsyma}} +\newcommand{\Magnus}{{\sf Magnus}} +\newcommand{\Maxima}{{\sf Maxima}} +\newcommand{\Maple}{{\sf Maple}} +\newcommand{\Mathematica}{{\sf Mathematica}} +\newcommand{\MuPAD}{{\sf MuPAD}} +\newcommand{\Octave}{{\sf Octave}} +\newcommand{\Pari}{{\sf Pari}} +\newcommand{\Reduce}{{\sf Reduce}} +\newcommand{\Scilab}{{\sf Scilab}} +\newcommand{\Sumit}{{\sf Sumit}} +\newcommand{\Yacas}{{\sf Yacas}} + +\chapter{Rosetta Translations} + +\section{Introduction} + +The following is a collection of synonyms for various operations in +the computer algebra systems \Axiom, \Derive, \GAP, \Gmp, \DoCon, +\Macsyma, \Magnus, \Maxima, \Maple, \Mathematica, \MuPAD, \Octave, +\Pari, \Reduce, \Scilab, \Sumit\ and \Yacas. This collection does not +attempt to be comprehensive, but hopefully it will be useful in giving +an indication of how to translate between the syntaxes used by the +different systems in many common situations. Note that a blank entry +means either (a) that there may be an exact translation of a +particular operation for the indicated system, but we don't know what +it is or (b) there is no exact translation but it may still be +possible to work around this lack with a related functionality. + +While commercial systems are not provided on this CD the intent of the +Rosetta effort is to make it possible for experienced Computer Algebra +users to experiment with other systems. Thus the commands for +commercial systems are included to allow users of those systems to +translate. + +Some of these systems are special purpose and do not support a lot of +the functionality of the more general purpose systems. Where they do +support an interpreter the commands are provided. + +Originally written by Michael Wester. +Modified for Rosetta by Timothy Daly, Alexander Hulpke (GAP). + +\section{System availability} + +\begin{tabular}{l|lll} +System & \rm{License} & \rm{Status (May 2002)} & \rm{Web Location} \\ +\hline +\Axiom & BSD & available & http://www.aldor.org \\ +\Axiom & open source & pending & http://home.earthlink.net/~jgg964/axiom.html \\ +\Derive & commercial & available & http://www.mathware.com \\ +\DoCon & open source & available & http://www.haskell.org/docon \\ +\GAP & GPL & Rosetta & http://www.gap-system.org/~gap \\ +\Gmp & GPL & Rosetta & http://www.swox.com/gmp \\ +\Macsyma & commercial & dead & unavailable \\ +\Magnus & GPL & Rosetta & http://zebra.sci.ccny.cuny.edu/web \\ +\Maxima & GPL & Rosetta & http://www.ma.utexas.edu/maxima.html\\ +\Maple & commercial & available & http://www.maplesoft.com \\ +\Mathematica & commercial & available & http://www.wolfram.com \\ +\MuPAD & commercial & available & http://www.mupad.de \\ +\Octave & GPL & Rosetta & http://www.octave.org \\ +\Pari & GPL & Rosetta & http://www.parigp-home.de \\ +\Reduce & commercial & available & http://www.zib.de/Symbolik/reduce \\ +\Scilab & Scilab & available & http://www-rocq.inria.fr/scilab \\ +\Sumit & & available & http://www-sop.inria.fr/cafe/soft-f.html \\ +\Yacas & GPL & available & http://yacas.sourceforge.net \\ +\end{tabular} \\[10pt] +\\ +\begin{tabular}{l|ll} +System & \rm{Type} & \rm{Interpreted or Compiled}\\ +\hline +\Axiom & General Purpose & both \\ +\Derive & General Purpose & \\ +\DoCon & General Purpose & Interpreted in Haskell \\ +\GAP & Group Theory & \\ +\Gmp & arb. prec. arithmetic & \\ +\Macsyma & General Purpose & \\ +\Magnus & Infinite Group Theory & \\ +\Maxima & General Purpose & \\ +\Maple & General Purpose & \\ +\Mathematica & General Purpose & \\ +\MuPAD & General Purpose & \\ +\Octave & Numerical Computing & \\ +\Pari & Number Theory & \\ +\Reduce & General Purpose & \\ +\Scilab & General Purpose & \\ +\Sumit & Functional Equations & \\ +\Yacas & General Purpose & \\ +\end{tabular} \\[10pt] + +\section{Programming and Miscellaneous} + +\begingroup +\newcommand{\OR}{{\em or }} +\newcommand{\fnm}{\footnotemark} +\newcommand{\h}[1]{{\rm #1}} +\newcommand{\m}[2]{\multicolumn{#1}{l}{#2}} +\newcommand{\q}{\quad} +\newcommand{\st}{\small\tt} +\parindent=0pt +\hfuzz=1pt +\begin{tt} + +\begin{tabular}{l|ll} +& \m{2}{\rm Unix/Microsoft user initialization file} \\ +\hline +\Axiom & \~{}/axiom.input & \\ +\GAP & \~{}/.gaprc & GAP.RC \\ +\Gmp & & \\ +\DoCon & & \\ +\Derive & & derive.ini \\ +\Macsyma & \~{}/macsyma-init.macsyma & mac-init.mac \\ +\Magnus & & \\ +\Maxima & \~{}/macsyma-init.macsyma & mac-init.mac \\ +\Maple & \~{}/.mapleinit & maplev5.ini \\ +\Mathematica & \~{}/init.m & init.m \\ +\MuPAD & \~{}/.mupadinit & + $\backslash$mupad$\backslash$bin$\backslash$userinit.mu \\ +\Octave & & \\ +\Pari & & \\ +\Reduce & \~{}/.reducerc & reduce.rc \\ +\Scilab & & \\ +\Sumit & & \\ +\Yacas & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|ll} +& \h{Describe {\em keyword}} & \h{Find keywords containing {\em pattern}} \\ +\hline +\Axiom & & )what operations pattern \\ +\Derive & & \\ +\DoCon & & \\ +\GAP & ?keyword & ??keyword\\ +\Gmp & & \\ +\Macsyma & describe("keyword")\$ & apropos("pattern"); \\ +\Magnus & & \\ +\Maxima & describe("keyword")\$ & apropos("pattern"); \\ +\Maple & ?keyword & ?pattern\,\fnm \\ +\Mathematica & ?keyword & ?*pattern* \\ +\MuPAD & ?keyword & ?*pattern* \\ +\Octave & help -i keyword & \\ +\Pari & & \\ +\Reduce & & \\ +\Scilab & & \\ +\Sumit & & \\ +\Yacas & & \\ +\end{tabular} \\[10pt] + +\footnotetext{Only if the pattern is not a keyword and then the matches are +simplistic.} + +\begin{tabular}{l|l@{ }llll} +& & & \h{Prev.} & \h{Case} & \h{Variables} \\ +& \h{Comment} & \h{Line continuation} & \h{expr.} & \h{sensitive} & \h{assumed} + \\ +\hline +\Axiom & -- comment & input \_input & \% & Yes & real \\ +\Derive & "comment" & input \~{}input & & No & real \\ +\DoCon & & & & & \\ +\GAP & \# comment & input$\backslash$input&last&Yes&no assumption\\ +\Gmp & & & & & \\ +\Macsyma & /* comment */ & inputinput; & \% & No & real \\ +\Magnus & & & & & \\ +\Maxima & /* comment */ & inputinput; & \% & No & real \\ +\Maple & \# comment & inputinput; & \% & Yes & complex \\ +\Mathematica & (* comment *) & inputinput & \% & Yes & complex \\ +\MuPAD & \# comment \# & inputinput; & \% & Yes & complex \\ +\Octave & \#\# & & & Yes & \\ +\Pari & & & & & \\ +\Reduce & \% comment & inputinput; & ws & No & complex \\ +\Scilab & & & & & \\ +\Sumit & & & & & \\ +\Yacas & & & & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|lll} +& \h{Load a file} & \h{Time a command} & \h{Quit} \\ +\hline +\Axiom & )read "file" )quiet & )set messages time on & )quit \\ +\Derive & [Transfer Load Derive] & & [Quit] \\ +\DoCon & & & \\ +\GAP & Read("file"); & time; \h{(also see {\tt Runtime();})}&quit;\\ +\Gmp & & & \\ +\Macsyma & load("file")\$ & showtime: all\$ & quit(); \\ +\Magnus & & & \\ +\Maxima & load("file")\$ & showtime: all\$ & quit(); \\ +\Maple & read("file"): & readlib(showtime): on; & quit \\ +\Mathematica & << file & Timing[command] & Quit[] \\ +\MuPAD & read("file"): & time(command); & quit \\ +\Octave & load file & tic(); cmd ; toc() & quit \OR\ exit\\ +\Pari & & & \\ +\Reduce & in "file"\$ & on time; & quit; \\ +\Scilab & & & quit \\ +\Sumit & & & \\ +\Yacas & & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|lll} +& \h{Display} & \h{Suppress} & \\ +& \h{output} & \h{output} & \h{Substitution: $f(x, y) \rightarrow f(z, w)$} \\ +\hline +\Axiom & input & input; & subst(f(x, y), [x = z, y = w]) \\ +\Derive & input & var:= input & [Manage Substitute] \\ +\DoCon & & & \\ +\GAP & input; & input;; & Value(f,[x,y],[z,w]);\fnm \\ +\Gmp & & & \\ +\Macsyma & input; & input\$ & subst([x = z, y = w], f(x, y)); \\ +\Magnus & & & \\ +\Maxima & input; & input\$ & subst([x = z, y = w], f(x, y)); \\ +\Maple & input; & input: & subs(\{x = z, y = w\}, f(x, y)); \\ +\Mathematica & input & input; & f[x, y] /. \{x -> z, y -> w\} \\ +\MuPAD & input; & input: & subs(f(x, y), [x = z, y = w]); \\ +\Octave & input & input; & \\ +\Pari & & & \\ +\Reduce & input; & input\$ & sub(\{x = z, y = w\}, f(x, y)); \\ +\Scilab & & & \\ +\Sumit & & & \\ +\Yacas & & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|lll} +& \h{Set} & \h{List} & \h{Matrix} \\ +\hline +\Axiom & set [1, 2] & [1, 2] & matrix([[1, 2],[3, 4]]) \\ +\Derive & \{1, 2\} & [1, 2] & [[1,2], [3,4]] \\ +\DoCon & & & \\ +\GAP & Set([1,2]) & [1, 2] & [[1,2], [3,4]]\fnm \\ +\Gmp & & & \\ +\Macsyma & [1, 2] & [1, 2] & matrix([1, 2], [3, 4]) \\ +\Magnus & & & \\ +\Maxima & [1, 2] & [1, 2] & matrix([1, 2], [3, 4]) \\ +\Maple & \{1, 2\} & [1, 2] & matrix([[1, 2], [3, 4]]) \\ +\Mathematica & \{1, 2\} & \{1, 2\} & \{\{1, 2\}, \{3, 4\}\} \\ +\MuPAD & \{1, 2\} & [1, 2] & export(Dom): \q export(linalg): \\ + & & & matrix:= ExpressionField(normal)): \\ + & & & matrix([[1, 2], [3, 4]]) \\ +\Octave & & & \\ +\Pari & & & \\ +\Reduce & \{1, 2\} & \{1, 2\} & mat((1, 2), (3, 4)) \\ +\Scilab & & list(1,2) & A=[1,2;3,4]\\ +\Sumit & & & \\ +\Yacas & & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|llll} +& \h{Equation} & \h{List element} & \h{Matrix element} & \h{Length of a list} \\ +\hline +\Axiom & x = 0 & l . 2 & m(2, 3) & \#l \\ +\Derive & x = 0 & l SUB 2 & m SUB 2 SUB 3 & DIMENSION(l) \\ +\DoCon & & & & \\ +\GAP & x=0 & l[2] & m[2][3] & Length(l) \\ +\Gmp & & & & \\ +\Macsyma & x = 0 & l[2] & m[2, 3] & length(l) \\ +\Magnus & & & & \\ +\Maxima & x = 0 & l[2] & m[2, 3] & length(l) \\ +\Maple & x = 0 & l[2] & m[2, 3] & nops(l) \\ +\Mathematica & x == 0 & l[[2]] & m[[2, 3]] & Length[l] \\ +\MuPAD & x = 0 & l[2] & m[2, 3] & nops(l) \\ +\Octave & & & & \\ +\Pari & & & & \\ +\Reduce & x = 0 & part(l, 2) & m(2, 3) & length(l) \\ +\Scilab & & l(2) & & \\ +\Sumit & & & & \\ +\Yacas & & & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|lll} +& \m{2}{\rm Prepend/append an element to a list} & \h{Append two lists} \\ +\hline +\Axiom & cons(e, l) & concat(l, e) & append(l1, l2) \\ +\Derive & APPEND([e], l) & APPEND(l, [e]) & APPEND(l1, l2) \\ +\DoCon & & & \\ +\GAP & Concatenation([e],l) & Add(l,e) & Append(l1, l2) \\ +\Gmp & & & \\ +\Macsyma & cons(e, l) & endcons(e, l) & append(l1, l2) \\ +\Magnus & & & \\ +\Maxima & cons(e, l) & endcons(e, l) & append(l1, l2) \\ +\Maple & [e, op(l)] & [op(l), e] & [op(l1), op(l2)] \\ +\Mathematica & Prepend[l, e] & Append[l, e] & Join[l1, l2] \\ +\MuPAD & [e, op(l)] & append(l, e) & l1 . l2 \\ +\Octave & & & \\ +\Pari & & & \\ +\Reduce & e . l & append(l, {e}) & append(l1, l2) \\ +\Scilab & & & \\ +\Sumit & & & \\ +\Yacas & & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|ll} +& \h{Matrix column dimension} & \h{Convert a list into a column vector} \\ +\hline +\Axiom & ncols(m) & transpose(matrix([l])) \\ +\Derive & DIMENSION(m SUB 1) & [l]\`{} \\ +\DoCon & & \\ +\GAP & Length(mat[1]) & \h{objects are identical} \\ +\Gmp & & \\ +\Macsyma & mat\_\,ncols(m) & transpose(matrix(l)) \\ +\Magnus & & \\ +\Maxima & mat\_\,ncols(m) & transpose(matrix(l)) \\ +\Maple & linalg[coldim](m) & linalg[transpose](matrix([l])) \\ +\Mathematica & Dimensions[m][[2]] & Transpose[\{l\}] \\ +\MuPAD & linalg::ncols(m) & transpose(matrix([l]))\,\fnm \\ +\Octave & & \\ +\Pari & & \\ +\Reduce & load\_\,package(linalg)\$ & matrix v(length(l), 1)\$ \\ + & column\_dim(m) & for i:=1:length(l) do \\ + & & \q\q v(i, 1):= part(l, i) \\ +\Scilab & & \\ +\Sumit & & \\ +\Yacas & & \\ +\end{tabular} \\[10pt] + +\footnotetext{See the definition of {\tt matrix} above.} + +\begin{tabular}{l|l} +& \h{Convert a column vector into a list} \\ +\hline +\Axiom & [v(i, 1) for i in 1..nrows(v)] \\ +\Derive & v\`{} SUB 1 \\ +\DoCon & \\ +\GAP & \h{objects are identical} \\ +\Gmp & \\ +\Macsyma & part(transpose(v), 1) \\ +\Magnus & \\ +\Maxima & part(transpose(v), 1) \\ +\Maple & op(convert(linalg[transpose](v), listlist)) \\ +\Mathematica & Flatten[v] \\ +\MuPAD & [op(v)] \\ +\Octave & \\ +\Pari & \\ +\Reduce & load\_\,package(linalg)\$ \\ + & for i:=1:row\_\,dim(v) collect(v(i, 1)) \\ +\Scilab & \\ +\Sumit & \\ +\Yacas & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|lllllll} +& \h{True} & \h{False} & \h{And} & \h{Or} & \h{Not} & \h{Equal} & \h{Not equal} + \\ +\hline +\Axiom & true & false & and & or & not & = & \~{}= \\ +\Derive & TRUE & FALSE & AND & OR & NOT & = & /= \\ +\DoCon & & & & & & & \\ +\GAP & true & false\fnm & and & or & not & = & <> \\ +\Gmp & & & & & & & \\ +\Macsyma & true & false & and & or & not & = & \# \\ +\Magnus & & & & & & & \\ +\Maxima & true & false & and & or & not & = & \# \\ +\Maple & true & false & and & or & not & = & <> \\ +\Mathematica & True & False & \&\& & || & ! & == & != \\ +\MuPAD & true & false & and & or & not & = & <> \\ +\Octave & & & & & & & \\ +\Pari & & & & & & & \\ +\Reduce & t & nil & and & or & not & = & neq \\ +\Scilab & \%t & \%f & & & & & \\ +\Sumit & & & & & & & \\ +\Yacas & & & & & & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|ll} +& \h{If+then+else statements} & \h{Strings (concatenated)} \\ +\hline +\Axiom & if \_ then \_ else if \_ then \_ else \_ & concat(["x", "y"]) \\ +\Derive & IF(\_, \_, IF(\_, \_, \_)) & "xy" \\ +\DoCon & & \\ +\GAP & if \_ then \_ elif \_ then \_ else \_ fi & Concatenation("x","y")\\ +\Gmp & & \\ +\Macsyma & if \_ then \_ else if \_ then \_ else \_ & concat("x", "y") \\ +\Magnus & & \\ +\Maxima & if \_ then \_ else if \_ then \_ else \_ & concat("x", "y") \\ +\Maple & if \_ then \_ elif \_ then \_ else \_ fi & "x" . "y" \\ +\Mathematica & If[\_, \_, If[\_, \_, \_]] & "x" <> "y" \\ +\MuPAD & if \_ then \_ elif \_ then \_ else \_ & "x" . "y" \\ + & \q\q end\_if & \\ +\Octave & & \\ +\Pari & & \\ +\Reduce & if \_ then \_ else if \_ then \_ else \_ & "xy" \OR\ mkid(x, y)\\ +\Scilab & & \\ +\Sumit & & \\ +\Yacas & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|ll} +& \h{Simple loop and Block} & \h{Generate the list $[1, 2, \ldots, n]$} \\ +\hline +\Axiom & for i in 1..n repeat ( x; y ) & [f(i) for i in 1..n] \\ +\Derive & VECTOR([x, y], i, 1, n) & VECTOR(f(i), i, 1, n) \\ +\DoCon & & \\ +\GAP & for i in [1..n] do \_ od; & [1..n] {\rm or} [1,2..n]\\ +\Gmp & & \\ +\Macsyma & for i:1 thru n do (x, y); & makelist(f(i), i, 1, n); \\ +\Magnus & & \\ +\Maxima & for i:1 thru n do (x, y); & makelist(f(i), i, 1, n); \\ +\Maple & for i from 1 to n do x; y od; & [f(i) \$ i = 1..n]; \\ +\Mathematica & Do[x; y, \{i, 1, n\}] & Table[f[i], \{i, 1, n\}] \\ +\MuPAD & for i from 1 to n do x; y & [f(i) \$ i = 1..n]; \\ + & \q\q end\_for; & \\ +\Octave & & \\ +\Pari & & \\ +\Reduce & for i:=1:n do <>; & for i:=1:n collect f(i); \\ +\Scilab & & \\ +\Sumit & & \\ +\Yacas & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|l} +& \h{Complex loop iterating on a list} \\ +\hline +\Axiom & for x in [2, 3, 5] while x**2 < 10 repeat output(x) \\ +\Derive & \\ +\DoCon & \\ +\GAP & for x in [2, 3, 5] do while x\^{}2<10 do Print(x);od;od; \\ +\Gmp & \\ +\Macsyma & for x in [2, 3, 5] while x\^{}2 < 10 do print(x)\$ \\ +\Magnus & \\ +\Maxima & for x in [2, 3, 5] while x\^{}2 < 10 do print(x)\$ \\ +\Maple & for x in [2, 3, 5] while x\^{}2 < 10 do print(x) od: \\ +\Mathematica & For[l = \{2, 3, 5\}, l != \{\} \&\& l[[1]]\^{}2 < 10, \\ + & \q l = Rest[l], Print[l[[1]]] ] \\ +\MuPAD & for x in [2, 3, 5] do if x\^{}2 < 10 then print(x) end\_if \\ + & \q end\_for: \\ +\Octave & \\ +\Pari & \\ +\Reduce & for each x in \{2, 3, 5\} do if x\^{}2 < 10 then write(x)\$ \\ +\Scilab & \\ +\Sumit & \\ +\Yacas & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|lll} +& \h{\small Assignment} & \h{Function definition} & \h{Clear vars and funs} \\ +\hline +\Axiom & y:= f(x) & f(x, y) == x*y & + {\small\tt )clear properties y f} \\ +\Derive & y:= f(x) & f(x, y):= x*y & y:= f:= \\ +\DoCon & & & \\ +\GAP & y:= f(x); & f:=function(x, y) return x*y; end; & \h{There are +no symbolic variables}\\ +\Gmp & & & \\ +\Macsyma & y: f(x); & f(x, y):= x*y; & remvalue(y)\$ \\ + & & & remfunction(f)\$ \\ +\Magnus & & & \\ +\Maxima & y: f(x); & f(x, y):= x*y; & remvalue(y)\$ \\ + & & & remfunction(f)\$ \\ +\Maple & y:= f(x); & f:= proc(x, y) x*y end; & y:= 'y': f:= 'f': \\ +\Mathematica & y = f[x] & f[x\_, y\_\,]:= x*y & Clear[y, f] \\ +\MuPAD & y:= f(x); & f:= proc(x, y) & y:= NIL: f:= NIL: \\ + & & \q\q begin x*y end\_\,proc; & \\ +\Octave & & & \\ +\Pari & & & \\ +\Reduce & y:= f(x); & procedure f(x, y); x*y; & clear y, f; \\ +\Scilab & & & \\ +\Sumit & & & \\ +\Yacas & & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|l} +& \h{Function definition with a local variable} \\ +\hline +\Axiom & f(x) == (local n; n:= 2; n*x) \\ +\Derive & \\ +\DoCon & \\ +\GAP & f:=function(x) local n; n:=2;return n*x; end; \\ +\Gmp & \\ +\Macsyma & f(x):= block([n], n: 2, n*x); \\ +\Magnus & \\ +\Maxima & f(x):= block([n], n: 2, n*x); \\ +\Maple & f:= proc(x) local n; n:= 2; n*x end; \\ +\Mathematica & f[x\_\,]:= Module[\{n\}, n = 2; n*x] \\ +\MuPAD & f:= proc(x) local n; begin n:= 2; n*x end\_\,proc; \\ +\Octave & \\ +\Pari & \\ +\Reduce & procedure f(x); begin scalar n; n:= 2; return(n*x) end; \\ +\Scilab & \\ +\Sumit & \\ +\Yacas & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|ll} +& \h{Return unevaluated symbol} & \h{Define a function from an expression} \\ +\hline +\Axiom & e:= x*y;\q 'e & function(e, f, x, y) \\ +\Derive & e:= x*y\q 'e & f(x, y):== e \\ +\DoCon & & \\ +\GAP & \h{No unevaluated symbols}\fnm&\\ +\Gmp & & \\ +\Macsyma & e: x*y\$\q 'e; & define(f(x, y), e); \\ +\Magnus & & \\ +\Maxima & e: x*y\$\q 'e; & define(f(x, y), e); \\ +\Maple & e:= x*y:\q 'e'; & f:= unapply(e, x, y); \\ +\Mathematica & e = x*y;\q HoldForm[e] & f[x\_, y\_\,] = e \\ +\MuPAD & e:= x*y:\q hold(e); & f:= hold(func)(e, x, y); \\ +\Octave & & \\ +\Pari & & \\ +\Reduce & e:= x*y\$ & for all x, y let f(x, y):= e; \\ +\Scilab & & \\ +\Sumit & & \\ +\Yacas & & \\ +\end{tabular} \\[10pt] +\footnotetext{Variables can be assigned to generators of a suitable free +object, for example {\tt x:=X(Rationals,"x");} or {\tt +f:=FreeGroup(2);x:=f.1;}.} +\addtocounter{footnote}{-1}% + +\begin{tabular}{l|ll} +& \h{Fun.\ of an indefinite number of args} & \h{Apply ``+'' to sum a list} \\ +\hline +\Axiom & & reduce(+, [1, 2]) \\ +\Derive & LST l:= l & \\ +\DoCon & & \\ +\GAP & lst:=function(args) \_ end; & Sum([1,2])\\ +\Gmp & & \\ +\Macsyma & lst([l]):= l; & apply("+", [1, 2]) \\ +\Magnus & & \\ +\Maxima & lst([l]):= l; & apply("+", [1, 2]) \\ +\Maple & lst:=proc() [args[1..nargs]] end; & convert([1, 2], \`{}+\`{}) \\ +\Mathematica & lst[l\_\,\_\,\_\,]:= \{l\} & Apply[Plus, \{1, 2\}] \\ +\MuPAD & lst:= proc(l) begin [args()] & \_\,plus(op([1, 2])) \\ + & \q\q\q end\_\,proc; & \\ +\Octave & & \\ +\Pari & & \\ +\Reduce & & xapply(+, \{1, 2\})\,\fnm \\ +\Scilab & & \\ +\Sumit & & \\ +\Yacas & & \\ +\end{tabular} \\[10pt] + +\footnotetext{\tt procedure xapply(f, lst); lisp(f . cdr(lst))\$} +\addtocounter{footnote}{-1}% + +\begin{tabular}{l|ll} +& \h{Apply a fun.\ to a} & \\ +& \h{list of its args} & \h{Map an anonymous function onto a list} \\ +\hline +\Axiom & reduce(f, l) & map(x +-> x + y, [1, 2]) \\ +\Derive & & x:= [1, 2] \\ + & & VECTOR(x SUB i + y, i, 1, DIMENSION(x)) \\ +\DoCon & & \\ +\GAP & List(l,f) & List([1,2],x->x+y) \\ +\Gmp & & \\ +\Macsyma & apply(f, l) & map(lambda([x], x + y), [1, 2]) \\ +\Magnus & & \\ +\Maxima & apply(f, l) & map(lambda([x], x + y), [1, 2]) \\ +\Maple & f(op(l)) & map(x -> x + y, [1, 2]) \\ +\Mathematica & Apply[f, l] & Map[\# + y \&, \{1, 2\}] \\ +\MuPAD & f(op(l)) & map([1, 2], func(x + y, x)) \\ +\Octave & & \\ +\Pari & & \\ +\Reduce & xapply(f, l)\,\fnm & for each x in \{1, 2\} collect x + y \\ +\Scilab & & \\ +\Sumit & & \\ +\Yacas & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|l} +& \h{Pattern matching: $f(3 y) + f(z y) \rightarrow 3 f(y) + f(z y)$} \\ +\hline +\Axiom & f:= operator('f); \\ + & ( rule f((n | integer?(n)) * x) == n*f(x) )( \_ \\ + & \q\q f(3*y) + f(z*y)) \\ +\Derive & \\ +\DoCon & \\ +\GAP & \\ +\Gmp & \\ +\Macsyma & matchdeclare(n, integerp, x, true)\$ \\ + & defrule(fnx, f(n*x), n*f(x))\$ \\ + & apply1(f(3*y) + f(z*y), fnx); \\ +\Magnus & \\ +\Maxima & matchdeclare(n, integerp, x, true)\$ \\ + & defrule(fnx, f(n*x), n*f(x))\$ \\ + & apply1(f(3*y) + f(z*y), fnx); \\ +\Maple & map(proc(q) local m; \\ + & \q\q\q if match(q = f(n*y), y, 'm') and \\ + & \q\q\q\q\q type(rhs(op(m)), integer) then \\ + & \q\q\q\q subs(m, n * f(y)) else q fi \\ + & \q\q end, \\ + & \q\q f(3*y) + f(z*y)); \\ +\Mathematica & f[3*y] + f[z*y] /. f[n\_Integer * x\_\,] -> n*f[x] \\ +\MuPAD & d:= domain("match"): \q d::FREEVARIABLE:= TRUE: \\ + & n:= new(d, "n", func(testtype(m, DOM\_INT), m)): \\ + & x:= new(d, "x", TRUE): \\ + & map(f(3*y) + f(z*y), \\ + & \q\q proc(q) local m; begin m:= match(q, f(n*x)); \\ + & \q\q\q if m = FAIL then q \\ + & \q\q\q else subs(hold("n" * f("x")), m) end\_if \\ + & \q\q end\_\,proc); \\ +\Octave & \\ +\Pari & \\ +\Reduce & operator f; \\ + & f(3*y) + f(z*y) \\ + & \q\q where \{f(\~{}n * \~{}x) => n*f(x) when fixp(n)\}; \\ +\Scilab & \\ +\Sumit & \\ +\Yacas & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|l} +& \h{Define a new infix operator and then use it} \\ +\hline +\Axiom & \\ +\Derive & \\ +\DoCon & \\ +\GAP &\h{One can overload existing infix operators for ones own purposes}\\ +\Gmp & \\ +\Macsyma & infix("\~{}")\$ \q "\~{}"(x, y):= sqrt(x\^{}2 + y\^{}2)\$ \q + 3 \~{} 4; \\ +\Magnus & \\ +\Maxima & infix("\~{}")\$ \q "\~{}"(x, y):= sqrt(x\^{}2 + y\^{}2)\$ \q + 3 \~{} 4; \\ +\Maple & \`{}\&\~{}\`{}:= (x, y) -> sqrt(x\^{}2 + y\^{}2): \q 3 \&\~{} 4; + \\ +\Mathematica & x\_ $\backslash$[Tilde] y\_:= Sqrt[x\^{}2 + y\^{}2]; \q + 3 $\backslash$[Tilde] 4 \\ +\MuPAD & tilde:= proc(x, y) begin sqrt(x\^{}2 + y\^{}2) end\_\,proc: \\ + & \q 3 \&tilde 4; \\ +\Octave & \\ +\Pari & \\ +\Reduce & infix |\$ \q procedure |(x, y); sqrt(x\^{}2 + y\^{}2)\$ \q + 3 | 4; \\ +\Scilab & \\ +\Sumit & \\ +\Yacas & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|lll} +& \h{Main expression} & & \\ +& \h{operator} & \h{\nth{1} operand} & \h{List of expression operands} \\ +\hline +\Axiom\fnm & & kernels(e) . 1 & kernels(e) \\ +\Derive & & & {\em various}\fnm \\ +\DoCon & & & \\ +\GAP &\m{3}{\rm There are no formal unevaluated expressions}\\ +\Gmp & & & \\ +\Macsyma & part(e, 0) & part(e, 1) & args(e) \\ +\Magnus & & & \\ +\Maxima & part(e, 0) & part(e, 1) & args(e) \\ +\Maple & op(0, e) & op(1, e) & [op(e)] \\ +\Mathematica & Head[e] & e[[1]] & ReplacePart[e, List, 0] \\ +\MuPAD & op(e, 0) & op(e, 1) & [op(e)] \\ +\Octave & & & \\ +\Pari & & & \\ +\Reduce & part(e, 0) & part(e, 1) & for i:=1:arglength(e) \\ + & & & \q\q collect part(e, i) \\ +\Scilab & & & \\ +\Sumit & & & \\ +\Yacas & & & \\ +\end{tabular} \\[10pt] + +\addtocounter{footnote}{-1}% +\footnotetext{The following commands work only on expressions that consist of a +single level (e.g., $x + y + z$ but not $a/b + c/d$).} +\addtocounter{footnote}{-1}% +\footnotetext{{\tt TERMS}, {\tt FACTORS}, {\tt NUMERATOR}, {\tt LHS}, etc.} + +\begin{tabular}{l|l} +& \h{Print text and results} \\ +\hline +\Axiom & output(concat(["sin(", string(0), ") = ", \\ + & \q string(sin(0))])); \\ +\Derive & "sin(0)" = sin(0) \\ +\DoCon & \\ +\GAP & Print("There is no sin, but factors(10)= ",Factors(10), +"$\backslash$n")\\ +\Gmp & \\ +\Macsyma & print("sin(", 0, ") =", sin(0))\$ \\ +\Magnus & \\ +\Maxima & print("sin(", 0, ") =", sin(0))\$ \\ +\Maple & printf("sin(\%a) = \%a$\backslash$n", 0, sin(0)): \\ +\Mathematica & Print[StringForm["sin(\`{}\`{}) = \`{}\`{}", 0, Sin[0]]]; \\ +\MuPAD & print(Unquoted, "sin(".0.")" = sin(0)): \\ +\Octave & \\ +\Pari & \\ +\Reduce & write("sin(", 0, ") = ", sin(0))\$ \\ +\Scilab & \\ +\Sumit & \\ +\Yacas & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|ll} +& \h{Generate FORTRAN} & \h{Generate \TeX/\LaTeX} \\ +\hline +\Axiom & outputAsFortran(e) & outputAsTex(e) \\ +\Derive & [Transfer Save Fortran] & \\ +\DoCon & & \\ +\GAP &&Print(LaTeX(e));\\ +\Gmp & & \\ +\Macsyma & fortran(e)\$ \OR gentran(eval(e))\$ & tex(e); \\ +\Magnus & & \\ +\Maxima & fortran(e)\$ \OR gentran(eval(e))\$ & tex(e); \\ +\Maple & fortran([e]); & latex(e); \\ +\Mathematica & FortranForm[e] & TexForm[e] \\ +\MuPAD & generate::fortran(e); & generate::TeX(e); \\ +\Octave & & \\ +\Pari & & \\ +\Reduce & on fort; \q e; \q off fort; \OR & load\_\,package(tri)\$ \\ + & load\_\,package(gentran)\$ gentran e; & on TeX; e; off TeX; \\ +\Scilab & & \\ +\Sumit & & \\ +\Yacas & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|l} +& \h{Import two space separated columns of integers from {\tt file}} \\ +\hline +\Axiom & \\ +\Derive & [Transfer Load daTa] ({\rm from} file.dat) \\ +\DoCon & \\ +\GAP & \\ +\Gmp & \\ +\Macsyma & xy: read\_num\_data\_to\_matrix("file", nrows, 2)\$ \\ +\Magnus & \\ +\Maxima & xy: read\_num\_data\_to\_matrix("file", nrows, 2)\$ \\ +\Maple & xy:= readdata("file", integer, 2): \\ +\Mathematica & xy = ReadList["file", Number, RecordLists -> True] \\ +\MuPAD & \\ +\Octave & \\ +\Pari & \\ +\Reduce & \\ +\Scilab & \\ +\Sumit & \\ +\Yacas & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|l} +& \h{Export two space separated columns of integers to {\tt file}\fnm} \\ +\hline +\Axiom & )set output algebra "file" \q ({\rm creates} file.spout) \\ + & for i in 1..n repeat output( \_ \\ + & \q concat([string(xy(i, 1)), " ", string(xy(i, 2))]) ) \\ + & )set output algebra console \\ +\Derive & xy [Transfer Print Expressions File]\q({\rm creates} file.prt)\\ +\DoCon & \\ +\GAP & PrintTo("file");for i in [1..n] do\\ + &\q AppendTo("file",xy[i][1]," ",xy[i][2],"$\backslash$n");od;\\ +\Gmp & \\ +\Macsyma & writefile("file")\$ \q for i:1 thru n do \\ + & \q print(xy[i, 1], xy[i, 2])\$ \q closefile()\$ \\ +\Magnus & \\ +\Maxima & writefile("file")\$ \q for i:1 thru n do \\ + & \q print(xy[i, 1], xy[i, 2])\$ \q closefile()\$ \\ +\Maple & writedata("file", xy); \\ +\Mathematica & outfile = OpenWrite["file"]; \\ + & Do[WriteString[outfile, \\ + & \q xy[[i, 1]], " ", xy[[i, 2]], "$\backslash$n"], \{i, 1, n\}] \\ + & Close[outfile]; \\ +\MuPAD & fprint(Unquoted, Text, "file", \\ + & \q ("$\backslash$n", xy[i, 1], xy[i, 2]) \$ i = 1..n): \\ +\Octave & \\ +\Pari & \\ +\Reduce & out "file"; \q for i:=1:n do \\ + & \q write(xy(i, 1), " ", xy(i, 2)); \q shut "file"; \\ +\Scilab & \\ +\Sumit & \\ +\Sumit & \\ +\Yacas & \\ +\end{tabular} \\[10pt] + +\footnotetext{Some editing of {\tt file} will be necessary for all systems but +\Maple\ and \Mathematica.} + +\section{Mathematics and Graphics} + +{\rm Since {\GAP} aims at discrete mathematics, it does not provide much of +the calculus functionality listed in the following section.} + +\begin{tabular}{l|llllll} +& $e$ & $\pi$ & $i$ & $+\infty$ & $\sqrt{2}$ & $2^{1/3}$ \\ +\hline +\Axiom & \%e & \%pi & \%i & \%plusInfinity & sqrt(2) & 2**(1/3) \\ +\Derive & \#e & pi & \#i & inf & SQRT(2) & 2\^{}(1/3) \\ +\DoCon & & & & & & \\ +\GAP & & & E(4) & infinity & ER(2)\fnm &\\ +\Gmp & & & & & & \\ +\Macsyma & \%e & \%pi & \%i & inf & sqrt(2) & 2\^{}(1/3) \\ +\Magnus & & & & & & \\ +\Maxima & \%e & \%pi & \%i & inf & sqrt(2) & 2\^{}(1/3) \\ +\Maple & exp(1) & Pi & I & infinity & sqrt(2) & 2\^{}(1/3) \\ +\Mathematica & E & Pi & I & Infinity & Sqrt[2] & 2\^{}(1/3) \\ +\MuPAD & E & PI & I & infinity & sqrt(2) & 2\^{}(1/3) \\ +\Octave & & & & & & \\ +\Pari & & & & & & \\ +\Reduce & e & pi & i & infinity & sqrt(2) & 2\^{}(1/3) \\ +\Scilab & & & & & & \\ +\Sumit & & & & & & \\ +\Yacas & & & & & & \\ +\end{tabular} \\[10pt] +\footnotetext{{\tt ER} represents special cyclotomic numbers and is not a +root function.} +\addtocounter{footnote}{-1}% + +\begin{tabular}{l|llll} +& \h{Euler's constant} & \h{Natural log} & \h{Arctangent} & $n!$ \\ +\hline +\Axiom & & log(x) & atan(x) & factorial(n) \\ +\Derive & euler\_\,gamma & LOG(x) & ATAN(x) & n! \\ +\DoCon & & & & \\ +\GAP & & LogInt(x,base) && Factorial(n) \\ +\Gmp & & & & \\ +\Macsyma & \%gamma & log(x) & atan(x) & n! \\ +\Magnus & & & & \\ +\Maxima & \%gamma & log(x) & atan(x) & n! \\ +\Maple & gamma & log(x) & arctan(x) & n! \\ +\Mathematica & EulerGamma & Log[x] & ArcTan[x] & n! \\ +\MuPAD & EULER & ln(x) & atan(x) & n! \\ +\Octave & & & & \\ +\Pari & & & & \\ +\Reduce & Euler\_\,Gamma & log(x) & atan(x) & factorial(n) \\ +\Scilab & & & & \\ +\Sumit & & & & \\ +\Yacas & & & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|ll} +& \h{Legendre polynomial} & \h{Chebyshev poly.\ of the \nth{1} kind} \\ +\hline +\Axiom & legendreP(n, x) & chebyshevT(n, x) \\ +\Derive & LEGENDRE\_\,P(n, x) & CHEBYCHEV\_\,T(n, x) \\ +\DoCon & & \\ +\GAP & & \\ +\Gmp & & \\ +\Macsyma & legendre\_\,p(n, x) & chebyshev\_\,t(n, x) \\ +\Magnus & & \\ +\Maxima & legendre\_\,p(n, x) & chebyshev\_\,t(n, x) \\ +\Maple & orthopoly[P](n, x) & orthopoly[T](n, x) \\ +\Mathematica & LegendreP[n, x] & ChebyshevT[n, x] \\ +\MuPAD & orthpoly::legendre(n, x) & orthpoly::chebyshev1(n, x) \\ +\Octave & & \\ +\Pari & & \\ +\Reduce & LegendreP(n, x) & ChebyshevT(n, x) \\ +\Scilab & & \\ +\Sumit & & \\ +\Yacas & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|ll} +& \h{Fibonacci number} & \h{Elliptic integral of the \nth{1} kind} \\ +\hline +\Axiom & fibonacci(n) & \\ +\Derive & FIBONACCI(n) & ELLIPTIC\_\,E(phi, k\^{}2) \\ +\DoCon & & \\ +\GAP & Fibonacci(n) & \\ +\Gmp & & \\ +\Macsyma & fib(n) & elliptic\_\,e(phi, k\^{}2) \\ +\Magnus & & \\ +\Maxima & fib(n) & elliptic\_\,e(phi, k\^{}2) \\ +\Maple & combinat[fibonacci](n) & EllipticE(sin(phi), k) \\ +\Mathematica & Fibonacci[n] & EllipticE[phi, k\^{}2] \\ +\MuPAD & numlib::fibonacci(n) & \\ +\Octave & & \\ +\Pari & & \\ +\Reduce & & EllipticE(phi, k\^{}2) \\ +\Scilab & & \\ +\Sumit & & \\ +\Yacas & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|llll} +& $\Gamma(x)$ & $\psi(x)$ & \h{Cosine integral} & \h{Bessel fun.\ (\nth{1})} \\ +\hline +\Axiom & Gamma(x) & psi(x) & real(Ei(\%i*x)) & besselJ(n, x) \\ +\Derive & GAMMA(x) & PSI(x) & CI(x) & BESSEL\_\,J(n, x) \\ +\DoCon & & & & \\ +\GAP & & & & \\ +\Gmp & & & & \\ +\Macsyma & gamma(x) & psi[0](x) & cos\_\,int(x) & bessel\_j[n](x) \\ +\Magnus & & & & \\ +\Maxima & gamma(x) & psi[0](x) & cos\_\,int(x) & bessel\_j[n](x) \\ +\Maple & GAMMA(x) & Psi(x) & Ci(x) & BesselJ(n, x) \\ +\Mathematica & Gamma[x] & PolyGamma[x] & CosIntegral[x] & BesselJ[n, x] \\ +\MuPAD & gamma(x) & psi(x) & & besselJ(n, x) \\ +\Octave & & & & \\ +\Pari & & & & \\ +\Reduce & Gamma(x) & Psi(x) & Ci(x) & BesselJ(n, x) \\ +\Scilab & & & & \\ +\Sumit & & & & \\ +\Yacas & & & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|lll} +& \h{Hypergeometric fun.\ ${}_2F_1(a, b; c; x)$} & \h{Dirac delta} & + \h{Unit step fun.} \\ +\hline +\Axiom & & & \\ +\Derive & GAUSS(a, b, c, x) & & STEP(x) \\ +\DoCon & & & \\ +\GAP & & & \\ +\Gmp & & & \\ +\Macsyma & hgfred([a, b], [c], x) & delta(x) & unit\_\,step(x) + \\ +\Magnus & & & \\ +\Maxima & hgfred([a, b], [c], x) & delta(x) & unit\_\,step(x) + \\ +\Maple & hypergeom([a, b], [c], x) & Dirac(x) & Heaviside(x) \\ +\Mathematica & HypergeometricPFQ[\{a,b\},\{c\},x] & + \m{2}{<< Calculus\`{}DiracDelta\`{}} \\ +\MuPAD & & dirac(x) & heaviside(x) \\ +\Octave & & & \\ +\Pari & & & \\ +\Reduce & hypergeometric(\{a, b\}, \{c\}, x) & & \\ +\Scilab & & & \\ +\Sumit & & & \\ +\Yacas & & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|l} +& \h{Define $|x|$ via a piecewise function} \\ +\hline +\Axiom & \\ +\Derive & a(x):= -x*CHI(-inf, x, 0) + x*CHI(0, x, inf) \\ +\DoCon & \\ +\GAP & \\ +\Gmp & \\ +\Macsyma & a(x):= -x*unit\_\,step(-x) + x*unit\_\,step(x)\$ \\ +\Magnus & \\ +\Maxima & a(x):= -x*unit\_\,step(-x) + x*unit\_\,step(x)\$ \\ +\Maple & a:= x -> piecewise(x < 0, -x, x): \\ +\Mathematica & << Calculus\`{}DiracDelta\`{} \\ + & a[x\_]:= -x*UnitStep[-x] + x*UnitStep[x] \\ +\MuPAD & a:= proc(x) begin -x*heaviside(-x) + x*heaviside(x) \\ + & \q\q end\_\,proc: \\ +\Octave & \\ +\Pari & \\ +\Reduce & \\ +\Scilab & \\ +\Sumit & \\ +\Yacas & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|ll} +& \h{Assume $x$ is real} & \h{Remove that assumption} \\ +\hline +\Axiom & & \\ +\Derive & x :epsilon Real & x:= \\ +\DoCon & & \\ +\GAP & & \\ +\Gmp & & \\ +\Macsyma & declare(x, real)\$ & remove(x, real)\$ \\ +\Magnus & & \\ +\Maxima & declare(x, real)\$ & remove(x, real)\$ \\ +\Maple & assume(x, real); & x:= 'x': \\ +\Mathematica & x/: Im[x] = 0; & Clear[x] \\ +\MuPAD & assume(x, Type::RealNum): & unassume(x, Type::RealNum): \\ +\Octave & & \\ +\Pari & & \\ +\Reduce & & \\ +\Scilab & & \\ +\Sumit & & \\ +\Yacas & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|ll} +& \h{Assume $0 < x \le 1$} & \h{Remove that assumption} \\ +\hline +\Axiom & & \\ +\Derive & x :epsilon (0, 1] & x:= \\ +\DoCon & & \\ +\GAP & & \\ +\Gmp & & \\ +\Macsyma & assume(x > 0, x <= 1)\$ & forget(x > 0, x <= 1)\$ \\ +\Magnus & & \\ +\Maxima & assume(x > 0, x <= 1)\$ & forget(x > 0, x <= 1)\$ \\ +\Maple & assume(x > 0); & x:= 'x': \\ + & additionally(x <= 1); & \\ +\Mathematica & Assumptions -> 0 < x <= 1\,\fnm & \\ +\MuPAD & assume(x > 0): assume(x <= 1): & unassume(x): \\ +\Octave & & \\ +\Pari & & \\ +\Reduce & & \\ +\Scilab & & \\ +\Sumit & & \\ +\Yacas & & \\ +\end{tabular} \\[10pt] + +\footnotetext{This is an option for {\tt Integrate}.} + +\begin{tabular}{l|l} +& \h{Basic simplification of an expression $e$} \\ +\hline +\Axiom & simplify(e) \OR\ normalize(e) \OR\ complexNormalize(e) \\ +\Derive & e \\ +\DoCon & \\ +\GAP & e \\ +\Gmp & \\ +\Macsyma & ratsimp(e) \OR\ radcan(e) \\ +\Magnus & \\ +\Maxima & ratsimp(e) \OR\ radcan(e) \\ +\Maple & simplify(e) \\ +\Mathematica & Simplify[e] \OR\ FullSimplify[e] \\ +\MuPAD & simplify(e) \OR\ normal(e) \\ +\Octave & \\ +\Pari & \\ +\Reduce & e \\ +\Scilab & \\ +\Sumit & \\ +\Yacas & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|ll} +& \h{Use an unknown function} & \h{Numerically evaluate an expr.} \\ +\hline +\Axiom & f:= operator('f); \q f(x) & exp(1) :: Complex Float \\ +\Derive & f(x):= & Precision:= Approximate \\ + & f(x) & APPROX(EXP(1)) \\ + & & Precision:= Exact \\ +\DoCon & & \\ +\GAP & & EvalF(123/456)\\ +\Gmp & & \\ +\Macsyma & f(x) & sfloat(exp(1)); \\ +\Magnus & & \\ +\Maxima & f(x) & sfloat(exp(1)); \\ +\Maple & f(x) & evalf(exp(1)); \\ +\Mathematica & f[x] & N[Exp[1]] \\ +\MuPAD & f(x) & float(exp(1)); \\ +\Octave & & \\ +\Pari & & \\ +\Reduce & operator f; \q f(x) & on rounded; \q exp(1); \\ + & & off rounded; \\ +\Scilab & & \\ +\Sumit & & \\ +\Yacas & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|ll} +& $ n \bmod m$ & \h{Solve $e \equiv 0 \bmod m$ for $x$} \\ +\hline +\Axiom & rem(n, m) & solve(e = 0 :: PrimeField(m), x) \\ +\Derive & MOD(n, m) & SOLVE\_\,MOD(e = 0, x, m) \\ +\DoCon & & \\ +\GAP & n mod m & \h{solve using finite fields}\\ +\Gmp & & \\ +\Macsyma & mod(n, m) & modulus: m\$ \q solve(e = 0, x) \\ +\Magnus & & \\ +\Maxima & mod(n, m) & modulus: m\$ \q solve(e = 0, x) \\ +\Maple & n mod m & msolve(e = 0, m) \\ +\Mathematica & Mod[n, m] & Solve[\{e == 0, Modulus == m\}, x] \\ +\MuPAD & n mod m & solve(poly(e = 0, [x], IntMod(m)), x) \\ +\Octave & & \\ +\Pari & & \\ +\Reduce & on modular; & load\_\,package(modsr)\$ \q on modular; \\ + & setmod m\$ \q n & setmod m\$ \q m\_solve(e = 0, x) \\ +\Scilab & & \\ +\Sumit & & \\ +\Yacas & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|ll} +& \h{Put over common denominator} & \h{Expand into separate fractions} \\ +\hline +\Axiom & a/b + c/d & (a*d + b*c)/(b*d) :: \_ \\ + & & \q MPOLY([a], FRAC POLY INT) \\ +\Derive & FACTOR(a/b + c/d, Trivial) & EXPAND((a*d + b*c)/(b*d)) \\ +\DoCon & & \\ +\GAP & a/b+c/d &\\ +\Gmp & & \\ +\Macsyma & xthru(a/b + c/d) & expand((a*d + b*c)/(b*d)) \\ +\Magnus & & \\ +\Maxima & xthru(a/b + c/d) & expand((a*d + b*c)/(b*d)) \\ +\Maple & normal(a/b + c/d) & expand((a*d + b*c)/(b*d)) \\ +\Mathematica & Together[a/b + c/d] & Apart[(a*d + b*c)/(b*d)] \\ +\MuPAD & normal(a/b + c/d) & expand((a*d + b*c)/(b*d)) \\ +\Octave & & \\ +\Pari & & \\ +\Reduce & a/b + c/d & on div; (a*d + b*c)/(b*d) \\ +\Scilab & & \\ +\Sumit & & \\ +\Yacas & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|l} +& \h{Manipulate the root of a polynomial} \\ +\hline +\Axiom & a:= rootOf(x**2 - 2); \q a**2 \\ +\Derive & \\ +\DoCon & \\ +\GAP & x:=X(Rationals,"x");\\ +&\q a:=RootOfDefiningPolynomial(AlgebraicExtension(Rationals,x\^{}2-2)); +a\^{}2\\ +\Gmp & \\ +\Macsyma & algebraic:true\$ \q tellrat(a\^{}2 - 2)\$ \q rat(a\^{}2); \\ +\Magnus & \\ +\Maxima & algebraic:true\$ \q tellrat(a\^{}2 - 2)\$ \q rat(a\^{}2); \\ +\Maple & a:= RootOf(x\^{}2 - 2): \q simplify(a\^{}2); \\ +\Mathematica & a = Root[\#\^{}2 - 2 \&, 2] \q a\^{}2 \\ +\MuPAD & \\ +\Octave & \\ +\Pari & \\ +\Reduce & load\_\,package(arnum)\$ \q defpoly(a\^{}2 - 2); \q a\^{}2; \\ +\Scilab & \\ +\Sumit & \\ +\Yacas & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|ll} +& \h{Noncommutative multiplication} & \h{Solve a pair of equations} \\ +\hline +\Axiom & & solve([eqn1, eqn2], [x, y]) \\ +\Derive & x :epsilon Nonscalar & SOLVE([eqn1, eqn2], [x, y]) \\ + & y :epsilon Nonscalar & \\ + & x . y & \\ +\DoCon & & \\ +\GAP &*&\\ +\Gmp & & \\ +\Macsyma & x . y & solve([eqn1, eqn2], [x, y]) \\ +\Magnus & & \\ +\Maxima & x . y & solve([eqn1, eqn2], [x, y]) \\ +\Maple & x \&* y & solve(\{eqn1, eqn2\}, \{x, y\}) \\ +\Mathematica & x ** y & Solve[\{eqn1, eqn2\}, \{x, y\}] \\ +\MuPAD & & solve(\{eqn1, eqn2\}, \{x, y\}) \\ +\Octave & & \\ +\Pari & & \\ +\Reduce & operator x, y; & solve(\{eqn1, eqn2\}, \{x, y\}) \\ + & noncom x, y; & \\ + & x() * y() & \\ +\Scilab & & \\ +\Sumit & & \\ +\Yacas & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|ll} +& \m{2}{\rm Decrease/increase angles in trigonometric functions} \\ +\hline +\Axiom & \m{2}{simplify(normalize(sin(2*x)))} \\ +\Derive & Trigonometry:= Expand & Trigonometry:= Collect \\ + & sin(2*x) & 2*sin(x)*cos(x) \\ +\DoCon & & \\ +\GAP & & \\ +\Gmp & & \\ +\Macsyma & trigexpand(sin(2*x)) & trigreduce(2*sin(x)*cos(x)) \\ +\Magnus & & \\ +\Maxima & trigexpand(sin(2*x)) & trigreduce(2*sin(x)*cos(x)) \\ +\Maple & expand(sin(2*x)) & combine(2*sin(x)*cos(x)) \\ +\Mathematica & TrigExpand[Sin[2*x]] & TrigReduce[2*Sin[x]*Cos[x]] \\ +\MuPAD & expand(sin(2*x)) & combine(2*sin(x)*cos(x), sincos) + \\ +\Octave & & \\ +\Pari & & \\ +\Reduce & load\_\,package(assist)\$ \\ + & trigexpand(sin(2*x)) & trigreduce(2*sin(x)*cos(x)) \\ +\Scilab & & \\ +\Sumit & & \\ +\Yacas & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|l} +& \h{Gr\"obner basis} \\ +\hline +\Axiom & groebner([p1, p2, ...]) \\ +\Derive & \\ +\DoCon & \\ +\GAP & \\ +\Gmp & \\ +\Macsyma & grobner([p1, p2, ...]) \\ +\Magnus & \\ +\Maxima & grobner([p1, p2, ...]) \\ +\Maple & Groebner[gbasis]([p1, p2, ...], plex(x1, x2, ...)) \\ +\Mathematica & GroebnerBasis[\{p1, p2, ...\}, \{x1, x2, ...\}] \\ +\MuPAD & groebner::gbasis([p1, p2, ...]) \\ +\Octave & \\ +\Pari & \\ +\Reduce & load\_\,package(groebner)\$ \q groebner(\{p1, p2, ...\}) \\ +\Scilab & \\ +\Sumit & \\ +\Yacas & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|l} +& \h{Factorization of $e$ over $i = \sqrt{-1}$} \\ +\hline +\Axiom & factor(e, [rootOf(i**2 + 1)]) \\ +\Derive & FACTOR(e, Complex) \\ +\DoCon & \\ +\GAP & Factors(GaussianIntegers,e)\\ +\Gmp & \\ +\Macsyma & gfactor(e); \OR\ factor(e, i\^{}2 + 1); \\ +\Magnus & \\ +\Maxima & gfactor(e); \OR\ factor(e, i\^{}2 + 1); \\ +\Maple & factor(e, I); \\ +\Mathematica & Factor[e, Extension -> I] \\ +\MuPAD & QI:= Dom::AlgebraicExtension(Dom::Rational, i\^{}2 + 1); \\ + & QI::name:= "QI": \q Factor(poly(e, QI)); \\ +\Octave & \\ +\Pari & \\ +\Reduce & on complex, factor; \q e; \q off complex, factor; \\ +\Scilab & \\ +\Sumit & \\ +\Yacas & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|ll} +& \h{Real part} & \h{Convert a complex expr.\ to rectangular form} \\ +\hline +\Axiom & real(f(z)) & complexForm(f(z)) \\ +\Derive & RE(f(z)) & f(z) \\ +\DoCon & & \\ +\GAP & (f(z)+GaloisCyc(f(z),-1))/2&\\ +\Gmp & & \\ +\Macsyma & realpart(f(z)) & rectform(f(z)) \\ +\Magnus & & \\ +\Maxima & realpart(f(z)) & rectform(f(z)) \\ +\Maple & Re(f(z)) & evalc(f(z)) \\ +\Mathematica & Re[f[z]] & ComplexExpand[f[z]] \\ +\MuPAD & Re(f(z)) & rectform(f(z)) \\ +\Octave & & \\ +\Pari & & \\ +\Reduce & repart(f(z)) & repart(f(z)) + i*impart(f(z)) \\ +\Scilab & & \\ +\Sumit & & \\ +\Yacas & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|lll} +& \h{Matrix addition} & \h{Matrix multiplication} & \h{Matrix transpose} \\ +\hline +\Axiom & A + B & A * B & transpose(A) \\ +\Derive & A + B & A . B & A\`{} \\ +\DoCon & & & \\ +\GAP & A + B & A * B & TransposedMat(A)\\ +\Gmp & & & \\ +\Macsyma & A + B & A . B & transpose(A) \\ +\Magnus & & & \\ +\Maxima & A + B & A . B & transpose(A) \\ +\Maple & evalm(A + B) & evalm(A \&* B) & linalg[transpose](A) \\ +\Mathematica & A + B & A . B & Transpose[A] \\ +\MuPAD & A + B & A * B & transpose(A) \\ +\Octave & & & \\ +\Pari & & & \\ +\Reduce & A + B & A * B & tp(A) \\ +\Scilab & & & \\ +\Sumit & & & \\ +\Yacas & & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|l} +& \h{Solve the matrix equation $A x = b$} \\ +\hline +\Axiom & solve(A, transpose(b)) . 1 . particular :: Matrix \_\_\_ \\ +\Derive & \\ +\DoCon & \\ +\GAP & SolutionMat(TransposedMat(A),b)\\ +\Gmp & \\ +\Macsyma & xx: genvector('x, mat\_nrows(b))\$ \\ + & x: part(matlinsolve(A . xx = b, xx), 1, 2) \\ +\Magnus & \\ +\Maxima & xx: genvector('x, mat\_nrows(b))\$ \\ + & x: part(matlinsolve(A . xx = b, xx), 1, 2) \\ +\Maple & x:= linalg[linsolve](A, b) \\ +\Mathematica & x = LinearSolve[A, b] \\ +\MuPAD & \\ +\Octave & \\ +\Pari & \\ +\Reduce & \\ +\Scilab & \\ +\Sumit & \\ +\Yacas & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|ll} +& \h{Sum: $\sum_{i = 1}^n f(i)$} & \h{Product: $\prod_{i = 1}^n f(i)$} \\ +\hline +\Axiom & sum(f(i), i = 1..n) & product(f(i), i = 1..n) \\ +\Derive & SUM(f(i), i, 1, n) & PRODUCT(f(i), i, 1, n) \\ +\DoCon & & \\ +\GAP & Sum([1..n],f) & Product([1..n],f)\\ +\Gmp & & \\ +\Macsyma & closedform( & closedform( \\ + & \q sum(f(i), i, 1, n)) & \q product(f(i), i, 1, n)) \\ +\Magnus & & \\ +\Maxima & closedform( & closedform( \\ + & \q sum(f(i), i, 1, n)) & \q product(f(i), i, 1, n)) \\ +\Maple & sum(f(i), i = 1..n) & product(f(i), i = 1..n) \\ +\Mathematica & Sum[f[i], \{i, 1, n\}] & Product[f[i], \{i, 1, n\}] \\ +\MuPAD & sum(f(i), i = 1..n) & product(f(i), i = 1..n) \\ +\Octave & & \\ +\Pari & & \\ +\Reduce & sum(f(i), i, 1, n) & prod(f(i), i, 1, n) \\ +\Scilab & & \\ +\Sumit & & \\ +\Yacas & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|ll} +& \h{Limit: $\lim_{x \rightarrow 0-} f(x)$} & \h{Taylor/Laurent/etc.\ series} \\ +\hline +\Axiom & limit(f(x), x = 0, "left") & series(f(x), x = 0, 3) \\ +\Derive & LIM(f(x), x, 0, -1) & TAYLOR(f(x), x, 0, 3) \\ +\DoCon & & \\ +\GAP & & \\ +\Gmp & & \\ +\Macsyma & limit(f(x), x, 0, minus) & taylor(f(x), x, 0, 3) \\ +\Magnus & & \\ +\Maxima & limit(f(x), x, 0, minus) & taylor(f(x), x, 0, 3) \\ +\Maple & limit(f(x), x = 0, left) & series(f(x), x = 0, 4) \\ +\Mathematica & Limit[f[x], x->0, Direction->1] & Series[f[x],\{x, 0, 3\}] \\ +\MuPAD & limit(f(x), x = 0, Left) & series(f(x), x = 0, 4) \\ +\Octave & & \\ +\Pari & & \\ +\Reduce & limit!-(f(x), x, 0) & taylor(f(x), x, 0, 3) \\ +\Scilab & & \\ +\Sumit & & \\ +\Yacas & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|ll} +& \h{Differentiate: $\frac{d^3 f(x, y)}{dx \, dy^2}$} & + \h{Integrate: $\int_0^1 f(x) \, dx$} \\ +\hline +\Axiom & D(f(x, y), [x, y], [1, 2]) & integrate(f(x), x = 0..1) \\ +\Derive & DIF(DIF(f(x, y), x), y, 2) & INT(f(x), x, 0, 1) \\ +\DoCon & & \\ +\GAP & & \\ +\Gmp & & \\ +\Macsyma & diff(f(x, y), x, 1, y, 2) & integrate(f(x), x, 0, 1) \\ +\Magnus & & \\ +\Maxima & diff(f(x, y), x, 1, y, 2) & integrate(f(x), x, 0, 1) \\ +\Maple & diff(f(x, y), x, y\$2) & int(f(x), x = 0..1) \\ +\Mathematica & D[f[x, y], x, \{y, 2\}] & Integrate[f[x], \{x, 0, 1\}] \\ +\MuPAD & diff(f(x, y), x, y\$2) & int(f(x), x = 0..1) \\ +\Octave & & \\ +\Pari & & \\ +\Reduce & df(f(x, y), x, y, 2) & int(f(x), x, 0, 1) \\ +\Scilab & & \\ +\Sumit & & \\ +\Yacas & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|ll} +& \h{Laplace transform} & \h{Inverse Laplace transform} \\ +\hline +\Axiom & laplace(e, t, s) & inverseLaplace(e, s, t) \\ +\Derive & LAPLACE(e, t, s) & \\ +\DoCon & & \\ +\GAP & & \\ +\Gmp & & \\ +\Macsyma & laplace(e, t, s) & ilt(e, s, t) \\ +\Magnus & & \\ +\Maxima & laplace(e, t, s) & ilt(e, s, t) \\ +\Maple & inttrans[laplace](e,t,s) & inttrans[invlaplace](e,s,t) \\ +\Mathematica & \m{2}{\q << Calculus\`{}LaplaceTransform\`{}} \\ + & LaplaceTransform[e, t, s] & {\st InverseLaplaceTransform[e,s,t]} + \\ +\MuPAD & transform::laplace(e,t,s) & transform::ilaplace(e, s, t) \\ +\Octave & & \\ +\Pari & & \\ +\Reduce & \m{2}{\q load\_\,package(laplace)\$ \q load\_\,package(defint)\$} + \\ + & laplace(e, t, s) & invlap(e, t, s) \\ +\Scilab & & \\ +\Sumit & & \\ +\Yacas & & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|l} +& \h{Solve an ODE (with the initial condition $y'(0) = 1$)} \\ +\hline +\Axiom & solve(eqn, y, x) \\ +\Derive & APPLY\_\,IC(RHS(ODE(eqn, x, y, y\_)), [x, 0], [y, 1]) \\ +\DoCon & \\ +\GAP & \\ +\Gmp & \\ +\Macsyma & ode\_ibc(ode(eqn, y(x), x), x = 0, diff(y(x), x) = 1) \\ +\Magnus & \\ +\Maxima & ode\_ibc(ode(eqn, y(x), x), x = 0, diff(y(x), x) = 1) \\ +\Maple & dsolve(\{eqn, D(y)(0) = 1\}, y(x)) \\ +\Mathematica & DSolve[\{eqn, y'[0] == 1\}, y[x], x] \\ +\MuPAD & solve(ode(\{eqn, D(y)(0) = 1\}, y(x))) \\ +\Octave & \\ +\Pari & \\ +\Reduce & odesolve(eqn, y(x), x) \\ +\Scilab & \\ +\Sumit & \\ +\Yacas & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|l} +& \h{Define the differential operator $L = D_x + I$ and apply it to $\sin x$} \\ +\hline +\Axiom & DD : LODO(Expression Integer, e +-> D(e, x)) := D(); \\ + & L:= DD + 1; \q L(sin(x)) \\ +\Derive & \\ +\DoCon & \\ +\GAP & \\ +\Gmp & \\ +\Macsyma & load(opalg)\$ \q L: (diffop(x) - 1)\$ \q L(sin(x)); \\ +\Magnus & \\ +\Maxima & load(opalg)\$ \q L: (diffop(x) - 1)\$ \q L(sin(x)); \\ +\Maple & id:= x -> x: \q L:= (D + id): \q L(sin)(x); \\ +\Mathematica & L = D[\#, x]\& + Identity; \q Through[L[Sin[x]]] \\ +\MuPAD & L:= (D + id): \q L(sin)(x); \\ +\Octave & \\ +\Pari & \\ +\Reduce & \\ +\Scilab & \\ +\Sumit & \\ +\Yacas & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|l} +& \h{2D plot of two separate curves overlayed} \\ +\hline +\Axiom & draw(x, x = 0..1); \q draw(acsch(x), x = 0..1); \\ +\Derive & [Plot Overlay] \\ +\DoCon & \\ +\GAP & \\ +\Gmp & \\ +\Macsyma & plot(x, x, 0, 1)\$ \q plot(acsch(x), x, 0, 1)\$ \\ +\Magnus & \\ +\Maxima & plot(x, x, 0, 1)\$ \q plot(acsch(x), x, 0, 1)\$ \\ +\Maple & plot(\{x, arccsch(x)\}, x = 0..1): \\ +\Mathematica & Plot[\{x, ArcCsch[x]\}, \{x, 0, 1\}]; \\ +\MuPAD & plotfunc(x, acsch(x), x = 0..1): \\ +\Octave & \\ +\Pari & \\ +\Reduce & load\_\,package(gnuplot)\$ \q plot(y = x, x = (0 .. 1))\$ \\ + & plot(y = acsch(x), x = (0 .. 1))\$ \\ +\Scilab & \\ +\Sumit & \\ +\Yacas & \\ +\end{tabular} \\[10pt] + +\begin{tabular}{l|l} +& \h{Simple 3D plotting} \\ +\hline +\Axiom & draw(abs(x*y), x = 0..1, y = 0..1); \\ +\Derive & [Plot Overlay] \\ +\DoCon & \\ +\GAP & \\ +\Gmp & \\ +\Macsyma & plot3d(abs(x*y), x, 0, 1, y, 0, 1)\$ \\ +\Magnus & \\ +\Maxima & plot3d(abs(x*y), x, 0, 1, y, 0, 1)\$ \\ +\Maple & plot3d(abs(x*y), x = 0..1, y = 0..1): \\ +\Mathematica & Plot3D[Abs[x*y], \{x, 0, 1\}, \{y, 0, 1\}]; \\ +\MuPAD & plotfunc(abs(x*y), x = 0..1, y = 0..1): \\ +\Octave & \\ +\Pari & \\ +\Reduce & load\_\,package(gnuplot)\$ \\ + & plot(z = abs(x*y), x = (0 .. 1), y = (0 .. 1))\$ \\ +\Scilab & \\ +\Sumit & \\ +\Yacas & \\ +\end{tabular} \\[10pt] + +%\begin{tabular}{l|l} +%& \h{} \\ +%\hline +%\Axiom & \\ +%\Derive & \\ +%\DoCon & \\ +%\GAP & \\ +%\Gmp & \\ +%\Macsyma & \\ +%\Magnus & \\ +%\Maxima & \\ +%\Maple & \\ +%\Mathematica & \\ +%\MuPAD & \\ +%\Octave & \\ +%\Pari & \\ +%\Reduce & \\ +%\Scilab & \\ +%\Sumit & \\ +%\Yacas & \\ +%\end{tabular} \\[10pt] + +\end{tt} +\endgroup +\end{document} + +\start +Date: Thu, 29 Jul 2004 16:47:54 -0700 +From: Bob McElrath +To: Bill Page +Subject: Re: [Axiom-developer] REDUCE on test.axiom-developer.org +Cc: axiom-developer@nongnu.org, daly@idsi.net + +Bill Page [bill.page1@sympatico.ca] wrote: +> Everyone: +> +> I have a very preliminary implementation of an interface +> to REDUCE implemented on the test.axom-developer.org site. +> Please see: +> +> http://test.axiom-developer.org/Members/billpage/TestReduce +> +> for some initial examples. +> +> I would appreciate the help of those Axiom developers who +> know REDUCE (or want to learn) to test this. Let me know +> what goes wrong, what is missing and especially any hints +> and tips about security issues. + +Neat! + +I wonder if your last example on that page is correct...neither Maple +nor Mathematica will do that integral. + +I was thinking to separate your code into a different PageType. i.e. +the PageType specifies what this document is *written* in. Separate +=66rom that is the presentation (i.e. png/mathml which should not be a +page type -- as I have it now). Is the new Reduce stuff in your darcs +repository? + +But now we have two math backends...and it might be very useful to have +both in the same document. So should we define a +StructuredText+LaTeX+Math pagetype where 'Math' refers to any symbolic +backend? It would also be useful to do a bit of stylesheet magic to +differentiate between Axiom/Reduce/Maxima... Perhaps some small text in +the UR corner that says what language this is. + +\start +Date: Thu, 29 Jul 2004 20:47:05 -0400 +From: root +To: bob@mcelrath.org +Subject: Re: [Axiom-developer] REDUCE on test.axiom-developer.org +Cc: bill.page1@sympatico.ca + +Bob, + +>I wonder if your last example on that page is correct...neither Maple +>nor Mathematica will do that integral. + +The Trager/Bronstein Integration can be broken up into a set of cases. +This is one special case that was not implemented but should be integrable. + +>I was thinking to separate your code into a different PageType. i.e. +>the PageType specifies what this document is *written* in. Separate +>from that is the presentation (i.e. png/mathml which should not be a +>page type -- as I have it now). Is the new Reduce stuff in your darcs +>repository? + +One use I expect to have for these pages is test cases. I'm working +on CATS (Computer Algebra Test Suite). The basic idea is to document +some mathematics and then implement the computation in a variety of +systems. The idea is to pool the tedious effort of developing a test +suite so that all the systems can benefit from the effort. + +NIST funded a project years ago to do a classification of the various +types of numerical mathematics. There is no corresponding classification +scheme for symbolic mathematics. CATS could form the basis for a scheme +for classification of the mathematics and provide test cases for each +category. + +Bill's idea of joining several systems in one page is an important tool +for this kind of work. + +>But now we have two math backends...and it might be very useful to have +>both in the same document. So should we define a +>StructuredText+LaTeX+Math pagetype where 'Math' refers to any symbolic +>backend? It would also be useful to do a bit of stylesheet magic to +>differentiate between Axiom/Reduce/Maxima... Perhaps some small text in +>the UR corner that says what language this is. + +\start +Date: Thu, 29 Jul 2004 21:56:39 -0400 +From: "Bill Page" +To: +Subject: RE: [Axiom-developer] REDUCE vs Axiom +Cc: 'Bob McElrath' + +Tim, + +I have added your Rosetta document to the Axiom portal test +site at + + http://test.axiom-developer.org/wiki/RosettaStone + +After you take a look at it and if you think it would be +useable in this form, then we can make whatever editting +you think necessary and then move it to the main site. For +one thing, probably we should split this document into +several web pages. + +I converted this using the LaTeX to HTML converted called +HEVEA. See + + http://para.inria.fr/~maranget/hevea/ + +Inspite of this be a rather complex document, I think that +HEVEA did a quite good job of the conversion AND it was FAST. + +Bob, perhaps this is the kind of LaTeX to HTML converter +that we could use in LatexWiki?! The licensing conditions +seem about right. :) + +Regards, +Bill Page. + +> -----Original Message----- +> From: +> axiom-developer-bounces+bill.page1=sympatico.ca@nongnu.org +> [mailto:axiom-developer-bounces+bill.page1=sympatico.ca@nongnu +> .org] On Behalf Of root +> Sent: Thursday, July 29, 2004 8:26 PM +> To: Bill.page1@sympatico.ca +> Cc: axiom-developer@nongnu.org +> Subject: [Axiom-developer] REDUCE vs Axiom +> +> +> Bill, +> +> Attached is the Rosetta document which details some of the +> differences between Axiom and other system's syntax. In +> particular, it lists REDUCE. + +\start +Date: Thu, 29 Jul 2004 22:54:30 -0400 +From: root +To: bill.page1@sympatico.ca +Subject: Re: [Axiom-developer] REDUCE vs Axiom +Cc: bob@mcelrath.org + +Bill, + +It looks like it translated quite well. +The only two comments are that the wiki wants to insert ? after [] exprs +and the latex form of groebner (gr\"obner) didn't seem to translate well. + +\start +Date: Thu, 29 Jul 2004 21:38:57 -0700 +From: Bob McElrath +To: Bill Page +Subject: Re: [Axiom-developer] REDUCE vs Axiom + +Bill Page [bill.page1@sympatico.ca] wrote: +> I converted this using the LaTeX to HTML converted called +> HEVEA. See +> +> http://para.inria.fr/~maranget/hevea/ +> +> Inspite of this be a rather complex document, I think that +> HEVEA did a quite good job of the conversion AND it was FAST. +> +> Bob, perhaps this is the kind of LaTeX to HTML converter +> that we could use in LatexWiki?! The licensing conditions +> seem about right. :) + +I have avoided this math-using-HTML-only technique (latex2html does this +too) because I think it looks like crap. Also it appears that hevea +requires the user to do some browser configuration (also something I +would like to avoid). I think math should be either an image or MathML. + +It would be nice, however, to have the math-using-HTML option and let +users decide what they want to see. + +\start +Date: Fri, 30 Jul 2004 08:40:49 +0200 +From: Marcus Better +To: daly@idsi.net +Subject: [Axiom-developer] Re: Compileing spad files on Debian + +> Send me the source code and let me try it here. + +It happens with any code really, such as one of the spad files from +src/algebra, or this test file: + +---------------------------------------------------- +)abbrev package TESTPAK TestPackage +TestPackage(): Exports == Implementation where + Exports == with + op: INT -> INT + + Implementation == add + op(x) == x +--------------------------------------------------- + +Marcus + +-- +----------------------------------------------------------------- +Marcus Better +Department of Mathematics Tel. +46 8 164539 +Stockholm University Fax +46 8 6126717 +SE-106 91 Stockholm +Sweden http://www.math.su.se +----------------------------------------------------------------- + +\start +Date: Fri, 30 Jul 2004 10:18:01 -0400 +From: xli96@uwo.ca +To: axiom-developer@nongnu.org +Subject: [Axiom-developer] about compilation error on mandrake 1.0 + +the error message as follow: +could you guys give me some hit? thanks +. +. +. +using 386-linux.defs +make[3]: Entering directory `/home/xli96/programs/axiom/lsp/gcl-2.6.3' +rm -f bin/gcl xbin/gcl +MGCLDIR=`echo /home/xli96/programs/axiom/lsp/gcl-2.6.3 | sed -e +'sX^\([a-z]\):X/\1Xg'` ; \ +GCLDIR=`echo /home/xli96/programs/axiom/lsp/gcl-2.6.3` ; \ +make install-command "INSTALL_LIB_DIR=$GCLDIR" "prefix=$GCLDIR" +"BINDIR=$MGCLDIR/unixport" +make[4]: Entering directory `/home/xli96/programs/axiom/lsp/gcl-2.6.3' +rm -f /home/xli96/programs/axiom/lsp/gcl-2.6.3/bin/gcl +(echo '#!/bin/sh' ; \ +echo exec /home/xli96/programs/axiom/lsp/gcl-2.6.3/unixport/ \\ ; \ +echo ' -dir' /home/xli96/programs/axiom/lsp/gcl-2.6.3/unixport/ \\ ; \ +echo ' -libdir' /home/xli96/programs/axiom/lsp/gcl-2.6.3/ \\ ; \ +echo ' -eval '\''(setq si::*allow-gzipped-file* t)'\' \\ ;\ +! [ -d "" ] || echo ' -eval '\''(setq si::*tk-library* '\"\"')'\' \\;\ +echo ' '\"\$@\" ) > /home/xli96/programs/axiom/lsp/gcl-2.6.3/bin/gcl; +echo '#' other options: -load "/tmp/foo.o" -load "jo.lsp" -eval '"(joe 3)"' >> +/home/xli96/programs/axiom/lsp/gcl-2.6.3/ +bin/gcl +chmod a+x /home/xli96/programs/axiom/lsp/gcl-2.6.3/bin/gcl +rm -f /home/xli96/programs/axiom/lsp/gcl-2.6.3/bin/gclm.bat +if gcc --version | grep mingw >/dev/null 2>&1 ; then (echo '@SET cd='; \ + echo '@SET promp%prompt%'; \ + echo '@PROMPT SET cd'; \ + echo '@CALL>%temp%.\setdir.bat'; \ + echo '@'; \ + echo '% do not delete this line %'; \ + echo '@ECHO off'; \ + echo 'PROMPT %promp'; \ + echo 'FOR %%c IN (CALL DEL) DO %%c %temp%.\setdir.bat'; \ + echo 'set cwd=%cd%'; \ + echo 'set libdir=%cd%\..\lib\gcl-`cat majvers`.`cat minvers`'; \ + echo 'set unixportdir=%libdir%\unixport'; \ + echo 'path %cd%\..\mingw\bin;%PATH%'; \ + echo "start %unixportdir%\.exe -dir %unixportdir% -libdir %libdir% -eval +\"(setq si::*allow-gzipped-file* t)\" %1 %2 %3 + %4 %5 %6 %7 %8 %9" ) > /home/xli96/programs/axiom/lsp/gcl-2.6.3/bin/gclm.bat ; +fi +rm -f /home/xli96/programs/axiom/lsp/gcl-2.6.3/bin/gclfinal.bat +if gcc --version | grep -i mingw >/dev/null 2>&1 ; then (echo 'ECHO path +%1\mingw\bin;%PATH% > gcli.bat'; \ + echo "ECHO start %1\lib\gcl-`cat majvers`.`cat minvers`\unixport\.exe -dir +%1\lib\gcl-`cat majvers`.`cat minvers`\unixp +ort -libdir %1\lib\gcl-`cat majvers`.`cat minvers` -eval \"(setq +si::*allow-gzipped-file* t)\" %1 %2 %3 %4 %5 %6 %7 %8 % +9 >> gcli.bat" ) > /home/xli96/programs/axiom/lsp/gcl-2.6.3/bin/gclfinal.bat ; +fi +make[4]: Leaving directory `/home/xli96/programs/axiom/lsp/gcl-2.6.3' +(cd xbin ; cp ../bin/gcl .) +cd cmpnew && make gcl_collectfn.o +make[4]: Entering directory `/home/xli96/programs/axiom/lsp/gcl-2.6.3/cmpnew' +../unixport/saved_pre_gcl ../unixport/ -compile gcl_collectfn.lsp +make[4]: ../unixport/saved_pre_gcl: Command not found +make[4]: *** [gcl_collectfn.o] Error 127 +make[4]: Leaving directory `/home/xli96/programs/axiom/lsp/gcl-2.6.3/cmpnew' +make[3]: *** [cmpnew/gcl_collectfn.o] Error 2 +make[3]: Leaving directory `/home/xli96/programs/axiom/lsp/gcl-2.6.3' +/bin/sh: line 1: unixport/saved_gcl: No such file or directory +make[2]: *** [gcldir] Error 127 +make[2]: Leaving directory `/home/xli96/programs/axiom/lsp' +make[1]: *** [lspdir] Error 2 +make[1]: Leaving directory `/home/xli96/programs/axiom' +make: *** [all] Error 2 +[xli96@n19h087 axiom]$ gedit README + +\start +Date: Fri, 30 Jul 2004 11:37:40 -0400 +From: root +To: xli96@uwo.ca +Subject: Re: [Axiom-developer] about compilation error on mandrake 1.0 + +do you have m4 installed? (see the FAQ file in the latest distribution). +I believe this problem occurs because m4 is missing. +Look at the early messages and see if there is an error message +complaining about m4. + +\start +Date: Fri, 30 Jul 2004 11:12:45 -0400 +From: Stephen Wilson +To: xli96@uwo.ca +Subject: Re: [Axiom-developer] about compilation error on mandrake 1.0 + +Hi Xin, + +On Fri, Jul 30, 2004 at 10:18:01AM -0400, xli96@uwo.ca wrote: +> the error message as follow: +> could you guys give me some hit? thanks + +This is the Steve you know from the lab! I have only posted here once +before, so I'd like to introduce myself to the rest of the list. + +Im an undergrad at UWO studying math and comp-sci. I have a strong +interest in computer algebra, both theory and implementation. I am +currently working as a research assistant at ORCCA (Ontario Research +Center for Computer Algebra) implementing univariate and multivariate +polynomial factorization routines (via Hensel lifting, van Hoeij +recombination) in Aldor under the supervision of Marc Moreno +Maza. Tim, we met briefly when you last visited UWO. + +I have lurked on this list for some months now. I only jump in when my +insane inexperience isn't so obvious :) + +Xin, You need to edit lsp/Makefile.pamphlet line 300 (as of cvs 2-3 +days ago). It reads as: + + ./configure --enable-vssize=65536*2 --enable-statsysbfd --enable-maxpage=128*1024 ; + +you should change this to: + + ./configure --enable-vssize=65536*2 --disable-statsysbfd --enable-locbfd \ + --enable-maxpage=128*1024 ; + +I built AXIOM on this very same machine a month or so ago, and this +fix worked for me. Thus, I dont think the problem is M4. I also had +this problem (with the same fix) for Slackware 9.1. + +\start +Date: Fri, 30 Jul 2004 11:36:06 -0400 +From: Stephen Wilson +To: axiom-developer@nongnu.org +Subject: [Axiom-developer] very simple Axiom 'bug' + +Tim, + +Sending you this simple comment has been on my TODO list for some +time. + +Regarding src/clef/edible.c.pamphlet, line 291, we have: + + struct termio ptermio; + +This should be: + + struct termios ptermio; + +Now if you unwind the #ifdef's you see that this is not compiled +unless 'unlikely' is defined (top of file, lines 79-83). Perhaps this +is truly dead code, but maybe this fix will save someone a few minutes +and a redundant `make' down the road. + +\start +Date: Fri, 30 Jul 2004 12:56:02 -0400 +From: root +To: wilsons@multiboard.com +Subject: Re: [Axiom-developer] very simple Axiom 'bug' + +>Sending you this simple comment has been on my TODO list for some +>time. +> +>Regarding src/clef/edible.c.pamphlet, line 291, we have: +> +> struct termio ptermio; +> +>This should be: +> +> struct termios ptermio; +> +>Now if you unwind the #ifdef's you see that this is not compiled +>unless 'unlikely' is defined (top of file, lines 79-83). Perhaps this +>is truly dead code, but maybe this fix will save someone a few minutes +>and a redundant `make' down the road. + +applied. though i don't know how to test it. thanks -- tim + +\start +Date: Fri, 30 Jul 2004 13:00:37 -0400 +From: root +To: wilsons@multiboard.com +Subject: Re: [Axiom-developer] about compilation error on mandrake 1.0 +Cc: axiom-developer@nongnu.org + +Steve, + +what is locbfd? i need to document it either in the FAQ or +as a separate branch of the make. + +\start +Date: Fri, 30 Jul 2004 09:32:29 -0700 (PDT) +From: C Y +To: Stephen Wilson , xli96@uwo.ca +Subject: Re: [Axiom-developer] about compilation error on mandrake 1.0 + +> Xin, You need to edit lsp/Makefile.pamphlet line 300 (as of cvs 2-3 +> days ago). It reads as: +> +> ./configure --enable-vssize=65536*2 --enable-statsysbfd +> --enable-maxpage=128*1024 ; +> +> you should change this to: +> +> ./configure --enable-vssize=65536*2 --disable-statsysbfd +> --enable-locbfd \ +> --enable-maxpage=128*1024 ; + +Which GCL is currently being used in Axiom? Until recently I had to do +the same thing with GCL on Gentoo Linux, but I'm not sure if it was +system upgrades or a GCL upgrade which eliminated the need. + +\start +Date: Fri, 30 Jul 2004 13:27:49 -0400 +From: root +To: smustudent1@yahoo.com +Subject: Re: [Axiom-developer] about compilation error on mandrake 1.0 +Cc: axiom-developer@nongnu.org + +CY, + +The current GCLVERSION is gcl-2.6.3 + +\start +Date: Fri, 30 Jul 2004 13:06:07 -0400 +From: Stephen Wilson +To: axiom-developer@nongnu.org +Subject: Re: [Axiom-developer] about compilation error on mandrake 1.0 + +Hi Tim, + +On Fri, Jul 30, 2004 at 01:00:37PM -0400, root wrote: +> > what is locbfd? i need to document it either in the FAQ or +> > as a separate branch of the make. + +Most of my understanding of this issue has been derived from reading +this list. GCL carries its own version of the BDF (Binary File +Descriptor) library which is a part of binutils. For gcl-2.6.3 as +packaged with Axiom, in gcl/binutils/bfd/README, there is a short +description: + + BFD is an object file library. It permits applications to use the + same routines to process object files regardless of their format. + + BFD is used by the GNU debugger, assembler, linker, and the binary + utilities. + + The documentation on using BFD is scanty and may be occasionally + incorrect. Pointers to documentation problems, or an entirely + rewritten manual, would be appreciated. + + There is some BFD internals documentation in doc/bfdint.texi which may + help programmers who want to modify BFD. + + BFD is normally built as part of another package. See the build + instructions for that package, probably in a README file in the + appropriate directory. + + +Now again, for gcl-2.6.3, ./configure --help yields: + + --enable-statsysbfd \ + uses a static sytem bfd library for loading and relocationing \ + object files. + + --enable-locbfd \ + uses a static bfd library built from this source tree for \ + loading and relocationing object files. + +So, my suggestion of --disable-statsysbfd --enable-locbfd seems to +imply "don't use the system bfd library, use the gcl based library +instead". + +I have next to zero understanding as to how gcl works internally. I do +not know under what system conditions the build fails w.r.t bfd. I +have built Axiom under Mandrake 10 and Slackware 9.1, and in both cases +I have had this same problem. I will try to build under Redhat 9, and +if the build succeeds, then perhaps I can start looking at the system +differences and get some idea as to what causes the failure. If there +are any suggestions as how one might better understand this problem, I +am more than willing to help in what ever way I can. + +\start +Date: Sat, 31 Jul 2004 15:16:38 -0400 +From: "Bill Page" +To: "'Bob McElrath'" +Subject: [Axiom-developer] RE: REDUCE on test.axiom-developer.org + +Bob, + +On Thursday, July 29, 2004 7:48 PM you wrote: + +> ... +> > +> > http://test.axiom-developer.org/Members/billpage/TestReduce +> > +> +> Neat! +> +> I wonder if your last example on that page is correct...neither +> Maple nor Mathematica will do that integral. + +I don't know. My only concern was the claim made often for Axiom +hat due to the nature of the algorithm for integration "it will +either give an answer or a demonstration that no answer exists". +In this rather simple case it failed. But as Tim said, this is +probably due to Axiom not (yet) handling a specific case. I +wonder if there are other missing cases and if so, I wonder if +there is anyone around with enough knowledge of the algorithm +to fill in these gaps? + +> +> I was thinking to separate your code into a different PageType. +> i.e. the PageType specifies what this document is *written* in. +> Separate from that is the presentation (i.e. png/mathml which +> should not be a page type -- as I have it now). + +I agree but I do not yet have the skills to do this. + +> Is the new Reduce stuff in your darcs repository? + +Yes. It is here + + http://page.axiom-developer.org/repository/LatexWiki + +The patch is named "Reduce interface". + +> +> But now we have two math backends...and it might be very +> useful to have both in the same document. So should we +> define a StructuredText+LaTeX+Math pagetype where 'Math' +> refers to any symbolic backend? + +That makes sense to me. Whether specific programs such as +Axiom or Reduce are supported could be determined dynamically +based on whether the appropriate environment is installed. +If it is not installed, then a reference to a specific system +will just look like another user-defined LaTeX environment. +Perhaps I can define some default LaTeX coding in LatexTemplate +that would make these environments display appropriately even +when the necessary program is not available. + +> It would also be useful to do a bit of stylesheet magic to +> differentiate between Axiom/Reduce/Maxima... Perhaps some +> small text in the UR corner that says what language this is. + +I think that is a good idea. You can see an example of this +in the newest version of the code at + + http://test.axiom-developer.org/Members/billpage/TestReduce + +Note also my comments there about using the Reduce tri package +(TeX) package rather than the rlfi package (LaTeX). The first +version used rlfi but I ran into a problem. And tri does seem +to have some advantages in terms of line breaking etc. + + + + + diff --git a/changelog b/changelog index 336c192..4e630a3 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,5 @@ +20140423 tpd src/axiom-website/patches.html 20140423.02.tpd.patch +20140423 tpd book/2004-07.txt regularize 20140423 tpd src/axiom-website/patches.html 20140423.01.tpd.patch 20140423 tpd book/2004-06.txt regularize 20140422 tpd src/axiom-website/patches.html 20140422.04.tpd.patch diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html index 695f93c..ada18a5 100644 --- a/src/axiom-website/patches.html +++ b/src/axiom-website/patches.html @@ -4298,6 +4298,8 @@ book/2004-04.txt regularize book/2004-05.txt regularize 20140423.01.tpd.patch book/2004-06.txt regularize +20140423.02.tpd.patch +book/2004-07.txt regularize