Skip to content

gvanuxem/fricas

 
 

Repository files navigation

FriCAS

Build and Test
Build and Test
Build and Test
Build and Test

FriCAS is a general purpose computer algebra system (CAS).

This work-in-progress repository includes, in the jlfricas branch (https://github.com/gvanuxem/fricas/tree/jlfricas), some related Julia categories/domains/packages to use Julia for specific operations. It is only supported with SBCL or Clozure CL and Julia prior to 1.10.0 is not supported with a SBCL based FriCAS.

Building and Installing

For general installation instructions see INSTALL. For general documentation consult https://fricas.github.io.

To build FriCAS with Julia support, a simple ./configure --enable-julia should do the trick. Notice that with SBCL (default) you will have to increase its dynamic space size, see Caveats. The julia executable needs to be available in your PATH. If you want to add Jupyter support with a SBCL based FriCAS, make sure Hunchentoot is installed. On a Debian like system add it with sudo apt install cl-hunchentoot and issue, for example, ./configure --enable-gmp --enable-julia --enable-hunchentoot. To know which categories/domains/packages are added to FriCAS issue in the FriCAS interpreter )what things julia or use HyperDoc:

(1) -> )what things Julia

Operations whose names satisfy the above pattern(s):

juliaCMPrint    juliaCVPrint    juliaIVPrint    juliaMPrint
juliaVPrint

      To get more information about an operation such as juliaIVPrint ,
      issue the command )display op juliaIVPrint
------------------------------- Categories --------------------------------

Categories with names matching patterns:
     julia

 JMATCAT  JuliaMatrixCategory          JTYPE    JuliaType
 JVECCAT  JuliaVectorCategory
--------------------------------- Domains ---------------------------------

Domains with names matching patterns:
     julia

 JCF64    JuliaComplexF64              JCF64MAT JuliaComplexF64Matrix
 JCF64SMA JuliaComplexF64SquareMatrix  JCF64VEC JuliaComplexF64Vector
 JF64     JuliaFloat64                 JF64MAT  JuliaFloat64Matrix
 JF64SMAT JuliaF64SquareMatrix         JF64VEC  JuliaFloat64Vector
 JI64     JuliaInt64                   JI64VEC  JuliaInt64Vector
 JSTR     JuliaString                  JSYM     JuliaSymbol
-------------------------------- Packages ---------------------------------

Packages with names matching patterns:
     julia

 JCF64MTF JuliaComplexF64MatrixTranscendentalFunctions
 JCLA     JuliaComplexLinearAlgebra    JDRAW    JuliaDrawFunctions
 JF64MTF  JuliaF64MatrixTranscendentalFunctions
 JF64SF   JuliaFloat64SpecialFunctions
 JF64SF2  JuliaFloat64SpecialFunctions2
 JPLOT    JuliaPlotFunctions           JRLA     JuliaRealLinearAlgebra
 JUF      JuliaUtilityFunctions
 JUPF     JuliaUnivariatePolynomialFunctions
--------------- System Commands for User Level: development ---------------

System commands at this level matching patterns:
     julia

julia     juliad

------------------------- System Command Synonyms -------------------------

   No user-defined synonyms satisfying patterns:
       julia

(1) ->

If you want to build and install locally the HTML documentation, you need to install Sphinx. On a Debian like system to add it, issue in a terminal sudo apt install python3 python3-pip && pip3 install -U Sphinx. After building FriCAS, and before the installation, issue in the terminal make htmldoc.

Description

The basic goal of FriCAS is to create a free advanced world-class CAS. In 2007 FriCAS forked from Axiom. Currently the FriCAS algebra library is one of the largest and most advanced free general purpose computer algebra systems -- this gives a good foundation to build on. Additionally, the FriCAS algebra library is written in a high level strongly typed language (Spad), which allows natural expression of mathematical algorithms. This makes FriCAS easier to understand and extend.

FriCAS uses lightweight development methodology. Compared to Axiom, FriCAS is significantly restructured -- it is more portable and fixed several defects. FriCAS removed rather large unused parts (without removing functionality).

Goals

Current development goals:

  • continue structural improvements
  • add new mathematical algorithms
  • develop better user interface
  • develop improved Spad compiler
  • make it easier for external programs to interface with FriCAS
  • support for using external mathematical routines from Spad

Caveats

With SBCL, you will need to increase the original dynamic space size (thanks to Qian Yun who noticed that with the introduction of the RootSimplification package), so, if your SBCL uses the original dynamic space size, increase it at configure time with ./configure --with-lisp='sbcl --dynamic-space-size=2048' or whatever you want as dynamic space size. For more information, see the SBCL documentation or the INSTALL file.

About

Copy of the original repository of the FriCAS computer algebra system. The jlfricas branch adds Julia support for specific operations.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published