JacquesC

Prof. Jacques Carette

2401 Reputation

17 Badges

20 years, 83 days
McMaster University
Professor or university staff
Hamilton, Ontario, Canada

Social Networks and Content at Maplesoft.com

From a Maple perspective: I first started using it in 1985 (it was Maple 4.0, but I still have a Maple 3.3 manual!). Worked as a Maple tutor in 1987. Joined the company in 1991 as the sole GUI developer and wrote the first Windows version of Maple (for Windows 3.0). Founded the Math group in 1992. Worked remotely from France (still in Math, hosted by the ALGO project) from fall 1993 to summer 1996 where I did my PhD in complex dynamics in Orsay. Soon after I returned to Ontario, I became the Manager of the Math Group, which I grew from 2 people to 12 in 2.5 years. Got "promoted" into project management (for Maple 6, the last of the releases which allowed a lot of backward incompatibilities, aka the last time that design mistakes from the past were allowed to be fixed), and then moved on to an ill-fated web project (it was 1999 after all). After that, worked on coordinating the output from the (many!) research labs Maplesoft then worked with, as well as some Maple design and coding (inert form, the box model for Maplets, some aspects of MathML, context menus, a prototype compiler, and more), as well as some of the initial work on MapleNet. In 2002, an opportunity came up for a faculty position, which I took. After many years of being confronted with Maple weaknesses, I got a number of ideas of how I would go about 'doing better' -- but these ideas required a radical change of architecture, which I could not do within Maplesoft. I have been working on producing a 'better' system ever since.

MaplePrimes Activity


These are replies submitted by JacquesC

Maple's use of remember tables is supposed to only be done when it is legitimate to do so, i.e. will not result in a bug. So you are asking for a workaround for Maple bugs, and so it is hardly surprising that there are no Maple features that will let you 'disable' deep remember tables like evalf's! You can disable remember tables from library routines, but that involves some serious surgery, which is quite dangerous to the health of the library. It is probably better to report the bug and hope that it will be fixed soon rather than attempt that.
I prefer the modules way of doing it - but that is indeed a matter of taste. Internally, there is actually little difference between the two! The DAG for modules and proc are essentially the same. My current favourite languages (in order) are Haskell, MetaOCaml, Maple, Scala, and Python.
It is possible to do the same thing, with a cleaner syntax and more information hiding via Maple's modules. This is fully documented in the Advanced Programming Guide (and I believe the text of the examples is online as well). Note that you have re-discovered something quite classical in the theory of programming languages, namely how to embed OO programming into a higher-order lambda-calculus with references. See for examples the excellent textbook Types and Programming Languages (Chapter 18).
$ has very unusual evaluation rules (it is yet another feature that should be removed because it introduces more bugs than it solves problems, IMNSHO). So what happens is that the jj mod 3 evaluates as a polynomial to jj (because of the funny evaluation order), and then lambda[jj] evaluates normally. The seq version works because its evaluation rules are saner.
I am sure it will be picked up and put into Maplesoft's list of suggestions for FunctionAdvisor. I know the developer of that functionality, and he welcomes such suggestions from users of his code.
I am sure it will be picked up and put into Maplesoft's list of suggestions for FunctionAdvisor. I know the developer of that functionality, and he welcomes such suggestions from users of his code.
Vista is not listed as an official platform, so I would not be surprised it Maple did not "quite" work on it.
I am guessing that the issue is related to remember tables (internally, evalf uses them in the kernel). It appears that Events are not remembered (and thus not rethrown/reset) when a value is taken from a remember table.
The defaults in the Standard GUI are set for beginners who are operating Maple in glorified-calculator mode. Neither of the GUIs were designed with the Maple programmer in mind - and thus they give the programmer a very bad user-experience (as expected, since it was not designed for them). This should only be taken as a negative for Maple 10 if programming is expected to be done by most users - which is not the case as far as all the Maple marketing pieces tell us. One day, maybe the fact that Maple is such a good programming language will resurface in its marketing litterature, along with dramatic improvements in IDE-like features in the product. In the meantime, as far as I know all serious developers of Maple code (including a few of my friends at Maplesoft) use a text editor with syntax highlighting (on .mpl files) for their serious Maple work.
The defaults in the Standard GUI are set for beginners who are operating Maple in glorified-calculator mode. Neither of the GUIs were designed with the Maple programmer in mind - and thus they give the programmer a very bad user-experience (as expected, since it was not designed for them). This should only be taken as a negative for Maple 10 if programming is expected to be done by most users - which is not the case as far as all the Maple marketing pieces tell us. One day, maybe the fact that Maple is such a good programming language will resurface in its marketing litterature, along with dramatic improvements in IDE-like features in the product. In the meantime, as far as I know all serious developers of Maple code (including a few of my friends at Maplesoft) use a text editor with syntax highlighting (on .mpl files) for their serious Maple work.
Not that I can say for sure, but I think this is a feature of the upcoming Maple 11. Maybe Maplesoft will confirm (if I am right), since it would be in their interest to confirm that a user-requested feature is indeed in the next version!
You need to look at readline and the various functions in StringTools.
Try _EnvAllSolutions := true; solve(sin(abs(x)),x); and you'll get an empty answer and _SolutionsMayBeLost is set to true. This is basically because it figures out that the solutions are contained in _Z1*Pi but can't narrow things down from there, so tosses out all those solutions.
Try _EnvAllSolutions := true; solve(sin(abs(x)),x); and you'll get an empty answer and _SolutionsMayBeLost is set to true. This is basically because it figures out that the solutions are contained in _Z1*Pi but can't narrow things down from there, so tosses out all those solutions.
Maple can handle some answers with countable, discrete infinities of solutions. It can also handle very simple cases of finite numbers of solutions which are real ranges. As far as I know, there is no code to deal with solutions which consist of a countable union of ranges. In this particular case, something could probably be done and return something like Range(Open(2*_Z1*Pi),Open((2*_Z1+1)*Pi)). But only extremely simple cases could be done.
First 110 111 112 113 114 115 116 Page 112 of 119