Compare commits
242 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
c32f37ff6c | ||
|
ce1b1e3f1c | ||
|
ca67dd2418 | ||
|
6d9787ef24 | ||
|
be280a1c77 | ||
|
4d71e9d666 | ||
|
ac98714773 | ||
|
f46e7e224d | ||
|
40604e5e23 | ||
|
41506049ba | ||
|
a4a6e500dc | ||
|
f2776ae5a4 | ||
|
898001d61a | ||
|
3c8786cf4c | ||
|
dde1598fa6 | ||
|
34cca03626 | ||
|
281df3b846 | ||
|
65d166658d | ||
|
e487e99ed8 | ||
|
eb697c174d | ||
|
4ca05c4c51 | ||
|
c1e8f566e9 | ||
|
215f4cd777 | ||
|
f3e519677e | ||
|
8b252cc278 | ||
|
87988a9b98 | ||
|
ba7b24b360 | ||
|
6fd19dd7db | ||
|
a8eabca1f1 | ||
|
4968a9bfca | ||
|
ece309dafa | ||
|
ba0a203672 | ||
|
59b6110649 | ||
|
62c24c83f6 | ||
|
86c9c906ba | ||
|
10e6ae1fcf | ||
|
5496bad895 | ||
|
30520dbd34 | ||
|
c0a84372b0 | ||
|
435717d94e | ||
|
295daff22e | ||
|
ed607fc8fe | ||
|
6e13652dc2 | ||
|
752dd439a7 | ||
|
e3f25b5d98 | ||
|
d752630df2 | ||
|
5c42e75d55 | ||
|
a9fb7eb79e | ||
|
efad2fcffe | ||
|
9924aa8c95 | ||
|
29021ae262 | ||
|
4db3872ff9 | ||
|
8fd8b50df3 | ||
|
7a5c2dba41 | ||
|
af0420f223 | ||
|
22d0d4e8c1 | ||
|
171daaaa9d | ||
|
6780ddd891 | ||
|
77e3a20210 | ||
|
4282ff55b7 | ||
|
3e0830ac09 | ||
|
5d21b4dde3 | ||
|
771edb2197 | ||
|
ae32e98ac3 | ||
|
ac0b0ffd76 | ||
|
e59f23e101 | ||
|
6bcde251c2 | ||
|
e5f557f57e | ||
|
8e983362f7 | ||
|
e2ff30f6ae | ||
|
99d8de70d2 | ||
|
fe93f47194 | ||
|
759128ade8 | ||
|
a4990edc1a | ||
|
f8eb2026e1 | ||
|
f932eb0a76 | ||
|
64a641d9d1 | ||
|
eab9923c9a | ||
|
f49b342e6b | ||
|
b4951bcb7a | ||
|
39d78f96a8 | ||
|
7b50839be2 | ||
|
eeba023183 | ||
|
c284f8407b | ||
|
af1955fe66 | ||
|
b605586312 | ||
|
5ebd21d577 | ||
|
9bf4ad0090 | ||
|
c74f2dac08 | ||
|
626ba12bb6 | ||
|
21dae87daf | ||
|
6f1ea798f7 | ||
|
867ed9249b | ||
|
40d01e441e | ||
|
be9e4d6375 | ||
|
8c3c9ac2fc | ||
|
2b25bd0b11 | ||
|
c725d03dbd | ||
|
f37d8228d5 | ||
|
65f15f3bff | ||
|
de6c316c2c | ||
|
d7cf4c5489 | ||
|
647ec3eb2d | ||
|
fd473f28f1 | ||
|
ce2cac73ef | ||
|
087e8477a8 | ||
|
dc21003374 | ||
|
ccd7a1b418 | ||
|
d35fb0b3bb | ||
|
864212af38 | ||
|
c6df50bec9 | ||
|
f154d8918d | ||
|
acb81ba207 | ||
|
f8bbaaf0ca | ||
|
d336bc6072 | ||
|
c2bac1837e | ||
|
d847d029ac | ||
|
4b94ef1f76 | ||
|
ffa5cf4141 | ||
|
7d14c30d96 | ||
|
51fc18c4f3 | ||
|
25b25042b7 | ||
|
0636ce0a66 | ||
|
26a4442558 | ||
|
a3e449d179 | ||
|
a7fc062a47 | ||
|
ba5b114ec5 | ||
|
c1d8aeaac9 | ||
|
c146c589df | ||
|
1d2756f340 | ||
|
728dc359a5 | ||
|
3f64382f50 | ||
|
b3bb96f3e8 | ||
|
d3308c2639 | ||
|
c882fe1a29 | ||
|
002415fbbc | ||
|
16790e8ae2 | ||
|
2ec9c49158 | ||
|
af1c21dde0 | ||
|
ce5a101def | ||
|
73d63f43e9 | ||
|
93775a2aac | ||
|
28ca6912c0 | ||
|
75de6772a0 | ||
|
12e522a899 | ||
|
e4a59759e5 | ||
|
61a37b4192 | ||
|
697f0921e3 | ||
|
1083a4ac1d | ||
|
780d24ed1c | ||
|
a897d03bd2 | ||
|
4d988ce50d | ||
|
9b6b623cd9 | ||
|
89d96cf4ca | ||
|
b52feb73ca | ||
|
5a531d84fb | ||
|
57fe3b2a73 | ||
|
bd1ae277fe | ||
|
77aff487ff | ||
|
61b8aad6dc | ||
|
71fb6f0e2d | ||
|
a33f0eddc8 | ||
|
c7cdff71c3 | ||
|
e2087521e0 | ||
|
7c56677293 | ||
|
4723bbe907 | ||
|
07d25f45de | ||
|
862a4ce761 | ||
|
5a4de1ebda | ||
|
032ca8c25d | ||
|
30ccb76841 | ||
|
13e9b5a14d | ||
|
f4a1a1c2b6 | ||
|
b03c7174c6 | ||
|
1ef7abfa87 | ||
|
caa77f94c5 | ||
|
342625de91 | ||
|
74d838797a | ||
|
834892e5b5 | ||
|
1e0f3d98c0 | ||
|
a4a8bae8e3 | ||
|
b108d3146b | ||
|
1605c403eb | ||
|
2eb0eabb3a | ||
|
e00ea4db3d | ||
|
6617c32387 | ||
|
8aedd34a03 | ||
|
7d9020ec1b | ||
|
c9d48722b5 | ||
|
2180c3afad | ||
|
3d0821b1a7 | ||
|
e82abefcda | ||
|
265a73c346 | ||
|
6948e3e45a | ||
|
b62f115556 | ||
|
c8ee627a0e | ||
|
3fb3124a02 | ||
|
cf6b5f2a23 | ||
|
582974b374 | ||
|
4c96691d18 | ||
|
c1ffcc58a2 | ||
|
ce945d9459 | ||
|
c427094f21 | ||
|
83a398c8ec | ||
|
4d202ad752 | ||
|
25798c44ce | ||
|
8e60b0224c | ||
|
3f7737ba94 | ||
|
1b7b4530d4 | ||
|
e3f62733e2 | ||
|
7dd481e0bb | ||
|
9073223e77 | ||
|
f436d894bb | ||
|
7102d7d897 | ||
|
f31f33ddbd | ||
|
79597a9ff9 | ||
|
ba22ec0f99 | ||
|
62fb213b2c | ||
|
0d1b403876 | ||
|
55f0c8e0de | ||
|
5505de167d | ||
|
4637e3fdd6 | ||
|
e5975f7745 | ||
|
f6959e45ee | ||
|
7426903e62 | ||
|
5ba6d72d44 | ||
|
b44fef766f | ||
|
6d8a13a3d6 | ||
|
437e259874 | ||
|
37fed7c8a6 | ||
|
59920af789 | ||
|
c92f99d336 | ||
|
e1b35870a8 | ||
|
4d5a606492 | ||
|
8194489719 | ||
|
2ae3749dd1 | ||
|
4207fcfed9 | ||
|
e4bdf8135d | ||
|
7e24f0ae73 | ||
|
3d7bcbfe5b | ||
|
de45c1d50e | ||
|
b7ce72cc5b |
@ -1 +0,0 @@
|
|||||||
octave-2.9.15.tar.bz2
|
|
34
.gitignore
vendored
Normal file
34
.gitignore
vendored
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
octave-3.2.4.tar.bz2
|
||||||
|
/octave-3.3.54.tar.bz2
|
||||||
|
/octave-3.4.0.tar.bz2
|
||||||
|
/octave-3.4.2.tar.bz2
|
||||||
|
/octave-3.4.3.tar.bz2
|
||||||
|
/octave-3.6.0.tar.bz2
|
||||||
|
/octave-3.6.1.tar.bz2
|
||||||
|
/octave-3.6.2-rc0.tar.bz2
|
||||||
|
/octave-3.6.2-rc2.tar.bz2
|
||||||
|
/octave-3.6.2.tar.bz2
|
||||||
|
/octave-3.6.3.tar.bz2
|
||||||
|
/octave-3.6.4-rc0.tar.bz2
|
||||||
|
/octave-3.6.4-rc1.tar.gz
|
||||||
|
/octave-3.6.4-rc2.tar.gz
|
||||||
|
/octave-3.6.4.tar.bz2
|
||||||
|
/octave-3.8.0-rc1.tar.gz
|
||||||
|
/octave-3.8.0-rc2.tar.gz
|
||||||
|
/octave-3.8.0.tar.bz2
|
||||||
|
/octave-3.8.1.tar.bz2
|
||||||
|
/octave-3.8.2-rc1.tar.gz
|
||||||
|
/octave-3.8.2-rc2.tar.gz
|
||||||
|
/octave-3.8.2.tar.bz2
|
||||||
|
/octave-4.0.0.tar.xz
|
||||||
|
/octave-4.0.1.tar.xz
|
||||||
|
/octave-4.0.2.tar.xz
|
||||||
|
/octave-4.0.3.tar.xz
|
||||||
|
/octave-4.2.0-rc1.tar.xz
|
||||||
|
/octave-4.2.0.tar.lz
|
||||||
|
/octave-4.2.1.tar.lz
|
||||||
|
/octave-4.2.2.tar.lz
|
||||||
|
/octave-4.4.1.tar.lz
|
||||||
|
/octave-4.4.1-docs.tar.gz
|
||||||
|
/octave-5.1.0.tar.lz
|
||||||
|
/octave-5.1.0-docs.tar.lz
|
21
Makefile
21
Makefile
@ -1,21 +0,0 @@
|
|||||||
# Makefile for source rpm: octave
|
|
||||||
# $Id$
|
|
||||||
NAME := octave
|
|
||||||
SPECFILE = $(firstword $(wildcard *.spec))
|
|
||||||
|
|
||||||
define find-makefile-common
|
|
||||||
for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done
|
|
||||||
endef
|
|
||||||
|
|
||||||
MAKEFILE_COMMON := $(shell $(find-makefile-common))
|
|
||||||
|
|
||||||
ifeq ($(MAKEFILE_COMMON),)
|
|
||||||
# attept a checkout
|
|
||||||
define checkout-makefile-common
|
|
||||||
test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2
|
|
||||||
endef
|
|
||||||
|
|
||||||
MAKEFILE_COMMON := $(shell $(checkout-makefile-common))
|
|
||||||
endif
|
|
||||||
|
|
||||||
include $(MAKEFILE_COMMON)
|
|
83
macros.octave
Normal file
83
macros.octave
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
# Octave packaging macros
|
||||||
|
|
||||||
|
# Octave binary API provided
|
||||||
|
%octave_api %(octave-config -p API_VERSION || echo 0)
|
||||||
|
|
||||||
|
# Octave Package Directories
|
||||||
|
%octshareprefix %{_datadir}/octave
|
||||||
|
%octprefix %{octshareprefix}/packages
|
||||||
|
%octarchprefix %{_libdir}/octave/packages
|
||||||
|
%octpkgdir %{octprefix}/%{octpkg}-%{version}
|
||||||
|
%octpkglibdir %{octarchprefix}/%{octpkg}-%{version}
|
||||||
|
|
||||||
|
# Run an octave command - quietly with no startup files
|
||||||
|
%octave_cmd() octave -H -q --no-window-system --no-site-file --eval '%*';
|
||||||
|
|
||||||
|
# For compiled tarfile name
|
||||||
|
%octave_host %(octave-config -p CANONICAL_HOST_TYPE || echo 0)
|
||||||
|
|
||||||
|
# Build unpacked source directory into a package tar file in a temporary location
|
||||||
|
# Pass -T to use source tarball
|
||||||
|
%octave_pkg_build(T) %{lua:
|
||||||
|
if (rpm.expand("%{-T}") == "-T") then
|
||||||
|
octpkg_tarfile = rpm.expand("%{SOURCE0}")
|
||||||
|
else
|
||||||
|
octpkg_tarfile = rpm .expand("%{_tmppath}/%{octpkg}-%{version}.tar.gz")
|
||||||
|
print("tar czf "..octpkg_tarfile.." -C "..rpm.expand("%{_builddir} %{buildsubdir}").."\\n")
|
||||||
|
end
|
||||||
|
-- Avoid a warning from pkg build about making the build directory
|
||||||
|
-- and use a clean directory as octave pkg build will delete contents
|
||||||
|
print(rpm.expand("mkdir -p %{_builddir}/%{buildsubdir}/build\\n"))
|
||||||
|
-- This fails to keep the arguments to %octave_cmd for some reason
|
||||||
|
-- print(rpm.expand("%octave_cmd pkg build -verbose -nodeps %{_builddir}/%{buildsubdir} "..octpkg_tarfile).."\\n")
|
||||||
|
print(rpm.expand("octave -H -q --no-window-system --no-site-file --eval 'pkg build -verbose -nodeps %{_builddir}/%{buildsubdir}/build "..octpkg_tarfile).."'\\n")
|
||||||
|
-- Extract the source tarball for debuginfo generation
|
||||||
|
print(rpm.expand("tar xf "..octpkg_tarfile.." -C %{_builddir}/%{buildsubdir}/build\\n"))
|
||||||
|
}
|
||||||
|
|
||||||
|
# Install a package. We use the octave pkg install command to install the
|
||||||
|
# built package into the buildroot. We also put a note to prevent the root
|
||||||
|
# user from removing the package with the octave pkg uninstall command
|
||||||
|
# We call unlink to remove the 'octave_packages' file which contains the
|
||||||
|
# buildroot string and needs to be generated at package install time.
|
||||||
|
%octave_pkg_install \
|
||||||
|
mkdir -p %{buildroot}%{octprefix} \
|
||||||
|
mkdir -p %{buildroot}%{octarchprefix} \
|
||||||
|
%octave_cmd pkg("prefix","%{buildroot}%{octprefix}","%{buildroot}%{octarchprefix}");pkg("global_list",fullfile("%{buildroot}%{octshareprefix}","octave_packages"));pkg("local_list",fullfile("%{buildroot}%{octshareprefix}","octave_packages"));pkg("install","-nodeps","-verbose",glob("%{_builddir}/%{buildsubdir}/build/%{octpkg}-%{version}-*.tar.gz"){1,1});unlink(pkg("local_list"));unlink(pkg("global_list")); \
|
||||||
|
if [ -e %{buildroot}%{octpkgdir}/packinfo/on_uninstall.m ] \
|
||||||
|
then \
|
||||||
|
mv %{buildroot}%{octpkgdir}/packinfo/on_uninstall.m %{buildroot}%{octpkgdir}/packinfo/on_uninstall.m.orig \
|
||||||
|
fi \
|
||||||
|
echo "function on_uninstall (desc)" > %{buildroot}%{octpkgdir}/packinfo/on_uninstall.m \
|
||||||
|
echo " error ('Can not uninstall %s installed by the redhat package manager', desc.name);" >> %{buildroot}%{octpkgdir}/packinfo/on_uninstall.m \
|
||||||
|
echo "endfunction" >> %{buildroot}%{octpkgdir}/packinfo/on_uninstall.m \
|
||||||
|
if [ -e %{_builddir}/%{buildsubdir}/build/%{octpkg}-%{version}/*.metainfo.xml ] \
|
||||||
|
then \
|
||||||
|
echo "Found .metainfo.xml appdata file" \
|
||||||
|
mkdir -p %{buildroot}/%{_metainfodir} \
|
||||||
|
cp -p %{_builddir}/%{buildsubdir}/build/%{octpkg}-%{version}/*.metainfo.xml %{buildroot}/%{_metainfodir}/ \
|
||||||
|
appstream-util validate-relax --nonet %{buildroot}/%{_metainfodir}/*.metainfo.xml \
|
||||||
|
else \
|
||||||
|
echo "Did not find a .metainfo.xml appdata file" \
|
||||||
|
fi \
|
||||||
|
%{nil}
|
||||||
|
|
||||||
|
# Run pkg tests - We need to reinstall to recreate 'octave_packages' so that
|
||||||
|
# octave can find the package, then remove 'octave_packages' again, and re-strip
|
||||||
|
# any shared objects.
|
||||||
|
%octave_pkg_check \
|
||||||
|
%octave_cmd pkg("prefix","%{buildroot}%{octprefix}","%{buildroot}%{octarchprefix}");pkg("local_list",fullfile("%{buildroot}%{octshareprefix}","octave_packages"));pkg("list");pkg("install","-verbose",glob("%{_builddir}/%{buildsubdir}/build/%{octpkg}-%{version}-*.tar.gz"){1,1});pkg("load","%{octpkg}");pkg("list");runtests("%{buildroot}%{octpkgdir}");unlink(pkg("local_list")); \
|
||||||
|
/usr/lib/rpm/brp-strip-shared %{__strip} \
|
||||||
|
%{nil}
|
||||||
|
|
||||||
|
# preun script - we need to remove our uninstall protection and perhaps
|
||||||
|
# run the package's own uninstall script.
|
||||||
|
%octave_pkg_preun \
|
||||||
|
if [ -e %{octpkgdir}/packinfo/on_uninstall.m.orig ]; then \
|
||||||
|
mv %{octpkgdir}/packinfo/on_uninstall.m.orig %{octpkgdir}/packinfo/on_uninstall.m \
|
||||||
|
cd %{octpkgdir}/packinfo \
|
||||||
|
%octave_cmd l=pkg("list");on_uninstall(l{cellfun(@(x)strcmp(x.name,"%{octpkg}"),l)}); \
|
||||||
|
else \
|
||||||
|
echo > %{octpkgdir}/packinfo/on_uninstall.m \
|
||||||
|
fi \
|
||||||
|
%{nil}
|
@ -1,21 +0,0 @@
|
|||||||
Index: scripts/pkg/pkg.m
|
|
||||||
===================================================================
|
|
||||||
RCS file: /usr/local/cvsroot/octave/scripts/pkg/pkg.m,v
|
|
||||||
retrieving revision 1.63
|
|
||||||
retrieving revision 1.64
|
|
||||||
diff -u -r1.63 -r1.64
|
|
||||||
--- scripts/pkg/pkg.m 12 Oct 2007 21:27:23 -0000 1.63
|
|
||||||
+++ scripts/pkg/pkg.m 14 Oct 2007 19:28:42 -0000 1.64
|
|
||||||
@@ -1095,7 +1095,11 @@
|
|
||||||
endif
|
|
||||||
|
|
||||||
## Split into architecture dependent and independent files
|
|
||||||
- idx = cellfun (@(x) is_architecture_dependent (x), filenames);
|
|
||||||
+ if (isempty (filenames))
|
|
||||||
+ idx = [];
|
|
||||||
+ else
|
|
||||||
+ idx = cellfun (@(x) is_architecture_dependent (x), filenames);
|
|
||||||
+ endif
|
|
||||||
archdependent = filenames (idx);
|
|
||||||
archindependent = filenames (!idx);
|
|
||||||
|
|
12
octave-crash.patch
Normal file
12
octave-crash.patch
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
diff -up octave-4.4.1/libinterp/corefcn/input.cc.crash octave-4.4.1/libinterp/corefcn/input.cc
|
||||||
|
--- octave-4.4.1/libinterp/corefcn/input.cc.crash 2018-11-11 17:27:39.588037444 -0700
|
||||||
|
+++ octave-4.4.1/libinterp/corefcn/input.cc 2018-11-11 17:30:42.344208272 -0700
|
||||||
|
@@ -255,7 +255,7 @@ namespace octave
|
||||||
|
|
||||||
|
octave_diary << retval;
|
||||||
|
|
||||||
|
- if (retval.back () != '\n')
|
||||||
|
+ if (!retval.empty () && retval.back () != '\n')
|
||||||
|
octave_diary << "\n";
|
||||||
|
}
|
||||||
|
else
|
28
octave-eof.patch
Normal file
28
octave-eof.patch
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
|
||||||
|
# HG changeset patch
|
||||||
|
# User Mike Miller <mtmiller@octave.org>
|
||||||
|
# Date 1554238576 25200
|
||||||
|
# Node ID c3716220d5b93c49e1c7cc8ebe0b76dd961f4ec7
|
||||||
|
# Parent fc73dafece570f201c18a4eb4a8729a654cfcfbb
|
||||||
|
fix pause and kbhit with glibc 2.28 end-of-file state behavior (bug #55029)
|
||||||
|
|
||||||
|
* sysdep.cc (octave::kbhit): Call "clearerr (stdin)" on end-of-file condition
|
||||||
|
in addition to "std::cin.clear ()". In glibc 2.28, end-of-file is persistent
|
||||||
|
and must be cleared by the application.
|
||||||
|
|
||||||
|
diff --git a/libinterp/corefcn/sysdep.cc b/libinterp/corefcn/sysdep.cc
|
||||||
|
--- a/libinterp/corefcn/sysdep.cc
|
||||||
|
+++ b/libinterp/corefcn/sysdep.cc
|
||||||
|
@@ -566,7 +566,10 @@
|
||||||
|
int c = std::cin.get ();
|
||||||
|
|
||||||
|
if (std::cin.fail () || std::cin.eof ())
|
||||||
|
- std::cin.clear ();
|
||||||
|
+ {
|
||||||
|
+ std::cin.clear ();
|
||||||
|
+ clearerr (stdin);
|
||||||
|
+ }
|
||||||
|
|
||||||
|
// Restore it, enabling system call restarts (if possible).
|
||||||
|
octave::set_interrupt_handler (saved_interrupt_handler, true);
|
||||||
|
|
504
octave-sundials3.patch
Normal file
504
octave-sundials3.patch
Normal file
@ -0,0 +1,504 @@
|
|||||||
|
diff -up octave-5.0.91/configure.ac.sundials3 octave-5.0.91/configure.ac
|
||||||
|
--- octave-5.0.91/configure.ac.sundials3 2019-02-04 10:50:20.000000000 -0700
|
||||||
|
+++ octave-5.0.91/configure.ac 2019-02-05 22:05:44.096260529 -0700
|
||||||
|
@@ -2220,15 +2220,15 @@ OCTAVE_CHECK_LIB(sundials_ida, [SUNDIALS
|
||||||
|
[], [don't use SUNDIALS IDA library, solvers ode15i and ode15s will be disabled],
|
||||||
|
[warn_sundials_ida=
|
||||||
|
OCTAVE_CHECK_SUNDIALS_SIZEOF_REALTYPE
|
||||||
|
- OCTAVE_CHECK_SUNDIALS_IDA_DENSE
|
||||||
|
- OCTAVE_CHECK_SUNDIALS_IDAKLU])
|
||||||
|
+ OCTAVE_CHECK_SUNDIALS_SUNLINSOL_DENSE
|
||||||
|
+ OCTAVE_CHECK_SUNDIALS_SUNLINSOL_KLU])
|
||||||
|
LIBS="$save_LIBS"
|
||||||
|
|
||||||
|
dnl Define this way instead of with an #if in oct-conf-post.h so that
|
||||||
|
dnl the build features script will get the correct value.
|
||||||
|
if test -n "$SUNDIALS_IDA_LIBS" \
|
||||||
|
&& test -n "$SUNDIALS_NVECSERIAL_LIBS" \
|
||||||
|
- && test $octave_cv_sundials_ida_dense = yes \
|
||||||
|
+ && test $octave_cv_sundials_sunlinsol_dense = yes \
|
||||||
|
&& test $octave_cv_sundials_realtype_is_double = yes; then
|
||||||
|
AC_DEFINE(HAVE_SUNDIALS, 1, [Define to 1 if SUNDIALS is available.])
|
||||||
|
fi
|
||||||
|
diff -up octave-5.0.91/libinterp/dldfcn/__ode15__.cc.sundials3 octave-5.0.91/libinterp/dldfcn/__ode15__.cc
|
||||||
|
--- octave-5.0.91/libinterp/dldfcn/__ode15__.cc.sundials3 2019-02-04 10:50:20.000000000 -0700
|
||||||
|
+++ octave-5.0.91/libinterp/dldfcn/__ode15__.cc 2019-02-05 22:06:48.074012827 -0700
|
||||||
|
@@ -1,6 +1,7 @@
|
||||||
|
/*
|
||||||
|
|
||||||
|
Copyright (C) 2016-2019 Francesco Faccio <francesco.faccio@mail.polimi.it>
|
||||||
|
+Copyright (C) 2018 William Greene <w.h.greene@gmail.com>
|
||||||
|
|
||||||
|
This file is part of Octave.
|
||||||
|
|
||||||
|
@@ -44,15 +45,34 @@ along with Octave; see the file COPYING.
|
||||||
|
# include <ida/ida.h>
|
||||||
|
# endif
|
||||||
|
|
||||||
|
-# if defined (HAVE_IDA_IDA_DENSE_H)
|
||||||
|
-# include <ida/ida_dense.h>
|
||||||
|
+# if defined (HAVE_SUNDIALS_SUNDIALS_MATRIX_H)
|
||||||
|
+# include <sundials/sundials_matrix.h>
|
||||||
|
# endif
|
||||||
|
|
||||||
|
-# if defined (HAVE_IDA_IDA_KLU_H)
|
||||||
|
-# include <ida/ida_klu.h>
|
||||||
|
+# if defined (HAVE_SUNDIALS_SUNDIALS_LINEARSOLVER_H)
|
||||||
|
+# include <sundials/sundials_linearsolver.h>
|
||||||
|
+# endif
|
||||||
|
+
|
||||||
|
+# if defined (HAVE_SUNLINSOL_SUNLINSOL_DENSE_H)
|
||||||
|
+# include <sunlinsol/sunlinsol_dense.h>
|
||||||
|
+# endif
|
||||||
|
+
|
||||||
|
+# if defined (HAVE_IDA_IDA_DIRECT_H)
|
||||||
|
+# include <ida/ida_direct.h>
|
||||||
|
+# endif
|
||||||
|
+
|
||||||
|
+# if defined (HAVE_SUNDIALS_SUNDIALS_SPARSE_H)
|
||||||
|
# include <sundials/sundials_sparse.h>
|
||||||
|
# endif
|
||||||
|
|
||||||
|
+# if defined (HAVE_SUNLINSOL_SUNLINSOL_KLU_H)
|
||||||
|
+# include <sunlinsol/sunlinsol_klu.h>
|
||||||
|
+# endif
|
||||||
|
+
|
||||||
|
+# if defined (HAVE_SUNMATRIX_SUNMATRIX_SPARSE_H)
|
||||||
|
+# include <sunmatrix/sunmatrix_sparse.h>
|
||||||
|
+# endif
|
||||||
|
+
|
||||||
|
# if defined (HAVE_NVECTOR_NVECTOR_SERIAL_H)
|
||||||
|
# include <nvector/nvector_serial.h>
|
||||||
|
# endif
|
||||||
|
@@ -112,7 +132,8 @@ namespace octave
|
||||||
|
havejacsparse (false), mem (nullptr), num (), ida_fun (nullptr),
|
||||||
|
ida_jac (nullptr), dfdy (nullptr), dfdyp (nullptr), spdfdy (nullptr),
|
||||||
|
spdfdyp (nullptr), fun (nullptr), jacfun (nullptr), jacspfun (nullptr),
|
||||||
|
- jacdcell (nullptr), jacspcell (nullptr)
|
||||||
|
+ jacdcell (nullptr), jacspcell (nullptr),
|
||||||
|
+ sunJacMatrix (nullptr), sunLinearSolver (nullptr)
|
||||||
|
{ }
|
||||||
|
|
||||||
|
|
||||||
|
@@ -122,11 +143,17 @@ namespace octave
|
||||||
|
havejacsparse (false), mem (nullptr), num (), ida_fun (ida_fcn),
|
||||||
|
ida_jac (nullptr), dfdy (nullptr), dfdyp (nullptr), spdfdy (nullptr),
|
||||||
|
spdfdyp (nullptr), fun (daefun), jacfun (nullptr), jacspfun (nullptr),
|
||||||
|
- jacdcell (nullptr), jacspcell (nullptr)
|
||||||
|
+ jacdcell (nullptr), jacspcell (nullptr),
|
||||||
|
+ sunJacMatrix (nullptr), sunLinearSolver (nullptr)
|
||||||
|
{ }
|
||||||
|
|
||||||
|
|
||||||
|
- ~IDA (void) { IDAFree (&mem); }
|
||||||
|
+ ~IDA (void)
|
||||||
|
+ {
|
||||||
|
+ IDAFree (&mem);
|
||||||
|
+ SUNLinSolFree(sunLinearSolver);
|
||||||
|
+ SUNMatDestroy(sunJacMatrix);
|
||||||
|
+ }
|
||||||
|
|
||||||
|
IDA&
|
||||||
|
set_jacobian (octave_function *jac, DAEJacFuncDense j)
|
||||||
|
@@ -184,7 +211,7 @@ namespace octave
|
||||||
|
static N_Vector ColToNVec (const ColumnVector& data, long int n);
|
||||||
|
|
||||||
|
void
|
||||||
|
- set_up (void);
|
||||||
|
+ set_up (const ColumnVector& y);
|
||||||
|
|
||||||
|
void
|
||||||
|
set_tolerance (ColumnVector& abstol, realtype reltol);
|
||||||
|
@@ -199,25 +226,24 @@ namespace octave
|
||||||
|
void
|
||||||
|
resfun_impl (realtype t, N_Vector& yy,
|
||||||
|
N_Vector& yyp, N_Vector& rr);
|
||||||
|
-
|
||||||
|
static int
|
||||||
|
- jacdense (long int Neq, realtype t, realtype cj, N_Vector yy,
|
||||||
|
- N_Vector yyp, N_Vector, DlsMat JJ, void *user_data,
|
||||||
|
+ jacdense (realtype t, realtype cj, N_Vector yy,
|
||||||
|
+ N_Vector yyp, N_Vector, SUNMatrix JJ, void *user_data,
|
||||||
|
N_Vector, N_Vector, N_Vector)
|
||||||
|
{
|
||||||
|
IDA *self = static_cast <IDA *> (user_data);
|
||||||
|
- self->jacdense_impl (Neq, t, cj, yy, yyp, JJ);
|
||||||
|
+ self->jacdense_impl (t, cj, yy, yyp, JJ);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
- jacdense_impl (long int Neq, realtype t, realtype cj,
|
||||||
|
- N_Vector& yy, N_Vector& yyp, DlsMat& JJ);
|
||||||
|
+ jacdense_impl (realtype t, realtype cj,
|
||||||
|
+ N_Vector& yy, N_Vector& yyp, SUNMatrix& JJ);
|
||||||
|
|
||||||
|
-# if defined (HAVE_SUNDIALS_IDAKLU)
|
||||||
|
+# if defined (HAVE_SUNDIALS_SUNLINSOL_KLU)
|
||||||
|
static int
|
||||||
|
jacsparse (realtype t, realtype cj, N_Vector yy, N_Vector yyp,
|
||||||
|
- N_Vector, SlsMat Jac, void *user_data, N_Vector,
|
||||||
|
+ N_Vector, SUNMatrix Jac, void *user_data, N_Vector,
|
||||||
|
N_Vector, N_Vector)
|
||||||
|
{
|
||||||
|
IDA *self = static_cast <IDA *> (user_data);
|
||||||
|
@@ -227,7 +253,7 @@ namespace octave
|
||||||
|
|
||||||
|
void
|
||||||
|
jacsparse_impl (realtype t, realtype cj, N_Vector& yy,
|
||||||
|
- N_Vector& yyp, SlsMat& Jac);
|
||||||
|
+ N_Vector& yyp, SUNMatrix& Jac);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void set_maxstep (realtype maxstep);
|
||||||
|
@@ -291,6 +317,8 @@ namespace octave
|
||||||
|
DAEJacFuncSparse jacspfun;
|
||||||
|
DAEJacCellDense jacdcell;
|
||||||
|
DAEJacCellSparse jacspcell;
|
||||||
|
+ SUNMatrix sunJacMatrix;
|
||||||
|
+ SUNLinearSolver sunLinearSolver;
|
||||||
|
};
|
||||||
|
|
||||||
|
int
|
||||||
|
@@ -323,36 +351,61 @@ namespace octave
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
- IDA::set_up (void)
|
||||||
|
+ IDA::set_up (const ColumnVector& y)
|
||||||
|
{
|
||||||
|
+ N_Vector yy = ColToNVec(y, num);
|
||||||
|
+
|
||||||
|
if (havejacsparse)
|
||||||
|
{
|
||||||
|
-# if defined (HAVE_SUNDIALS_IDAKLU)
|
||||||
|
- if (IDAKLU (mem, num, num*num, CSC_MAT) != 0)
|
||||||
|
- error ("IDAKLU solver not initialized");
|
||||||
|
+#if defined (HAVE_SUNDIALS_SUNLINSOL_KLU)
|
||||||
|
+
|
||||||
|
+ sunJacMatrix = SUNSparseMatrix (num, num, num*num, CSC_MAT);
|
||||||
|
+ if (! sunJacMatrix)
|
||||||
|
+ error ("Unable to create sparse Jacobian for Sundials");
|
||||||
|
+
|
||||||
|
+ sunLinearSolver = SUNKLU (yy, sunJacMatrix);
|
||||||
|
+ if (! sunLinearSolver)
|
||||||
|
+ error ("Unable to create KLU sparse solver");
|
||||||
|
+
|
||||||
|
+ if (IDADlsSetLinearSolver (mem, sunLinearSolver, sunJacMatrix))
|
||||||
|
+ error ("Unable to set sparse linear solver");
|
||||||
|
+
|
||||||
|
+ IDADlsSetJacFn(mem, IDA::jacsparse);
|
||||||
|
|
||||||
|
- IDASlsSetSparseJacFn (mem, IDA::jacsparse);
|
||||||
|
# else
|
||||||
|
- error ("IDAKLU is not available in this version of Octave");
|
||||||
|
+ error ("SUNDIALS SUNLINSOL KLU is not available in this version of Octave");
|
||||||
|
# endif
|
||||||
|
+
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
- if (IDADense (mem, num) != 0)
|
||||||
|
- error ("IDADense solver not initialized");
|
||||||
|
|
||||||
|
- if (havejac && IDADlsSetDenseJacFn (mem, IDA::jacdense) != 0)
|
||||||
|
- error ("Dense Jacobian not set");
|
||||||
|
+ sunJacMatrix = SUNDenseMatrix (num, num);
|
||||||
|
+ if (! sunJacMatrix)
|
||||||
|
+ error ("Unable to create dense Jacobian for Sundials");
|
||||||
|
+
|
||||||
|
+ sunLinearSolver = SUNDenseLinearSolver(yy, sunJacMatrix);
|
||||||
|
+ if (! sunLinearSolver)
|
||||||
|
+ error ("Unable to create dense linear solver");
|
||||||
|
+
|
||||||
|
+ if (IDADlsSetLinearSolver (mem, sunLinearSolver, sunJacMatrix))
|
||||||
|
+ error ("Unable to set dense linear solver");
|
||||||
|
+
|
||||||
|
+ if (havejac && IDADlsSetJacFn (mem, IDA::jacdense) != 0)
|
||||||
|
+ error("Unable to set dense Jacobian function");
|
||||||
|
+
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
- IDA::jacdense_impl (long int Neq, realtype t, realtype cj,
|
||||||
|
- N_Vector& yy, N_Vector& yyp, DlsMat& JJ)
|
||||||
|
+ IDA::jacdense_impl (realtype t, realtype cj,
|
||||||
|
+ N_Vector& yy, N_Vector& yyp, SUNMatrix& JJ)
|
||||||
|
|
||||||
|
{
|
||||||
|
BEGIN_INTERRUPT_WITH_EXCEPTIONS;
|
||||||
|
|
||||||
|
+ long int Neq = NV_LENGTH_S(yy);
|
||||||
|
+
|
||||||
|
ColumnVector y = NVecToCol (yy, Neq);
|
||||||
|
|
||||||
|
ColumnVector yp = NVecToCol (yyp, Neq);
|
||||||
|
@@ -366,15 +419,15 @@ namespace octave
|
||||||
|
|
||||||
|
std::copy (jac.fortran_vec (),
|
||||||
|
jac.fortran_vec () + jac.numel (),
|
||||||
|
- JJ->data);
|
||||||
|
+ SUNDenseMatrix_Data(JJ));
|
||||||
|
|
||||||
|
END_INTERRUPT_WITH_EXCEPTIONS;
|
||||||
|
}
|
||||||
|
|
||||||
|
-# if defined (HAVE_SUNDIALS_IDAKLU)
|
||||||
|
+# if defined (HAVE_SUNDIALS_SUNLINSOL_KLU)
|
||||||
|
void
|
||||||
|
IDA::jacsparse_impl (realtype t, realtype cj, N_Vector& yy, N_Vector& yyp,
|
||||||
|
- SlsMat& Jac)
|
||||||
|
+ SUNMatrix& Jac)
|
||||||
|
|
||||||
|
{
|
||||||
|
BEGIN_INTERRUPT_WITH_EXCEPTIONS;
|
||||||
|
@@ -390,17 +443,18 @@ namespace octave
|
||||||
|
else
|
||||||
|
jac = (*jacspcell) (spdfdy, spdfdyp, cj);
|
||||||
|
|
||||||
|
- SparseSetMatToZero (Jac);
|
||||||
|
- int *colptrs = *(Jac->colptrs);
|
||||||
|
- int *rowvals = *(Jac->rowvals);
|
||||||
|
+ SUNMatZero_Sparse (Jac);
|
||||||
|
+ sunindextype *colptrs = SUNSparseMatrix_IndexPointers (Jac);
|
||||||
|
+ sunindextype *rowvals = SUNSparseMatrix_IndexValues (Jac);
|
||||||
|
|
||||||
|
for (int i = 0; i < num + 1; i++)
|
||||||
|
colptrs[i] = jac.cidx(i);
|
||||||
|
|
||||||
|
+ double *d = SUNSparseMatrix_Data (Jac);
|
||||||
|
for (int i = 0; i < jac.nnz (); i++)
|
||||||
|
{
|
||||||
|
rowvals[i] = jac.ridx(i);
|
||||||
|
- Jac->data[i] = jac.data(i);
|
||||||
|
+ d[i] = jac.data(i);
|
||||||
|
}
|
||||||
|
|
||||||
|
END_INTERRUPT_WITH_EXCEPTIONS;
|
||||||
|
@@ -567,7 +621,7 @@ namespace octave
|
||||||
|
|
||||||
|
//main loop
|
||||||
|
while (((posdirection == 1 && tsol < tend)
|
||||||
|
- || (posdirection == 0 && tsol > tend))
|
||||||
|
+ || (posdirection == 0 && tsol > tend))
|
||||||
|
&& status == 0)
|
||||||
|
{
|
||||||
|
if (IDASolve (mem, tend, &tsol, yy, yyp, IDA_ONE_STEP) != 0)
|
||||||
|
@@ -692,7 +746,7 @@ namespace octave
|
||||||
|
// Linear interpolation
|
||||||
|
ie(0) = index(0);
|
||||||
|
te(0) = tsol - val (index(0)) * (tsol - told)
|
||||||
|
- / (val (index(0)) - oldval (index(0)));
|
||||||
|
+ / (val (index(0)) - oldval (index(0)));
|
||||||
|
|
||||||
|
ColumnVector ytemp
|
||||||
|
= y - ((tsol - te(0)) * (y - yold) / (tsol - told));
|
||||||
|
@@ -717,7 +771,7 @@ namespace octave
|
||||||
|
// Linear interpolation
|
||||||
|
ie(temp+i) = index(i);
|
||||||
|
te(temp+i) = tsol - val(index(i)) * (tsol - told)
|
||||||
|
- / (val(index(i)) - oldval(index(i)));
|
||||||
|
+ / (val(index(i)) - oldval(index(i)));
|
||||||
|
|
||||||
|
ColumnVector ytemp
|
||||||
|
= y - (tsol - te (temp + i)) * (y - yold) / (tsol - told);
|
||||||
|
@@ -1096,7 +1150,7 @@ namespace octave
|
||||||
|
event_fcn = options.getfield("Events").function_value ();
|
||||||
|
|
||||||
|
// Set up linear solver
|
||||||
|
- dae.set_up ();
|
||||||
|
+ dae.set_up (y0);
|
||||||
|
|
||||||
|
// Integrate
|
||||||
|
retval = dae.integrate (numt, tspan, y0, yp0, refine,
|
||||||
|
diff -up octave-5.0.91/m4/acinclude.m4.sundials3 octave-5.0.91/m4/acinclude.m4
|
||||||
|
--- octave-5.0.91/m4/acinclude.m4.sundials3 2019-02-04 10:50:20.000000000 -0700
|
||||||
|
+++ octave-5.0.91/m4/acinclude.m4 2019-02-05 22:05:44.100260576 -0700
|
||||||
|
@@ -2210,14 +2210,11 @@ dnl Check whether SUNDIALS IDA library i
|
||||||
|
dnl precision realtype.
|
||||||
|
dnl
|
||||||
|
AC_DEFUN([OCTAVE_CHECK_SUNDIALS_SIZEOF_REALTYPE], [
|
||||||
|
- AC_CHECK_HEADERS([ida/ida.h ida.h])
|
||||||
|
AC_CACHE_CHECK([whether SUNDIALS IDA is configured with double precision realtype],
|
||||||
|
[octave_cv_sundials_realtype_is_double],
|
||||||
|
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
||||||
|
#if defined (HAVE_IDA_IDA_H)
|
||||||
|
#include <ida/ida.h>
|
||||||
|
- #else
|
||||||
|
- #include <ida.h>
|
||||||
|
#endif
|
||||||
|
#include <assert.h>
|
||||||
|
]], [[
|
||||||
|
@@ -2233,61 +2230,72 @@ AC_DEFUN([OCTAVE_CHECK_SUNDIALS_SIZEOF_R
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
dnl
|
||||||
|
-dnl Check whether SUNDIALS IDA library is configured with IDAKLU
|
||||||
|
+dnl Check whether SUNDIALS IDA library is configured with SUNLINSOL_KLU
|
||||||
|
dnl enabled.
|
||||||
|
dnl
|
||||||
|
-AC_DEFUN([OCTAVE_CHECK_SUNDIALS_IDAKLU], [
|
||||||
|
- AC_CHECK_HEADERS([ida/ida_klu.h ida_klu.h])
|
||||||
|
- AC_CACHE_CHECK([whether SUNDIALS IDA is configured with IDAKLU enabled],
|
||||||
|
- [octave_cv_sundials_idaklu],
|
||||||
|
+AC_DEFUN([OCTAVE_CHECK_SUNDIALS_SUNLINSOL_KLU], [
|
||||||
|
+ AC_CHECK_HEADERS([sundials/sundials_sparse.h sunlinsol/sunlinsol_klu.h sunmatrix/sunmatrix_sparse.h])
|
||||||
|
+ AC_CACHE_CHECK([whether SUNDIALS IDA is configured with SUNLINSOL_KLU enabled],
|
||||||
|
+ [octave_cv_sundials_sunlinsol_klu],
|
||||||
|
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
||||||
|
- #if defined (HAVE_IDA_IDA_KLU_H)
|
||||||
|
- #include <ida/ida_klu.h>
|
||||||
|
- #else
|
||||||
|
- #include <ida_klu.h>
|
||||||
|
+ #if defined (HAVE_IDA_IDA_H)
|
||||||
|
+ #include <ida/ida.h>
|
||||||
|
+ #endif
|
||||||
|
+ #if defined (HAVE_SUNDIALS_SUNDIALS_SPARSE_H)
|
||||||
|
+ #include <sundials/sundials_sparse.h>
|
||||||
|
+ #endif
|
||||||
|
+ #if defined (HAVE_SUNLINSOL_SUNLINSOL_KLU_H)
|
||||||
|
+ #include <sunlinsol/sunlinsol_klu.h>
|
||||||
|
#endif
|
||||||
|
]], [[
|
||||||
|
- IDAKLU (0, 0, 0, 0);
|
||||||
|
+ SUNKLU (0, 0);
|
||||||
|
]])],
|
||||||
|
- octave_cv_sundials_idaklu=yes,
|
||||||
|
- octave_cv_sundials_idaklu=no)
|
||||||
|
+ octave_cv_sundials_sunlinsol_klu=yes,
|
||||||
|
+ octave_cv_sundials_sunlinsol_klu=no)
|
||||||
|
])
|
||||||
|
- if test $octave_cv_sundials_idaklu = yes; then
|
||||||
|
- AC_DEFINE(HAVE_SUNDIALS_IDAKLU, 1,
|
||||||
|
- [Define to 1 if SUNDIALS IDA is configured with IDAKLU enabled.])
|
||||||
|
+ if test $octave_cv_sundials_sunlinsol_klu = yes; then
|
||||||
|
+ AC_DEFINE(HAVE_SUNDIALS_SUNLINSOL_KLU, 1,
|
||||||
|
+ [Define to 1 if SUNDIALS IDA is configured with SUNLINSOL_KLU enabled.])
|
||||||
|
else
|
||||||
|
- warn_sundials_idaklu="SUNDIALS IDA library not configured with IDAKLU, ode15i and ode15s will not support the sparse Jacobian feature"
|
||||||
|
- OCTAVE_CONFIGURE_WARNING([warn_sundials_idaklu])
|
||||||
|
+ warn_sundials_idaklu="SUNDIALS IDA library not configured with SUNLINSOL_KLU, ode15i and ode15s will not support the sparse Jacobian feature"
|
||||||
|
+ OCTAVE_CONFIGURE_WARNING([warn_sundials_sunlinsol_klu])
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
dnl
|
||||||
|
-dnl Check whether SUNDIALS IDA library has the IDADENSE linear solver.
|
||||||
|
+dnl Check whether SUNDIALS IDA library has the SUNLINSOL_DENSE linear solver.
|
||||||
|
dnl The IDADENSE API was removed in SUNDIALS version 3.0.0.
|
||||||
|
dnl
|
||||||
|
-AC_DEFUN([OCTAVE_CHECK_SUNDIALS_IDA_DENSE], [
|
||||||
|
- AC_CHECK_HEADERS([ida/ida_dense.h ida_dense.h])
|
||||||
|
- AC_CACHE_CHECK([whether SUNDIALS IDA includes the IDADENSE linear solver],
|
||||||
|
- [octave_cv_sundials_ida_dense],
|
||||||
|
+AC_DEFUN([OCTAVE_CHECK_SUNDIALS_SUNLINSOL_DENSE], [
|
||||||
|
+ AC_CHECK_HEADERS([sunlinsol/sunlinsol_dense.h sundials/sundials_matrix.h sundials/sundials_linearsolver.h ida/ida_direct.h])
|
||||||
|
+ AC_CACHE_CHECK([whether SUNDIALS IDA includes the SUNLINSOL_DENSE linear solver],
|
||||||
|
+ [octave_cv_sundials_sunlinsol_dense],
|
||||||
|
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
||||||
|
- #if defined (HAVE_IDA_IDA_DENSE_H)
|
||||||
|
- #include <ida/ida_dense.h>
|
||||||
|
- #else
|
||||||
|
- #include <ida_dense.h>
|
||||||
|
+ #if defined (HAVE_IDA_IDA_H)
|
||||||
|
+ #include <ida/ida.h>
|
||||||
|
+ #endif
|
||||||
|
+ #if defined (HAVE_SUNDIALS_SUNDIALS_MATRIX_H)
|
||||||
|
+ #include <sundials/sundials_matrix.h>
|
||||||
|
+ #endif
|
||||||
|
+ #if defined (HAVE_SUNDIALS_SUNDIALS_LINEARSOLVER_H)
|
||||||
|
+ #include <sundials/sundials_linearsolver.h>
|
||||||
|
#endif
|
||||||
|
+ #if defined (HAVE_IDA_IDA_DIRECT_H)
|
||||||
|
+ #include <ida/ida_direct.h>
|
||||||
|
+ #endif
|
||||||
|
]], [[
|
||||||
|
void *mem = 0;
|
||||||
|
long int num = 0;
|
||||||
|
IDADense (mem, num);
|
||||||
|
]])],
|
||||||
|
- octave_cv_sundials_ida_dense=yes,
|
||||||
|
- octave_cv_sundials_ida_dense=no)
|
||||||
|
+ octave_cv_sundials_sunlinsol_dense=yes,
|
||||||
|
+ octave_cv_sundials_sunlinsol_dense=no)
|
||||||
|
])
|
||||||
|
- if test $octave_cv_sundials_ida_dense = yes; then
|
||||||
|
- AC_DEFINE(HAVE_SUNDIALS_IDADENSE, 1,
|
||||||
|
- [Define to 1 if SUNDIALS IDA includes the IDADENSE linear solver.])
|
||||||
|
+ if test $octave_cv_sundials_sunlinsol_dense = yes; then
|
||||||
|
+ AC_DEFINE(HAVE_SUNDIALS_SUNLINSOL_DENSE, 1,
|
||||||
|
+ [Define to 1 if SUNDIALS IDA includes the SUNLINSOL_DENSE linear solver.])
|
||||||
|
else
|
||||||
|
- warn_sundials_ida_dense="SUNDIALS IDA library does not include the IDADENSE linear solver, ode15i and ode15s will be disabled"
|
||||||
|
- OCTAVE_CONFIGURE_WARNING([warn_sundials_ida_dense])
|
||||||
|
+ warn_sundials_ida_dense="SUNDIALS IDA library does not include the SUNLINSOL_DENSE linear solver, ode15i and ode15s will be disabled"
|
||||||
|
+ OCTAVE_CONFIGURE_WARNING([warn_sundials_sunlinsol_dense])
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
dnl
|
||||||
|
diff -up octave-5.0.91/scripts/ode/ode15i.m.sundials3 octave-5.0.91/scripts/ode/ode15i.m
|
||||||
|
--- octave-5.0.91/scripts/ode/ode15i.m.sundials3 2019-02-04 10:50:20.000000000 -0700
|
||||||
|
+++ octave-5.0.91/scripts/ode/ode15i.m 2019-02-05 22:05:44.101260588 -0700
|
||||||
|
@@ -452,7 +452,7 @@ endfunction
|
||||||
|
%! assert ([t(end), y(end,:)], fref, 1e-3);
|
||||||
|
|
||||||
|
## Jacobian fun sparse
|
||||||
|
-%!testif HAVE_SUNDIALS_IDAKLU
|
||||||
|
+%!testif HAVE_SUNDIALS_SUNLINSOL_KLU
|
||||||
|
%! opt = odeset ("Jacobian", @jacfunsparse, "AbsTol", 1e-7, "RelTol", 1e-7);
|
||||||
|
%! [t, y] = ode15i (@rob, [0, 100], [1; 0; 0], [-1e-4; 1e-4; 0], opt);
|
||||||
|
%! assert ([t(end), y(end,:)], fref, 1e-3);
|
||||||
|
@@ -545,7 +545,7 @@ endfunction
|
||||||
|
%! "invalid value assigned to field 'Jacobian'");
|
||||||
|
|
||||||
|
## Jacobian cell sparse wrong dimension
|
||||||
|
-%!testif HAVE_SUNDIALS_IDAKLU
|
||||||
|
+%!testif HAVE_SUNDIALS_SUNLINSOL_KLU
|
||||||
|
%! DFDY = sparse ([-0.04, 1;
|
||||||
|
%! 0.04, 1]);
|
||||||
|
%! DFDYP = sparse ([-1, 0, 0;
|
||||||
|
diff -up octave-5.0.91/scripts/ode/ode15s.m.sundials3 octave-5.0.91/scripts/ode/ode15s.m
|
||||||
|
--- octave-5.0.91/scripts/ode/ode15s.m.sundials3 2019-02-04 10:50:20.000000000 -0700
|
||||||
|
+++ octave-5.0.91/scripts/ode/ode15s.m 2019-02-05 22:05:44.102260599 -0700
|
||||||
|
@@ -545,21 +545,21 @@ endfunction
|
||||||
|
%! [t, y] = ode15s (@rob, [0, 100], [1; 0; 0], opt);
|
||||||
|
%! assert ([t(end), y(end,:)], frefrob, 1e-3);
|
||||||
|
|
||||||
|
-%!testif HAVE_SUNDIALS_IDAKLU
|
||||||
|
+%!testif HAVE_SUNDIALS_SUNLINSOL_KLU
|
||||||
|
%! opt = odeset ("MStateDependence", "none",
|
||||||
|
%! "Mass", [1, 0, 0; 0, 1, 0; 0, 0, 0],
|
||||||
|
%! "Jacobian", @jacfunsparse);
|
||||||
|
%! [t, y] = ode15s (@rob, [0, 100], [1; 0; 0], opt);
|
||||||
|
%! assert ([t(end), y(end,:)], frefrob, 1e-3);
|
||||||
|
|
||||||
|
-%!testif HAVE_SUNDIALS_IDAKLU
|
||||||
|
+%!testif HAVE_SUNDIALS_SUNLINSOL_KLU
|
||||||
|
%! opt = odeset ("MStateDependence", "none",
|
||||||
|
%! "Mass", sparse ([1, 0, 0; 0, 1, 0; 0, 0, 0]),
|
||||||
|
%! "Jacobian", @jacfunsparse);
|
||||||
|
%! [t, y] = ode15s (@rob, [0, 100], [1; 0; 0], opt);
|
||||||
|
%! assert ([t(end), y(end,:)], frefrob, 1e-3);
|
||||||
|
|
||||||
|
-%!testif HAVE_SUNDIALS_IDAKLU
|
||||||
|
+%!testif HAVE_SUNDIALS_SUNLINSOL_KLU
|
||||||
|
%! warning ("off", "ode15s:mass_state_dependent_provided", "local");
|
||||||
|
%! opt = odeset ("MStateDependence", "none",
|
||||||
|
%! "Mass", @massdensefunstate,
|
||||||
|
@@ -575,14 +575,14 @@ endfunction
|
||||||
|
%! [t, y] = ode15s (@rob, [0, 100], [1; 0; 0], opt);
|
||||||
|
%! assert ([t(end), y(end,:)], frefrob, 1e-3);
|
||||||
|
|
||||||
|
-%!testif HAVE_SUNDIALS_IDAKLU
|
||||||
|
+%!testif HAVE_SUNDIALS_SUNLINSOL_KLU
|
||||||
|
%! opt = odeset ("MStateDependence", "none",
|
||||||
|
%! "Mass", @massdensefuntime,
|
||||||
|
%! "Jacobian", @jacfunsparse);
|
||||||
|
%! [t, y] = ode15s (@rob, [0, 100], [1; 0; 0], opt);
|
||||||
|
%! assert ([t(end), y(end,:)], frefrob, 1e-3);
|
||||||
|
|
||||||
|
-%!testif HAVE_SUNDIALS_IDAKLU
|
||||||
|
+%!testif HAVE_SUNDIALS_SUNLINSOL_KLU
|
||||||
|
%! opt = odeset ("MStateDependence", "none",
|
||||||
|
%! "Mass", @masssparsefuntime,
|
||||||
|
%! "Jacobian", @jacfunsparse);
|
1
octave.conf
Normal file
1
octave.conf
Normal file
@ -0,0 +1 @@
|
|||||||
|
-b /usr/bin/octave-3.2.3
|
1131
octave.spec
1131
octave.spec
File diff suppressed because it is too large
Load Diff
3
sources
3
sources
@ -1 +1,2 @@
|
|||||||
c7c0449a5e1418479bebbdd565eb9cc2 octave-2.9.15.tar.bz2
|
SHA512 (octave-5.1.0.tar.lz) = 34facc20ffceaead05e62e16cc70bd603919c7e52c7489faa17b5c969a160c655f50c4aeb41ecee2e2d0a6245cc3364cf9009ddd3cecb17b9e06bbdacaa0a516
|
||||||
|
SHA512 (octave-5.1.0-docs.tar.lz) = 6bf24ed95d5d2957271abb8902a156edc588962b95218b05936858fafe8205f4295f072388f7331ad5700946fbae701bd0c3f2a59c258f390ea92c85eb87fdd2
|
||||||
|
137
xorg.conf
Normal file
137
xorg.conf
Normal file
@ -0,0 +1,137 @@
|
|||||||
|
# This xorg configuration file is meant to be used by xpra
|
||||||
|
# to start a dummy X11 server.
|
||||||
|
# For details, please see:
|
||||||
|
# https://xpra.org/Xdummy.html
|
||||||
|
|
||||||
|
Section "ServerFlags"
|
||||||
|
Option "DontVTSwitch" "true"
|
||||||
|
Option "AllowMouseOpenFail" "true"
|
||||||
|
Option "PciForceNone" "true"
|
||||||
|
Option "AutoEnableDevices" "false"
|
||||||
|
Option "AutoAddDevices" "false"
|
||||||
|
EndSection
|
||||||
|
|
||||||
|
Section "InputDevice"
|
||||||
|
Identifier "dummy_mouse"
|
||||||
|
Option "CorePointer" "true"
|
||||||
|
Driver "void"
|
||||||
|
EndSection
|
||||||
|
|
||||||
|
Section "InputDevice"
|
||||||
|
Identifier "dummy_keyboard"
|
||||||
|
Option "CoreKeyboard" "true"
|
||||||
|
Driver "void"
|
||||||
|
EndSection
|
||||||
|
|
||||||
|
Section "Device"
|
||||||
|
Identifier "dummy_videocard"
|
||||||
|
Driver "dummy"
|
||||||
|
Option "ConstantDPI" "true"
|
||||||
|
#VideoRam 4096000
|
||||||
|
#VideoRam 256000
|
||||||
|
VideoRam 192000
|
||||||
|
EndSection
|
||||||
|
|
||||||
|
Section "Monitor"
|
||||||
|
Identifier "dummy_monitor"
|
||||||
|
HorizSync 5.0 - 1000.0
|
||||||
|
VertRefresh 5.0 - 200.0
|
||||||
|
#This can be used to get a specific DPI, but only for the default resolution:
|
||||||
|
#DisplaySize 508 317
|
||||||
|
#NOTE: the highest modes will not work without increasing the VideoRam
|
||||||
|
# for the dummy video card.
|
||||||
|
Modeline "32768x32768" 15226.50 32768 35800 39488 46208 32768 32771 32781 32953
|
||||||
|
Modeline "32768x16384" 7516.25 32768 35544 39192 45616 16384 16387 16397 16478
|
||||||
|
Modeline "16384x8192" 2101.93 16384 16416 24400 24432 8192 8390 8403 8602
|
||||||
|
Modeline "8192x4096" 424.46 8192 8224 9832 9864 4096 4195 4202 4301
|
||||||
|
Modeline "5496x1200" 199.13 5496 5528 6280 6312 1200 1228 1233 1261
|
||||||
|
Modeline "5280x1080" 169.96 5280 5312 5952 5984 1080 1105 1110 1135
|
||||||
|
Modeline "5280x1200" 191.40 5280 5312 6032 6064 1200 1228 1233 1261
|
||||||
|
Modeline "5120x3200" 199.75 5120 5152 5904 5936 3200 3277 3283 3361
|
||||||
|
Modeline "4800x1200" 64.42 4800 4832 5072 5104 1200 1229 1231 1261
|
||||||
|
Modeline "3840x2880" 133.43 3840 3872 4376 4408 2880 2950 2955 3025
|
||||||
|
Modeline "3840x2560" 116.93 3840 3872 4312 4344 2560 2622 2627 2689
|
||||||
|
Modeline "3840x2048" 91.45 3840 3872 4216 4248 2048 2097 2101 2151
|
||||||
|
Modeline "3840x1080" 100.38 3840 3848 4216 4592 1080 1081 1084 1093
|
||||||
|
Modeline "3600x1200" 106.06 3600 3632 3984 4368 1200 1201 1204 1214
|
||||||
|
Modeline "3288x1080" 39.76 3288 3320 3464 3496 1080 1106 1108 1135
|
||||||
|
Modeline "2048x2048" 49.47 2048 2080 2264 2296 2048 2097 2101 2151
|
||||||
|
Modeline "2048x1536" 80.06 2048 2104 2312 2576 1536 1537 1540 1554
|
||||||
|
Modeline "2560x1600" 47.12 2560 2592 2768 2800 1600 1639 1642 1681
|
||||||
|
Modeline "2560x1440" 42.12 2560 2592 2752 2784 1440 1475 1478 1513
|
||||||
|
Modeline "1920x1440" 69.47 1920 1960 2152 2384 1440 1441 1444 1457
|
||||||
|
Modeline "1920x1200" 26.28 1920 1952 2048 2080 1200 1229 1231 1261
|
||||||
|
Modeline "1920x1080" 23.53 1920 1952 2040 2072 1080 1106 1108 1135
|
||||||
|
Modeline "1680x1050" 20.08 1680 1712 1784 1816 1050 1075 1077 1103
|
||||||
|
Modeline "1600x1200" 22.04 1600 1632 1712 1744 1200 1229 1231 1261
|
||||||
|
Modeline "1600x900" 33.92 1600 1632 1760 1792 900 921 924 946
|
||||||
|
Modeline "1440x900" 30.66 1440 1472 1584 1616 900 921 924 946
|
||||||
|
ModeLine "1366x768" 72.00 1366 1414 1446 1494 768 771 777 803
|
||||||
|
Modeline "1280x1024" 31.50 1280 1312 1424 1456 1024 1048 1052 1076
|
||||||
|
Modeline "1280x800" 24.15 1280 1312 1400 1432 800 819 822 841
|
||||||
|
Modeline "1280x768" 23.11 1280 1312 1392 1424 768 786 789 807
|
||||||
|
Modeline "1360x768" 24.49 1360 1392 1480 1512 768 786 789 807
|
||||||
|
Modeline "1024x768" 18.71 1024 1056 1120 1152 768 786 789 807
|
||||||
|
Modeline "768x1024" 19.50 768 800 872 904 1024 1048 1052 1076
|
||||||
|
|
||||||
|
|
||||||
|
#common resolutions for android devices (both orientations):
|
||||||
|
Modeline "800x1280" 25.89 800 832 928 960 1280 1310 1315 1345
|
||||||
|
Modeline "1280x800" 24.15 1280 1312 1400 1432 800 819 822 841
|
||||||
|
Modeline "720x1280" 30.22 720 752 864 896 1280 1309 1315 1345
|
||||||
|
Modeline "1280x720" 27.41 1280 1312 1416 1448 720 737 740 757
|
||||||
|
Modeline "768x1024" 24.93 768 800 888 920 1024 1047 1052 1076
|
||||||
|
Modeline "1024x768" 23.77 1024 1056 1144 1176 768 785 789 807
|
||||||
|
Modeline "600x1024" 19.90 600 632 704 736 1024 1047 1052 1076
|
||||||
|
Modeline "1024x600" 18.26 1024 1056 1120 1152 600 614 617 631
|
||||||
|
Modeline "536x960" 16.74 536 568 624 656 960 982 986 1009
|
||||||
|
Modeline "960x536" 15.23 960 992 1048 1080 536 548 551 563
|
||||||
|
Modeline "600x800" 15.17 600 632 688 720 800 818 822 841
|
||||||
|
Modeline "800x600" 14.50 800 832 880 912 600 614 617 631
|
||||||
|
Modeline "480x854" 13.34 480 512 560 592 854 873 877 897
|
||||||
|
Modeline "848x480" 12.09 848 880 920 952 480 491 493 505
|
||||||
|
Modeline "480x800" 12.43 480 512 552 584 800 818 822 841
|
||||||
|
Modeline "800x480" 11.46 800 832 872 904 480 491 493 505
|
||||||
|
#resolutions for android devices (both orientations)
|
||||||
|
#minus the status bar
|
||||||
|
#38px status bar (and width rounded up)
|
||||||
|
Modeline "800x1242" 25.03 800 832 920 952 1242 1271 1275 1305
|
||||||
|
Modeline "1280x762" 22.93 1280 1312 1392 1424 762 780 783 801
|
||||||
|
Modeline "720x1242" 29.20 720 752 856 888 1242 1271 1276 1305
|
||||||
|
Modeline "1280x682" 25.85 1280 1312 1408 1440 682 698 701 717
|
||||||
|
Modeline "768x986" 23.90 768 800 888 920 986 1009 1013 1036
|
||||||
|
Modeline "1024x730" 22.50 1024 1056 1136 1168 730 747 750 767
|
||||||
|
Modeline "600x986" 19.07 600 632 704 736 986 1009 1013 1036
|
||||||
|
Modeline "1024x562" 17.03 1024 1056 1120 1152 562 575 578 591
|
||||||
|
Modeline "536x922" 16.01 536 568 624 656 922 943 947 969
|
||||||
|
Modeline "960x498" 14.09 960 992 1040 1072 498 509 511 523
|
||||||
|
Modeline "600x762" 14.39 600 632 680 712 762 779 783 801
|
||||||
|
Modeline "800x562" 13.52 800 832 880 912 562 575 578 591
|
||||||
|
Modeline "480x810" 12.59 480 512 552 584 810 828 832 851
|
||||||
|
Modeline "848x442" 11.09 848 880 920 952 442 452 454 465
|
||||||
|
Modeline "480x762" 11.79 480 512 552 584 762 779 783 801
|
||||||
|
EndSection
|
||||||
|
|
||||||
|
Section "Screen"
|
||||||
|
Identifier "dummy_screen"
|
||||||
|
Device "dummy_videocard"
|
||||||
|
Monitor "dummy_monitor"
|
||||||
|
DefaultDepth 24
|
||||||
|
SubSectionSub "Display"
|
||||||
|
Viewport 0 0
|
||||||
|
Depth 24
|
||||||
|
#Modes "32768x32768" "32768x16384" "16384x8192" "8192x4096" "5120x3200" "3840x2880" "3840x2560" "3840x2048" "2048x2048" "2560x1600" "1920x1440" "1920x1200" "1920x1080" "1600x1200" "1680x1050" "1600x900" "1400x1050" "1440x900" "1280x1024" "1366x768" "1280x800" "1024x768" "1024x600" "800x600" "320x200"
|
||||||
|
Modes "5120x3200" "3840x2880" "3840x2560" "3840x2048" "2048x2048" "2560x1600" "1920x1440" "1920x1200" "1920x1080" "1600x1200" "1680x1050" "1600x900" "1400x1050" "1440x900" "1280x1024" "1366x768" "1280x800" "1024x768" "1024x600" "800x600" "320x200"
|
||||||
|
#Virtual 32000 32000
|
||||||
|
#Virtual 16384 8192
|
||||||
|
Virtual 8192 4096
|
||||||
|
#Virtual 5120 3200
|
||||||
|
EndSubSection
|
||||||
|
EndSection
|
||||||
|
|
||||||
|
Section "ServerLayout"
|
||||||
|
Identifier "dummy_layout"
|
||||||
|
Screen "dummy_screen"
|
||||||
|
InputDevice "dummy_mouse"
|
||||||
|
InputDevice "dummy_keyboard"
|
||||||
|
EndSection
|
Loading…
Reference in New Issue
Block a user