# Xcas

Xcas is a user interface to Giac, which is an open source computer algebra system (CAS) for Windows, macOS and Linux among many other platforms. Xcas is written in C++. Giac can be used directly inside software written in C++.
Xcas has compatibility modes with many popular algebra systems like WolframAlpha, Mathematica, Maple, or MuPAD. Users can use Giac/Xcas to develop formal algorithms or use it in other software. Giac is used in SageMath for calculus operations. Among other things, Xcas can solve differential equations (Figure 3) and draw graphs. There is a forum for questions about Xcas.
CmathOOoCAS, an OpenOffice.org plugin which allows formal calculation in Calc spreadsheet and Writer word processing, uses Giac to perform calculations.

## Features

Here is a brief overview of what Xcas is able to do:
* Xcas has the ability of a scientific calculator that provides show input and writes pretty print
* Xcas also works as a spreadsheet;
* computer algebra;
* 2D geometry in the plane;
* 3D geometry in space;
* spreadsheet;
* statistics;
* regression (exponential, linear, logarithmic, logistic, polynomial, power)
* programming;
* solve equations even with complex roots (Figure 2);
* solving trigonometric equations
* solve differential equations (Figure 3);
* draw graphs;
* calculate differential (or derivative) of functions (Figure 2);
* calculate antiderivative of functions (Figure 2);
* calculate area and integral calculus;
* linear algebra
Example Xcas commands:
* produce mixed fractions: propfrac(42/15) gives 2 + ⁠4/5⁠
* calculate square root: sqrt(4) = 2
* draw a vertical line in coordinate system: line(x=1) draws the vertical line $x=1$ in the output window
* draw graph: plot(function) (for example, plot(3 * x^2 - 5) produces a plot of y = 3x$^2$ − 5
* calculate average: mean([3, 4, 2]) is 3
* calculate variance: variance([3, 4, 2]) is ⁠2/3⁠
* calculate standard deviation: stddev([3, 4, 2]) is ⁠√6/3⁠
* calculate determinant of a matrix: {{code|det([[1,2], [3,4]])}} is −2
* calculate local extrema of a function: extrema(-2*cos(x)-cos(x)^2,x) is [0, π]
* calculate cross product of two vectors: cross([1, 2, 3], [4, 3, 2]) is [-5, 10, -5]
* calculate permutations: nPr
* calculate combinations: nCr
* solve equation: solve(equation,x)
* factoring polynomials: factor(polynomial,x) or cfactor(polynomial,x)
* differentiation of function: diff(function,x)
* calculate indefinite integrals/antiderivatives: int(function,x)
* calculate definite integrals/area under the curve of a function: int(function,x,lowerlimit,upperlimit)
** calculate definite integral (also called solid of revolution) - finding volume by rotation (around the x-axis): int(pi*function^2,x,lowerlimit,upperlimit)
** calculate definite integral (also called solid of revolution) - finding volume by rotation (around the y-axis) for a decreasing function: int(2*pi*x*function,x,lowerlimit,upperlimit)
* separation of variables: split((x+1)*(y-2),[x,y]) produces ⁠$[x+1,y-2]$⁠
* desolve differential equation (the derivatives are written as y′ or y″): desolve(differential equation,y)

## Supported operating systems

* Microsoft Windows
* Apple macOS
* Linux/Unix
* FreeBSD
* Android
* iOS (paid version)
* Online

## History

Xcas and Giac are open-source projects developed and written by Bernard Parisse [fr] and Renée De Graeve at the former Joseph Fourier University of Grenoble (now the Grenoble Alpes University), France since 2000. Xcas and Giac are based on experiences gained with Parisse's former project Erable. Pocket CAS and CAS Calc P11 utilize Giac.
The system was also chosen by Hewlett-Packard as the CAS for their HP Prime calculator, which utilizes the Giac/Xcas 1.5.0 engine under a dual-license scheme.
In 2013, the mathematical software Xcas was also integrated into GeoGebra's CAS view.

## Use in education

Since 2015, Xcas is used in the French education system. Xcas is also used in German universities, and in Spain and Mexico. It is also used at the University of North Carolina Wilmington and the University of New Mexico. Xcas is used in particular for learning algebra.

## χCAS

There is a port of Giac/Xcas for Casio graphing calculators fx-CG10, fx-CG20, fx-CG50, fx-9750GIII and fx-9860GIII, called χCAS (KhiCAS). These calculators do not have their own computer algebra system. It is also available for TI Nspire CX, CX-II, and Numworks N0110