Giter Club home page Giter Club logo

faster_modular_composition_sagemath's Introduction

Faster Modular Composition

Date of version: October 2021.

This code has been written by Vincent Neiger, Bruno Salvy, Éric Schost, Gilles Villard, to accompany the article

[A] Faster Modular Composition (preprint on arXiv and hal).

Software requirements

This code is based on SageMath; the version 9.4 (or later) is mandatory for the code to run. SageMath 9.4 can be downloaded from SageMath's website.

Quick first usage:

  • launch SageMath on your machine from the folder containing this README;
  • from SageMath's command line interface, type %runfile examples.sage.

Short file descriptions:

  • constants.sage defines a few constants and flags used in other files;
  • simultaneous_modular_operations.sage contains all algorithms in [A, Section 3];
  • matrix_of_relations.sage contains the algorithm of [A, Sections 4 and 5];
  • change_of_basis.sage contains the algorithm of [A, Section 6];
  • modular_composition_basecase.sage contains the first algorithm of [A, Section 8];
  • tests.sage is mainly for testing purpose;
  • examples.sage shows basic usage of the provided algorithms and runs the main algorithms in verbose mode to show the main steps and objects they compute on four different examples;
  • output_example.txt gives an example of output when running examples.sage .

Trying your own examples:

The code in examples.sage can easily be used and modified to observe the run of Algorithm ModularCompositionBaseCase [A, Algorithm 8.1] on any given input polynomials f(x), a(x), g(y).

Remarks

  • If you find a bug in this code or have questions about it, please notify the authors (preferably via GitHub's "Issues" tracking system).
  • This code is not meant to be an efficient, optimized implementation. In particular, many operations on matrices over K[x] such as approximant bases and kernel bases are currently rather slow in SageMath (mainly because at the moment this software lacks a good implementation of K[x]-matrix multiplication).

faster_modular_composition_sagemath's People

Contributors

vneiger avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.