Integrals

A common interface for quadrature and numerical integration for the SciML scientific machine learning organization

https://github.com/sciml/integrals.jl

Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    1 of 31 committers (3.2%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.6%) to scientific vocabulary

Keywords

algorithmic-differentiation automatic-differentiation differentiable-programming integration julia julia-language julialang numerical-integration quadrature scientific-machine-learning sciml

Keywords from Contributors

ode pde symbolic-computation neural-sde differential-equations ordinary-differential-equations sde differentialequations partial-differential-equations dae
Last synced: 4 months ago · JSON representation ·

Repository

A common interface for quadrature and numerical integration for the SciML scientific machine learning organization

Basic Info
Statistics
  • Stars: 236
  • Watchers: 6
  • Forks: 31
  • Open Issues: 28
  • Releases: 41
Topics
algorithmic-differentiation automatic-differentiation differentiable-programming integration julia julia-language julialang numerical-integration quadrature scientific-machine-learning sciml
Created over 6 years ago · Last pushed 5 months ago
Metadata Files
Readme License Citation

README.md

Integrals.jl

Join the chat at https://julialang.zulipchat.com #sciml-bridged Global Docs

codecov Build Status

ColPrac: Contributor's Guide on Collaborative Practices for Community Packages SciML Code Style

Integrals.jl is an instantiation of the SciML common IntegralProblem interface for the common numerical integration packages of Julia, including both those based upon quadrature as well as Monte-Carlo approaches. By using Integrals.jl, you get a single predictable interface where many of the arguments are standardized throughout the various integrator libraries. This can be useful for benchmarking or for library implementations, since libraries which internally use a quadrature can easily accept a integration method as an argument.

Tutorials and Documentation

For information on using the package, see the stable documentation. Use the in-development documentation for the version of the documentation, which contains the unreleased features.

Examples

To perform one-dimensional quadrature, we can simply construct an IntegralProblem. The code below evaluates $\int_{-2}^5 \sin(xp)~\mathrm{d}x$ with $p = 1.7$. This argument $p$ is passed into the problem as the third argument of IntegralProblem.

julia using Integrals f(x, p) = sin(x * p) p = 1.7 domain = (-2, 5) # (lb, ub) prob = IntegralProblem(f, domain, p) sol = solve(prob, QuadGKJL())

For basic multidimensional quadrature we can construct and solve a IntegralProblem. Since we are using no arguments p in this example, we omit the third argument of IntegralProblem from above. The lower and upper bounds are now passed as vectors, with the ith elements of the bounds giving the interval of integration for x[i].

julia using Integrals f(x, p) = sum(sin.(x)) domain = (ones(2), 3ones(2)) # (lb, ub) prob = IntegralProblem(f, domain) sol = solve(prob, HCubatureJL(), reltol = 1e-3, abstol = 1e-3)

If we would like to parallelize the computation, we can use the batch interface to compute multiple points at once. For example, here we do allocation-free multithreading with Cubature.jl:

julia using Integrals, Cubature, Base.Threads function f(dx, x, p) Threads.@threads for i in 1:size(x, 2) dx[i] = sum(sin, @view(x[:, i])) end end domain = (ones(2), 3ones(2)) # (lb, ub) prob = IntegralProblem(BatchIntegralFunction(f, zeros(0)), domain) sol = solve(prob, CubatureJLh(), reltol = 1e-3, abstol = 1e-3)

If we would like to compare the results against Cuba.jl's Cuhre method, then the change is a one-argument change:

julia using Cuba sol = solve(prob, CubaCuhre(), reltol = 1e-3, abstol = 1e-3)

Owner

  • Name: SciML Open Source Scientific Machine Learning
  • Login: SciML
  • Kind: organization
  • Email: contact@chrisrackauckas.com

Open source software for scientific machine learning

Citation (CITATION.bib)

