Skip to content

A collection of Mathematica packages, tools and examples using FiniteFlow.

Notifications You must be signed in to change notification settings

peraro/finiteflow-mathtools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 

Repository files navigation

FiniteFlow MathTools

This is a collection of packages, tools and examples using the Mathematica interface to the FiniteFlow library.

The examples presented here are designed to be simple enough to run in a few minutes on a modern laptop. They also contain plenty of comments which should be useful as an introduction to using FiniteFlow for solving these types of problems. However, they can be used as templates for more complicated applications to be run on larger machines and clusters.

It should be noted that the packages included in this repository should be regarded as a set of utilities rather the implementation of fully automated solutions for specific tasks.

The algorithms implemented here, are based on the following publication

  • Tiziano Peraro, FiniteFlow: multivariate functional reconstruction using finite fields and dataflow graphs, arXiv:1905.08019

Installation and usage

In order to use and run these packages and examples, follow the steps below:

  • Install the FiniteFlow library, following the instructions in its README.md file
  • The LiteIBP package in this repository and some of the examples depend on LiteRed. You can download the latter from the previous link. In order to make sure its files are in your Mathematica path, consider adding the following to your init.m file
$LiteRedPath = "/path/to/litered"
If[Not[MemberQ[$Path,$LiteRedPath]],$Path = Flatten[{$Path, $LiteRedPath }]];

You can skip this step if you are not interested in the LiteIBP package or in the examples using it.

  • Make sure the packages in this repository are in your Mathematica path, e.g. by adding the following to your init.m file
$FFMathTools = "/path/to/this/repo/packages"
If[Not[MemberQ[$Path,$FFMathTools]],$Path = Flatten[{$Path, $FFMathTools }]];

Most of the examples must be run from their own directory.

Contents

This repository contains the following subdirectories:

  • packages/: contains a collection of Mathematica packages and tools which use the FiniteFlow library
  • examples/: contains a collection of examples which use the FiniteFlow library and the Mathematica packages in this repository

Known issues

Some Mathematica functions in the LiteIBP package may not work in Mathematica 11.3 and later if any parallel kernel is launched in the main program (see Mathematica's Kernels[] and LaunchKernels[]). The issue only involves Mathematica scripts generating and serializing IBPs, and it does not affect parallelization in the functional reconstruction implemented in FiniteFlow. In order to prevent this issue, we recommend using the "LaunchKernels" option of the LiteIBP procedure, as in the examples of this repository.

About

A collection of Mathematica packages, tools and examples using FiniteFlow.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published