Frequently Asked Questions You've got questions? We've got answers ... - Please review the list of Common Mistakes and the list of MathAction Problems if you are have never used MathAction before.
- If you are learning to use FriCAS and think that someone must have solved some particular problem before you, check this list of Common FriCAS Problems.
- If you are a FriCAS developer or plan to start by compiling FriCAS from source code check-out the INSTALL file in FriCAS source tarball.
- You can search for relevant pages on this web site based on keywords from the text. Enter keywords in the box at the upper right and press 'Enter'.
- If you would like to know some things that are not yet part of FriCAS, check the Wish List.
- Or check-out the WesterProblemSet.
Finally, if you can not find the answer to your questions here, then please send an email to: "http://groups.google.com/group/fricas-devel?hl=en" Note: please sign up before posting a message. Or simply press the "edit":/FAQ/editform button at the top right of Probably some hours later someone will have updated this page to include an answer to your question. **What is FriCAS's license?**
FriCAS is free software, available under a BSD like license. For more details, please have a look in the "licences available in the SVN repository":http://sourceforge.net/p/fricas/code/HEAD/tree/trunk/license/ **How can I contribute code to FriCAS?**
Contact FriCAS "mailing list":"http://groups.google.com/group/fricas-devel?hl=en". Also look at FriCASProgramming. **What is the future of FriCAS?**
Future is in your hands. Developement plans include better algorithms, in particular handling of conditions in expressions, improvements to FriCAS language, nicer user interface. Long term goal is to remove unsound computations (yes there are parts which produce useful, but not always correct results) and formal verification of the rest. What actually will be developed depends on you: code contributions, tests, bug reports and feedback help. **What is the size of FriCAS?**FriCAS is: ((--rhx: this data should be generated automatically))- 23.672 MB of source code (4 MB compressed)
- 10.2 MB source tarball (contains some precompiled code and documentation)
- needs about 620 MB to build
- about 170 MB installed
- about 68000 lines for the interpreter in 115 files
- about 205000 lines of algebra in 344 files
**In which language is FriCAS is written?**- mathematical part of FriCAS is mainly written in Spad (about 205000 lines).
- intepreter (and Spad compiler) is mostly written in Boot. Also Boot to Lisp translator is written in Boot. Together there is about 64000 lines of Boot code.
- Spad and Boot are translated to Lisp. Beside generated Lisp we have about 10000 lines of handwritten Lisp.
- HyperDoc program, graphic viewer, few other utility programs and a few support routines are written in C. Together there is about 50000 lines of C code.
**Which systems can run FriCAS?**
**Where can I find articles related to FriCAS, Axiom and Aldor?**
Look at "articles":http://wiki.fricas.org/public/refs/articles.html on this website. **How can I edit a page on the FriCASWiki?**
Click at _edit_ in the upper right corner of the corresponding page and follow the Wikipedia guideline of "being bold":http://en.wikipedia.org/wiki/WP:Be_bold_in_updating_pages in updating wiki pages. **How to create new pages on FriCASWiki?**
Look at Creating New Pages. **How can I download FriCAS?**
Look at FriCASBinaries. **I have found a bug. What should I do?**
Report FriCAS bugs in "bug tracker":https://github.com/fricas/fricas/issues If you have found problen with this site, then the Issue Tracker is the right place to go. When reporting bugs remember that the most important thing is _exact_ way to reproduce the problem, that is seqence of commands leading to wrong result. It is best to cut and paste commands or attach a file to avoid transcription error. Tell us about symptoms you see -- your command on different machine may produce different (correct) result. In such case others will not see the bug. **How can I submit a patch?**
Post unified diff on FriCAS "mailing list":"http://groups.google.com/group/fricas-devel?hl=en". **Why can't I assign a variable a type using the syntax variablename : Type?**
The short answer is that in a strongly typed system like FriCAS handling definite values is a different problem from handling variables. To handle "indefinite" values you need expressions. FriCAS currently have Expression domain, which can handle some problems. In particular Expression has quite advanced machinery to handle expression taking values in differential fields of characteristic 0 (in other words calculus expressions without inequalities). But for specific problem you may need something else, possibly to write a new domain (either based on Expression or entirely new). **Why sort is dropping list elements?**
Lists work differently than arrays. Array structure does not change, only differenet elements get assigned to given position. Each list node has link to next node. Destructive operations on lists may assign new values to links and change list structure. In particular new list may have different first node than old one. So after destructive operation one should always use returned result, because old list may look scrambled. See also ListProgramming **Why floating point arithmetic gives wrong results?**
Floating point arithmetic is inherently approximate. It is unusual for floating point operations to deliver exact result. Normally results are approximate and are considered correct if error stays within prescribed bounds. Most operations attempt to provide result with error less than half of least significant digit. However, when computing values of functions close to zeros accuracy is normally limited by accuracy of the argument and delivering more accurate result is simply wasted work. So FriCAS uses more relaxed criterion: result should be within half of least significant digit to some value of function when argument is varied by at most half of least digit. To achieve this the Float domain may increase accuracy in intermadate calculations. DoubleFloat? domain uses machine floating point operations, which have fixed precision. This limits precision of more complex operations, in particular error may by some (hopefully small) multiple of least significant digit. |