@article{DifferentialEquations.jl-2017,
 author = {Rackauckas, Christopher and Nie, Qing},
 doi = {10.5334/jors.151},
 journal = {The Journal of Open Research Software},
 keywords = {Applied Mathematics},
 note = {Exported from https://app.dimensions.ai on 2019/05/05},
 number = {1},
 pages = {},
 title = {DifferentialEquations.jl – A Performant and Feature-Rich Ecosystem for Solving Differential Equations in Julia},
 url = {https://app.dimensions.ai/details/publication/pub.1085583166 and http://openresearchsoftware.metajnl.com/articles/10.5334/jors.151/galley/245/download/},
 volume = {5},
 year = {2017}
}

GitHub Events

Total
  • Issues event: 9
  • Watch event: 11
  • Delete event: 10
  • Issue comment event: 14
  • Push event: 43
  • Pull request review event: 3
  • Pull request review comment event: 2
  • Pull request event: 27
  • Fork event: 2
  • Create event: 16
Last Year
  • Issues event: 9
  • Watch event: 11
  • Delete event: 10
  • Issue comment event: 14
  • Push event: 43
  • Pull request review event: 3
  • Pull request review comment event: 2
  • Pull request event: 27
  • Fork event: 2
  • Create event: 16

Committers

Last synced: 6 months ago

All Time
  • Total Commits: 495
  • Total Committers: 31
  • Avg Commits per committer: 15.968
  • Development Distribution Score (DDS): 0.701
Past Year
  • Commits: 21
  • Committers: 6
  • Avg Commits per committer: 3.5
  • Development Distribution Score (DDS): 0.571
Top Committers
Name Email Commits
lxvm l****o@v****m 148
Christopher Rackauckas a****s@c****m 142
ArnoStrouwen a****n@t****e 55
Adam R Gerlach a****1@u****l 28
IlianPihlajamaa 7****a 17
github-actions[bot] 4****] 15
dependabot[bot] 4****] 12
CompatHelper Julia c****y@j****g 10
ashutosh-b-b a****3@g****m 10
Adam R Gerlach a****1@a****m 8
Gabriel Birnbaum g****m@g****m 7
DanielVandH d****l@g****m 6
Abhro R 5****o 5
Sharan Yalburgi s****i@g****m 5
agerlach 5****h 5
Yingbo Ma m****5@g****m 3
Kishore Nori s****i@m****u 3
Daniel Wennberg d****g@g****m 2
Chris de Graaf me@c****v 2
spaette 1****e 1
maja.k.gwozdz@gmail.com m****z@g****m 1
aafsar a****r@g****m 1
VanillaBrooks b****s@k****g 1
KronosTheLate 6****e 1
Hendrik Ranocha m****l@r****e 1
Frankie Robertson f****e@r****e 1
David Widmann d****n 1
Andreas Scheidegger a****r@e****h 1
Anant Thazhemadam a****m@g****m 1
Alexander Seiler s****x@g****m 1
and 1 more...

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 70
  • Total pull requests: 151
  • Average time to close issues: 11 months
  • Average time to close pull requests: 15 days
  • Total issue authors: 45
  • Total pull request authors: 25
  • Average comments per issue: 5.1
  • Average comments per pull request: 1.01
  • Merged pull requests: 119
  • Bot issues: 0
  • Bot pull requests: 33
Past Year
  • Issues: 5
  • Pull requests: 22
  • Average time to close issues: 1 day
  • Average time to close pull requests: 1 day
  • Issue authors: 5
  • Pull request authors: 5
  • Average comments per issue: 1.4
  • Average comments per pull request: 0.05
  • Merged pull requests: 12
  • Bot issues: 0
  • Bot pull requests: 7
Top Authors
Issue Authors
  • agerlach (7)
  • ArnoStrouwen (6)
  • lxvm (6)
  • KirillZubov (4)
  • ChrisRackauckas (4)
  • homocomputeris (2)
  • IlianPihlajamaa (2)
  • KronosTheLate (2)
  • evrenmturan (1)
  • aafsar (1)
  • timmyfaraday (1)
  • gaurav-arya (1)
  • scheidan (1)
  • willtebbutt (1)
  • longemen3000 (1)
