# CmathOOo

CmathOOo est un logiciel libre sous licence GPL qui s'intègre au module Writer de OpenOffice.org. C'est la version « OpenOffice.org » de Cmath. Il permet d'écrire des expressions mathématiques en utilisant à peu près la même syntaxe que sur les calculatrices utilisées au lycée.

## CmathOOo

CmathOOo est écrit en Basic. Il est constitué d’un modèle de document contenant des raccourcis et des macros qui mettent en forme les formules mathématiques en respectant les priorités, les parenthèses, les règles typographiques, etc. ce qui permet de se passer de l’éditeur d’équation.
CmathOOo est un projet soutenu par l'association Sésamath.

## CmathOOoCAS

CmathOOoCAS, du même auteur, est un outil bien plus innovant, avec ses fonctionnalités de calcul formel. CmathOOoCAS est en fait une traduction du logiciel Xcas sous la forme d'un module d'extension pour OpenOffice.org Calc, le tableur d'Open Office, et pour OpenOffice.org Writer, le traitement de texte.
CmathOOoCAS a été créé fin 2009, en incorporant le moteur d'Xcas dans Open Office Calc, ce qui, d'après l'auteur de l'outil, aurait difficilement, voire pas du tout, été possible avec des outils propriétaires :
   « Ce projet n’aurait d’ailleurs certainement pas été possible avec un autre tableur. Il fallait une architecture ouverte et documentée pour venir y greffer mon programme. OpenOffice.org présentait les qualités requises. »
— Christophe Devalland
Ainsi
* Si CmathOOoCAS existe, c'est parce qu'Open Office et Xcas sont des logiciels libres ;
* La présence de CmathOOoCAS au sein d'Open Office Calc lui donne un avantage sur les autres tableurs, en particulier propriétaires.
En ce sens, l'outil CmathOOoCAS est, de par sa seule existence, emblématique des atouts des logiciels libres.

### Calcul formel

Pour des fonctions de la variable x, la lettre x doit être mise entre guillemets puisque CmathOOoCAS va la traiter comme une chaîne de caractères. Il en est de même pour les fonctions. De cette manière, on peut additionner des expressions littérales dans le tableur!
Voici un exemple :

#### Entiers naturels

Classiquement, on entre les entiers de 0 à 20 dans les cellules A1 à A21 (pas besoin de CmathOOoCAS pour cela).

#### Puissances de x

On entre dans la cellule B1, la formule
=cpuissance("x";A1)
On la recopie ensuite vers le bas: On a instantanément les puissances de x jusqu'à $x^{20}$!

#### Différences

Ensuite, dans la cellule C1, on entre la formule
=csoustraction(B1;1)
puis on la recopie vers le bas pour avoir les polynômes $x^{n}-1$ pour les 20 premières puissances de n.

#### Factorisations

Enfin, dans la cellule D1, on entre
=factoriser(C1)
qui, une fois recopiée vers le bas, fait apparaître, sans faire exprès, les polynômes cyclotomiques:

### Programmation
#### Écriture

CmathOOoCAS possède aussi une console de programmation, munie de 5 langages différents (calculatrice, Xcas et MuPad). Par exemple, avec le langage algorithmique du mode Xcas, on peut reprogrammer la fonction valeur absolue en langage presque naturel:

#### Compilation

En cliquant sur le bouton compilation en bas de la console, on récupère une fonction ValAbs nouvelle dans le tableur (un peu comme les macros en Basic; on peut donc considérer CmathOOoCAS comme une méta-macro).

#### Usage

En écrivant en B1 la formule
=ValAbs(A1)
on a alors la valeur absolue de A1 dans B1, comme si on avait entré =ABS(A1).
On peut donc créer ses propres fonctions mathématiques dans le tableur, par exemple des sommes de séries, et la programmation en langue presque naturelle fait de CmathOOoCAS un concurrent sérieux à Algobox (tout comme Xcas dont il partage le moteur Giac de calcul formel).