fwchapman

Dr. Frederick W. Chapman

93 Reputation

7 Badges

19 years, 129 days
Bethlehem, Pennsylvania, United States

Social Networks and Content at Maplesoft.com

I am a research mathematician and an expert on mathematical software. I completed my PhD in applied mathematics with a specialization in computer algebra and symbolic computation in 2003 at the University of Waterloo. My PhD supervisor was Prof. Keith O. Geddes, co-inventor of Maple. In my PhD thesis, I invented a parameterized family of bilinear infinite series expansions for multivariate functions, which I named "Geddes series expansions" in honor of my thesis supervisor. Geddes series are more general than both Taylor series and Fourier series since the terms of a Geddes series can contain arbitrary functions. Geddes series are more versatile than traditional series expansions because the parameters of the family are not numbers, or even functions, but rather linear functionals on function spaces. Geddes series have dozens of computational applications ranging from the fast and accurate approximation of high-dimensional multiple integrals to the automatic derivation and proof of multivariate identities for elementary and special functions.

MaplePrimes Activity


These are replies submitted by fwchapman

Jordi, I too felt there were moments in this discussion with flamewar potential, but I'm glad things took a much more constructive turn. I hope my suggestions prove helpful. One last thought comes to mind: Perhaps an automatic Maple-to-Maxima or Maple-to-Axiom code translator would be a good compromise. I don't know which would be a better choice, but if it worked well, it would give people an easy way to run Maple code using free software. I bet Richard Fateman (Maxima) and Stephen Watt (Axiom) could provide some very helpful guidance for this approach. Depending on your status (recent graduate, postdoc, professor), there may be ways to arrange for you to work on a project like this with someone who could provide both guidance and funding. Finally, I want to thank you for helping me to see things from a different point of view. I wish you much success in your work and in your quest to find a way to make the benefits of Maple freely available to everyone. With best wishes, Fred P.S. I would be very interested in hearing about any progress you make. I hope you'll keep us apprised on MaplePrimes. P.P.S. *hugs* :-) -- Frederick W. Chapman, Postdoctoral Fellow, University of Waterloo http://www.scg.uwaterloo.ca/~fwchapman/
Dear Jordi, I just reread all your original posts and your recent replies. I think I dismissed your idea too hastily, and I'm sorry for that. In fairness, I will now argue for the opposite of my original view! Maple is wonderful when you and the people you work with have ready access to it, but I confess that I too have sometimes wished to be free of Maple's proprietary restrictions. That would enable me to find a larger audience for my work, for example. I live with these restrictions because Maple has an extensive database of mathematical knowledge which is extremely useful to me in my work and because its algorithms are constantly improving. For these and other reasons, Maple is a great prototyping tool. Everything I need is already there, and I don't have to take time to reinvent the wheel. Nevertheless, I have looked into some free computer algebra alternatives, which you can easily track down with Google. I understand the motivation for projects like Octave and Scilab—Matlab can be prohibitively expensive—even for industrial users!!! It's actually rather outrageous, considering Matlab's academic origins. To return to your original question about freeing Maple, here's what I think it would involve. Basically, you need an independent party to duplicate the functionality of the Maple kernel, which is both an interpreter for the Maple language and an optimized computational engine for Maple's computational primitives. The representation of Maple's data structures is handled by the kernel, as is memory management and garbage collection. Specifications can probably be found scattered throughout the Maple documentation as well as books and articles published by key architects of the Maple project (e.g., Keith Geddes, Gaston Gonnet, Mike Monagan, Bruce Char, etc.). Maple itself is a full-featured programming language, and I see no reason why an independent interpreter could not be legally developed to run programs written in this language. In fact, I bet any group which developed an efficient compiler for the complete Maple language could make a ton of money, if they were so inclined. Once there is an independent kernel/interpreter/compiler for the Maple language, you could solicit for contributions to the Maple library. Many authors of existing Maple codes would probably be happy to donate their code to the library at no charge. In other cases, it might be necessary to duplicate functionality of certain library packages by rewriting them from scratch to avoid copyright violations. The more permissions you can get to use existing code, the better for you. Concerning the third-party proprietary software on which Maple is based, there are often public-domain alternatives. For example BLAS and LAPACK and ATLAS can replace NAG—which is based in large part on public-domain BLAS and LAPACK anyway! NAG is, to some extent, just a proprietary implementation of public-domain software. The multiprecision floating-point library used by Maple is also free software, I believe. Finally, note that Axiom had lots of proprietary parts which were removed before the code was released into the public domain. The Axiom community has worked very hard to fill in the missing pieces and create a functional system. All things considered, I don't think your idea to create a free and independent Maple is impossible. It would depend a lot on the willingness of the freelance Maple developer community to find creative ways to fill in the missing proprietary pieces. The first and biggest hurdle would be preparing functional specifications for the kernel/interpreter/compiler, whose inner workings are a deep, dark, proprietary secret. You might consider writing to the principal architects of Maple and asking them for their views on how to best go about such a project. Some of them might be very sympathetic and have some good technical suggestions. For example, Gaston Gonnet's Darwin is free software for computational biochemistry and is modeled on Maple. I'm not sure of the precise relationship between Darwin and Maple, but perhaps Darwin (or parts of Darwin) could serve as a starting point for a Free Maple Initiative! With best wishes, Fred Chapman -- Frederick W. Chapman, Postdoctoral Fellow, University of Waterloo http://www.scg.uwaterloo.ca/~fwchapman/
Dear Jordi, Thank you for your detailed and thoughtful reply to my comments. I readily admit that you are using the terminology more precisely than I am, and you are making some fine distinctions which I might not make, but that is perfectly okay with me. I'm aware of the basic issues, but I'm not as expert as you on the finer points of various kinds of software licenses. Nevertheless, I am sympathetic to your concerns. Please forgive me if any of my comments sounded otherwise. Perhaps I can offer you some practical suggestions. Concerning Maple, have you contacted Maplesoft to discuss your concerns and explain the financial circumstances faced by your colleagues? Perhaps they would be willing to develop a sliding scale to take different national economies into account. They already offer lower-priced academic licenses and student versions, though the price may still be too high for students and colleagues in your country. Perhaps they might consider developing some kind of grant program to provide software based on the merit of proposed applications. I suggest discussing your concerns with someone in authority at Maplesoft. If Maplesoft is not able to accommodate your circumstances, and if you feel strongly about affordable/free mathematical software tools, there are a number of other software projects in computer algebra which would welcome your enthusiasm and passion, as well as your time and energy. I know Axiom has an active developers group, and I think Maxima does too. Axiom and Maxima are general-purpose computer algebra systems. There are also smaller, more specialized projects like GAP, Singular, and others. Some of these specialized programs are superior in their area to more general-purpose programs. A Google search on free mathematical software for computer algebra or symbolic computation turns up a lot of good stuff. Perhaps readers of this forum can offer you some suggestions. Where do your mathematical interests lie? What kinds of applications do you like? With best wishes, Fred Chapman -- Frederick W. Chapman, Postdoctoral Fellow, University of Waterloo http://www.scg.uwaterloo.ca/~fwchapman/
Jordi wrote: It's possible to avoid using proprietary software and still produce quality work. Have you ever tried it? It's not that hard nowadays, with the thousands of free pieces of software out there. I agree with you, Jordi: It is possible to do high quality work without relying upon proprietary software. I wanted to say so in order to balance my previous comments favoring commercial support for Maple R&D. There are a lot of good free programs in many areas. They are sometimes not as polished or full-featured as professional software, but many are still extremely good. One could also argue the flip side: Professional software is sometimes bloated with too many features, and free software gives you what you really need. On my PC at home, I use a lot of free programs, like anti-virus, anti-spyware, anti-adware, and firewall programs. I also have FeedReader (for RSS/Atom syndicated feeds), Nvu (HTML/CSS editor), Tera Term Pro (telnet), CoffeeCup Free FTP, and Firefox (though I usually use a patched version of Internet Explorer because it is better supported by my ISP and my other software). Nvu is closest to the free software model you advocate; it has a commercial sponsor, Linspire, and a lot of volunteers. The reviews I have read of Nvu suggest it is even better than FrontPage for creating small websites, but that Dreamweaver is currently better than Nvu for professional development of large websites. The online Nvu User Guide is a mighty file example of a high-quality website created with Nvu. Many computer security products use a different business model: They are free for home use and cost money otherwise. Other business models offer a basic version of the software for free with an upgrade path to the more full-featured commercial version. Many web-based services (e.g., web hosting, web mail, web tracking) use a similar business model: Basic service is free, and you can pay for upgrades in proportion to the extra features you need. Other web-based services use an advertiser-supported model to pay for services offered at no charge to the user. (The money has to come from somewhere.) I also have some shareware software which I bought at a modest price: Mass Downloader (automatic, interruptible, multithreaded web/FTP file downloads), Registry First Aid Agent (Windows file registry repair and maintenance), Registry Compactor, Universal Hint System Reader (for computer game hint files in UHS format). Although I use a lot of freeware and shareware at home, the two programs on which I rely most heavily for my mathematical research are both commercial software: Maple and Scientific WorkPlace. I use commercial software for my "mission critical applications" because I find it the most up-to-date, the most full-featured, the most reliable, and the best supported. I know a strategic software investment when I see one, and I don't mind paying good money for leading-edge, world-class software which multiplies my mathematical productivity many-fold! My software philosophy is to get the best software tools for the most important tasks, even if the best tools cost money. For other tasks, high-quality freeware and shareware provide excellent cost-saving alternatives—which in turn make it possible for me to afford the must-have commercial software. -- Frederick W. Chapman, Postdoctoral Fellow, University of Waterloo http://www.scg.uwaterloo.ca/~fwchapman/
You are misunderstanding the nature of free software. It is not about price -- it's about freedom. *cringes* Please do not hurl cliches at me! It makes you look like a fanatic. It also makes me feel less inclined to continue this discussion. Sure, you can make money selling technical support for a complex product like public-domain Unix, which was already free. Maple, however, is not a public domain product, and incorporating public domain software into Maple does not change that. GPL permits the development of commercial products based on free software. As an eleven year affiliate of the Maple Lab at the University of Waterloo, I see the harsh realities of life: A highly complex and mathematically sophisticated software product like Maple costs a considerable amount of money to maintain and develop, and that money has to come from somewhere. Maplesoft has to pay its in-house Maple developers and also provides funding to computer algebra research groups at leading universities. This work can't be done by just anyone—a significant number of the people who are making core contributions to Maple are mathematical software experts who either already have PhD's or are earning PhD's. I consider it axiomatic that a well-funded, well-coordinated, full-time research and development effort by qualified professionals will produce superior results compared to a part-time effort carried out by a scattered group of amateur volunteers. Software development with full funding is a profession. Software development without full funding is a hobby. My 20 years of experience with mathematical software tells me that there is indeed a significant difference between the work of professionals and the work of hobbyists. Passion for the work is admirable, but it doesn't pay the bills. Proper funding makes consistently high quality and timely progress possible. Government funding (e.g., NSERC research grants) already plays a significant role in supporting computer algebra research, but the government is in no position to assume the entire burden. If you can figure out a way to fully fund Maple research and development without relying on Maple sales revenues, I will applaud your solution—but I will want to see realistic details, not more idealistic rhetoric. The current model of partnership between government, academia, and industry already works quite well, and you will be hard-pressed to do better. My access to Maple will soon be legally cut off because I was using it under what I believe to be a site-wide McGill license. I am no longer affiliated with McGill, but they managed to get me addicted to Maple while I was there anyways. Since I am no longer covered by McGill's license, my access to Maple is legally restricted Why don't you just buy a legal copy of Maple? Problem solved! Are you seriously trying to argue that you are being "forced" to commit an illegal act? By the way, do you make a habit of logging in to commercially supported websites and writing, "Hi there! I stole your product!"? -- Frederick W. Chapman, Postdoctoral Fellow, University of Waterloo http://www.scg.uwaterloo.ca/~fwchapman/
Jordi, you need to take into account the history of Maxima and Axiom. There is a reason that both Maxima and Axiom are now free: Both were commercial products which ultimately failed financially. Rather than let all that work go to waste, portions of the code were released into the public domain. It has taken a lot of work on the part of the Axiom community to fill in the missing pieces of Axiom, for example. Since Maple is Maplesoft's flagship product, the only way I foresee Maple becoming free software is if Maplesoft goes out of business, and I certainly do not want that to happen. Consider the history of Maple and Maplesoft: Maple began as a research project in the Symbolic Computation Group of the University of Waterloo. Waterloo Maple Software was a commercial spin-off company which arose to handle the logistics of supporting the external use of Maple—to handle the distribution of Maple and provide technical support. Now Maplesoft has an in-house team of highly educated and hard-working developers (lots of PhD's) who work in conjunction with external research labs at universities. The Maplesoft commercial infrastructure arose in response to the needs of Maple users worldwide, and it plays a vital role; e.g., distributing the product, providing technical support and product training, tracking and fixing bugs, developing new features in response to user needs, supporting the user community through the yearly Maple Conference, MaplePrimes, the Maple Application Center, etc. As you say, there is such a thing as high-quality free mathematical software (e.g., GAP, Singular, GnuPlot, BLAS, LAPACK, ATLAS). Many of these software packages are highly specialized and appeal to a relatively small audience of researchers working in a particular field. These software packages would not be commercially viable—that's why they are free. Also, the people who produce this software are funded by other means; e.g., many are university professors who get paid whether or not their software becomes widely used. Ultimately, this software is not really free—it is just paid for by the employers of the people who develop it instead of being paid for by the people who use it. There is no such thing as free software—the money which keeps the developers from starving to death is coming from somewhere, even if it is not coming from software sales. Why do you feel you will soon lose access to Maple? It is an excellent product, and well worth the price. In my opinion, money spent on first-rate mathematical productivity tools is money well spent. -- Frederick W. Chapman, Postdoctoral Fellow, University of Waterloo http://www.scg.uwaterloo.ca/~fwchapman/
Thanks, Will. I installed the Java Runtime Environment plugin for my browser, and now I can get plots on MapleNet just fine. I'm especially pleased that MapleNet allows you to rotate 3-D plots on the web—what a wonderful feature! Fred -- Frederick W. Chapman, Postdoctoral Fellow, University of Waterloo http://www.scg.uwaterloo.ca/~fwchapman/
Jan, I tried out your MapleStudio plotting application on MapleNet. I like it a lot. It is very easy to use. I especially like that you can rotate 3-D plots on the web, which is fabulous. Here's a MapleStudio demo I really like: Using 3D (animated), enter the function f := cos(t*x*y) with variable ranges x := 0..1 and y := 0..1 and parameter range t := 0..6*Pi. If you run the animation with the Oscillate and Continuous options, it will run forwards, run backwards, and then repeat. It looks really cool! :-) I did have a couple of problems, though: 1. When I try to type in a long function, a scroll bar appears and overwrites the input field so that I can no longer see or edit my entry. This only happens on MapleNet. 2. When I download the worksheet and try to run it on my computer, I get an error: "incorrect syntax in parse: unexpected number (5)" This doesn't happen on MapleNet. I hope you can do something about these problems. Thanks again for an interesting worksheet! Fred Chapman -- Frederick W. Chapman, Postdoctoral Fellow, University of Waterloo http://www.scg.uwaterloo.ca/~fwchapman/
I'm keenly interested in trying out your interactive MapleNet worksheet, but I cannot get it to work. I tried it using Internet Explorer 6.0 under Windows 98SE and Windows XP and Firefox 1.0.7 under Windows XP but could not get the plots to display. Is anyone else having this problem? -- Frederick W. Chapman, Postdoctoral Fellow, University of Waterloo http://www.scg.uwaterloo.ca/~fwchapman/
Hi Axel, Could you post a typical example of an integral which you want to evaluate numerically for a function involving BesselK(1,x)? I'm particularly curious to know what values of x you need. You may be interested in a recent master's thesis at the University of Waterloo: "Automated Generation of Numerical Evaluation Routines" by Thomas A. Robinson (supervised by Keith O. Geddes and submitted in 2005). Tom developed a Maple toolkit which generates evalhf-able approximations for non-evalhf-able functions; e.g., Bessel functions. This speeds up numerical evaluation considerably. Quite apart from Tom's approach, I have developed a new method for generating accurate evalhf-able approximations of Bessel functions using Geddes series expansions. (I invented Geddes series in my PhD thesis in 2003 and discussed them a little bit on my MaplePrimes blog). I'd really like to see a typical example of one of your Bessel function integrals so that I test my own approximation methods on it. Thanks, Fred -- Frederick W. Chapman, Postdoctoral Fellow, University of Waterloo http://www.scg.uwaterloo.ca/~fwchapman/
Hi Axel, Could you post a typical example of an integral which you want to evaluate numerically for a function involving BesselK(1,x)? I'm particularly curious to know what values of x you need. You may be interested in a recent master's thesis at the University of Waterloo: "Automated Generation of Numerical Evaluation Routines" by Thomas A. Robinson (supervised by Keith O. Geddes and submitted in 2005). Tom developed a Maple toolkit which generates evalhf-able approximations for non-evalhf-able functions; e.g., Bessel functions. This speeds up numerical evaluation considerably. Quite apart from Tom's approach, I have developed a new method for generating accurate evalhf-able approximations of Bessel functions using Geddes series expansions. (I invented Geddes series in my PhD thesis in 2003 and discussed them a little bit on my MaplePrimes blog). I'd really like to see a typical example of one of your Bessel function integrals so that I test my own approximation methods on it. Thanks, Fred -- Frederick W. Chapman, Postdoctoral Fellow, University of Waterloo http://www.scg.uwaterloo.ca/~fwchapman/
Hi Axel, Here's how to do numerical integration in Maple using the NAG routines and hardware floats together: > f:= x -> evalhf(sin(x)); f := x -> evalhf(sin(x)) > evalf(Int(f, 0..1, method = _d01ajc)); 0.4596976941 The key is to avoid using constructs like f(x) or 'f(x)' since evalhf cannot handle the symbolic x. Fred -- Frederick W. Chapman, Postdoctoral Fellow, University of Waterloo http://www.scg.uwaterloo.ca/~fwchapman/
Hi Axel, Here's how to do numerical integration in Maple using the NAG routines and hardware floats together: > f:= x -> evalhf(sin(x)); f := x -> evalhf(sin(x)) > evalf(Int(f, 0..1, method = _d01ajc)); 0.4596976941 The key is to avoid using constructs like f(x) or 'f(x)' since evalhf cannot handle the symbolic x. Fred -- Frederick W. Chapman, Postdoctoral Fellow, University of Waterloo http://www.scg.uwaterloo.ca/~fwchapman/
Rich, a spell checker is certainly a good idea. It may take time for MaplePrimes to add one, but meanwhile, you can do what I do—install the Google toolbar in your web browser. It has a spell checker which works with any web-based form. I'm using it right now! :-) Fred -- Frederick W. Chapman, Postdoctoral Fellow, University of Waterloo http://www.scg.uwaterloo.ca/~fwchapman/
Hi Rich, Actually, New Content is already sorted in reverse chronological order—the newest messages appear at the top and the oldest messages appear at the bottom. Fred -- Frederick W. Chapman, Postdoctoral Fellow, University of Waterloo http://www.scg.uwaterloo.ca/~fwchapman/
1 2 3 Page 2 of 3