As of November 2011, this is obsolete. Here is the new Windows version of Fermat.
This is Version 3.6.9. bug fix.
- This is more a feature than a bug, but computations in which thousands of monomials
were added or subtracted one by one to a quolynomial, keeping a running total, ran very slowly.
Most people do not write such programs. Such programs now run in a small fraction of
the previous time. This is an old bug.
Version 3.6.8, March 2007:
Bug fix: running LaGrange interpolation to compute the determinant over ground ring Z of a sparse matrix would fail in very rare cases. This is an old bug.
Version 3.6.7, June 26, 2006. Windows. bug fixes, small improvements:
(1) If [d] is a sparse array, the (pointless) command [d] := [d] failed.
(2) There was a bug in fast dropping into modular ground ring, Z -> Z/p. Sometimes a 0 was introduced
into a sparse array (a bad no-no), and sometimes upon return to ground ring Z, some data was not
equal to its orginal value.
(3) One of the speed ups from the OSX version was put into multivariate polynomial gcd.
Version 3.6.6, 12 March, 2006. Windows:
(1) Refined the hueristics for gcd of very sparse polynomials.
(2) Fixed it so that the last command before od or fi could end with a semicolon.
(3) Fixed it so that &(J = -Var(1)) is legal.
(2) and (3) were long since implemented for OSX and Linux.
3.6.5, 30 December 2005. It patches several small bugs:
- Three in polynomial gcd, one producing a slow down only.
- Reading data into a sparse array could fail over Z/p if the first entry was negative and larger > p/2.
- Det([w], divider, degree), with sparse [w], computed with LaGrange interpolation could fail.
- The statement &(p = prime) when read from a file would fail if p was large enough, say > 2^28.
3.6.4, November 22, 2005, patches a problem which might have resulted in a "fermat error" message, "u deg changed." This could have occurred computing the GCD of polynomials in (usually) > 15 variables. It also fixes a small memory leak in rational function arithmetic over Z. 3.6.1 fixed a bug in rational function arithmetic. 3.6.0 fixed a memory leak. It also has faster polynomial gcd, 10% - 30% improvement on various tests, more on some tests with two variables.
Version 3.4.8, 20 October 2004, had a bad but trivial bug that messed up GCD of polynomials. No earlier version had it. This was only in the Windows and Mac OS9 versions.
Fermat is freeware. Institutions or those with grant money should contribute $US 40 per machine.
Future Updates of the Windows version are not likely. Please switch over to Linux or Mac OSX.
You need the files that are in this zip archive:
Added February 10, 2005: If that fails to expand, try this self-expanding archive:
QFerX86s.exe
If that fails to expand, try this one: QFerX86.zip
The file FERSTART.TXT should contain the single line &(t=1); No more and no less; delete any weird non-ASCII characters.
Download and expand. Discard 'ReadMe' as it is out of date. To run Fermat, if you have a version of Windows before Windows XP, double click on the Viewer. This
opens the nice front-end interface written by
Bill Hastings of Fordham University. Do not click on the icon for
QFerX86.exe, else the DOS window will open, which provides a very poor interface. If you have previously installed Fermat, it is a good idea to put the new files in the same folder that you had before, erasing the previous version. Otherwise the Viewer seems to get confused.
The Viewer does not work for Windows XP, at least not XP Professional. However, fortunately the DOS Window is much improved under XP. Just double click on QFerX86.exe.
When the DOS window opens, it is possible to set many of its features with the pull down menu that results by clicking the little black box in the upper left. One can
set the font, window dimensions, colors, etc. Once running Fermat, use the command &_d to set the width of its display within the DOS window.
One difference between Mac and Window versions is the way to interrupt the program. To interrupt Fermat here simply move the cursor to the left edge of the screen. The vertical placement of
the cursor doesn't matter. You will soon see the interpreter pop up to a new level (assuming that you have &m
set to 1; that's explained in the manual). To resume the computation, move the cursor away from the left edge and
type &_p.
In the Mac version, single ordinary (not sparse) arrays can have up to 250000 entries, but on the Windows version this is limited to 62500 entries. This is due
to a compiler or Windows technicality. Sparse arrays are not affected and can be of any size. Other features are summarized in the file Ver3.4.9, included in the archive.
On some machines the Viewer doesn't work because certain DLL files are missing. If that is true for yours, try downloading this much larger version of the Viewer,
which includes many DLL files:
Viewer.zip
Included in the above archive is winex.txt,
a file of examples from Appendix 3 of the manual, ready to be input to QFermat.
Next, go back to the main web page and get the manual for Fermat, as explained there. For those who use both Mac and Windows versions, in going from the Mac to Windows/X86 it was necessary
to drop many of the special symbols that are easily available on the Mac keyboard. They are
either not available on the DOS window or have different ASCII encodings. The changes are summarized
here.
Source Code for Windows Version Now Available. April 17, 2010

Suggested donation $40. Please indicate platform on the "payment for" field.
Legal Matters
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNERS OR CONTRIBUTORS
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
Please note that although the author plans to release enhanced versions of this software, the author cannot guarantee indefinite software support.
since February 5, 1999
(Thanks WebCounter!)