Slashdot Mirror


Open Source Math

An anonymous reader writes "The American Mathematical society has an opinion piece about open source software vs propietary software used in mathematics. From the article : "Increasingly, proprietary software and the algorithms used are an essential part of mathematical proofs. To quote J. Neubüser, 'with this situation two of the most basic rules of conduct in mathematics are violated: In mathematics information is passed on free of charge and everything is laid open for checking.'""

80 of 352 comments (clear)

  1. Lol by Matt867 · · Score: 5, Funny

    Thanks for the article, now some crazed company is going to try to copyright math.

    1. Re:Lol by Anonymous Coward · · Score: 5, Funny

      I am going to copyright 0 = 1.
      Any software that contains i = i+1 must license my math.

    2. Re:Lol by Dunbal · · Score: 4, Funny

      Sorry, but I've already patented the systematic use and manipulation of abstract symbols representing real world quantities in order to derive relationships.

      --
      Seven puppies were harmed during the making of this post.
    3. Re:Lol by Plutonite · · Score: 4, Funny

      Sorry, but I've already patented the systematic use and manipulation of abstract symbols representing real world quantities in order to derive relationships. And I've copyrighted proverbial hand-waving. Together, we hold the scientific community hostage!
    4. Re:Lol by RockoTDF · · Score: 2, Funny

      i++ will then become the new symbol of freedom! Way to go dude.

      --
      There is more to science than physics!

      www.iomalfunction.blogspot.com
    5. Re:Lol by william_tell · · Score: 3, Funny

      I wish I figured this out in school. All those times the teacher would ask me to show my work. I could have just said, "Sorry but my solution is proprietary, and therefore I can't show my work."

    6. Re:Lol by Jarjarthejedi · · Score: 2, Funny

      Not without my patents on 'Methods of convincing individuals, or groups of individuals, to abide unanimously with a procedure or piece of information developed or discovered by an independently third party' and 'Preventing a group of individuals, or an individual, from being able to make an independent decision by means of force, be it verbal, physical, or implied.'

      --
      There are two kinds of fool One says 'This is old therefore good' Another says 'This is new therefore better'- Dean Ing
    7. Re:Lol by donscarletti · · Score: 3, Funny

      The assertion i=i+1 just made the field of complex numbers one step more, um, complex.

      --
      When Argumentum ad Hominem falls short, try Argumentum ad Matrem
  2. It's all... by Shikaku · · Score: 2, Insightful

    about the money.

  3. Python is part of the answer by Ckwop · · Score: 5, Insightful

    I am no a mathematician but surely if you're going to submit a computer aided proof you must submit a full copy of the program. The are all manor of subtle mistakes that can be made in a program that could cause serious problems with a proof.

    Suppose you inspect the source and find it to be faultless, how can you trust the compiler. And if you hand compile the compiler, how can you trust the CPU? Surely it's turtles all the way down.

    In many ways, establishing the correctness of a computer-aided proof is very much like security engineering. You want to verify that the whole software stack is operating correctly before you can trust the result. Having the source-code is a pre-requisite to this exercise.

    Changing to topic slightly, I was particularly heartened to see that the open-source mathematics framework being developed one of the authors of the article involves the use of Python.

    My immediate thought when seeing the title to the article was "Python is the answer." When some problem or algorithm intrigues me the first thing that happens is that I reach for the Python interpreter.

    Python seems to deftly marry precision with looseness. When code is laid out in Python I find it is easier to see what it's trying to do than other languages. It's aesthetic qualities aside, it supports a number of features out of the box which I imagine would be ideal of mathematicians. To list a few, it's treating of lists and tuples as first class objects, support for large integers, complex numbers, it's ability to integrate with C for high-performance work.

    I often think of Python as "basic done right" and it's ideal for mathematicians (or anybody) who don't want to think about programming but the problem at hand.

    Simon

    1. Re:Python is part of the answer by snarkh · · Score: 5, Interesting

      I have seen from personal experience, how a compiler error (some sort of incorrect optimization) led to a subtle difference in the results of a simple classification task.

      The insidious thing about that particular result was that it looked very similar to the correct. In fact the difference would not have been found if two people did not run different versions of code independently (and more or less coincidentally) arriving to slightly different error rates.

    2. Re:Python is part of the answer by nwbvt · · Score: 5, Informative

      I used Python fairly extensively in my number theory course back in college, it did the job fairly well. Its support for large integers was especially important for that class. And the fact that it was very familiar to me (I was a double major in CS and math), it was very easy for me to crank out an algorithm in it. However, most of the book's examples were in Mathematica, which I ended up getting as well. It was a neat tool, but now that my student license has expired and I don't feel like spending a few grand on another license, everything I wrote in that is useless. However I can still pull out my old Python programs and see what it was I was doing.

      --
      Mathematics is made of 50 percent formulas, 50 percent proofs, and 50 percent imagination.
    3. Re:Python is part of the answer by Dunbal · · Score: 3, Insightful

      The are all manor of subtle mistakes that can be made in a program that could cause serious problems with a proof.

      No mistakes. After all, the Ultimate Answer really is 42. My program proves it!

      #define MYANSWER "42"

      int main()
      {
            printf("The result is: %s.", MYANSWER);
      }


      No, you CAN'T have the source code... but look, my program proves it! LOOK AT THE PROGRAM!

      --
      Seven puppies were harmed during the making of this post.
    4. Re:Python is part of the answer by poopdeville · · Score: 4, Insightful

      I am no a mathematician but surely if you're going to submit a computer aided proof you must submit a full copy of the program. The are all manor of subtle mistakes that can be made in a program that could cause serious problems with a proof.

      I am a mathematician. Your referees might ask to inspect the source code. This is akin to a biologist being asked to produce her raw data. But it's pointless anyway. Because...

      In many ways, establishing the correctness of a computer-aided proof is very much like security engineering. You want to verify that the whole software stack is operating correctly before you can trust the result. Having the source-code is a pre-requisite to this exercise.

      The AMS isn't worried about the correctness of these "proofs." They aren't proofs. It is logically possible for one of these programs to return the wrong answer, even if the program is correctly implemented. Ergo, it is not a proof.

      Computing, in mathematics, is a source of fresh problems and a vehicle to explore and gain insight about mathematical structures. The AMS is far more concerned about good exploratory algorithms getting swept up by Wolfram Inc., and Mathworks, and the like, and never being seen by mathematicians again.

      Regarding which language is approriate for mathematics, the answer is whichever clearly expresses the idea you're trying to write. Lexical scoping is familiar to us. I know I prefer it, since it lessens my cognitive load. I prefer dynamically typed languages. I need the ability to construct anonymous functions efficiently. And I would prefer automatic memoization. Development time is always an issue. Most languages don't come with extensive mathematical algorithm libraries. So you'll either have to write them yourself (time consuming; boring, unless you're into that stuff) or find some. I've used Perl, Ruby, Scheme, and C.

      --
      After all, I am strangely colored.
    5. Re:Python is part of the answer by El_Isma · · Score: 5, Informative

      Let me recommmend you Maxima http://maxima.sourceforge.net/
      It's a GPL Computer Algebra System and it's in active development. I use it all the time.

    6. Re:Python is part of the answer by Anonymous+Brave+Guy · · Score: 2, Interesting

      I fear you and/or the AMS are giving too much credit to the big names in mathematical software. Sure, they have some bright people and they do some useful research in their own right, but they're still only human. They make mistakes, their software has bugs, and they don't know lots of deep secrets that the rest of academia don't. In fact, the development practices at certain high profile mathematical software companies leave a lot to be desired; they tend to hire PhD types, who know a lot about mathematics but may or may not know jack about how to write good software. I rather doubt they're about to kidnap all the leading edge research and make it disappear from everyone not working for them.

      Disclosure: I work for a mathematical software firm well known in its industry, and I've encountered some of the others in a professional context. I am speaking personally and not on behalf of anyone else here.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    7. Re:Python is part of the answer by jelle · · Score: 3, Informative

      From your description, it sound as if you found that the code returned different results at different optimization settings for the compiler, but did not pinpoint what instruction sequence exactly caused the difference.

      Unless you were using an experimental compiler, that usually means a bug in the code, not a bug in the compiler. Run the code with valgrind, you'll probably find out-of-bound addressing, or uninitialized reads (the signs of the problem being in the code, not the compiler)... Or if you use threads, it can also be in your locks...

      The reason for that is that such code bugs often result in different code execution at different compiler optimization settings.

      --
      --- Hindsight is 20/20, but walking backwards is not the answer.
    8. Re:Python is part of the answer by jrminter · · Score: 3, Informative

      In addition to octave and maxima, there is sage. I have been impressed.

    9. Re:Python is part of the answer by poopdeville · · Score: 2, Interesting

      I fear you and/or the AMS are giving too much credit to the big names in mathematical software.

      I can see why you might think that, but my point had little to do with commercial software houses. My main point was that computer-assisted "proofs" are not proofs in the mathematical sense. They're "results" that rest "scientifically" on the software and hardware and real world. It really doesn't matter whether I use my implementation of Newton's Method or Mathematica's. Neither should be trusted in a proof.

      I forget who it was (Wiles maybe?), but a famous mathematician once described doing mathematical research as groping around a dark cave, trying to find an exit. A computer program is like a flashlight. Not an exit, but a helpful tool for finding it.

      --
      After all, I am strangely colored.
    10. Re:Python is part of the answer by Dare+nMc · · Score: 2, Insightful

      You want to verify that the whole software stack is operating correctly before you can trust the result. Having the source-code is a pre-requisite to this exercise.


      I disagree, it is certainly possible to prove to a reasonable certainty what a black box is doing. It may be easier, or more though to prove looking into the box.
      As you say, for all practicality no one is going to be able to confirm the entire software stack, by looking at the code for any proof. unless your running the final step on a basic stamp.
      But if you re-run the program multiple times with the same result, and you run multiple iterations of very similar problems that you know the results of, and they all agree, you can build a reasonable proof.
    11. Re:Python is part of the answer by ozbird · · Score: 2, Funny

      The are all manor of subtle mistakes... Irony?

    12. Re:Python is part of the answer by Goaway · · Score: 2, Insightful

      You are confusing maths and physics. Mathematicians do not care about galaxies, nor the "real world" at all. Their proofs and theorems live entirely in the world of abstract logic.

    13. Re:Python is part of the answer by Garridan · · Score: 2, Interesting

      Wow. I've never seen the phrase, "I don't know anything about this topic" drawn out into such a long statement!

      Disclaimer: IANAM (I am not a mathematician), but I'm applying to grad schools in math, and I work with mathematicians who use computer-aided proofs on a daily basis. Most mathematicians are not concerned with such loose and squirrely concepts such as colliding universes. We care about actual mathematical objects.

      For instance, the proof of the four-coloring theorem -- first it was proved by purely mathematical means that every planar graph is essentially the same as one of a few thousand small "representative" graphs. By "essentially the same", I mean that if the representative graph is four-colorable, than the original graph is, too. Then, use a computer program to color each graph with four colors. Finally, give the results to a couple of independent teams and have them verify that your coloring contains no errors.

      This isn't the mess of tweaks & hacks that you describe. Now. With closed-source math software, one can never be sure that provable methods are used. With open source, one can.

      Sage has bugs. You can fix them. Try that with Mathematica.

    14. Re:Python is part of the answer by Garridan · · Score: 4, Informative

      Disclaimer: I'm a Sage developer.

      Sage has a very good solution to this: Cython. It's a very easy language, almost identitical to Python, which can be used to bind C to Python (for instance, we use GMP and GSL extensively through Cython) as well as compile Python-like code to C, which can be accessed by Python & vice verse. It's very intuitive, and very fast.

    15. Re:Python is part of the answer by eh2o · · Score: 2, Interesting

      One thing that I find interesting about mathematical proofs is that they keep getting smaller and easier to explain. If you consult text books of just a few decades ago, they are significantly more verbose than today's equivalent. For example, "Linear Algebra" by Friedberg, Insel and Spense (a standard text), 1979 (fist edition), is almost twice the number of pages as "Linear Algebra Done Right" (Axler, 1996), a book that covers the same material.

      Furthermore the advent of computers has made the illustration of concepts much easier through high quality and even interactive graphics.

      In other words, we not only stand on the shoulders of giants, but we take their work and compress it into more easily understood pieces. Often upon reaching the next higher level of understanding, the shortcuts that we could have taken to get there become more apparent. Today, the number of pages of derivation between basic axiomatic logic and the proof of Fermat's last theorem is perhaps a few thousand. But maybe, in another hundred years, we will actually find that "simple" proof that Fermat hinted at (or not, who knows).

      For what its worth, some people lament the "loss" of the old texts, but I think this is misguided. That material has no place in modern education.

      As for devious paradoxes, these seem to be more a problem in physics, where models are incomplete, but taken to be complete, than in mathematics where incompleteness is intentionally controlled to avoid paradox. We also have, for example, the completeness theorem showing that all well-formed expressions can be evaluated. And, for the most part the possible locations of devious paradoxes seem to be known (e.g. continuum hypothesis etc).

      Automated theorem provers are first proven to be correct given the allowed operations and assumptions before they can be allowed to prove anything. There is no magic here; they could just as easily be replaced by a warehouse full of German mathematicians (German mathematicians were famous for solving intensely mechanical problems before the advent of computers (e.g. taylor expansions to hundreds of terms and huge integrals, etc).

    16. Re:Python is part of the answer by dotancohen · · Score: 2, Funny
      --
      It is dangerous to be right when the government is wrong.
    17. Re:Python is part of the answer by Dunbal · · Score: 2, Funny

      duhhhh, before you flame, make sure you're right idiot

      --
      Seven puppies were harmed during the making of this post.
    18. Re:Python is part of the answer by martin-boundary · · Score: 2, Interesting
      It seems to me that you're confusing lack of verbosity with changes of mathematical points of view. It's true that definitions get refined over time, but a changed point of view does not always equate with improvement. Every generation works on slightly different mathematical questions, and changes of viewpoint often merely reflect the problems and interests of the previous generation. There are plenty of "dead" fields that nobody works in anymore.

      Try reading books from the early 20th century, and ask yourself how much overlap there is with a recent textbook. You won't find that much.

      In other words, we're not so much compressing the past as merely picking the bits we're interested in and ignoring the others.

    19. Re:Python is part of the answer by khallow · · Score: 2, Informative

      The AMS isn't worried about the correctness of these "proofs." They aren't proofs. It is logically possible for one of these programs to return the wrong answer, even if the program is correctly implemented. Ergo, it is not a proof. That is incorrect. Even with normal proofs, it is possible to return the wrong answer, and frankly computer proofs scale better than strictly human-based ones do. So I think it's quite reason to call them "proofs".
  4. speaking of proprietary by larry+bagina · · Score: 3, Insightful

    The article (which is actually a PDF, thanks for the warning) uses proprietary fonts (LucidaBright). While it was typeset with TeX (open), only the PDF (closed and uneditable) is provided.

    --
    Do you even lift?

    These aren't the 'roids you're looking for.

    1. Re:speaking of proprietary by Main+Gauche · · Score: 5, Funny

      "While it was typeset with TeX (open), only the PDF (closed and uneditable) is provided."

      Indeed. Now we are left wondering whether the TeX code is buggy. Like maybe an extra character accidentally slipped into the file.

      therefore mathematics software should %not
      be open source!

      Now we'll never know.

    2. Re:speaking of proprietary by StormReaver · · Score: 3, Informative

      "While it was typeset with TeX (open), only the PDF (closed and uneditable) is provided."

      PDF is neither closed nor uneditable. Adobe publishes the complete PDF format for anyone to use free of charge. It may not be FSF Free (since Adobe requires that implementers adhere to certain rules that violate the principle of Free), but it's definitely not closed. Also, KWord will import it for further editing, text and images, so it's not uneditable (even if it's not ideal).

      I agree with your main point, but let's cut PDF some slack.

    3. Re:speaking of proprietary by 1u3hr · · Score: 2, Informative
      The article (which is actually a PDF, thanks for the warning) uses proprietary fonts (LucidaBright). While it was typeset with TeX (open), only the PDF (closed and uneditable) is provided.

      I think (hope) you're joking, but several people who responded seem to be taking this at face value. It's wrong in several ways. PDF is an open format, and if you look at the file info, you see that this particular PDF was generated with Ghostscript. And it's quite simple to edit PDFs. Not as easy as, say HTML, but much easier than if it were, say, a TIFF file. I personally use Adobe Acrobat, but a great many free and commercial apps can read, write, and manipulate PDF files. That's why the format was created, for use in DTP, not a locked document format as some business people seem to imagine.

  5. Openness is Fundamental to Mathematics by aproposofwhat · · Score: 2, Interesting
    The article is a very well argued opinion piece, and is correct in that only open-source software should ever be used in a proof.

    It is fundamental to mathematics that other mathematicians in the same field can check a proof, and the use of closed source software makes that logically impossible, for without access to the source of the application, it is not possible to guarantee that any particular operation has been implemented correctly.

    He's also plugging his own open source project, SAGE - I might have to download it and see if the rusty old brain cells can figure out how to play with it ;)

    --
    One swallow does not a fellatrix make
    1. Re:Openness is Fundamental to Mathematics by s20451 · · Score: 3, Insightful

      Well, don't get your panties in a big bunch over this. Humans make mistakes in proofs all the time, many of which are not caught before publication (and many not even for some time afterward).

      Also, although it's not in the field of theorem-proving, the mathematical package I use the most -- MATLAB -- is a million times better than the open source equivalent, Octave. I'm not going to use Octave simply because I can inspect the code, because who does that? An error in a software proof would be pretty obvious if it were checked with another independently written piece of software. With MATLAB, I can write my own alternative algorithm using C if I need to, though with significantly more effort and annoyance.

      Furthermore, mathematicians are smart people who are fully aware of the implications of their assumptions, probably moreso than any other group of people I have encountered. Reading the set of comments accompanying this article, saying what mathematicians should and should not consider a proof, is like watching monkeys trying to use a can opener.

      --
      Toronto-area transit rider? Rate your ride.
  6. Should journals reject such proofs? by davidwr · · Score: 3, Insightful

    Algorithms cannot be protected by copyright, only by patents and trade secrets. If the algorithm is a trade secret, it has no place in a mathematical proof because it cannot be shared with the world and verified or refuted by anyone interested in doing so.

    If the algorithm is part of a patented device or piece of software, its use in a mathematical proof is not subject to the patent on the grounds that pure math cannot be patented.

    If journals and academic societies refused to publish proofs based on trade secrets and insisted on a covenant not to enforce the patent against researchers doing purely mathematical research or those who publish the research, the problem would mostly go away. An alternative to the covenant is congressional action or a court ruling that says with absolute clarity that mathematical research is exempt from math-related patents directly related to the research.

    --

    Personally, I'm against all such patents but I'm not holding out hope that Congress or the Courts will agree with me.

    --
    Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
  7. Not Proven by nagora · · Score: 3, Insightful
    If a "proof" is published with some steps or information excluded then it's not a proof, it's just an assertion.

    TWW

    --
    "Encyclopedia" is to "Wikipedia" what "Library" is to "Some people at a bus stop"
    1. Re:Not Proven by ciaohound · · Score: 4, Informative

      As a high school math teacher, I am familiar with some of the details of Thomas Hales' proof of Kepler's "Cannonball" Conjecture, concerning the most efficient way to stack spheres. When he first published his proof in 1996, he included the source code for the programs that were used to do the calculations for the thousands of possible sphere configurations. I think most of the code was actually written by his graduate assistant. At first that struck me as cheating -- "... and then this program runs. Q.E.D." -- but then I realized that if anyone else was to verify his results, they would need the programs. There are just too many calculations to perform without software, which is why the conjecture went unproven for four hundred years. But without the source code, it would smack of charlatanism.

      --
      Oh, yeah, it's not easy to pad these out to 120 characters.
  8. Propriatary Software by calebt3 · · Score: 4, Funny

    Increasingly, proprietary software and the algorithms used are an essential part of mathematical proofs Like Excel's 65,535-equals-100,000 formula?
  9. Welcome to the world of modern research ... by MacTO · · Score: 4, Interesting

    This problem goes beyond mathematics, and reaches into many of the sciences. Mathematicians and scientists often place undue trust in complex software systems, simply as a matter of getting the work done faster rather than producing higher quality research. Sometimes it is a case of handling large volumes of data, in which case human intelligence and discretion is a bottleneck. Sometimes it is a matter of finding numerical solutions where analytic ones are difficult (if not impossible) to find at present. And, in the case of mathematics, I'm guessing that they are using it as a shortcut for those difficult analytic solutions.

    Then again, I must really ask if the mathematician in question understands what they are doing if they are using software as a shortcut for difficult analytic solutions. After all, if they don't understand the algorithms well enough to do the work themselves, who is going to say that they understand the limitations of the rules that they are asking the computer to apply.

    1. Re:Welcome to the world of modern research ... by jhfry · · Score: 2, Insightful

      I thought the same thing... shouldn't mathematic proofs be independent of outside influence, shouldn't they stand on their own and make as few assumptions as possible. I figured that a proof, properly done, would be a large step by step solution to the problem.

      Then I realized that many proofs aren't concerned with single-input single-output situations, but instead may require thousands of iterations based upon large sets of inputs. You can't do that by hand.

      I am certain, that because computers/software are being used we will eventually find an accepted proof that is scrapped because it exploited (inadvertently) a bug/limitation of the software used to test it. Unfortunately there is nothing to be done!

      --
      Sometimes the best solution is to stop wasting time looking for an easy solution.
    2. Re:Welcome to the world of modern research ... by mathcam · · Score: 2, Interesting

      And, in the case of mathematics, I'm guessing that they are using it as a shortcut for those difficult analytic solutions. This is certainly one application, but the use of computers in the more "pure" aspects of mathematics is nothing to sneeze at either. Programs like GAP for group theory, PARI for number theory, and Macaulay for commutative algebra and algebraic geometry play a significant role in the development of their respective subjects. For example, there's very little you can say about the Monster group without the aid of computer calculations -- it's not that researchers don't understand the algorithms involved, it's that it's physically impossible (given reasonable time constraints) to say anything non-trivial without computer aid. To address the other concerns, unlike the numerical solutions, there are frequently completely independent algorithms for checking the results of your first algorithm, so that trusting the original algorithm is less of an issue.
  10. Proof exchange format by David+Deharbe · · Score: 2, Interesting

    IMHO, it would be an important contribution to establish an open proof exchange format that make it possible to... exchange proofs between different tools: theorem prover, proof checker, etc. Possibly this format would have a translator to a human-readable format (e.g. based on TeX) that would also make it possible for humans to review the proof process.

  11. PDF rant. by serviscope_minor · · Score: 4, Insightful

    Why does this keep coming up on ./? What is wrong with PDF? It's undeitable, sure, that's kind of the point. However, the spec is accessible, and there are plenty of open readers, e.g. xpdf and ghostscript.

    Really, what is wrong with PDFs and why should they require a warning?

    By the way, all scientific papers are disseminated by PDF.

    --
    SJW n. One who posts facts.
    1. Re:PDF rant. by visualight · · Score: 2

      I would like a warning because I usually don't click on links to PDFs unless I really need the info. Not because it's proprietary or whatever, they just take a long time to load, and if it's a big one, my browser hangs while it's rendering.

      --
      Samsung took back my unlocked bootloader because Google wants me to rent movies. They're both evil.
    2. Re:PDF rant. by serviscope_minor · · Score: 2, Informative

      I would like a warning because I usually don't click on links to PDFs unless I really need the info. Not because it's proprietary or whatever, they just take a long time to load, and if it's a big one, my browser hangs while it's rendering.

      Then get a better PDF reader. Even on a very slow computer, xpdf or ghostview have subsecond load times. If you use mozilla related browsers, then plugger will let you "embed" decent PDF readers. In fact if you install mozplugger under Ubuntu, it uses evince by default. If you don't use mozilla, then set it up to use $viewer as an external helper application.

      My guess is that your bias against PDF comes from the awful Adobe viewer.

      --
      SJW n. One who posts facts.
    3. Re:PDF rant. by izomiac · · Score: 3, Interesting

      The main reason they should need a warning is because they aren't webpages. Either they get loaded through a browser plugin or they must be downloaded. In the former case, most browser plugins are slow to load, and nearly impossible to stop from loading, so a warning is nice. In the latter case they take a bit of effort to open and often people are too lazy (a warning isn't critical though). In both cases they are more inconvenient to use than HTML or text, so that's why I personally don't care for them. (IMHO, for online documents: html >= txt > rtf > pdf > jpg >> doc)

  12. Open Formats by iamacat · · Score: 2, Insightful

    Proprietary math software is not a problem as long as the end result can be exported into a fully documented format and can be then verified by open software, including human mathematicians.

  13. openmodelica.... by __aasmho4525 · · Score: 2, Interesting

    not entirely on-topic, but i figured the slashdot community might be interested in this tool.

    OpenModelica

    a very nice modelling package that can help you with practical mathematics issues like mathematica might.

    cheers.

    Peter

  14. Not necessarily bad in all cases... by Ardeaem · · Score: 4, Insightful
    There are some programs which can aid proofs that are closed source. This doesn't HAVE to mean that steps of the proof are omitted. Take, for example, Mathematica for the Web. It can spit out a result, including all the steps (try a derivative). Or check out a sample Otter proof. Mathematica is closed source, Otter is open source. However, even if both of these were closed source, all the steps would be laid bare for all to see.

    In other cases, like the proof of the four color theorem, it seems like the source code is important to see, but not essential. Pseudocode should suffice. Providing pseudocode is akin to saying things like "Simplifying expression (1) yields..."; we don't have to provide EVERY step, but with pseudocode you have enough to determine whether the algorithm itself will work. Checking the source code beyond that is akin to checking someone's algebra.

    Just because we don't know how the program arrived at the steps it did doesn't mean that we shouldn't use it; we can usually check the steps. After all, the human brain has been a closed-source proof machine for thousands of years, and no one has complained about that :) Just require pseudocode in computer aided proofs, and it should be sufficient.

    1. Re:Not necessarily bad in all cases... by mopslik · · Score: 2, Insightful

      In other cases, like the proof of the four color theorem, it seems like the source code is important to see, but not essential. Pseudocode should suffice. Providing pseudocode is akin to saying things like "Simplifying expression (1) yields..."; we don't have to provide EVERY step, but with pseudocode you have enough to determine whether the algorithm itself will work. Checking the source code beyond that is akin to checking someone's algebra.

      Perhaps I'm being too pessimistic, but shouldn't the source code have to be provided alongside the pseudocode? If the pseudocode is 100% spot-on, then there would really be no need for the computer-assisted proof in the first place --- you will have provided a proof in the form of verifiable instructions. But the FCT was proved by some amount of brute-force, IIRC. Who is to say that the coder who translated from pseudocode to source code didn't mess something up? I mean, if my pseudocode reads

      INCREMENT current value by ONE
      ...
      OUTPUT result of long computations

      and my source code is entered as

      value += value++;
      ...
      printf("%d",result);

      then even if the pseudocode is verified, the program may still be producing an erroneous result. In other words, you're assuming that IF the pseudocode is correct THEN the program itself is also correct, which may not be the case.

  15. Re:But the proof steps are known, right? by flajann · · Score: 2, Informative
    The advantage of having the source code is that, in a lengthy proof that involves thousands of steps that may be hard to follow, one may have an easier go at proving that the software did the steps correctly. At least, if a bug were found that would save you many hours over sweating over the actual proof!!!

  16. What about hardware? by LM741N · · Score: 3, Insightful

    I would think that hardware errors would be an even worse problem, like the old Pentium bug, since they are so insidious.

  17. Ruby could be the answer as well by Gadzinka · · Score: 4, Interesting

    Python seems to deftly marry precision with looseness. When code is laid out in Python I find it is easier to see what it's trying to do than other languages. It's aesthetic qualities aside, it supports a number of features out of the box which I imagine would be ideal of mathematicians. To list a few, it's treating of lists and tuples as first class objects, support for large integers, complex numbers, it's ability to integrate with C for high-performance work.

    I often think of Python as "basic done right" and it's ideal for mathematicians (or anybody) who don't want to think about programming but the problem at hand.
    I could also recommend Ruby for the job. It has all the features you recommend, and more. If you could forget for a moment about the monstrosity that is Rails (I don't know, lobotomy might do the trick), the language in itself is quite beautiful.

    There is one special feature of Ruby, that I miss in every single programming language I used since: iterator methods. Any time I want to iterate over elements of an array or hash I just do:

    myhash.each_pair do |key,val|
      puts "#{key}: #{val}"
    end
    That's it, instant "anonymous function" given as a parameter in estetically pleasing syntax. In fact, "for" loop in Ruby is just obfuscated way of calling method #each on an object. But the madness doesn't stop here:

    File::open("somefile.txt") do |fh|
      fh.each do |line|
          puts line
      end
    end
    It's a pity that so many people disregard Ruby as a "platform for Rails". It is a feature complete countepart to Python, and as my company high volume systems can attest, can handle anything other languages can handle.

    Robert
    --
    Bastard Operator From 193.219.28.162
    1. Re:Ruby could be the answer as well by GrievousMistake · · Score: 2, Informative

      I don't suppose Ruby has something comparable to SciPy and IPython?
      Also, I want to avoid a language discussion, but a lot of languages have some form of iterators, even if the syntax varies slightly. Even Java kind of got them now.
      In Python:
      for key, value in mydict.iterkeys():
          print '%s: %s' % (key, value)

      with file('somefile.txt', 'r') as f:
          for line in f:
              print line

      --
      In a fair world, refrigerators would make electricity.
    2. Re:Ruby could be the answer as well by Just+Some+Guy · · Score: 3, Informative

      Actually, dict.iterkeys() returns an iterator of that dict's keys alone. You wanted:

      for key, value in mydict: print '%s: %s' % (key, value)

      or even just:

      for item in mydict.iteritems(): print '%s: %s' % item
      --
      Dewey, what part of this looks like authorities should be involved?
  18. Coq is another interesting tool by DrYak · · Score: 3, Informative

    We may also mention Coq, a proof assistant wich is available under LGPL and runs on OCaml (which in turn is also open sourced and available on Linux).

    This is a tool that can help mathematician prove their theorems.
    It was notably being used in the proof of the four color theorem, as mentioned on /. (article about machine assisted proofs).

    --
    "Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
  19. Maths...... by Seoulstriker · · Score: 5, Funny

    Look around you. Look around you!

    That's how I learned maths in high school.

    --
    I am defenseless. Use your button. Mod me down with all of your hatred.
  20. bad analysis, bad results by fermion · · Score: 2, Insightful
    This seems to fall under the realm of researchers using tools they do not understand. Black box science does not work. As has been mentioned, the results cannot be shown to be valid.

    A recall a few recent incidents in which papers had to be retracted because the machine did not do what the researchers thought it did. I have personal experience in which the spectroscopy generated by the computer did not reflect reality. If the researcher does not know how to use a tool, then he or she does not know when that tool is being misused.

    I am not sure something like mathematica is the issue. Wolfram seems to use standard standard well known algorithm. Almost every academic institution has a license, so, given the data, any number of people can rerun the analysis. Likewise the algorithms can be tested with simpler data sets to understand how they work and breakdown. I would be more worried about homegrown software.

    --
    "She's a scientist and a lesbian. She's not going to let it slide." Orphan Black
  21. look at who's speaking... by legrimpeur · · Score: 2, Interesting

    ... try to read a paper from their journal (JAMS http://www.ams.org/jams/2003-16-03/S0894-0347-03-00422-3/S0894-0347-03-00422-3.pdf) and you will be asked for... money. Well that's their interpretation of "... In mathematics information is passed on free of charge..." cheers

    1. Re:look at who's speaking... by William+Stein · · Score: 3, Informative

      The AMS did not write that article. I wrote the article as an opinion piece and the AMS published it. They do not necessarily agree with the points made in the article.

      By the way, the article is not about formal automated proofs. It is about what is now standard procedure in mathematical research, namely proofs that look like this:

      [Formal mathematical argument] ... and (using [Mathematica|Magma|...]) we deduce that [...].

      It's incredibly common right now when reading published mathematical papers to see random citations to using closed source software to do key steps of calculations. Usually even the code used to get the closed source program to yield the result isn't given.

      The way many mathematicians read proofs is that they often basically skim the argument to get a general idea of what it is about. Then they decide they want to prove something similar or related, and they "dive" into the most refined details of some key part of the argument. When a part of the argument is "... using Mathematica we deduce ..." this gets very very frustrating, since one just hits a brick wall. And, in practice, reimplementing -- with enough optimization to make it useful for research -- just one or two key functions from Mathematica or Magma, can take literally years of work (in fact, that's exactly what I've been doing the last few years with http://sagemath.org/). And sometimes exactly that is necessary to go beyond what has already been done, i.e., to do research.

        -- William Stein

  22. Norman Megill's Meta-Math for proof verification by ClarkEvans · · Score: 3, Informative

    http://metamath.org/ has been around for 15 years or so; it has a very nice text-based proof expression, a huge library of existing proofs and a graphical visualization tool

  23. Re:Why I don't trust Python by Just+Some+Guy · · Score: 3, Informative

    >>> 1.00 - 0.01
    0.98999999999999999

    I'm too lazy to see if that's the IEEE 754 result or not (but I suspect it is). But three things in Python's defense:

    1. Floats can only store exact values for the fractional part when the denominator is a power of 2. The "100" in "1/100" isn't a power of two, so IEEE 754 cannot represent it perfectly.
    2. .999999999... == 1, so the answer is still correct.
    3. If you must have exact answers, use the Decimal type:

      >>> 1 - decimal.Decimal(".01")
      Decimal("0.99")
    --
    Dewey, what part of this looks like authorities should be involved?
  24. Sage by Anonymous Coward · · Score: 3, Informative

    Sage( http://www.sagemath.org/ ) is currently the most full=featured open-source computer algebra system. It is being developed by the two authors of the AMS opinion piece (and many others including myself). Our goal is to provide a free, viable, open-source alternative to Mathematica, Maple, MATLAB, and Magma. Some nice features of Sage include:

    * It uses Python as its programming language so that you can use any existing Python modules with your Sage programs.
    * Sage also includes Cython ( http://www.cython.org/ ) which is based on Pyrex and allows one to easily compile Python code down to C for speed.
    * Sage's notebook interface with also interface with pretty much every existing computer algebra system, open-source or not.
    * Sage includes Maxima, GAP, Scipy, Numpy, and many other open source math packages.
    * A very active developer community. If there is something that you need Sage to do, chances are that there will be a number of developers willing to help you out.

    For some screenshots, see http://www.sagemath.org/screen_shots/ .

    One of the things that Sage needs most now is more users. So, if you have an interest in open source math software, definitely check out Sage.

  25. Re:Why I don't trust Python by fredrikj · · Score: 4, Informative

    Python calculated exactly what its documentation says it will do: ((1 minus the IEEE-754 double closest to 1/100) rounded to the nearest IEEE-754 double). It's not Python's fault if you don't know the basics of floating-point arithmetic. Mathematicians who use or write numerical software do.

    I recommend reading What Every Computer Scientist Should Know About Floating-Point Arithmetic.

  26. seriously, wtf? by tetromino · · Score: 4, Informative

    The article (which is actually a PDF, thanks for the warning) uses proprietary fonts (LucidaBright). While it was typeset with TeX (open), only the PDF (closed and uneditable) is provided.
    Oh, where to begin...
    1. The only reason you would need a "PDF warning" is that you use an operating system with poor support for the format (i.e. Windows). Switching to a real OS, among other benefits, will make reading math papers (which are almost always in PDF format) a pleasure.
    2. PDF is an open standard, which has been implemented by many different parties: Adobe and Apple have closed-source implementations; freedesktop.org's poppler and cairo libraries are Free software.
    3. The fontface chosen by AMS is orthogonal to the content of the paper - you can easily copy-paste the text and use Computer Modern, Dejavu, Liberation or any other open-source font of your choice. Why would a proprietary font embedded in a PDF file bother you any more than the proprietary fontface of a book?
    4. First of all, PDF is editable. And second, why would you want to edit this particular document? Remember, it's copyrighted by AMS - if you can't prove fair use, you do not have the right to distribute a modified version.
  27. Re:But the proof steps are known, right? by popmaker · · Score: 2, Insightful

    Suppose the only known way to prove something is to check all cases. Suppose the cases number about 1.000.000. It would take any human practically an eternity to check them all. Suppose checking each case is somewhat trivial, even though each case takes some considerable time and the results of each case is not generalizable to the other ones (so that we absolutlely HAVE to check the all). The mathematician working on the problem creates an algorithm for this work. It can be proven that the algorithm works. But the algorithm IS the proof. If the theorem is true, running the program produces YES or TRUE or whatever and if it's false the algorithm produces NO or FALSE or something similar.

    If we don't know that the algorithm works (it is proven to do so) and that the software also works (THAT is furthermore proven to do so) we have no way of knowing whether that YES or NO our program produced actually proves the theorem. Now assume that the program found a counterexample somewhere between case #50.000 and case #55.000. What if it was a precision error? If we don't have access to whatever it was that could have produced such an error - if we don't have ALL the source and ALL other information about the software, the results are useless.

  28. The Wolfram Functions site by Ed+Pegg · · Score: 2, Informative

    Much of the guts of Mathematica -- the high level functions -- are available for perusal at http://functions.wolfram.com/ Much of the reason why Mathematica works so well is due to careful consideration of branch cuts.

    For example, what is Log[a b]? If you look in almost any math book, you'll find Log[a b] = Log[a] + Log[b]. That works fine most of the time, but tends to fail in devastating ways when combined with other functions. The open source programs tend to follow this "good enough" approach.

    Log[a*b] == Log[a] + Log[b] + 2*I*Pi*Floor[(Pi-Arg[a]-Arg[b])/(2*Pi)]
    is the very careful way to handle the log function.

    http://functions.wolfram.com/ElementaryFunctions/Log/16/04/0005/

  29. Math is "Free", MY LILY-WHITE ASS. by mosel-saar-ruwer · · Score: 5, Insightful
    In mathematics information is passed on free of charge and everything is laid open for checking.'

    I'm not going to disagree with the "laid open" part, but the "free of charge" nonsense is just typical marxist university professor hypocrisy.

    Let's price some math texts:

    Atiyah & MacDonald, Commutative Algebra; $57.54, http://www.amazon.com/dp/0201407515/

    Eisenbud, Commutative Algebra; $41.30, http://www.amazon.com/dp/0387942696/

    Hartshorne, Algebraic Geometry; $59.10, http://www.amazon.com/dp/0387902449/

    Elements de Geometrie Algebrique; out of print, http://www.amazon.com/dp/3540051139/

    Rudin, Real and Complex Analysis; $142.50, http://www.amazon.com/dp/0070542341/

    Rudin, Functional Analysis; $137.16, http://www.amazon.com/dp/0070542368/

    Dym & McKean, Fourier Series and Integrals; $85.00, http://www.amazon.com/dp/0122264517/

    Sugiura, Unitary Representations and Harmonic Analysis, 2nd Edition; Out of Print, http://www.abebooks.com/servlet/SearchResults?an=Sugiura&tn=Representations[Someone wants $495.00 for the first edition.]

    Or try a few titles which might be a little more familiar to Slashdotters:

    Knuth, The Art of Computer Programming, Volumes 1-3 Boxed Set; $145.00, http://www.amazon.com/dp/0201485419/

    Sedgewick, Algorithms in C++, Parts 1-5; $93.00, http://www.amazon.com/dp/020172684X/

    Cormen, Leiserson, Rivest & Stein, Introduction to Algorithms; $61.88, http://www.amazon.com/dp/0262032937/

    Aho, Ullman & Hopcroft, Data Structures and Algorithms; $53.20, http://www.amazon.com/dp/0201000237/

    McLachlan, Discriminant Analysis and Statistical Pattern Recognition; $90.40, http://www.amazon.com/dp/0471691151/

    Haykin, Neural Networks: A Comprehensive Foundation; $120.12, http://www.amazon.com/dp/0132733501/

    Duda, Hart & Stork, Pattern Classification; $117.00, http://www.amazon.com/dp/0471056693/

    Fukunaga, Introduction to Statistical Pattern Recognition; $74.40, http://www.amazon.com/dp/0122698517/

    Bishop, Neural Networks for Pattern Recognition; $82.81, http://www.amazon.com/dp/0198538642/

    Bishop, Pattern Recognition and Machine Learning; $66.54, http://www.amazon.com/dp/0387310738/

    Higgins, Sampling Theory in Fourier and Signal Analysis: Volume I; $171.60, http://www.amazon.com/dp/0198596995/

    Higgins & Sten, Sampling Theory in Fourier and Signal Analysis: Volume II; $264.00, http://www.amazon.com/dp/0198534965/

    Princeton, which has the finest mathematics department in the world [or at least had the finest mathematics department in the world, before Harold Shapiro & Shirley Tilghman decided they wanted to turn the

    1. Re:Math is "Free", MY LILY-WHITE ASS. by William+Stein · · Score: 5, Insightful
      > In mathematics information is passed on free of charge and everything is laid open for checking.'

      > I'm not going to disagree with the "laid open" part, but the "free of charge" nonsense
      > is just typical marxist university professor hypocrisy.

      Taken out of context the quote might not make sense to you. The full quote from Neubuser is:

      You can read Sylow's Theorem and its proof in Huppert's book in the
      library [...] then you can use Sylow's Theorem for the rest of your
      life free of charge, but for many computer algebra systems license
      fees have to be paid regularly [...]. You press buttons and you get
      answers in the same way as you get the bright pictures from your
      television set but you cannot control how they were made in either
      case.

      With this situation two of the most basic rules of conduct in
      mathematics are violated: In mathematics information is passed on
      free of charge and everything is laid open for checking. Not applying
      these rules to computer algebra systems that are made for mathematical
      research [...] means moving in a most undesirable direction.
      Most important: Can we expect somebody to believe a result of a
      program that he is not allowed to see? Moreover: Do we really want to
      charge colleagues in Moldova several years of their salary for a
      computer algebra system?


      When Neubuser says that mathematics is "free of charge" he means that
      one can use theorems one reads without having to pay to use those theorems.
      He is of course not at all claiming that publishers do not charge for
      books and papers that contain mathematics. Put simply, if I want to use
      the "FactorN" function in Mathematica, I have to pay for the privilege
      every time I use it. If I want to use the theorem that every integer
      factors uniquely as a product of primes, then I never have to pay, even if
      I am using that theorem in a published proof.

        -- William

    2. Re:Math is "Free", MY LILY-WHITE ASS. by Cowculator · · Score: 4, Informative

      There's a growing trend in math (and maybe other disciplines, for all I know) away from non-free publishing.

      Prominent mathematicians have been complaining for years (more links here) about overpriced journals, and entire editorial boards of some journals have resigned in protest (see a list of mass resignations and similar changes here). There are now plenty of entirely free journals in combinatorics, topology, and other fields, and pretty much everything that gets published these days is either available on the author's website or on the arXiv.

      So modern research tends to be free, but what about all the books you need to read before you understand this research? Sure, a copy of Rudin may be expensive and there's not much we can do about that, but maybe you can learn from the free analysis course notes at MIT's OCW site. You complain that EGA is out of print, but basically everything Grothendieck wrote is available for free, and you can even get them along with tons of other old French publications through NUMDAM. (There's even a project to transcribe SGA into LaTeX.) Lots of other books are free to download legally (and this is by no means a complete list), even though many are commercially published as well.

      Finally, you can complain all you want about university tuition, but I really doubt that free tuition is going to open up mathematics to the masses. Ultimately the very top students who can't afford it are getting scholarships and grants to cover their education (and I do know some people who got free rides at Princeton because they couldn't afford it -- that school is definitely more generous than most), and since most other people couldn't get into Princeton anyway the tuition is never even an issue for them. The best way to make mathematics more accessible is to give everyone access to free textbooks and current research, and the "marxist university professors" you deride have been gradually moving in that direction for years now.

      By the way, what do you think has been done to damage the Princeton math department's reputation? Whatever you think Shapiro and Tilghman have done to the university, nobody in their right mind would deny that it's one of the top few in the world and I doubt most people would openly proclaim any one department to be the best anyway.

  30. Open Source Software in Machine Learning by mathgenius · · Score: 3, Interesting

    These guys are advocating setting up a peer-review process for open source software in machine learning. The idea is that this would encourage researchers to spend more time on the software component of the publication, and perhaps produce something that others can use aswell.
    The article is in the Journal of Machine Learning Research.

  31. Re:Lol but... by BoRegardless · · Score: 2, Funny

    I've applied for a patent for the carefully aimed use of airborne chairs for intimidation of employees, particularly when they are threatening to resign to go to work for a competitor.

  32. Re:Libraries are NOT FREE. by grcumb · · Score: 4, Interesting

    If they really want mathematics to be "free", then they can post the LaTeX's & the PDF's of these books on the internet for anyone to download, and they can pay for the server disk space & bandwidth THEMSELVES.

    In the meantime, they can take their marxist hypocrisy and shove it right up their good-for-nothing, lazy, worthless asses.

    Would these be the same kind of good-for-nothing, lazy, worthless asses who brought us Special Relativity while working in a lowly position in the Patent Office in Bern? You know, the kind who got together with friends to peruse and discuss the latest freely available scientific texts, the same texts that led him to revolutionise science more than anyone since Newton?

    The books in the Princeton Library are free, thanks to the generousity of far-seeing individuals who realised that their money was better spent on a library than a new yacht. They, at least, saw the benefit of sharing knowledge with everyone, regardless of their means. I can only hope that, somewhere in that misanthropic little husk you call a heart, you will some day find room for a similar spirit of openness and sharing.

    --
    Crumb's Corollary: Never bring a knife to a bun fight.
  33. Re:I'm not the hypocrite here. by Lodragandraoidh · · Score: 4, Insightful

    The issue is not whether software companies should make their source code open - the real issue is should mathematicians accept proprietary applications as proof of theorums?

    As pointed out in the editorial, software developers make mistakes, and this is true regardless of whether that developer is a proprietary software vendor, or a free/open source software project. There is one key difference however, the validity of any given proof can be determined independently when using free/open source code by the very nature of the product (availability of source code). There is no validation for proprietary software beyond the assurances of the company involved.

    When mathematic theory becomes applied mathematics (such as the creation of buildings, bridges, aircraft, or thermonuclear devices), which proof would you prefer to hang your life upon - Microsoft's guarantee, or independent verification and peer review? This becomes ever more critical as we create more complex systems that can not be easily verified by hand, yet rushed into applied use by the expediency/efficiencies they deem to provide.

    --

    Lodragan Draoidh
    The more you explain it, the more I don't understand it. - Mark Twain
  34. There's a great book on this topic, by ndru82 · · Score: 3, Informative

    It's called Math You Can't Use - by Ben Klemens. Makes a bunch of great points in favor of open source, too.

  35. Re:not really true by 808140 · · Score: 2, Insightful

    Luckily for you, you haven't the foggiest idea how mathematics is developed. As it happens, I am a trained mathematician, and I work in finance, so I think I'm relatively qualified to comment. Your naive analysis makes a great deal of sense when you're dealing with procedures that are simple enough for a few smart people to come up with, but modern mathematics has become so complex that we only advance by standing on each others shoulders.

    At my firm we use a lot of "proprietary mathematics", but guess what: none of it is stuff that wasn't discovered by some academic, we just combine their results in innovative ways. We depend completely — and it's not just us, it's everyone in the industry — on the results of academics.

    Firms like Renaissance hire a bunch of PhDs who then apply their years of research in academia to generate the returns they do. Derivatives pricing in particular is so complex that it's not that the math isn't freely available for anyone to peruse, it's that it takes years of study to properly understand how it even works. So when a firm hires one of these guys, they aren't hiring them hoping that they'll come up with the next Black-Scholes-Merton pricing theory on company time. They're hoping that they understand the theory that already exists well enough to be able to apply it to real-world data and tweak it as necessary. That's what all those proprietary processes really are: not new, exciting theory, but old theory, properly combined and tested and written up into algorithmic trading or security selection algorithms.

    Now, cryptography is not my thing, that's not the field I studied or what I have an interest in, but it may be that the NSA has a bunch of tech that no one else has. However, the NSA is not a private firm, and they'll be funded no matter what happens, so they can afford to employ thousands of brilliant cryptography researchers (in the same way a university does) and sit on the results. A private company can't do that. You can point to them as an example of how "it makes sense to keep results closed" if you want, but understand: they are the exception, not the rule. No one else works the way they do.

    Universities, many of the best of which are private, depend on their professors publishing new and innovative stuff nearly non-stop. It's not altruistic; they make their money on tuition and they can justify charging 40k a year for an education only if they employ the best and the brightest. The measure of the best and the brightest is in their scholarly output. It's no coincidence that Harvard, Princeton, Stanford, MIT, and Yale have so many Nobel Prize and Fields Medal winners in their employ. Reputation is what makes or breaks a school; without it, they have no income, because the best students want to study at a university with pedigree.

    So while your (cynical) view of the world may "feel" right if you don't know what you're talking about, thankfully for all of us, open mathematical and scientific development will always trump private proprietary systems. That may not be true of software, I don't know. But when it comes to research, academia wins.

  36. OpenAxiom by andhow · · Score: 3, Insightful

    On the subject of open source math, Axiom is an interesting 30 years-and-running project started (I believe) at IBM research that recently became open source. A new branch of the project started recently: http://www.open-axiom.org/ and has several people actively working on it. It differs perhaps most significantly from Maple and Mathematica in its use of strong static type checking. This allows its library creation language to be compiled into C, which gets compiled and loaded back into the interactive top-level. Altogether, a very neat system and a gigantic resource.

  37. another useful package: Mathomatic by vinsci · · Score: 2, Insightful

    Mathomatic is a quick and handy package to use for your more everyday math problems. It celebrates 20 years since its first release this year and is still updated with its latest release, version 12.8.0, just three days ago.

    For programmers, its 'code' command converts your math problem to source code in your choice of several programming languages.

    For more info see http://www.mathomatic.org/math/adv.html

    Many thanks for writing it, George Gesslein II.

    --

    Trusted Computing FAQ | Free Dawit Isaak!
  38. Re:Why I don't trust Python by fredrikj · · Score: 2, Informative

    cripple itself with IEEE-754 standards needlessly

    The IEEE 754 standard is very well designed and ensures floating-point arithmetic to be accurate, efficient, and compatible across platforms.

    But it does mean that when there is a precise answer and it is calculatable (I think the former demands the latter), that I do minimally want Python to store it fully in memory and to not print out questionable and/or incorrect answers.

    So you'd be happy if Python generates an exact answer when you ask it to compute 1 + 1e-100000 and it allocates several kilobytes of memory to represent the result? Would you still be happy with this behavior if you are doing a numerical computation involving a million numbers? Exact rational arithmetic is, in general, much slower than floating-point arithmetic, and the cost grows the more operations you perform.