Ginac 1.8.1 an Open Framework for Symbolic Computation Within the C++ Programming Language 8 August 2021

Total Page:16

File Type:pdf, Size:1020Kb

Ginac 1.8.1 an Open Framework for Symbolic Computation Within the C++ Programming Language 8 August 2021 GiNaC 1.8.1 An open framework for symbolic computation within the C++ programming language 8 August 2021 https://www.ginac.de Copyright c 1999-2021 Johannes Gutenberg University Mainz, Germany Permission is granted to make and distribute verbatim copies of this manual provided the copy- right notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the condi- tions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. i Table of Contents GiNaC :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 1 1 Introduction :::::::::::::::::::::::::::::::::::::::::::::::::::: 2 1.1 License :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 2 2 A Tour of GiNaC::::::::::::::::::::::::::::::::::::::::::::::: 3 2.1 How to use it from within C++ :::::::::::::::::::::::::::::::::::::::::::::::::::: 3 2.2 What it can do for you::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 4 3 Installation:::::::::::::::::::::::::::::::::::::::::::::::::::::: 8 3.1 Prerequisites ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 8 3.2 Configuration :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 8 3.3 Building GiNaC ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 9 3.4 Installing GiNaC::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 9 4 Basic concepts::::::::::::::::::::::::::::::::::::::::::::::::: 11 4.1 Expressions ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 11 4.1.1 Note: Expressions and STL containers ::::::::::::::::::::::::::::::::::::::: 11 4.2 Automatic evaluation and canonicalization of expressions :::::::::::::::::::::::::: 11 4.3 Error handling:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 12 4.4 The class hierarchy ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 13 4.5 Symbols :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 14 4.6 Numbers ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 17 4.6.1 Tests on numbers :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 18 4.6.2 Numeric functions ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 20 4.6.3 Converting numbers:::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 22 4.7 Constants :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 22 4.8 Sums, products and powers ::::::::::::::::::::::::::::::::::::::::::::::::::::::: 22 4.9 Lists of expressions ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 23 4.10 Mathematical functions :::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 25 4.11 Relations :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 25 4.12 Integrals::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 26 4.13 Matrices::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 27 4.14 Indexed objects:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 30 4.14.1 Indexed quantities and their indices ::::::::::::::::::::::::::::::::::::::::: 30 4.14.2 Substituting indices ::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 33 4.14.3 Symmetries ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 34 4.14.4 Dummy indices ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 35 4.14.5 Simplifying indexed expressions ::::::::::::::::::::::::::::::::::::::::::::: 36 4.14.6 Predefined tensors :::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 37 4.14.6.1 Delta tensor ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 37 4.14.6.2 General metric tensor :::::::::::::::::::::::::::::::::::::::::::::::::: 37 4.14.6.3 Minkowski metric tensor ::::::::::::::::::::::::::::::::::::::::::::::: 38 4.14.6.4 Spinor metric tensor ::::::::::::::::::::::::::::::::::::::::::::::::::: 38 4.14.6.5 Epsilon tensor ::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 39 4.14.7 Linear algebra :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 40 ii 4.15 Non-commutative objects :::::::::::::::::::::::::::::::::::::::::::::::::::::::: 40 4.15.1 Clifford algebra ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 42 4.15.1.1 Dirac gamma matrices ::::::::::::::::::::::::::::::::::::::::::::::::: 42 4.15.1.2 A generic Clifford algebra :::::::::::::::::::::::::::::::::::::::::::::: 44 4.15.2 Color algebra ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 47 5 Methods and functions ::::::::::::::::::::::::::::::::::::::: 49 5.1 Getting information about expressions :::::::::::::::::::::::::::::::::::::::::::: 49 5.1.1 Checking expression types:::::::::::::::::::::::::::::::::::::::::::::::::::: 49 5.1.2 Accessing subexpressions ::::::::::::::::::::::::::::::::::::::::::::::::::::: 51 5.1.3 Comparing expressions ::::::::::::::::::::::::::::::::::::::::::::::::::::::: 52 5.1.4 Ordering expressions ::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 52 5.2 Numerical evaluation ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 53 5.3 Substituting expressions :::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 54 5.4 Pattern matching and advanced substitutions ::::::::::::::::::::::::::::::::::::: 55 5.4.1 Matching expressions :::::::::::::::::::::::::::::::::::::::::::::::::::::::: 56 5.4.2 Matching parts of expressions :::::::::::::::::::::::::::::::::::::::::::::::: 58 5.4.3 Substituting expressions:::::::::::::::::::::::::::::::::::::::::::::::::::::: 59 5.4.4 The option algebraic ::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 59 5.5 Applying a function on subexpressions :::::::::::::::::::::::::::::::::::::::::::: 59 5.6 Visitors and tree traversal::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 62 5.7 Polynomial arithmetic :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 65 5.7.1 Testing whether an expression is a polynomial :::::::::::::::::::::::::::::::: 65 5.7.2 Expanding and collecting :::::::::::::::::::::::::::::::::::::::::::::::::::: 65 5.7.3 Degree and coefficients ::::::::::::::::::::::::::::::::::::::::::::::::::::::: 66 5.7.4 Polynomial division :::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 67 5.7.5 Unit, content and primitive part ::::::::::::::::::::::::::::::::::::::::::::: 67 5.7.6 GCD, LCM and resultant :::::::::::::::::::::::::::::::::::::::::::::::::::: 68 5.7.7 Square-free decomposition:::::::::::::::::::::::::::::::::::::::::::::::::::: 68 5.7.8 Polynomial factorization ::::::::::::::::::::::::::::::::::::::::::::::::::::: 69 5.8 Rational expressions :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 70 5.8.1 The normal method:::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 70 5.8.2 Numerator and denominator ::::::::::::::::::::::::::::::::::::::::::::::::: 70 5.8.3 Converting to a polynomial or rational expression :::::::::::::::::::::::::::: 70 5.9 Symbolic differentiation ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 71 5.10 Series expansion ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 72 5.11 Symmetrization:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 73 5.12 Predefined mathematical functions ::::::::::::::::::::::::::::::::::::::::::::::: 75 5.12.1 Overview ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 75 5.12.2 Expanding functions :::::::::::::::::::::::::::::::::::::::::::::::::::::::: 77 5.12.3 Multiple polylogarithms::::::::::::::::::::::::::::::::::::::::::::::::::::: 77 5.12.4 Iterated integrals ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 79 5.13 Complex expressions::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 80 5.14 Solving linear systems of equations::::::::::::::::::::::::::::::::::::::::::::::: 80 5.15 Input and output of expressions:::::::::::::::::::::::::::::::::::::::::::::::::: 81 5.15.1 Expression output :::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 81 5.15.2 Expression input:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 83 5.15.3 Compiling expressions to C function pointers :::::::::::::::::::::::::::::::: 85 5.15.4 Archiving ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 86 iii 6 Extending GiNaC ::::::::::::::::::::::::::::::::::::::::::::: 90 6.1 What doesn't belong into GiNaC:::::::::::::::::::::::::::::::::::::::::::::::::: 90 6.2 Symbolic functions:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 90 6.2.1 A minimal example :::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 90 6.2.2 The cosine function :::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 91 6.2.3 Function options ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 93 6.2.4 Functions with a variable number of arguments ::::::::::::::::::::::::::::::: 94 6.3 GiNaC's expression output system :::::::::::::::::::::::::::::::::::::::::::::::: 94 6.3.1 Print methods for classes::::::::::::::::::::::::::::::::::::::::::::::::::::: 95 6.3.2 Print methods for functions :::::::::::::::::::::::::::::::::::::::::::::::::: 97 6.3.3 Adding new output formats :::::::::::::::::::::::::::::::::::::::::::::::::: 98 6.4 Structures :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 99 6.4.1 Example: scalar products :::::::::::::::::::::::::::::::::::::::::::::::::::: 99
Recommended publications
  • Utilizing MATHEMATICA Software to Improve Students' Problem Solving
    International Journal of Education and Research Vol. 7 No. 11 November 2019 Utilizing MATHEMATICA Software to Improve Students’ Problem Solving Skills of Derivative and its Applications Hiyam, Bataineh , Jordan University of Science and Technology, Jordan Ali Zoubi, Yarmouk University, Jordan Abdalla Khataybeh, Yarmouk University, Jordan Abstract Traditional methods of teaching calculus (1) at most Jordanian universities are usually used. This paper attempts to introduce an innovative approach for teaching Calculus (1) using Computerized Algebra Systems (CAS). This paper examined utilizing Mathematica as a supporting tool for the teaching learning process of Calculus (1), especially for derivative and its applications. The research created computerized educational materials using Mathematica, which was used as an approach for teaching a (25) students as experimental group and another (25) students were taught traditionally as control group. The understandings of both samples were tested using problem solving test of 6 questions. The results revealed the experimental group outscored the control group significantly on the problem solving test. The use of Mathematica not just improved students’ abilities to interpret graphs and make connection between the graph of a function and its derivative, but also motivate students’ thinking in different ways to come up with innovative solutions for unusual and non routine problems involving the derivative and its applications. This research suggests that CAS tools should be integrated to teaching calculus (1) courses. Keywords: Mathematica, Problem solving, Derivative, Derivative’s applivations. INTRODUCTION The major technological advancements assisted decision makers and educators to pay greater attention on making the learner as the focus of the learning-teaching process. The use of computer algebra systems (CAS) in teaching mathematics has proved to be more effective compared to traditional teaching methods (Irving & Bell, 2004; Dhimar & Petal, 2013; Abdul Majid, huneiti, Al- Nafa & Balachander, 2012).
    [Show full text]
  • Performance Analysis of Effective Symbolic Methods for Solving Band Matrix Slaes
    Performance Analysis of Effective Symbolic Methods for Solving Band Matrix SLAEs Milena Veneva ∗1 and Alexander Ayriyan y1 1Joint Institute for Nuclear Research, Laboratory of Information Technologies, Joliot-Curie 6, 141980 Dubna, Moscow region, Russia Abstract This paper presents an experimental performance study of implementations of three symbolic algorithms for solving band matrix systems of linear algebraic equations with heptadiagonal, pen- tadiagonal, and tridiagonal coefficient matrices. The only assumption on the coefficient matrix in order for the algorithms to be stable is nonsingularity. These algorithms are implemented using the GiNaC library of C++ and the SymPy library of Python, considering five different data storing classes. Performance analysis of the implementations is done using the high-performance computing (HPC) platforms “HybriLIT” and “Avitohol”. The experimental setup and the results from the conducted computations on the individual computer systems are presented and discussed. An analysis of the three algorithms is performed. 1 Introduction Systems of linear algebraic equations (SLAEs) with heptadiagonal (HD), pentadiagonal (PD) and tridiagonal (TD) coefficient matrices may arise after many different scientific and engineering prob- lems, as well as problems of the computational linear algebra where finding the solution of a SLAE is considered to be one of the most important problems. On the other hand, special matrix’s char- acteristics like diagonal dominance, positive definiteness, etc. are not always feasible. The latter two points explain why there is a need of methods for solving of SLAEs which take into account the band structure of the matrices and do not have any other special requirements to them. One possible approach to this problem is the symbolic algorithms.
    [Show full text]
  • The Yacas Book of Algorithms
    The Yacas Book of Algorithms by the Yacas team 1 Yacas version: 1.3.6 generated on November 25, 2014 This book is a detailed description of the algorithms used in the Yacas system for exact symbolic and arbitrary-precision numerical computations. Very few of these algorithms are new, and most are well-known. The goal of this book is to become a compendium of all relevant issues of design and implementation of these algorithms. 1This text is part of the Yacas software package. Copyright 2000{2002. Principal documentation authors: Ayal Zwi Pinkus, Serge Winitzki, Jitse Niesen. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts and no Back-Cover Texts. A copy of the license is included in the section entitled \GNU Free Documentation License". Contents 1 Symbolic algebra algorithms 3 1.1 Sparse representations . 3 1.2 Implementation of multivariate polynomials . 4 1.3 Integration . 5 1.4 Transforms . 6 1.5 Finding real roots of polynomials . 7 2 Number theory algorithms 10 2.1 Euclidean GCD algorithms . 10 2.2 Prime numbers: the Miller-Rabin test and its improvements . 10 2.3 Factorization of integers . 11 2.4 The Jacobi symbol . 12 2.5 Integer partitions . 12 2.6 Miscellaneous functions . 13 2.7 Gaussian integers . 13 3 A simple factorization algorithm for univariate polynomials 15 3.1 Modular arithmetic . 15 3.2 Factoring using modular arithmetic .
    [Show full text]
  • CAS (Computer Algebra System) Mathematica
    CAS (Computer Algebra System) Mathematica- UML students can download a copy for free as part of the UML site license; see the course website for details From: Wikipedia 2/9/2014 A computer algebra system (CAS) is a software program that allows [one] to compute with mathematical expressions in a way which is similar to the traditional handwritten computations of the mathematicians and other scientists. The main ones are Axiom, Magma, Maple, Mathematica and Sage (the latter includes several computer algebras systems, such as Macsyma and SymPy). Computer algebra systems began to appear in the 1960s, and evolved out of two quite different sources—the requirements of theoretical physicists and research into artificial intelligence. A prime example for the first development was the pioneering work conducted by the later Nobel Prize laureate in physics Martin Veltman, who designed a program for symbolic mathematics, especially High Energy Physics, called Schoonschip (Dutch for "clean ship") in 1963. Using LISP as the programming basis, Carl Engelman created MATHLAB in 1964 at MITRE within an artificial intelligence research environment. Later MATHLAB was made available to users on PDP-6 and PDP-10 Systems running TOPS-10 or TENEX in universities. Today it can still be used on SIMH-Emulations of the PDP-10. MATHLAB ("mathematical laboratory") should not be confused with MATLAB ("matrix laboratory") which is a system for numerical computation built 15 years later at the University of New Mexico, accidentally named rather similarly. The first popular computer algebra systems were muMATH, Reduce, Derive (based on muMATH), and Macsyma; a popular copyleft version of Macsyma called Maxima is actively being maintained.
    [Show full text]
  • SNC: a Cloud Service Platform for Symbolic-Numeric Computation Using Just-In-Time Compilation
    This article has been accepted for publication in a future issue of this journal, but has not been fully edited. Content may change prior to final publication. Citation information: DOI 10.1109/TCC.2017.2656088, IEEE Transactions on Cloud Computing IEEE TRANSACTIONS ON CLOUD COMPUTING 1 SNC: A Cloud Service Platform for Symbolic-Numeric Computation using Just-In-Time Compilation Peng Zhang1, Member, IEEE, Yueming Liu1, and Meikang Qiu, Senior Member, IEEE and SQL. Other types of Cloud services include: Software as a Abstract— Cloud services have been widely employed in IT Service (SaaS) in which the software is licensed and hosted in industry and scientific research. By using Cloud services users can Clouds; and Database as a Service (DBaaS) in which managed move computing tasks and data away from local computers to database services are hosted in Clouds. While enjoying these remote datacenters. By accessing Internet-based services over lightweight and mobile devices, users deploy diversified Cloud great services, we must face the challenges raised up by these applications on powerful machines. The key drivers towards this unexploited opportunities within a Cloud environment. paradigm for the scientific computing field include the substantial Complex scientific computing applications are being widely computing capacity, on-demand provisioning and cross-platform interoperability. To fully harness the Cloud services for scientific studied within the emerging Cloud-based services environment computing, however, we need to design an application-specific [4-12]. Traditionally, the focus is given to the parallel scientific platform to help the users efficiently migrate their applications. In HPC (high performance computing) applications [6, 12, 13], this, we propose a Cloud service platform for symbolic-numeric where substantial effort has been given to the integration of computation– SNC.
    [Show full text]
  • Performance Analysis of Effective Symbolic Methods for Solving Band Matrix Slaes
    EPJ Web of Conferences 214, 05004 (2019) https://doi.org/10.1051/epjconf/201921405004 CHEP 2018 Performance Analysis of Effective Symbolic Methods for Solving Band Matrix SLAEs 1, 1, Milena Veneva ∗ and Alexander Ayriyan ∗∗ 1Joint Institute for Nuclear Research, Laboratory of Information Technologies, Joliot-Curie 6, 141980 Dubna, Moscow region, Russia Abstract. This paper presents an experimental performance study of imple- mentations of three symbolic algorithms for solving band matrix systems of linear algebraic equations with heptadiagonal, pentadiagonal, and tridiagonal coefficient matrices. The only assumption on the coefficient matrix in order for the algorithms to be stable is nonsingularity. These algorithms are implemented using the GiNaC library of C++ and the SymPy library of Python, considering five different data storing classes. Performance analysis of the implementations is done using the high-performance computing (HPC) platforms “HybriLIT” and “Avitohol”. The experimental setup and the results from the conducted computations on the individual computer systems are presented and discussed. An analysis of the three algorithms is performed. 1 Introduction Systems of linear algebraic equations (SLAEs) with heptadiagonal (HD), pentadiagonal (PD) and tridiagonal (TD) coefficient matrices may arise after many different scientific and engi- neering problems, as well as problems of the computational linear algebra where finding the solution of a SLAE is considered to be one of the most important problems. On the other hand, special matrix’s characteristics like diagonal dominance, positive definiteness, etc. are not always feasible. The latter two points explain why there is a need of methods for solving of SLAEs which take into account the band structure of the matrices and do not have any other special requirements to them.
    [Show full text]
  • Sage: Unifying Mathematical Software for Scientists, Engineers, and Mathematicians
    Sage: Unifying Mathematical Software for Scientists, Engineers, and Mathematicians 1 Introduction The goal of this proposal is to further the development of Sage, which is comprehensive unified open source software for mathematical and scientific computing that builds on high-quality mainstream methodologies and tools. Sage [12] uses Python, one of the world's most popular general-purpose interpreted programming languages, to create a system that scales to modern interdisciplinary prob- lems. Sage is also Internet friendly, featuring a web-based interface (see http://www.sagenb.org) that can be used from any computer with a web browser (PC's, Macs, iPhones, Android cell phones, etc.), and has sophisticated interfaces to nearly all other mathematics software, includ- ing the commercial programs Mathematica, Maple, MATLAB and Magma. Sage is not tied to any particular commercial mathematics software platform, is open source, and is completely free. With sufficient new work, Sage has the potential to have a transformative impact on the compu- tational sciences, by helping to set a high standard for reproducible computational research and peer reviewed publication of code. Our vision is that Sage will have a broad impact by supporting cutting edge research in a wide range of areas of computational mathematics, ranging from applied numerical computation to the most abstract realms of number theory. Already, Sage combines several hundred thousand lines of new code with over 5 million lines of code from other projects. Thousands of researchers use Sage in their work to find new conjectures and results (see [13] for a list of over 75 publications that use Sage).
    [Show full text]
  • GNU Texmacs User Manual Joris Van Der Hoeven
    GNU TeXmacs User Manual Joris van der Hoeven To cite this version: Joris van der Hoeven. GNU TeXmacs User Manual. 2013. hal-00785535 HAL Id: hal-00785535 https://hal.archives-ouvertes.fr/hal-00785535 Preprint submitted on 6 Feb 2013 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. GNU TEXMACS user manual Joris van der Hoeven & others Table of contents 1. Getting started ...................................... 11 1.1. Conventionsforthismanual . .......... 11 Menuentries ..................................... 11 Keyboardmodifiers ................................. 11 Keyboardshortcuts ................................ 11 Specialkeys ..................................... 11 1.2. Configuring TEXMACS ..................................... 12 1.3. Creating, saving and loading documents . ............ 12 1.4. Printingdocuments .............................. ........ 13 2. Writing simple documents ............................. 15 2.1. Generalities for typing text . ........... 15 2.2. Typingstructuredtext ........................... ......... 15 2.3. Content-basedtags
    [Show full text]
  • Biblioteka PARI/GP W Zastosowaniu Do Systemu Ćwiczeń Laboratoryjnych
    Biblioteka PARI/GP w zastosowaniu do systemu ćwiczeń laboratoryjnych Bartosz Dzirba Gabriel Kujawski opiekun: prof. dr hab. Zbigniew Kotulski 1 Plan prezentacji . Ćwiczenie laboratoryjne . Przykład protokołu (TBD) . Systemy algebry . PARI/GP wstęp problemy… biblioteka 2 Ćwiczenie laboratoryjne wstęp . Tematyka: Kolektywne uzgadnianie klucza . Założenia: Praktyczne zapoznanie studenta z protokołami uzgadniania klucza Wykonanie wybranych protokołów Możliwość łatwej rozbudowy Działanie w laboratorium komputerowym . Potrzebne elementy: Aplikacja Biblioteki protokołów System algebry 3 Ćwiczenie laboratoryjne efekt pracy . Aplikacja sieciowa KUK . Zaimplementowane protokoły dwustronne grupowe (różne topologie) . Scenariusze z atakami MitM kontrola klucza . Realne testy dla kilkunastu uczestników . Przykładowy skrypt ćwiczenia 4 Tree-based Burmester Desmedt topologia KEY A1 A2 A3 A4 A5 A6 5 Tree-based Burmester Desmedt runda 1 KEY A DH0, g1, PID 1 DH0, g1, PID A2 A3 A4 A5 A6 6 Tree-based Burmester Desmedt runda 2 KEY A1 DH1, g2, PID DH1, g3, PID A2 A3 DH0, g3, PID DH0, g3, PID DH0, g2, PID A4 A5 A6 7 Tree-based Burmester Desmedt runda 3 KEY A1 KEY, E (S), SID 12 KEY, E13(S), SID KEY A2 A3 KEY DH1, g5, PID DH1, g4, PID DH1, g6, PID A4 A5 A6 8 Tree-based Burmester Desmedt runda 4 KEY A1 KEY A2 A3 KEY KEY, E35(S), SID KEY, E36(S), SID KEY, E24(S), SID KEY A4 KEY A5 KEY A6 9 Systemy algebry wstęp . Potrzeby: obsługa dużych liczb operacje modulo p znajdowanie generatora grupy znajdowanie elementu odwrotnego modulo p znajdowanie liczb pierwszych możliwość wykorzystania w MS VC++ .NET 2008 . Możliwe podejścia: wykorzystanie gotowego systemu napisanie własnej biblioteki 10 Systemy algebry dostępne możliwości Crypto++ Yacas OpenSSL PARI/GP cryptlib Maxima MathCAD Axiom Maple 11 PARI/GP wstęp .
    [Show full text]
  • Introduction to the Ginac Framework for Symbolic Computation Within the C++ Programming Language
    J. Symbolic Computation (2002) 33, 1–12 doi:10.1006/jsco.2001.0494 Available online at http://www.idealibrary.com on Introduction to the GiNaC Framework for Symbolic Computation within the C++ Programming Language CHRISTIAN BAUER, ALEXANDER FRINK AND RICHARD KRECKEL Institute of Physics, Johannes-Gutenberg-University, Mainz, Germany The traditional split into a low level language and a high level language in the design of computer algebra systems may become obsolete with the advent of more versatile computer languages. We describe GiNaC, a special-purpose system that deliberately denies the need for such a distinction. It is entirely written in C++ and the user can interact with it directly in that language. It was designed to provide efficient handling of multivariate polynomials, algebras and special functions that are needed for loop calculations in theoretical quantum field theory. It also bears some potential to become a more general purpose symbolic package. c 2002 Academic Press 1. Introduction Historically, in the design and implementation of symbolic computation engines, the focus has always been rather on algebraic capabilities than on language design. The need for efficient computation in all fields of science has led to the development of powerful algorithms. Thus, the border line between inexact numerical and exact analytical com- putation has moved, such that more computation may be done exactly before resorting to numerical methods. This development has had great influence on the working practice in such fields as engineering (e.g. robotics), computer science (e.g. networks), physics (e.g. high energy physics) and even mathematics (from group theory to automatic theo- rem proving in geometry).
    [Show full text]
  • Sage & Algebraic Techniques for the Lazy Symmetric Cryptographer
    Sage & Algebraic Techniques for the Lazy Symmetric Cryptographer Martin R. Albrecht @martinralbrecht Crypto Group, DTU Compute, Denmark IceBreak, Reykjavik, Iceland kicebreak Outline Sage Introduction Highlevel Features Fields & Areas Algebraic Techniques Introduction Equations Solvers ...for the Lazy Cryptographer Outline Sage Introduction Highlevel Features Fields & Areas Algebraic Techniques Introduction Equations Solvers ...for the Lazy Cryptographer Blurb Sage open-source mathematical soware system “Creating a viable free open source alternative to Magma, Maple, Mathematica and Matlab.” Sage is a free open-source mathematics soware system licensed under the GPL. It combines the power of many existing open-source packages into a common Python-based interface. First release óþþ¢ Latest version ¢.É released óþÕì-þ¢-þì > ìþþ releases Shell, webbrowser (GUI), library > Õþ developers ∼ Õþþ components > óþþ papers cite Sage > óÕþþ subscribers [sage-support] > Õþþ,þþþ web visitors/month > ä, ¢þþ downloads/month How to use it Sage can be used via the command line, as a webapp hosted on your local computer and via the Internet, or embedded on any website. Check out: http://aleph.sagemath.org and https://cloud.sagemath.com/ “How do I do ...in Sage?” ...It’s easy: implement it and send us a patch. Sage is a largely volunteer-driven eort, this means that ▸ developers work on whatever suits their needs best; ▸ the quality of code in Sage varies: ▸ is a generic or a specialised, optimised implementation used, ▸ how much attention is paid to details, ▸ is your application an untested “corner case”, ▸ how extensive are the tests, the documentation, or ▸ is the version of a particular package up to date.
    [Show full text]
  • Open Source Resources for Teaching and Research in Mathematics
    Open Source Resources for Teaching and Research in Mathematics Dr. Russell Herman Dr. Gabriel Lugo University of North Carolina Wilmington Open Source Resources, ICTCM 2008, San Antonio 1 Outline History Definition General Applications Open Source Mathematics Applications Environments Comments Open Source Resources, ICTCM 2008, San Antonio 2 In the Beginning ... then there were Unix, GNU, and Linux 1969 UNIX was born, Portable OS (PDP-7 to PDP-11) – in new “C” Ken Thompson, Dennis Ritchie, and J.F. Ossanna Mailed OS => Unix hackers Berkeley Unix - BSD (Berkeley Systems Distribution) 1970-80's MIT Hackers Public Domain projects => commercial RMS – Richard M. Stallman EMACS, GNU - GNU's Not Unix, GPL Open Source Resources, ICTCM 2008, San Antonio 3 History Free Software Movement – 1983 RMS - GNU Project – 1983 GNU GPL – GNU General Public License Free Software Foundation (FSF) – 1985 Free = “free speech not free beer” Open Source Software (OSS) – 1998 Netscape released Mozilla source code Open Source Initiative (OSI) – 1998 Eric S. Raymond and Bruce Perens The Cathedral and the Bazaar 1997 - Raymond Open Source Resources, ICTCM 2008, San Antonio 4 The Cathedral and the Bazaar The Cathedral model, source code is available with each software release, code developed between releases is restricted to an exclusive group of software developers. GNU Emacs and GCC are examples. The Bazaar model, code is developed over the Internet in public view Raymond credits Linus Torvalds, Linux leader, as the inventor of this process. http://en.wikipedia.org/wiki/The_Cathedral_and_the_Bazaar Open Source Resources, ICTCM 2008, San Antonio 5 Given Enough Eyeballs ... central thesis is that "given enough eyeballs, all bugs are shallow" the more widely available the source code is for public testing, scrutiny, and experimentation, the more rapidly all forms of bugs will be discovered.
    [Show full text]