Code Monkey home page Code Monkey logo

riemanntheta.jl-803aa692-84f0-5eed-9cc1-fbb46710dded's Introduction

RiemannTheta.jl

Julia versions master build Coverage
RiemannTheta RiemannTheta Build Status Build status Coverage Statuscodecov

Julia implementation of the Riemann Theta function. This package is mostly a port from Python of the same function in the Sage library Abelfunction (https://github.com/abelfunctions/abelfunctions). Beyond a given problem size (number of z in zs, dimension of z's, number of integration points), the functions switch to a different algorithm using matrix operations resulting in very competitive timings (at the cost of memory usage).

The Sage library is itself an implementation of :

[CRTF] B. Deconinck, M. Heil, A. Bobenko, M. van Hoeij and M. Schmies, Computing Riemann Theta Functions, Mathematics of Computation, 73, (2004), 1417-1442.

Exported function are :

     riemanntheta(zs::Vector{Vector{Complex128}},
                  Ω::Matrix{Complex128};
                  eps::Float64=1e-8,
                  derivs::Vector{Vector{Complex128}}=Vector{Complex128}[],
                  accuracy_radius::Float64=5.)::Vector{Complex128}

Return the value of the Riemann theta function for Ω and all z in zs if derivs is empty, or the derivatives at all z in zs for the given directional derivatives in derivs.

Parameters :

  • zs : A vector of complex vectors at which to evaluate the Riemann theta function.
  • Omega : A Riemann matrix.
  • eps : (Default: 1e-8) The desired numerical accuracy.
  • derivs : A vector of complex vectors giving a directional derivative.
  • accuracy_radius : (Default: 5.) The radius from the g-dimensional origin where the requested accuracy of the Riemann theta is guaranteed when computing derivatives. Not used if no derivatives of theta are requested.
     oscillatory_part(zs::Vector{Vector{Complex128}},
                      Ω::Matrix{Complex128};
                      eps::Float64=1e-8,
                      derivs::Vector{Vector{Complex128}}=Vector{Complex128}[],
                      accuracy_radius::Float64=5.)::Vector{Complex128}

Return the value of the oscillatory part of the Riemann theta function for Ω and all z in zs if derivs is empty, or the derivatives at all z in zs for the given directional derivatives in derivs.

Parameters :

  • zs : A vector of complex vectors at which to evaluate the Riemann theta function.
  • Omega : A Riemann matrix.
  • eps : (Default: 1e-8) The desired numerical accuracy.
  • derivs : A vector of complex vectors giving a directional derivative.
  • accuracy_radius : (Default: 5.) The radius from the g-dimensional origin where the requested accuracy of the Riemann theta is guaranteed when computing derivatives. Not used if no derivatives of theta are requested.

And :

     exponential_part(zs::Vector{Vector{Complex128}},
                      Ω::Matrix{Complex128})::Vector{Float64}

Return the value of the exponential part of the Riemann theta function for Ω and all z in zs.

Parameters :

  • zs : A vector of complex vectors at which to evaluate the Riemann theta function.
  • Omega : A Riemann matrix.

riemanntheta.jl-803aa692-84f0-5eed-9cc1-fbb46710dded's People

Contributors

fredo-dedup avatar

Watchers

James Cloos 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.