Pull Request Authors
  • ArnoStrouwen (40)
  • lxvm (37)
  • github-actions[bot] (25)
  • ChrisRackauckas (24)
  • dependabot[bot] (17)
  • IlianPihlajamaa (5)
  • agerlach (3)
  • KronosTheLate (2)
  • DanielVandH (2)
  • SouthEndMusic (2)
  • thazhemadam (2)
  • abhro (2)
  • ranocha (2)
  • AbhayBhandarkar (2)
  • kishore-nori (2)
Top Labels
Issue Labels
bug (9) question (1)
Pull Request Labels
dependencies (17)

Packages

  • Total packages: 6
  • Total downloads:
    • julia 664 total
  • Total dependent packages: 21
    (may contain duplicates)
  • Total dependent repositories: 0
    (may contain duplicates)
  • Total versions: 54
juliahub.com: Integrals

A common interface for quadrature and numerical integration for the SciML scientific machine learning organization

  • Versions: 24
  • Dependent Packages: 11
  • Dependent Repositories: 0
  • Downloads: 646 Total
Rankings
Stargazers count: 4.5%
Average: 7.4%
Forks count: 7.5%
Dependent packages count: 7.6%
Dependent repos count: 9.9%
Last synced: 4 months ago
juliahub.com: Quadrature

A common interface for quadrature and numerical integration for the SciML scientific machine learning organization

  • Versions: 18
  • Dependent Packages: 7
  • Dependent Repositories: 0
  • Downloads: 9 Total
Rankings
Stargazers count: 4.5%
Average: 7.4%
Forks count: 7.5%
Dependent packages count: 7.6%
Dependent repos count: 9.9%
Last synced: 4 months ago
juliahub.com: QuadratureCubature

A common interface for quadrature and numerical integration for the SciML scientific machine learning organization

  • Versions: 2
  • Dependent Packages: 1
  • Dependent Repositories: 0
Rankings
Stargazers count: 4.5%
Forks count: 7.5%
Dependent repos count: 9.9%
Average: 11.2%
Dependent packages count: 23.0%
Last synced: 4 months ago
juliahub.com: IntegralsCubature

A common interface for quadrature and numerical integration for the SciML scientific machine learning organization

  • Versions: 4
  • Dependent Packages: 2
  • Dependent Repositories: 0
  • Downloads: 7 Total
Rankings
Stargazers count: 4.5%
Forks count: 7.5%
Dependent repos count: 9.9%
Average: 11.2%
Dependent packages count: 23.0%
Last synced: 4 months ago
juliahub.com: QuadratureCuba

A common interface for quadrature and numerical integration for the SciML scientific machine learning organization

  • Versions: 2
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 1 Total
Rankings
Stargazers count: 4.5%
Forks count: 7.5%
Dependent repos count: 9.9%
Average: 15.2%
Dependent packages count: 38.9%
Last synced: 4 months ago
juliahub.com: IntegralsCuba

A common interface for quadrature and numerical integration for the SciML scientific machine learning organization

  • Versions: 4
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 1 Total
Rankings
Stargazers count: 4.5%
Forks count: 7.5%
Dependent repos count: 9.9%
Average: 15.2%
Dependent packages count: 38.9%
Last synced: 4 months ago

Dependencies

.github/workflows/CI.yml actions
  • actions/cache v1 composite
  • actions/checkout v2 composite
  • codecov/codecov-action v3 composite
  • julia-actions/julia-buildpkg v1 composite
  • julia-actions/julia-processcoverage v1 composite
  • julia-actions/julia-runtest v1 composite
  • julia-actions/setup-julia v1 composite
.github/workflows/CompatHelper.yml actions
  • julia-actions/setup-julia latest composite
.github/workflows/Documentation.yml actions
  • actions/checkout v2 composite
  • codecov/codecov-action v3 composite
  • julia-actions/julia-processcoverage v1 composite
  • julia-actions/setup-julia latest composite
.github/workflows/FormatCheck.yml actions
  • actions/checkout v1 composite
  • julia-actions/setup-julia latest composite
.github/workflows/Invalidations.yml actions
  • actions/checkout v3 composite
  • julia-actions/julia-buildpkg v1 composite
  • julia-actions/julia-invalidations v1 composite
  • julia-actions/setup-julia v1 composite
.github/workflows/TagBot.yml actions
  • JuliaRegistries/TagBot v1 composite