cocoalib
play

CoCoALib a C++ library for computations in commutative algebra - PowerPoint PPT Presentation

CoCoALib a C++ library for computations in commutative algebra http://cocoa.dima.unige.it/ Anna Bigatti Universit di Genova, Italy A. Bigatti (Universit of Genova) CoCoALib IMA Oct 2006 1 / 12 Outline Introduction to CoCoA : a brief


  1. CoCoALib a C++ library for computations in commutative algebra http://cocoa.dima.unige.it/ Anna Bigatti Università di Genova, Italy A. Bigatti (Università of Genova) CoCoALib IMA Oct 2006 1 / 12

  2. Outline Introduction to CoCoA : a brief tour in the web page 1 CoCoA 4.6 : the system (demo) 2 CoCoA & CoCoAServer : a step into the future (demo) 3 CoCoALib : the C++ library 4 design demo current state insights A. Bigatti (Università of Genova) CoCoALib IMA Oct 2006 2 / 12

  3. Introduction to CoCoA A brief tour in the web page Demo ( demo.cocoa ) A. Bigatti (Università of Genova) CoCoALib IMA Oct 2006 3 / 12

  4. design What is CoCoALib? CoCoA project is in a transitional phase: old interactive system CoCoA 4.6 written in C new implementation in C++ accessible as: GPL C++ library: CoCoALib 0.96 ... almost 1.0 ;-) server communicating in “OpenMath”: CoCoAServer prototype interactive system: CoCoA 5 prototype To justify the development effort, CoCoALib must become popular. Basic goals of the design to achieve popularity easy and pleasant to use efficient and well-documented reliable and robust good error checking, exception safe open and free (in GPL sense) Firmer mathematical basis (in tandem with Robbiano & Kreuzer’s book) A. Bigatti (Università of Genova) CoCoALib IMA Oct 2006 4 / 12

  5. design “For all tastes” For all users natural syntax with extensive checking a = b + c; For experienced users syntax for faster unchecked operations R->myAdd(rawa, rawb, rawc); For developers there are several debugging aids MemPool examples/ focus on a class and give all its functions e.g. ex-RingElem1.C “pieces of code” explaining particular functions, e.g. ex-PolyRing1.C workarounds for missing or incomplete aspects, e.g. ex-AlexanderDual.C DEMO ( demo-PolyRing.C ) A. Bigatti (Università of Genova) CoCoALib IMA Oct 2006 5 / 12

  6. current state Current state types for representing polynomial rings, ideals and submodules general term-orderings and multi-gradings (for both polynomial rings and modules over them) Gröbner bases and several other ideal/module operations (faster than CoCoA 4.6, also on D-modules) the coefficient rings include F p , Q , R , and k ( a 0 , . . . , a n ) ring homomorphisms for mapping values between rings some exact matrix operations Accessible from CoCoA 4.6 via prototype CoCoAServer A. Bigatti (Università of Genova) CoCoALib IMA Oct 2006 6 / 12

  7. insights Ring Inheritance Diagram A. Bigatti (Università of Genova) CoCoALib IMA Oct 2006 7 / 12

  8. insights Polynomials and Power Products A. Bigatti (Università of Genova) CoCoALib IMA Oct 2006 8 / 12

  9. insights Twin Floats Each value is represented as a 2-tuple of high-precision floats, and all components must have approximately the same value. (Traverso & Zanoni, ISSAC 2002). Colour key: Precision requested; guard digits; trouble; noise. � � 1 . 0000000000000005357 “Safe” value 1 . 0000000000000001079 � � 1 . 0000000000003141592 Noise just acceptable 1 . 0000000000014142135 � � 1 . 0000000000031415926 Noise unacceptable ⇒ ERROR insuff. prec. 1 . 0000000000 1 41421356 The green and blue digits must always match. 1 We trust only the green digits to be correct. 2 A. Bigatti (Università of Genova) CoCoALib IMA Oct 2006 9 / 12

  10. insights DivMask Implementation Idea: define map φ : PP → { 0 , 1 } s from PPs to s -bitsets s.t. t | t ′ = ⇒ φ ( t ) ⊆ φ ( t ′ ) Such φ are DivMask rules; many exist, none is obviously best. x 2 x 0 x 0 x 5 x 0 Example: 32 bits ...... 0 1 2 3 4 C++ Inheritance: user can choose DivMask rule at run-time, so computing a DivMask is “slow”, but subset test is the same for all rules − → inline − → fast. A. Bigatti (Università of Genova) CoCoALib IMA Oct 2006 10 / 12

  11. conclusion Some Future Plans CoCoALib version 1.0 in early 2007 import Hilbert function from CoCoA 4 import factorizer from CoCoA 4 approximate Buchberger-Möller algorithm for ideal of points more linear algebra operations new interactive system , “new” language and interpreter develop CoCoAServer and “OpenMath” communication collaboration with Sage project A. Bigatti (Università of Genova) CoCoALib IMA Oct 2006 11 / 12

  12. conclusion Getting Started CoCoA 4.6: Download CoCoA 4.6 for your platform Install (double-click) Play examples from the web page and/or the manual CoCoALib: Write an email to cocoa@dima.unige.it “I want to be an alpha tester” − → download Download CoCoALib latest version: cocoalib-0.96(01) cocoalib-0.97(08) Configure and compile ./configure; make Play examples/ex-empty.C A. Bigatti (Università of Genova) CoCoALib IMA Oct 2006 12 / 12

  13. conclusion Getting Started CoCoA 4.6: Download CoCoA 4.6 for your platform Install (double-click) Play examples from the web page and/or the manual CoCoALib: Write an email to cocoa@dima.unige.it “I want to be an alpha tester” − → download Download CoCoALib latest version: cocoalib-0.96(01) cocoalib-0.97(08) Configure and compile ./configure; make Play examples/ex-empty.C A. Bigatti (Università of Genova) CoCoALib IMA Oct 2006 12 / 12

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend