Last update 2024 February, stable
version 1.9.093.
Presentation of Xcas:
Abstract,
Features,
Xcas reference card,
Documentation,
Benchmarks,
News,
Test in your browser (Javascript),
Download Xcas for :
Windows,
Mac OS X,
Linux debian/ubuntu,
Linux rpm,
archlinux,
Linux binaries,
Free BSD,
,
Windows CE,
Linux ARM,
iPhone (thirdparty, non free),
Source code
Calculators:
HP Prime,
Casio CG10, CG20, CG50, Fx9750GIII, Fx9860GIII,
TI Nspire
In your browser:
Xcas,
CAS interactive HTML: latex+hevea+giac,
Swiftcalcs,
Smartcas,
RegularNGons(source)
Developers:
C++ source (developer info),
giacpy (Python),
Giac compiled to Javascript,
native Giac for node.js,
JNI (native java interface),
Chrome native client (enter chrome://flags and allow NaCl),
About Xcas :
Forum,
Articles citing Giac/Xcas
French doc and addons,
Thanks ,
Giac/Xcas
is a free computer algebra system for Windows, Mac OS X and
Linux/Unix (license GPL3, for commercial duallicense contact us).

Xcas is an interface to perform computer algebra, function graphs,
interactive geometry (2d and 3d),
spreadsheet and statistics, programmation. It may be used as
a replacement for high end graphic calculators for example on
netbooks (for about the same price as a calculator but with much
more performances).
Xcas is based on the FLTK graphic toolkit,
there is an alternate less mature interface based on QT
named qcas.

Xcas offline in your browser is
an interface to Giac with less functionnalities but working
in a compatible browser without installation, Firefox is recommended.

Giac is a C++ library,
it is the CAS computing kernel, it may be used
inside other C++ programs, and also Python, Java and Javascript
programs.
Examples of software using Giac as CAS kernel: Geogebra
(Java and javascript interface), HP Prime Calculator
(C++), Pocket CAS (C++), CAS Calc P11 (C++).
 Giac/Xcas has a compatibility mode for people used to the
Maple or Mupad CAS as well as for users of TI calculators
(TI89, Voyage 200, TI Nspire CAS).
 Short history: The Giac/Xcas project began in year 2000,
following the development of the CAS for HP calculators. It has
now around 150,000 lines of C++ code
(most written by B. Parisse), and around 300 pages
of English documentation (most written by R. De Graeve). It has
interfaces with php, latex, texmacs, java, javascript, python
playing the role of computation kernel.
It also interfaces with the following C/C++ libraries
PARI, CoCoA, NTL, GSL, GMP, MPFR.
It has fast implementation of algorithms
for polynomial operations: multiplication, division,
gcd of multivariate polynomials, Groebner basis computation.
Giac/Xcas was awarded the 3rd price at the
Trophées du Libre 2007
in the scientific software category
(presentation).
In 2013, Giac was choosen for the CAS view of the
wellknown Geogebra software and it was also choosen
by HP as CAS for their HP Prime calculator.
Click here to download Xcas.
Click
here
to test Xcas online (French).

CAS:
arbitrary precision integer and floats, integer
and polynomial arithmetic (gcd, extended gcd, factorisation, ...),
simplification, equation solver, partial fraction decomposition,
calculus (derivation, integration, limit, series expansion), linear
algebra (vectors, matrices, row reduction to echelon form, eigenvalues
and eigenvectors)...


2d geometry:
point, segment, line, triangle, polygons,
circles, conics, parametric curves, intersection, tangents...
Dynamic geometry. All geometric instructions are programmable


3d geometry and graphs:
point, segment, line, plan, triangle, polygons,
circles, conics, parametric curves, surfaces, intersection, tangents...
Dynamic geometry. All geometric instructions are programmable


Spreadsheet :
relative and absolute references, cells can contain
formal objects (e.g 1/2, sin(x), ...), 1d and 2d statistics
(mean, stddev, hgistogram, covariance, regressions, ...)


Programmation :
functions, local variables, tests, loops. Choice of syntax (Clike, Maple,
Mupad, TI89). It is sometimes possible to run a Maple, MuPAD or TI89
without user intervention inside Xcas. Program editor. Interactive
debugger.


Mixing different level types

Giac
Linux, Mac and Windows archives contains th giac program, that
may be used standalone or inside
texmacs
(use Session>Insert session>giac, may be tested without install
with
livetexmacs), or inside
emacs mupad mode
(see mupacs install instruction and use giac emacs as
program command name instead of mupad E/R ...).
There are several interfaces using Giac compiled in Javascript:
Xcas pour Firefox,
Tableaunoir Xcas,
a simple CAS calculator
If you would like to run Giac in your own Javascript projetcs, run the
command
npm install "https://wwwfourier.univgrenoblealpes.fr/~parisse/giacjs.tar.gz"
then read the README.md file
in the node_modules/giacjs directory.
You can also use giac
from inside a LaTeX document,

Under linux, the giac (or icas) commandline executable
can filter computation commands in ordinary latex files to produce HTML5 interactive
output or PDF output (this is inspired by the script pgiac described below).
You must install hevea and pdflatex. Then add (just after \begin{document})
\begin{giacjsonline} and (just befor \end{document})
\end{giacjsonline}.
If you need a computation somewhere, put one of the commands described in
test.tex
for example \giacinputbigmath{factor(x^41)} or \giacinput{plot(sin(x))}.
The reader will be able to modify and/or run the command inside a compatible browser
(Firefox recommended).
Compile from a terminal with the command
giac filename
instead of pdflatex filename

pgiac
is a perl script that translate a .w file
into a .tex file by running somme commands (lines
beginning with a .g or sections beginning with .g:
and ending with .end) with
giac. The resulting .tex file will contain the
answers of the computations and may be compiled using your prefered
LaTeX distribution. By J.M. Sarlat, in French.
 tablor.sty
is a LaTeX style file that automates
the process of describing the variations of a function inside a
LaTeX document. By Guillaume Connan, in French. Also available
inside texmacs via the
professor and
tablor
plugin by E. Corcelle.

See also some examples of LaTeX and giac interaction by
Yves Delhaye
,
Guillaume
Connan
or
Alexandre Boisseau.
Giac/Xcas is the native CAS engine of the HP Prime calculators, and also
of the Android, iOS and Windows/Mac applications emulating the HP Prime.
Press the CAS key and enter the same commands as in Xcas, except for a few ones.
About Xcas
If you wish to cite Giac/Xcas in a paper,
you can refer to
Giac/Xcas,
Bernard Parisse and Renée De Graeve, version 1.9.0 (2022),
https://wwwfourier.univgrenoblealpes.fr/~parisse/giac.html
(Work in progress)
 How to turn a scripting language into a domain specific language for computer algebra, by
R Jolly, H Kredel  arXiv preprint arXiv:0811.1061, 2008  arxiv.org

Natural Editing of Algebraic Expressions, by
JeanFrançois Nicaud 1, Denis Bouhineau 1,
Les Cahiers Leibniz 169 (2008) 24 pages,
HAL : hal00591553, version 1

Wu's Elimination Method in Graphing Calculator, by
J Nie, T Chen, H Fu 
Education Technology and Computer Science, 2009. ETCS '09. First International Workshop on, 2009  ieeexplore.ieee.org

Polynomial parametrizations of length 4 Büchi sequences, by
X Vidaux Acta Arith. 150 (2011), no. 3, 209–226.
(also available as arXiv preprint arXiv:1008.2994, 2010  arxiv.org)

Generic, typesafe and object oriented computer algebra software, by
H Kredel, R Jolly  Computer Algebra in Scientific Computing, 2010  Springer

DSGE Modeling on an iPhone/iPad Using SpaceTime
AP Blake  Computational Economics, 2011  Springer

Періг О. В. Застосування вільних математичних пакетів до розв'язання задач теоретичної механіки / О. В. Періг, А. В. Кисіль, І. А. Матвєєв, Д. Ю. Міхєєнко // FOSS Lviv 2012 (Львів, 2628 квітня 2012 року): Друга міжнародна науковопрактична конференція FOSS Lviv 2012: Збірник наукових праць / під ред. Г.Г. Злобін, С.Є. Апуневич, С.В. Апуневич, Д.Є. Ванькевич. – Львів: ЛНУ ім. І. Франка. – 2012. – С. 8689. – ISBN 9789668460999.

ON A THEOREM BY VAN VLECK REGARDING STURM SEQUENCES,
Alkiviadis G. Akritas, Gennadi I. Malaschonok, Panagiotis S. Vigklas,
Serdica J. Computing 7 (2013), No 4, 389–422

Several articles by George E. Halkos and/or Kyriaki D. Tsilika, for example
Using Xcas in Calculus Curricula: a Plan of Lectures and Laboratory Projects. Computational and Applied Mathematics Journal (American Association for Science and Technology) 1(3), 131138, 2015.

Hašek, R., Kovács, Z., & Zahradník, J. (2015, July). Contemporary interpretation of a historical locus problem with the use of computer algebra. In Special Sessions in Applications of Computer Algebra (pp. 191205). Springer, Cham.

Experiments on isoptics by dynamic coloring ,
by Thierry DanaPicard and Zoltán Kovács
I'd like to thank (in a nonmeaningful order):

Renée De Graeve for her interest, beta testing and documentation
writing.

Luka Marohnić for all the optimizations, signalprocessing
and graph theory commands incorporated
in Giac/Xcas version 1.4.9/1.5.0

JeanPierre Branchard (Giac online and exomaths),

Frédéric Han for the giacpy Python interface

Carlos Enriqe Carleos Artime for doing the Debian packages and several
fixes in the giac build process.
 Alkiviadis Akritas, Eugenia KelepesiAkritas, George Nasopoulos
for the Greek localization.

Jay Belanger for fixing the English user manual.

Jose Capco for Visual c++ compiling
 Alkiviadis Akritas,
Frederic Han, Fabrice Rouillier,
Vanessa Vitse for discussions about some algorithms.
 Philipp Rösch for the German translation of the short help file

Jose Manrique Lopez de la Fuente for his interest, Spanish translation
of the documentation and online help, info about the FLVW library,
Giac/xcas advertising. Have a look at his SDA project
English

JeanYves Avenard for the first Mac OS X port

Dirk Eddelbuettel for including giac in his
Quantian
scientific linuxlive CD.

the GiNaC crew for their interest, particulary R. Kreckel and recently
A. Sheplyakov for doing
the hard and annoying work of autoconfiguration/automake of giac
 Mike Ady for tests and improvement suggestions especially for the
Windows version.

Joris van der Hoeven for texmacs and integration of the giac interface

IREM de Grenoble for xcas testings in highschools,
especially Michèle Gandit and her class (Grenoble),
Christianne Serret and her class (Crest), and for the Mac OS X port.

Cetril
who organizes the Trophee du libre awards, where Xcas obtained rank 3
in the Scientific software category in 2007.

Bernard Ycart for the French Xcas beginner documentation

Michael Eisermann, Dominique Spehner, Martin Deraux, Gérard
Vinel and all the students of the
Université de Grenoble I following the "mat249" course
who experimented Xcas and helped fixing bugs.

Emilien Kia and Andreas Thillosen for the wxcas interface and numerous
suggestions for giac, including parallel execution and the sourceforge
project.

Guillaume Connan, Georges Dubouloz, Luc Briel (and their students),
Emannuel Gaunard, Yvan Duron, Martin Deraux
for various suggestions of improvements.

Francois Boisson
(Clef Agreg)

Территория без имени who pointed me to bashoptimg(256all)
to save memory with graphic files in giac source/binaries.

Reinhard Oldenburg for suggesting improvements (multivariate
fMin with cobyla, eliminate/algsubs)
 Diego Cueva for a simple Java GUI (included in the
giac JNI package).

Stéphane Lejoly for Mac testings (including a few hard crash).

Frédéric Han for the FreeBSD port,
32 bits binaries, python, qcas and sage
interface, various suggestions and bug reports.

JeanJoel Bataille for testings, especially the alienconverted RPM package.

Emmanuel Peyre (command open to open files on a Mac)

Pierre Rochard for the first linux PPC port.

Germain Barret for debian installation hints.

All testers, especially (by alphabetic order)
Frederic Faure, Bruno Patin,
Juan Antonio Martinez Rojas, Nicolas Rosillo, ... sorry for those
I forgot!
NB: All Xcas screen captures of this web page are provided under
the Gnu Free Documentation Licence (GFDL).