REDUCE

REDUCE on yleiskäyttöinen symbolisen laskennan ohjelmisto, joka on alun perin kirjoitettu fysiikan sovellutuksia varten.

Ohjelmiston kehityksen käynnisti Anthony C. Hearn 1960-luvulla.
Myöhemmin ohjelmiston kehitystä ovat jatkaneet Hearnin johdolla lukuisat tutkijat eri puolilla maailmaa.

REDUCE on kirjoitettu kokonaan omalla LISP-ohjelmointikielellään, jota kutsutaan nimellä Standard LISP.
REDUCEn ALGOL-tyyppistä syntaksia kutsutaan nimellä RLISP. RLISP muodostaa siis REDUCEn käyttäjätason ohjelmointikielen.

REDUCEn Portable Standard LISPiin tai Codemist Standard LISPiin perustuvia implementaatioita on saatavilla useimpiin Unix-, Linux-, Microsoft Windows- ja Apple Macintosh-käyttöjärjestelmäversioihin.

REDUCEn lähdekoodi vapautettiin joulukuussa 2008 avoimen lähdekoodin lisenssin alaisuuteen.
Se on nykyisin ilmaiseksi saatavilla modifioidulla BSD-lisenssillä SourceForgessa.

Ohjelmiston ominaisuudet

 laskut polynomeilla ja rationaalifunktioilla
 sijoitukset ja hahmontunnistukset lausekkeilla
 automaattinen ja käyttäjän kontrolloima lausekkeiden sievennys
 laskut symbolisilla matriiseilla
 mielivaltaisen tarkkuuden kokonaisluku- ja liukulukuaritmetiikka
 uusien funktioiden määrittelymahdollisuus
 analyyttinen derivointi ja integrointi
 polynomien tekijöihinjako
 algebrallisten yhtälöiden monipuolinen ratkaiseminen
 lausekkeiden tulostaminen lukuisissa eri formaateissa
 optimoidun koodin tulostaminen numeerista laskentaa suorittavia ohjelmia varten
 laaja valikoima valmiiksi ohjelmoituja erikoisfunktioita
 laskut Diracin matriiseilla korkean energian fysiikassa

Aiheesta muualla
 Reduce SourceForge projektisivu.
 Reducen webbisaitti SourceForgessa.
 Reduce wiki SourceForgessa.
 Anthony C. Hearnin Reduce-webbisivut.
 Anthony C. Hearn, Reduce User's Manual Version 3.8, February 2004. manuaali HTML-formaatissa.
 Anthony C. Hearn, "Reduce: The First Forty Years", kutsuttu esitelmä konferenssissa "the A3L Conference in Honor of the 60th Birthday of Volker Weispfenning", Toukokuu 2005.

Matematiikkaohjelmistot