ode 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +37 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +17 -0
- data/MIT-License.txt +22 -0
- data/README.md +32 -0
- data/Rakefile +12 -0
- data/SciPy-License.txt +30 -0
- data/ext/ode/extconf.rb +25 -0
- data/ext/ode/ode.c +124 -0
- data/ext/ode/odepack.h +6 -0
- data/ext/ode/odepack/blkdta000.f +26 -0
- data/ext/ode/odepack/bnorm.f +30 -0
- data/ext/ode/odepack/cfode.f +112 -0
- data/ext/ode/odepack/ewset.f +32 -0
- data/ext/ode/odepack/fnorm.f +22 -0
- data/ext/ode/odepack/intdy.f +84 -0
- data/ext/ode/odepack/lsoda.f +1654 -0
- data/ext/ode/odepack/prja.f +177 -0
- data/ext/ode/odepack/readme +84 -0
- data/ext/ode/odepack/solsy.f +72 -0
- data/ext/ode/odepack/srcma.f +55 -0
- data/ext/ode/odepack/stoda.f +637 -0
- data/ext/ode/odepack/vmnorm.f +18 -0
- data/ext/ode/odepack/vode.f +3667 -0
- data/ext/ode/odepack/xerrwv.f +114 -0
- data/ext/ode/odepack/zvode.f +3658 -0
- data/lib/ode.rb +9 -0
- data/lib/ode/methods.rb +15 -0
- data/lib/ode/solver.rb +42 -0
- data/lib/ode/version.rb +3 -0
- data/ode.gemspec +23 -0
- metadata +105 -0
data/lib/ode.rb
ADDED
data/lib/ode/methods.rb
ADDED
data/lib/ode/solver.rb
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
module Ode
|
2
|
+
class Solver
|
3
|
+
def initialize(f, jac=nil)
|
4
|
+
@f = f
|
5
|
+
@t = 0
|
6
|
+
@y = 0
|
7
|
+
@jac = jac
|
8
|
+
@fargs = nil
|
9
|
+
@opts = nil
|
10
|
+
@method = :lsoda
|
11
|
+
end
|
12
|
+
|
13
|
+
def init(t0, y0)
|
14
|
+
@t = t0
|
15
|
+
@y = y0
|
16
|
+
self
|
17
|
+
end
|
18
|
+
|
19
|
+
def method(name)
|
20
|
+
if Ode::Methods.respond_to?(name)
|
21
|
+
@method = name
|
22
|
+
else
|
23
|
+
raise NameError, "Ode do not have an implementation of the method named" + name.to_s + "."
|
24
|
+
end
|
25
|
+
self
|
26
|
+
end
|
27
|
+
|
28
|
+
def f_args(args)
|
29
|
+
@fargs=args
|
30
|
+
self
|
31
|
+
end
|
32
|
+
|
33
|
+
def integrate(t_out)
|
34
|
+
@opts ||= Ode::Methods.default_opts(@method)
|
35
|
+
@y = Ode::Methods.send(@method, t_out, @f, @jac, @t, @y, @fargs, @opts)
|
36
|
+
@t = t_out
|
37
|
+
self
|
38
|
+
end
|
39
|
+
|
40
|
+
attr_reader :t, :y
|
41
|
+
end
|
42
|
+
end
|
data/lib/ode/version.rb
ADDED
data/ode.gemspec
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'ode/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "ode"
|
8
|
+
spec.version = Ode::VERSION
|
9
|
+
spec.authors = ["domitry"]
|
10
|
+
spec.email = ["domitry@gmail.com"]
|
11
|
+
spec.summary = %q{A ODE solver package for Ruby users.}
|
12
|
+
spec.description = %q{A ODE solver package for Ruby users.}
|
13
|
+
spec.homepage = ""
|
14
|
+
spec.license = "MIT and SciPy license"
|
15
|
+
spec.extensions = %w[ext/ode/extconf.rb]
|
16
|
+
spec.files = `git ls-files -z`.split("\x0")
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ["lib"]
|
20
|
+
|
21
|
+
spec.add_development_dependency "bundler", "~> 1.5"
|
22
|
+
spec.add_development_dependency "rake"
|
23
|
+
end
|
metadata
ADDED
@@ -0,0 +1,105 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ode
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- domitry
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-12-05 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.5'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.5'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
description: A ODE solver package for Ruby users.
|
42
|
+
email:
|
43
|
+
- domitry@gmail.com
|
44
|
+
executables: []
|
45
|
+
extensions:
|
46
|
+
- ext/ode/extconf.rb
|
47
|
+
extra_rdoc_files: []
|
48
|
+
files:
|
49
|
+
- ".gitignore"
|
50
|
+
- Gemfile
|
51
|
+
- Gemfile.lock
|
52
|
+
- MIT-License.txt
|
53
|
+
- README.md
|
54
|
+
- Rakefile
|
55
|
+
- SciPy-License.txt
|
56
|
+
- ext/ode/extconf.rb
|
57
|
+
- ext/ode/ode.c
|
58
|
+
- ext/ode/odepack.h
|
59
|
+
- ext/ode/odepack/blkdta000.f
|
60
|
+
- ext/ode/odepack/bnorm.f
|
61
|
+
- ext/ode/odepack/cfode.f
|
62
|
+
- ext/ode/odepack/ewset.f
|
63
|
+
- ext/ode/odepack/fnorm.f
|
64
|
+
- ext/ode/odepack/intdy.f
|
65
|
+
- ext/ode/odepack/lsoda.f
|
66
|
+
- ext/ode/odepack/prja.f
|
67
|
+
- ext/ode/odepack/readme
|
68
|
+
- ext/ode/odepack/solsy.f
|
69
|
+
- ext/ode/odepack/srcma.f
|
70
|
+
- ext/ode/odepack/stoda.f
|
71
|
+
- ext/ode/odepack/vmnorm.f
|
72
|
+
- ext/ode/odepack/vode.f
|
73
|
+
- ext/ode/odepack/xerrwv.f
|
74
|
+
- ext/ode/odepack/zvode.f
|
75
|
+
- lib/ode.rb
|
76
|
+
- lib/ode/methods.rb
|
77
|
+
- lib/ode/solver.rb
|
78
|
+
- lib/ode/version.rb
|
79
|
+
- ode.gemspec
|
80
|
+
homepage: ''
|
81
|
+
licenses:
|
82
|
+
- MIT and SciPy license
|
83
|
+
metadata: {}
|
84
|
+
post_install_message:
|
85
|
+
rdoc_options: []
|
86
|
+
require_paths:
|
87
|
+
- lib
|
88
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
89
|
+
requirements:
|
90
|
+
- - ">="
|
91
|
+
- !ruby/object:Gem::Version
|
92
|
+
version: '0'
|
93
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - ">="
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '0'
|
98
|
+
requirements: []
|
99
|
+
rubyforge_project:
|
100
|
+
rubygems_version: 2.2.2
|
101
|
+
signing_key:
|
102
|
+
specification_version: 4
|
103
|
+
summary: A ODE solver package for Ruby users.
|
104
|
+
test_files: []
|
105
|
+
has_rdoc:
|