Skip to content
@formulae-org

Fōrmulæ

The Fōrmulæ programming language

Welcome

Fōrmulæ is a free, open source, symbolic, visual, homoiconic, high-level, multi-paradigm, arbitrary-precision programming language for scripting in academic and research environments.

The main objectives of the Fōrmulæ language are:

  • To create programs with a notation closer to algorithms and mathematics
  • To minimize the requirements for the programmer (only a web browser is needed)
  • To have modularity of the language, packages incorporating new elements to the language can be created and dynamically/selectively added.

If you want to know more about Fōrmulæ, please refer to its website formulae.org.

The base program

In the repository formulae-js you can find the source code for the Fōrmulæ web application, written in JavaScript.

The packages

With Fōrmulæ, you can create code to visualize, edit or manipulate expressions from many fields. The code is grouped in units called packages. The code for every package is hosted in the following repositories:

Base packages

The following are fundamental packages

Package Repository Brief description
Arithmetics package-arithmetic-js Integer, decimal and rational numbers. Basic arithmetic, transcendental, trigonometric, hyperbolic operations with arbitrary precision integers and decimals. Rounding modes.
Algebra package-algebra-js Basic expression simplifications based on algebra rules.
Complex package-complex-js Complex arithmetic. Imaginary unit, complex conjugate.
Relation package-relation-js Basic comparison operations, three-way comparison, minimum, maximum, membership.
Logic package-logic-js Logic literals, basic logic operations (negation, conjunction, disjunction, conditional, equivalence, exclusive disjunction).
Expression package-expression-js Common operations to expressions and reflection, such as cardinality, subexpression, insertion and deletion of subexpressions, serialization/deserialization, programatic creation of expressions.
List package-list-js List manipulation, list and table creation, mathematical operations with lists and matrices
Symbolic package-symbolic-js Definition and referecing of local and global symbols and functions, lambda expressions.
Strings package-string-js Creation and operations with strings, text, and regular expressions, Unicode support.
Color package-color-js Creation and operations on colors, visual representation of colors.
Programming package-programming-js Structured programming structures, such as sequence, decision and iteration expressions. Visualizacion as either flowchart or indented code.
Raster graphics package-graphic-raster-js Creation of graphics, pixel operations, outline and filling of geometric primitives (lines, rectangles, ellipses, arcs), inclusion of other graphics, text, turtle graphics, primitives on coordinates (translations, rotating, scaling).
Charts package-chart-js Creation of charts from data. Bar, line, area, dot, step, and pie types.
Diagramming package-diagramming-js Diagrams, tree structures.
Visualization package-visualization-js Changing the look of expressions, font color, size and attributes (bold, italic), crossing out, arrangement of expressions.
Bitwise package-bitwise-js Bitwise (and, or, not, xor), bit length, bit count, shifts, bit (set, get, clear, flip) operation on arbitrary length integers.
Time package-time-js Time datatype and operations, Gregorian calendar part management.
Data package-data-js Conversion between byte buffers and arbitrary strings, Base64 strings, hexadecimal strings, etc.

Specialized packages

The following packages are intended for specialized users

Package Repository Brief description
Chemistry package-chemistry-js Chemical elements, homonuclear & heteronuclear compounds.
Cryptography package-cryptography-js Key generation, hash digestion, encryption/decryption, generation/verification of digital signatures.
Quantum programming package-quantum-js Kets, quantum circuits, quantum gates, execution of quantum circuits, unitary matrix of a quantum circuit.

Packages under development

Fōrmulæ packages are in continuos revision and improvement. However, the following packages are in early stages of development:

Package Repository Brief description
Filesystem package-filesystem-js Management of files and directories
Plot package-plot-js Mathematical plots. 2D function plot, 2D parametric plot, 2D polar curve, 3D parametric curve, 3D function surface, 3D parametric surface, surface map, surface contour.

Packages planned for future development

Name Brief description
Statistics Statistical computing
Database access Connection to a SQL database, execution of SQL statements

Packages for typesetting

Moreover, with Fōrmulæ you can create formatted content (text with styles, use of images, paragraphs, bulleted list, alignment, etc.) (typesetting).

Package Repository Brief description
Typesetting package-typesetting-js Document typesetting

The content of website

All the content of its website is written in Fōrmulæ itself. This content is also hosted in the web-content repository.

Examples of the content:

Image gallery

Visit this Pinterest galley of images created with Fōrmulæ.

Pinned Loading

  1. formulae formulae Public

    1

  2. formulae-js formulae-js Public

    Fōrmulæ web application

    JavaScript 6

  3. web-content web-content Public

    The official set of Fōrmulæ files that encompasses the Fōrmulæ website.

    3 1

  4. package-arithmetic-js package-arithmetic-js Public

    Arithmetic package for Fōrmulæ, in JavaScript

    JavaScript 2

Repositories

Showing 10 of 28 repositories
  • package-arithmetic-js Public

    Arithmetic package for Fōrmulæ, in JavaScript

    formulae-org/package-arithmetic-js’s past year of commit activity
    JavaScript 2 AGPL-3.0 0 0 0 Updated Oct 21, 2024
  • package-string-js Public

    String package for Fōrmulæ, in JavaScript

    formulae-org/package-string-js’s past year of commit activity
    JavaScript 1 AGPL-3.0 0 0 0 Updated Oct 16, 2024
  • formulae-js Public

    Fōrmulæ web application

    formulae-org/formulae-js’s past year of commit activity
    JavaScript 6 AGPL-3.0 0 0 0 Updated Oct 16, 2024
  • web-content Public

    The official set of Fōrmulæ files that encompasses the Fōrmulæ website.

    formulae-org/web-content’s past year of commit activity
    3 1 0 0 Updated Oct 14, 2024
  • package-programming-js Public

    Programming package for Fōrmulæ, in JavaScript

    formulae-org/package-programming-js’s past year of commit activity
    JavaScript 1 AGPL-3.0 0 0 0 Updated Oct 14, 2024
  • package-list-js Public

    List package for Fōrmulæ, in JavaScript

    formulae-org/package-list-js’s past year of commit activity
    JavaScript 1 AGPL-3.0 0 0 0 Updated Oct 13, 2024
  • .github Public
    formulae-org/.github’s past year of commit activity
    0 0 0 0 Updated Oct 5, 2024
  • package-visualization-js Public

    Visualization package for Fōrmulæ, in JavaScript

    formulae-org/package-visualization-js’s past year of commit activity
    JavaScript 1 AGPL-3.0 0 0 0 Updated Sep 29, 2024
  • package-complex-js Public

    Complex arithmetic package for Fōrmulæ, in JavaScript

    formulae-org/package-complex-js’s past year of commit activity
    JavaScript 1 AGPL-3.0 0 0 0 Updated Aug 24, 2024
  • package-algebra-js Public

    Algebra package for Fōrmulæ, in JavaScript

    formulae-org/package-algebra-js’s past year of commit activity
    JavaScript 1 AGPL-3.0 0 0 0 Updated Aug 9, 2024

Top languages

Loading…

Most used topics

Loading…