Giter VIP home page Giter VIP logo

cytools.jl's Introduction

CYTools.jl

Goal

The package CYTools.jl aims towards making the entire functionality of the Python package CYTools available in Julia. We base this project on OSCAR for general functionality on toric spaces, polyhedral geometry etc. Specialized algorithms (for CICYs, 3 and 4-dimensional reflexive polytopes in the Kreuzer-Skarke list) will be collected in this Julia package.

As long as infrastructure/architecture is concerned, the goal is to write code which would eventually allow for a full-scale integration into OSCAR. Such an integration would have to be discussed in more detail once the time comes.

On the long run, a key step towards writing this package is to re-write core algorithm of the existing CYTools in a small and self-contained C++ project. Upon wrapping this code, this functionality can then be made available in Julia (but also in other languages, such as Python or other large software projects (Macaulay2, Sage,...) or even commercial software such as Mathematica). This approach has the added advantage that large libraries (e.g. CGAL) need not be included. So on the long run, this package should be slim and easily to install.

Status

This project just began. We are currently in the process of initiating the code migration from CYTools. This we hope to yield a first functional Julia version by fall 2022. Further code optimization (in particular increased performance) is saved for a later stage of this project.

Code coverage and tests

  • CI
  • pages-build-deployment
  • codecov

Installation instructions for Linux

  1. Install Julia on your computer. The latest version can be found here.
  2. Download this development version of CYTools.jl. Those interested in contributing should instead clone this repository:
    git clone https://github.com/Julia-meets-String-Theory/CYTools.jl.git
  1. Place your clone/download in a location outside of the .julia folder of your home folder.
  2. Finally, register and build CYTools.jl as follows:
    using Pkg
    Pkg.develop(path="path/to/your/CYTools.jl")
    Pkg.build("CYTools")

Documentation

For detailed information about the implemented functionality, please take a look at the most recent documentation.

Bugs and feature requests

If you want to report a bug or request a feature, please do it by raising a github issue.

Contributions

Contributions are highly appreciated. Please notice that:

  • Contributions must be done by opening a pull request.
  • Pull request must pass a number of checks that are automatically conducted by our test suite, before they can be merged. A further approval by a code owner is appreciated.
  • Code is expected to be in agreement with the Oscar style guide.

Contact

This software is work in progress of

We use a slack-channel for general discussions. If you are interested in joining, please reach out to Viraf Mehta via [email protected] for details.

Funding

The work of Martin Bies is supported by SFB-TRR 195 Symbolic Tools in Mathematics and their Application of the German Research Foundation (DFG).

cytools.jl's People

Contributors

ariostas avatar herearound avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

cytools.jl's Issues

Performance: Row vs. column

@ariostas mentioned, there are likely big performance differences between row and column based presentation for the vertices of polytopes (and alike). We should ook into this eventually.

Increase test coverage

  • Some error messages not tested in the new fetch/read polytope methods. (This should be easy, I think.)
  • Also, we never test reading from files. Somehow, this should be tested.

@ariostas Any thoughts on the latter?

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.