Coder Social home page Coder Social logo

ooinaruhugh / oscar.jl Goto Github PK

View Code? Open in Web Editor NEW

This project forked from oscar-system/oscar.jl

0.0 0.0 0.0 26.31 MB

A comprehensive open source computer algebra system for computations in algebra, geometry, and number theory.

Home Page: https://oscar.computeralgebra.de

License: Other

Shell 0.01% Fantom 0.01% Julia 99.47% GAP 0.51%

oscar.jl's Introduction

Oscar.jl

Documentation Build Status

Welcome to the OSCAR project, a visionary new computer algebra system which combines the capabilities of four cornerstone systems: GAP, Polymake, Antic and Singular.

Installation

OSCAR requires Julia 1.6 or newer. In principle it can be installed and used like any other Julia package; doing so will take a couple of minutes:

julia> using Pkg
julia> Pkg.add("Oscar")
julia> using Oscar

However, some of OSCAR's components have additional requirements. For more detailed information, please consult the installation instructions on our website.

Contributing to OSCAR

Please read the introduction for new developers in the OSCAR manual to learn more on how to contribute to OSCAR.

Examples of usage

julia> using Oscar
  ___   ____   ____    _    ____
 / _ \ / ___| / ___|  / \  |  _ \   |  Combining ANTIC, GAP, Polymake, Singular
| | | |\___ \| |     / _ \ | |_) |  |  Type "?Oscar" for more information
| |_| | ___) | |___ / ___ \|  _ <   |  Manual: https://docs.oscar-system.org
 \___/ |____/ \____/_/   \_\_| \_\  |  Version 1.1.0-DEV

julia> k, a = quadratic_field(-5)
(Imaginary quadratic field defined by x^2 + 5, sqrt(-5))

julia> zk = maximal_order(k)
Maximal order of Imaginary quadratic field defined by x^2 + 5
with basis AbsSimpleNumFieldElem[1, sqrt(-5)]

julia> factorizations(zk(6))
2-element Vector{Fac{AbsSimpleNumFieldOrderElem}}:
 -1 * -3 * 2
 -1 * (-sqrt(-5) - 1) * (-sqrt(-5) + 1)

julia> Qx, x = polynomial_ring(QQ, [:x1,:x2])
(Multivariate polynomial ring in 2 variables over QQ, QQMPolyRingElem[x1, x2])

julia> R = grade(Qx, [1,2])[1]
Multivariate polynomial ring in 2 variables over QQ graded by
  x1 -> [1]
  x2 -> [2]

julia> f = R(x[1]^2+x[2])
x1^2 + x2

julia> degree(f)
[2]

julia> F = free_module(R, 1)
Free module of rank 1 over R

julia> s = sub(F, [f*F[1]])[1]
Submodule with 1 generator
1 -> (x1^2 + x2)*e[1]
represented as subquotient with no relations.

julia> H, mH = hom(s, quo(F, s)[1])
(hom of (s, Subquotient of
1 -> e[1]
by
1 -> (x1^2 + x2)*e[1]), Map: H -> set of all homomorphisms from s to subquotient of Submodule with 1 generator
1 -> e[1]
by Submodule with 1 generator
1 -> (x1^2 + x2)*e[1])

julia> mH(H[1])
Map with following data
Domain:
=======
Submodule with 1 generator
1 -> (x1^2 + x2)*e[1]
represented as subquotient with no relations.
Codomain:
=========
Subquotient of Submodule with 1 generator
1 -> e[1]
by Submodule with 1 generator
1 -> (x1^2 + x2)*e[1]

Of course, the cornerstones are also available directly:

julia> C = Polymake.polytope.cube(3);

julia> C.F_VECTOR
pm::Vector<pm::Integer>
8 12 6

julia> RP2 = Polymake.topaz.real_projective_plane();

julia> RP2.HOMOLOGY
pm::Array<topaz::HomologyGroup<pm::Integer> >
({} 0)
({(2 1)} 0)
({} 0)

Citing OSCAR

If you have used OSCAR in the preparation of a paper please cite it as described below:

[OSCAR]
    OSCAR -- Open Source Computer Algebra Research system, Version 1.0.0,
    The OSCAR Team, 2024. (https://www.oscar-system.org)
[OSCAR-book]
    Wolfram Decker, Christian Eder, Claus Fieker, Max Horn, Michael Joswig, eds.
    The Computer Algebra System OSCAR: Algorithms and Examples,
    Algorithms and Computation in Mathematics, Springer, 2024.

If you are using BibTeX, you can use the following BibTeX entries:

@misc{OSCAR,
  key          = {OSCAR},
  organization = {The OSCAR Team},
  title        = {OSCAR -- Open Source Computer Algebra Research system,
                  Version 1.0.0},
  year         = {2024},
  url          = {https://www.oscar-system.org},
  }

@book{OSCAR-book,
  editor = {Decker, Wolfram and Eder, Christian and Fieker, Claus and Horn, Max and Joswig, Michael},
  title = {The {C}omputer {A}lgebra {S}ystem {OSCAR}: {A}lgorithms and {E}xamples},
  year = {2024},
  publisher = {Springer},
  series = {Algorithms and {C}omputation in {M}athematics},
  volume = {32},
  edition = {1},
  url = {https://link.springer.com/book/9783031621260},
  month = {8},
  issn = {1431-1550},
}

Funding

The development of this Julia package is supported by the Deutsche Forschungsgemeinschaft DFG within the Collaborative Research Center TRR 195.

oscar.jl's People

Contributors

alexd97 avatar alexej-jordan avatar antonydellavecchia avatar apturner avatar benlorenz avatar delphinepol avatar ederc avatar fieker avatar fingolfin avatar hechtiderlachs avatar herearound avatar jankoboehm avatar johnaabbott avatar joschmitt avatar lgoettgens avatar lkastner avatar lukaskuehne avatar micjoswig avatar rfourquet avatar sequenzer avatar simonbrandhorst avatar stevellm avatar tbrysiewicz avatar thofma avatar thomasbreuer avatar tthsqe12 avatar wbhart avatar wdecker avatar yueren avatar zkgeiselmann 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.