Skip to content

Releases: BartJongejan/Bracmat

Keba

29 Jul 15:42
Compare
Choose a tag to compare

Improvements since september 2023

  • UFP export function accepts more formats: "%f" or F, %a or H, N, Q and %e or R.
  • toML function: Removed the space before the slash in empty tags (void elements).
  • nestML function: If a </html> tag is present, make sure there also is a <html> tag
  • nestML function: explicitly close non-empty elements such as in <p>abra<p>cadabra.
  • Improved error messages when something is wrong in function call in UFP object.
  • Embed `normal' Bracmat expression in UFP object using eval'(expression).
  • For now, no value is passed to or returned from eval. (This might change.)
  • Expression can export data from UFP object.

v6.19.2-Makkatti

29 Sep 16:24
1773263
Compare
Choose a tag to compare

Traditional Bracmat with Floating Point capabilities.

A new object type, UFP (Un-I-fancy-fied Floating Point) fulfils a dream I have had for decades: the ability to handle Floating Point calculations in Bracmat. This is not a trivial problem: bignums and C "double"s don't mix well. The current solution solves this problem by ensuring that Bracmat never has to mix floating point numbers and bignums in the same numerical operation. All floating point operations are delegated to UFP objects and UFP objects are only able to handle floating point numbers.

UFP objects execute code that is compiled to a bytecode. UFP operations are much faster than the bignum operations performed by Bracmat.

Source code for UFP objects is parsed as Bracmat code and can be built and modified as any other Bracmat code.

The encapsulation of floating point operations in UFP objects guarantees that old Bracmat code continues to work.

The following files are generated from the source code in this release:

  • bracmat-Windows32.exe, bracmat-Windows64.exe: Windows executables 32 and 64 bit
  • bracmat-Linux: Linux executable, statically linked
  • bracmat-macOS: macOS executable
  • bracmat.html, bracmat.pdf: Documentation created from and by Bracmat script doc/help
  • bracmatJS.html: Bracmat compiled to WebAssembly and embedded in a HTML file. Runs in your browser independently of any server.

Potu

02 May 16:38
Compare
Choose a tag to compare

New built-in function mop$.

If you wanted to iterate over all terms in a sum, all factors in a product, all elements in a comma-separated list, etc., outputting a space separated list with the elements in the same order, the fastest solution required two whl'() loops: One whl' loop to create a space separated list by prepending elements to an initially empty list, and another whl' loop to get the elements in the right order.

{?} 2*a+b*c+d^f:?sum & !sum
{!} 2*a+d^f+b*c

{?} :?INV & whl'(!sum:?%term+?sum & !term !INV:?INV) & :?ANSW & whl'(!INV:?%term ?INV & !term !ANSW:?ANSW) & !ANSW
{!} 2*a d^f b*c

The mop$ function makes this much simpler and faster.

{?} 2*a+b*c+d^f:?sum & !sum
{!} 2*a+d^f+b*c

{?} mop$((=.!arg).!sum.(=+))
{!} 2*a d^f b*c

Holberg

09 Feb 16:11
Compare
Choose a tag to compare

This release contains binaries for Windows (32 and 64 bit) and Linux (64 bit).

bracmat.exe : 32 bit windows version
bracmat64.exe : 64 bit windows version
bracmat: 64 bit Linux version (statically linked)