Maple examples

These examples use the Maple UDX interface udx.mpl from the main UDX repository.

A full interactive session is in Maple/udx_mpl_demo.mw (Maple worksheet).

Load UDX and connect to Julia

read("/path/to/udx.mpl");
with(UDX);

channel := udx_start_jl_connection();

Optional: start Julia with threads and xterm:

ch2 := udx_start_jl_connection(use_xterm = true, threads = 8);

You should see messages such as a port number and “Connected to server on port …”.

RUR computation

Send a polynomial system to Julia for an RUR computation:

syst := [
  y^2*z + 2*x*y*t - 2*x - z,
  -x^3*z + 4*x*y^2*z + 4*x^2*y*t + 2*y^3*t + 4*x^2 - 10*y^2 + 4*x*z - 10*y*t + 2,
  2*y*z*t + x*t^2 - x - 2*z,
  -x*z^3 + 4*y*z^2*t + 4*x*z*t^2 + 2*y*t^3 + 4*x*z + 4*z^2 - 10*y*t - 10*t^2 + 2
];

udx_rur(channel, syst);

Parallel mode:

rur := udx_rur(ch1, sys, parallel = true);

Process management

List tracked processes, quit a Julia session attached to a channel, or kill by PID (e.g. xterm):

udx_list_processes();

udx_quit_julia(ch1);

udx_quit_process(97062);   # example PID; use the PID shown for your process

Notes

  • The Julia process stays alive for further udx_rur (or other) calls on the same channel until you quit it.
  • For Maple, libudx must be built with UDX_USE_MAPLE and Maple’s development headers; that is separate from the Julia-only build described in Building libudx.