An Open Source Approach Using Sage
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
The Sage Project: Unifying Free Mathematical Software to Create a Viable Alternative to Magma, Maple, Mathematica and MATLAB
The Sage Project: Unifying Free Mathematical Software to Create a Viable Alternative to Magma, Maple, Mathematica and MATLAB Bur¸cinEr¨ocal1 and William Stein2 1 Research Institute for Symbolic Computation Johannes Kepler University, Linz, Austria Supported by FWF grants P20347 and DK W1214. [email protected] 2 Department of Mathematics University of Washington [email protected] Supported by NSF grant DMS-0757627 and DMS-0555776. Abstract. Sage is a free, open source, self-contained distribution of mathematical software, including a large library that provides a unified interface to the components of this distribution. This library also builds on the components of Sage to implement novel algorithms covering a broad range of mathematical functionality from algebraic combinatorics to number theory and arithmetic geometry. Keywords: Python, Cython, Sage, Open Source, Interfaces 1 Introduction In order to use mathematical software for exploration, we often push the bound- aries of available computing resources and continuously try to improve our imple- mentations and algorithms. Most mathematical algorithms require basic build- ing blocks, such as multiprecision numbers, fast polynomial arithmetic, exact or numeric linear algebra, or more advanced algorithms such as Gr¨obnerbasis computation or integer factorization. Though implementing some of these basic foundations from scratch can be a good exercise, the resulting code may be slow and buggy. Instead, one can build on existing optimized implementations of these basic components, either by using a general computer algebra system, such as Magma, Maple, Mathematica or MATLAB, or by making use of the many high quality open source libraries that provide the desired functionality. These two approaches both have significant drawbacks. -
Sage 9.3 Reference Manual: External Packages
Sage 9.4 Reference Manual: External Packages Release 9.4 The Sage Development Team Aug 24, 2021 CONTENTS 1 Standard Packages 1 2 Optional Packages 7 3 Experimental Packages 11 4 Detailed Listing of External Packages 13 i ii CHAPTER ONE STANDARD PACKAGES The Sage distribution includes most programs and libraries on which Sage depends. It installs them automatically if it does not find equivalent system packages. • _prereq: Represents system packages required for installing SageMath from source • alabaster: Default theme for the Sphinx documentation system • appdirs: A small Python module for determining appropriate platform-specific dirs, e.g. a “user data dir”. • appnope: Disable App Nap on OS X • arb: Arbitrary-precision floating-point ball arithmetic • argon2_cffi: The secure Argon2 password hashing algorithm • attrs: Decorator for Python classes with attributes • babel: Internationalization utilities for Python • backcall: Specifications for callback functions • bleach: An HTML-sanitizing tool • boost_cropped: Portable C++ libraries (subset needed for Sage) • brial: Boolean Ring Algebra implementation using binary decision diagrams • bzip2: High-quality data compressor • cddlib: Double description method for polyhedral representation conversion • certifi: Python package for providing Mozilla’s CA Bundle • cffi: Foreign Function Interface for Python calling Ccode • cliquer: Routines for clique searching • cmake: A cross-platform build system generator • combinatorial_designs: Data from the Handbook of Combinatorial Designs • conway_polynomials: -
Parallel Arbitrary-Precision Integer Arithmetic
Western University Scholarship@Western Electronic Thesis and Dissertation Repository 3-19-2021 1:30 PM Parallel Arbitrary-precision Integer Arithmetic Davood Mohajerani, The University of Western Ontario Supervisor: Moreno Maza, Marc, The University of Western Ontario A thesis submitted in partial fulfillment of the equirr ements for the Doctor of Philosophy degree in Computer Science © Davood Mohajerani 2021 Follow this and additional works at: https://ir.lib.uwo.ca/etd Part of the Numerical Analysis and Scientific Computing Commons, and the Theory and Algorithms Commons Recommended Citation Mohajerani, Davood, "Parallel Arbitrary-precision Integer Arithmetic" (2021). Electronic Thesis and Dissertation Repository. 7674. https://ir.lib.uwo.ca/etd/7674 This Dissertation/Thesis is brought to you for free and open access by Scholarship@Western. It has been accepted for inclusion in Electronic Thesis and Dissertation Repository by an authorized administrator of Scholarship@Western. For more information, please contact [email protected]. Abstract Arbitrary-precision integer arithmetic computations are driven by applications in solving sys- tems of polynomial equations and public-key cryptography. Such computations arise when high precision is required (with large input values that t into multiple machine words), or to avoid coecient overow due to intermediate expression swell. Meanwhile, the growing demand for faster computation alongside the recent advances in the hardware technology have led to the development of a vast array of many-core and multi-core processors, acceler- ators, programming models, and language extensions (e.g., CUDA and OpenCL for GPUs, and OpenMP and Cilk for multi-core CPUs). The massive computational power of parallel pro- cessors makes them attractive targets for carrying out arbitrary-precision integer arithmetic. -
SAGEMATH CROSS PRODUCT: Community Run Open Source Software Providing Research Opportunities for Developers, Users, Contributors, and Teachers
COLLABORATIVE RESEARCH: SI2-SSI: SAGEMATH CROSS PRODUCT: Community Run Open Source Software Providing Research Opportunities for Developers, Users, Contributors, and Teachers SageMath [217], or Sage for short, is a free open source general purpose mathematical software system, initiated under the leadership of William Stein (University of Washington), that has developed explosively within the last ten years among research mathematicians. Stein's primary motivational goal was to create software that is efficient, open source, comprehensive, well- documented, extensible, and free [216]. Sage's development has reached a point where it has the potential to become a standard software package that is widely used throughout STEM disciplines. If funded, the proposed project will allow us to make major progress towards this goal. Sage is similar to Maple [150], Mathematica [237], Magma [43], and MATLAB [225] (via third-party packages like SciPy [105]), but uses the popular Python language [175] both as an implementation and as a surface language. This not only ensures easy access to help with programming [75, 146, 174], but also provides developers with transferable skills as they work with a computer language that is ubiquitous in the software industry. Furthermore, Sage has gained strong momentum in the mathematics community far beyond its initial focus in number theory, in particular in the field of combinatorics where the capabilities and functionalities of Sage are much deeper than those of commercial packages. Sage is community-run, meaning that it is developed and organized by users for users. The development is driven by research and teaching needs and has a variety of stakeholders: e.g., developers, users, contributors, researchers, and teachers. -
Fast Computation of Hermite Normal Forms of Random Integer Matrices ∗ Clément Pernet A,1, William Stein B, ,2 a Grenoble Université, INRIA-MOAIS, LIG; 51, Avenue J
ARTICLE IN PRESS YJNTH:4018 JID:YJNTH AID:4018 /FLA [m1G; v 1.36; Prn:2/04/2010; 10:44] P.1 (1-9) Journal of Number Theory ••• (••••) •••–••• Contents lists available at ScienceDirect Journal of Number Theory www.elsevier.com/locate/jnt Fast computation of Hermite normal forms of random integer matrices ∗ Clément Pernet a,1, William Stein b, ,2 a Grenoble université, INRIA-MOAIS, LIG; 51, avenue J. Kuntzmann; 38330 Montbonnot St-Martin, France b University of Washington, Department of Mathematics, Box 354350, Seattle, WA, United States article info abstract Article history: This paper is about how to compute the Hermite normal form Received 21 April 2009 of a random integer matrix in practice. We propose significant Available online xxxx improvements to the algorithm by Micciancio and Warinschi, and Communicated by Fernando Rodriguez extend these techniques to the computation of the saturation of Villegas a matrix. We describe the fastest implementation for computing Keywords: Hermite normal form for large matrices with large entries. Hermite normal form © 2010 Published by Elsevier Inc. Exact linear algebra 1. Introduction This paper is about how to compute the Hermite normal form of a random integer matrix in practice. We describe the best known algorithm for random matrices, due to Micciancio and Warin- schi [MW01] and explain some new ideas that make it practical. We also apply these techniques to give a new algorithm for computing the saturation of a module, and present timings. In this paper we do not concern ourselves with nonrandom matrices, and instead refer the reader to [SL96,Sto98] for the state of the art for worse case complexity results.