Skip to content

Commit 9990b50

Browse files
definite integration fixed; ISSAC'24 paper added
1 parent 4462ecc commit 9990b50

File tree

3 files changed

+23
-7
lines changed

3 files changed

+23
-7
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name = "SymbolicNumericIntegration"
22
uuid = "78aadeae-fbc0-11eb-17b6-c7ec0477ba9e"
33
authors = ["Shahriar Iravanian <[email protected]>"]
4-
version = "1.9.0"
4+
version = "1.9.1"
55

66
[deps]
77
DataDrivenDiffEq = "2445eb08-9709-466a-b3fc-47e12bd697a2"

README.md

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,26 @@ integrate(sin(a * x) * cos(b * x), x; symbolic = true, detailed = false)
3838

3939
# Citation
4040

41-
If you use SymbolicNumericIntegration.jl in your research, please cite [this paper](https://arxiv.org/abs/2201.12468):
41+
If you use SymbolicNumericIntegration.jl in your research, please cite the [arxiv](https://arxiv.org/abs/2201.12468) and/or [ISSAC'24](https://dl.acm.org/doi/abs/10.1145/3666000.3669714) papers:
4242

4343
```
4444
45+
@inproceedings{10.1145/3666000.3669714,
46+
author = {Iravanian, Shahriar and Gowda, Shashi and Rackauckas, Christopher},
47+
title = {Hybrid Symbolic-Numeric and Numerically-Assisted Symbolic Integration},
48+
year = {2024},
49+
isbn = {9798400706967},
50+
publisher = {Association for Computing Machinery},
51+
address = {New York, NY, USA},
52+
url = {https://doi.org/10.1145/3666000.3669714},
53+
doi = {10.1145/3666000.3669714},
54+
pages = {410–418},
55+
numpages = {9},
56+
keywords = {sparse regression, symbolic integration, symbolic-numeric computation},
57+
location = {Raleigh, NC, USA},
58+
series = {ISSAC '24}
59+
}
60+
4561
@article{Iravanian2022,
4662
author = {Shahriar Iravanian and Carl Julius Martensen and Alessandro Cheli and Shashi Gowda and Anand Jain and Yingbo Ma and Chris Rackauckas},
4763
doi = {10.48550/arxiv.2201.12468},

src/integral.jl

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ julia> integrate(x * sin(a * x), (x, 0, 1); symbolic = true, detailed = false)
4949
5050
Returns a tuple of (solved, unsolved, err) if `detailed == true`, where
5151
52-
solved: the solved integral
52+
solved: the solved integral
5353
unsolved: the residual unsolved portion of the input
5454
err: the numerical error in reaching the solution
5555
@@ -122,7 +122,7 @@ function integrate(eq, xx::Tuple; kwargs...)
122122
sol = integrate(eq, x; kwargs...)
123123

124124
if sol isa Tuple
125-
if first(sol) != 0 && sol[2] == 0
125+
if !isequal(sol, 0) && sol[2] == 0
126126
return substitute(first(sol), Dict(x => hi)) -
127127
substitute(first(sol), Dict(x => lo))
128128
else
@@ -200,7 +200,7 @@ function integrate_sum(eq, x; bypass = false, kwargs...)
200200
return expand(solved), unsolved, ε₀
201201
end
202202

203-
# integrate_term is the central part of the univariate integration code that
203+
# integrate_term is the central part of the univariate integration code that
204204
# tries different methods to integrate `eq`.
205205
#
206206
# note: this function will be replaced with solver(prob::Problem) in symbolic.jl
@@ -295,8 +295,8 @@ function integrate_term(eq, x; kwargs...)
295295
end
296296
end
297297

298-
# try_integrate is the main dispatch point to call different sparse solvers.
299-
# It tries to find a linear combination of the basis, whose derivative is
298+
# try_integrate is the main dispatch point to call different sparse solvers.
299+
# It tries to find a linear combination of the basis, whose derivative is
300300
# equal to eq
301301
function try_integrate(eq, x, basis; plan = default_plan())
302302
if isempty(basis)

0 commit comments

Comments
 (0)