silicium 0.0.2
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/.codeclimate.yml +4 -0
- data/.gitignore +13 -0
- data/.travis.yml +25 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +8 -0
- data/LICENSE.txt +21 -0
- data/Makefile +269 -0
- data/README.md +46 -0
- data/Rakefile +17 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/docs/Object.html +117 -0
- data/docs/README_md.html +142 -0
- data/docs/Silicium/Combinatorics.html +270 -0
- data/docs/Silicium/Dice/Polyhedron.html +315 -0
- data/docs/Silicium/Dice/PolyhedronSet.html +321 -0
- data/docs/Silicium/Dice.html +99 -0
- data/docs/Silicium/Error.html +106 -0
- data/docs/Silicium/Geometry/Line2dCanon.html +243 -0
- data/docs/Silicium/Geometry/VariablesOrderException.html +106 -0
- data/docs/Silicium/Geometry.html +940 -0
- data/docs/Silicium/Graphs/GraphError.html +106 -0
- data/docs/Silicium/Graphs/OrientedGraph.html +775 -0
- data/docs/Silicium/Graphs/UnorientedGraph.html +284 -0
- data/docs/Silicium/Graphs.html +164 -0
- data/docs/Silicium/IntegralDoesntExistError.html +106 -0
- data/docs/Silicium/NumericalIntegration.html +521 -0
- data/docs/Silicium/Optimization.html +639 -0
- data/docs/Silicium/Plotter/Image.html +297 -0
- data/docs/Silicium/Plotter.html +186 -0
- data/docs/Silicium.html +101 -0
- data/docs/created.rid +9 -0
- data/docs/css/fonts.css +167 -0
- data/docs/css/rdoc.css +619 -0
- data/docs/fonts/Lato-Light.ttf +0 -0
- data/docs/fonts/Lato-LightItalic.ttf +0 -0
- data/docs/fonts/Lato-Regular.ttf +0 -0
- data/docs/fonts/Lato-RegularItalic.ttf +0 -0
- data/docs/fonts/SourceCodePro-Bold.ttf +0 -0
- data/docs/fonts/SourceCodePro-Regular.ttf +0 -0
- data/docs/images/add.png +0 -0
- data/docs/images/arrow_up.png +0 -0
- data/docs/images/brick.png +0 -0
- data/docs/images/brick_link.png +0 -0
- data/docs/images/bug.png +0 -0
- data/docs/images/bullet_black.png +0 -0
- data/docs/images/bullet_toggle_minus.png +0 -0
- data/docs/images/bullet_toggle_plus.png +0 -0
- data/docs/images/date.png +0 -0
- data/docs/images/delete.png +0 -0
- data/docs/images/find.png +0 -0
- data/docs/images/loadingAnimation.gif +0 -0
- data/docs/images/macFFBgHack.png +0 -0
- data/docs/images/package.png +0 -0
- data/docs/images/page_green.png +0 -0
- data/docs/images/page_white_text.png +0 -0
- data/docs/images/page_white_width.png +0 -0
- data/docs/images/plugin.png +0 -0
- data/docs/images/ruby.png +0 -0
- data/docs/images/tag_blue.png +0 -0
- data/docs/images/tag_green.png +0 -0
- data/docs/images/transparent.png +0 -0
- data/docs/images/wrench.png +0 -0
- data/docs/images/wrench_orange.png +0 -0
- data/docs/images/zoom.png +0 -0
- data/docs/index.html +132 -0
- data/docs/js/darkfish.js +84 -0
- data/docs/js/navigation.js +105 -0
- data/docs/js/navigation.js.gz +0 -0
- data/docs/js/search.js +110 -0
- data/docs/js/search_index.js +1 -0
- data/docs/js/search_index.js.gz +0 -0
- data/docs/js/searcher.js +229 -0
- data/docs/js/searcher.js.gz +0 -0
- data/docs/table_of_contents.html +608 -0
- data/lib/geometry.rb +236 -0
- data/lib/graph.rb +164 -0
- data/lib/numerical_integration.rb +147 -0
- data/lib/optimization.rb +144 -0
- data/lib/plotter.rb +96 -0
- data/lib/silicium/version.rb +3 -0
- data/lib/silicium.rb +5 -0
- data/lib/theory_of_probability.rb +227 -0
- data/silicium.gemspec +39 -0
- metadata +185 -0
data/lib/plotter.rb
ADDED
@@ -0,0 +1,96 @@
|
|
1
|
+
require 'silicium'
|
2
|
+
require 'chunky_png'
|
3
|
+
|
4
|
+
module Silicium
|
5
|
+
module Plotter
|
6
|
+
##
|
7
|
+
# Factory method to return a color value, based on the arguments given.
|
8
|
+
#
|
9
|
+
# @overload Color(r, g, b, a)
|
10
|
+
# @param (see ChunkyPNG::Color.rgba)
|
11
|
+
# @return [Integer] The rgba color value.
|
12
|
+
#
|
13
|
+
# @overload Color(r, g, b)
|
14
|
+
# @param (see ChunkyPNG::Color.rgb)
|
15
|
+
# @return [Integer] The rgb color value.
|
16
|
+
#
|
17
|
+
# @overload Color(hex_value, opacity = nil)
|
18
|
+
# @param (see ChunkyPNG::Color.from_hex)
|
19
|
+
# @return [Integer] The hex color value, with the opacity applied if one
|
20
|
+
# was given.
|
21
|
+
#
|
22
|
+
# @overload Color(color_name, opacity = nil)
|
23
|
+
# @param (see ChunkyPNG::Color.html_color)
|
24
|
+
# @return [Integer] The hex color value, with the opacity applied if one
|
25
|
+
# was given.
|
26
|
+
#
|
27
|
+
# @overload Color(color_value, opacity = nil)
|
28
|
+
# @param [Integer, :to_i] The color value.
|
29
|
+
# @return [Integer] The color value, with the opacity applied if one was
|
30
|
+
# given.
|
31
|
+
#
|
32
|
+
# @return [Integer] The determined color value as RGBA integer.
|
33
|
+
# @raise [ArgumentError] if the arguments weren't understood as a color.
|
34
|
+
def color(*args)
|
35
|
+
case args.length
|
36
|
+
when 1; ChunkyPNG::Color.parse(args.first)
|
37
|
+
when 2; (ChunkyPNG::Color.parse(args.first) & 0xffffff00) | args[1].to_i
|
38
|
+
when 3; ChunkyPNG::Color.rgb(*args)
|
39
|
+
when 4; ChunkyPNG::Color.rgba(*args)
|
40
|
+
else raise ArgumentError, "Don't know how to create a color from #{args.inspect}!"
|
41
|
+
end
|
42
|
+
end
|
43
|
+
##
|
44
|
+
# A class representing canvas for plotting bar charts and function graphs
|
45
|
+
class Image
|
46
|
+
##
|
47
|
+
# Creates a new plot with chosen +width+ and +height+ parameters
|
48
|
+
# with background colored +bg_color+
|
49
|
+
def initialize(width, height, bg_color = ChunkyPNG::Color::TRANSPARENT)
|
50
|
+
@image = ChunkyPNG::Image.new(width, height, bg_color)
|
51
|
+
end
|
52
|
+
|
53
|
+
def rectangle(x, y, width, height, color)
|
54
|
+
x_end = x + width - 1
|
55
|
+
y_end = y + height - 1
|
56
|
+
(x..x_end).each do |i|
|
57
|
+
(y..y_end).each do |j|
|
58
|
+
@image[i, j] = color
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
##
|
64
|
+
# Draws a bar chart in the plot using provided +bars+,
|
65
|
+
# each of them has width of +bar_width+ and colored +bars_color+
|
66
|
+
def bar_chart(bars, bar_width, bars_color = ChunkyPNG::Color('red @ 1.0'), axis_color = ChunkyPNG::Color::BLACK)
|
67
|
+
if bars.count * bar_width > @image.width
|
68
|
+
raise ArgumentError, 'Not enough big size of image to plot these number of bars'
|
69
|
+
end
|
70
|
+
|
71
|
+
padding = 5
|
72
|
+
# Values of x and y on borders of plot
|
73
|
+
minx = [bars.collect { |k, _| k }.min, 0].min
|
74
|
+
maxx = [bars.collect { |k, _| k }.max, 0].max
|
75
|
+
miny = [bars.collect { |_, v| v }.min, 0].min
|
76
|
+
maxy = [bars.collect { |_, v| v }.max, 0].max
|
77
|
+
dpux = Float((@image.width - 2 * padding)) / (maxx - minx + bar_width) # Dots per unit for X
|
78
|
+
dpuy = Float((@image.height - 2 * padding)) / (maxy - miny) # Dots per unit for Y
|
79
|
+
rectangle(padding, @image.height - padding - (miny.abs * dpuy).ceil, @image.width - 2 * padding, 1, axis_color) # Axis OX
|
80
|
+
rectangle(padding + (minx.abs * dpux).ceil, padding, 1, @image.height - 2 * padding, axis_color) # Axis OY
|
81
|
+
|
82
|
+
bars.each do |x, y| # Cycle drawing bars
|
83
|
+
rectangle(padding + ((x + minx.abs) * dpux).floor,
|
84
|
+
@image.height - padding - (([y, 0].max + miny.abs) * dpuy).ceil + (y.negative? ? 1 : 0),
|
85
|
+
bar_width, (y.abs * dpuy).ceil, bars_color)
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
##
|
90
|
+
# Exports plotted image to file +filename+
|
91
|
+
def export(filename)
|
92
|
+
@image.save(filename, :interlace => true)
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
data/lib/silicium.rb
ADDED
@@ -0,0 +1,227 @@
|
|
1
|
+
require 'silicium'
|
2
|
+
require 'plotter'
|
3
|
+
require 'chunky_png'
|
4
|
+
|
5
|
+
include Silicium::Plotter
|
6
|
+
module Silicium
|
7
|
+
|
8
|
+
module Combinatorics
|
9
|
+
|
10
|
+
def factorial(n)
|
11
|
+
res = (1..n).inject(:*) || 1
|
12
|
+
res
|
13
|
+
end
|
14
|
+
|
15
|
+
##
|
16
|
+
#Factorial for counting 3 parameters in one run
|
17
|
+
def fact(n, k)
|
18
|
+
res = [1,1,1]
|
19
|
+
if n > 1
|
20
|
+
fact_n_greater_1(n, k, res)
|
21
|
+
end
|
22
|
+
res
|
23
|
+
end
|
24
|
+
|
25
|
+
##
|
26
|
+
#Function C(n,k)
|
27
|
+
def combination(n, k)
|
28
|
+
f = fact(n, k)
|
29
|
+
if n < k or k <= 0
|
30
|
+
-1
|
31
|
+
else
|
32
|
+
f[0] / (f[2] * f[1])
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
##
|
37
|
+
#Function A(n,k)
|
38
|
+
def arrangement(n, k)
|
39
|
+
f = fact(n, k)
|
40
|
+
if n < k or k <= 0
|
41
|
+
-1
|
42
|
+
else
|
43
|
+
f[0] / f[1]
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
private
|
48
|
+
|
49
|
+
def fact_n_greater_1(n,k, res)
|
50
|
+
c = 1
|
51
|
+
for i in 2..n
|
52
|
+
c *= i
|
53
|
+
determining_i([i, n, k, c], res)
|
54
|
+
end
|
55
|
+
res[0] = c
|
56
|
+
end
|
57
|
+
|
58
|
+
def determining_i(arr, res)
|
59
|
+
if arr[0] == arr[1] - arr[2]
|
60
|
+
res[1] = arr[3]
|
61
|
+
end
|
62
|
+
if arr[0] == arr[2]
|
63
|
+
res[2] = arr[3]
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
end
|
68
|
+
|
69
|
+
module Dice
|
70
|
+
|
71
|
+
##
|
72
|
+
# Class represents a polyhedron
|
73
|
+
# csides - number or sides
|
74
|
+
# sides - array of sides(unusual for custom polyhedrons)
|
75
|
+
class Polyhedron
|
76
|
+
|
77
|
+
def csides
|
78
|
+
@csides
|
79
|
+
end
|
80
|
+
|
81
|
+
def sides
|
82
|
+
@sides
|
83
|
+
end
|
84
|
+
|
85
|
+
def to_s
|
86
|
+
sides
|
87
|
+
end
|
88
|
+
|
89
|
+
##
|
90
|
+
# initializing polyhedron's variables
|
91
|
+
# there are two ways how to create it
|
92
|
+
# 1: by number (6) - creates polyhedron with 6 sides [1,2,3,4,5,6]
|
93
|
+
# 2: by array ([1,3,5]) - creates polyhedron with 3 sides [1,3,5]
|
94
|
+
def initialize(sides)
|
95
|
+
@csides = 1
|
96
|
+
@sides = [1]
|
97
|
+
if sides.class == Integer and sides > 1
|
98
|
+
@csides = sides
|
99
|
+
(2..sides).each {|i| @sides << i}
|
100
|
+
elsif sides.class == Array and sides.size > 0
|
101
|
+
@csides = sides.size
|
102
|
+
@sides = sides.sort
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
##
|
107
|
+
# ability to throw a polyhedron
|
108
|
+
def throw
|
109
|
+
@sides[rand(0..@csides-1)]
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
##
|
114
|
+
# Class represents a PolyhedronsSet
|
115
|
+
# percentage - hash with chances of getting definite score
|
116
|
+
class PolyhedronSet
|
117
|
+
|
118
|
+
def initialize(arr)
|
119
|
+
@pons = parse_pons(arr).sort_by{|item| -item.csides}
|
120
|
+
@percentage = count_chance_sum
|
121
|
+
end
|
122
|
+
|
123
|
+
def percentage
|
124
|
+
@percentage
|
125
|
+
end
|
126
|
+
|
127
|
+
##
|
128
|
+
# returns array of polyhedrons
|
129
|
+
def to_s
|
130
|
+
res = @pons.map {|item| item.to_s}
|
131
|
+
res
|
132
|
+
end
|
133
|
+
|
134
|
+
##
|
135
|
+
# ability to throw a polyhedron's set using hash of chances
|
136
|
+
def throw
|
137
|
+
sum = 0
|
138
|
+
r = rand
|
139
|
+
@percentage.each do |item|
|
140
|
+
sum += item[1]
|
141
|
+
if sum > r
|
142
|
+
item[0]
|
143
|
+
break
|
144
|
+
end
|
145
|
+
end
|
146
|
+
end
|
147
|
+
|
148
|
+
##
|
149
|
+
# creating a graph representing chances of getting points
|
150
|
+
def make_graph_by_plotter(x = percentage.size * 10, y = percentage.size * 10)
|
151
|
+
filename = 'tmp/percentage.png'
|
152
|
+
File.delete(filename) if File.exist?(filename)
|
153
|
+
plotter = Image.new(x, y)
|
154
|
+
plotter.bar_chart(percentage, 1, color('red @ 1.0'))
|
155
|
+
plotter.export(filename)
|
156
|
+
end
|
157
|
+
|
158
|
+
private
|
159
|
+
|
160
|
+
def parse_pons(arr)
|
161
|
+
res = []
|
162
|
+
arr.each do |item|
|
163
|
+
res << Polyhedron.new(item)
|
164
|
+
end
|
165
|
+
res
|
166
|
+
end
|
167
|
+
|
168
|
+
def count_chance_sum_chances_step(arr1, arr2, arr3, h)
|
169
|
+
n = 0
|
170
|
+
m = 0
|
171
|
+
sum = 0
|
172
|
+
q = Queue.new
|
173
|
+
h1 = Hash.new
|
174
|
+
while m < arr2.size
|
175
|
+
sum = m_0([sum, n, m], q, h, arr1)
|
176
|
+
if q.size > arr2.size or m > 0
|
177
|
+
sum -= q.pop
|
178
|
+
end
|
179
|
+
h1[arr1[n] + arr2[m]] = sum
|
180
|
+
arr3 << (arr1[n] + arr2[m])
|
181
|
+
nmarr = n_less_arr1_size(n, arr1, m)
|
182
|
+
n, m = nmarr[0], nmarr[1]
|
183
|
+
end
|
184
|
+
h1
|
185
|
+
end
|
186
|
+
|
187
|
+
def m_0(arr, q, h, arr1)
|
188
|
+
if arr[2] == 0
|
189
|
+
a = h[arr1[arr[1]]]
|
190
|
+
q << a
|
191
|
+
arr[0] += a
|
192
|
+
end
|
193
|
+
arr[0]
|
194
|
+
end
|
195
|
+
|
196
|
+
def n_less_arr1_size(n, arr1, m)
|
197
|
+
if n < arr1.size - 1
|
198
|
+
n += 1
|
199
|
+
else
|
200
|
+
m += 1
|
201
|
+
end
|
202
|
+
[n,m]
|
203
|
+
end
|
204
|
+
|
205
|
+
def count_chance_sum
|
206
|
+
h = Hash.new
|
207
|
+
@pons[0].sides.each do |item|
|
208
|
+
h[item] = 1
|
209
|
+
end
|
210
|
+
arr3 = @pons[0].sides
|
211
|
+
for i in 1..@pons.size - 1
|
212
|
+
arr1 = arr3
|
213
|
+
arr3 = Array.new
|
214
|
+
arr2 = @pons[i].sides
|
215
|
+
h1 = count_chance_sum_chances_step(arr1, arr2, arr3, h)
|
216
|
+
h = h1
|
217
|
+
h1 = Hash.new
|
218
|
+
end
|
219
|
+
res = Hash.new
|
220
|
+
fchance = @pons.inject(1) { |mult, item| mult * item.csides }
|
221
|
+
arr3.each {|item| res[item] = Float(h[item]) / fchance}
|
222
|
+
res
|
223
|
+
end
|
224
|
+
|
225
|
+
end
|
226
|
+
end
|
227
|
+
end
|
data/silicium.gemspec
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
lib = File.expand_path("lib", __dir__)
|
2
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
3
|
+
require "silicium/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |spec|
|
6
|
+
spec.name = "silicium"
|
7
|
+
spec.version = Silicium::VERSION
|
8
|
+
spec.authors = ["mmcs-ruby"]
|
9
|
+
spec.email = ["poganesyan@sfedu.ru"]
|
10
|
+
|
11
|
+
spec.summary = %q{Ruby math library made as exercise by MMCS students .}
|
12
|
+
spec.description = %q{Long list of applied functions}
|
13
|
+
# spec.homepage = "TODO: Put your gem's website or public repo URL here."
|
14
|
+
spec.license = "MIT"
|
15
|
+
|
16
|
+
=begin
|
17
|
+
|
18
|
+
spec.metadata["allowed_push_host"] = "TODO: Set to 'http://mygemserver.com'"
|
19
|
+
|
20
|
+
spec.metadata["homepage_uri"] = spec.homepage
|
21
|
+
|
22
|
+
spec.metadata["changelog_uri"] = "TODO: Put your gem's CHANGELOG.md URL here."
|
23
|
+
=end
|
24
|
+
spec.metadata["source_code_uri"] = 'https://github.com/mmcs-ruby/silicium'
|
25
|
+
# Specify which files should be added to the gem when it is released.
|
26
|
+
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
27
|
+
spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
|
28
|
+
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
29
|
+
end
|
30
|
+
spec.bindir = "exe"
|
31
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
32
|
+
spec.require_paths = ["lib"]
|
33
|
+
|
34
|
+
spec.add_development_dependency "bundler", "~> 2.0"
|
35
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
36
|
+
spec.add_development_dependency "minitest", "~> 5.0"
|
37
|
+
spec.add_development_dependency 'simplecov'
|
38
|
+
|
39
|
+
end
|
metadata
ADDED
@@ -0,0 +1,185 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: silicium
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.2
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- mmcs-ruby
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2019-10-31 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: '2.0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '2.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: minitest
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '5.0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '5.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: simplecov
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
description: Long list of applied functions
|
70
|
+
email:
|
71
|
+
- poganesyan@sfedu.ru
|
72
|
+
executables: []
|
73
|
+
extensions: []
|
74
|
+
extra_rdoc_files: []
|
75
|
+
files:
|
76
|
+
- ".codeclimate.yml"
|
77
|
+
- ".gitignore"
|
78
|
+
- ".travis.yml"
|
79
|
+
- CODE_OF_CONDUCT.md
|
80
|
+
- Gemfile
|
81
|
+
- LICENSE.txt
|
82
|
+
- Makefile
|
83
|
+
- README.md
|
84
|
+
- Rakefile
|
85
|
+
- bin/console
|
86
|
+
- bin/setup
|
87
|
+
- docs/Object.html
|
88
|
+
- docs/README_md.html
|
89
|
+
- docs/Silicium.html
|
90
|
+
- docs/Silicium/Combinatorics.html
|
91
|
+
- docs/Silicium/Dice.html
|
92
|
+
- docs/Silicium/Dice/Polyhedron.html
|
93
|
+
- docs/Silicium/Dice/PolyhedronSet.html
|
94
|
+
- docs/Silicium/Error.html
|
95
|
+
- docs/Silicium/Geometry.html
|
96
|
+
- docs/Silicium/Geometry/Line2dCanon.html
|
97
|
+
- docs/Silicium/Geometry/VariablesOrderException.html
|
98
|
+
- docs/Silicium/Graphs.html
|
99
|
+
- docs/Silicium/Graphs/GraphError.html
|
100
|
+
- docs/Silicium/Graphs/OrientedGraph.html
|
101
|
+
- docs/Silicium/Graphs/UnorientedGraph.html
|
102
|
+
- docs/Silicium/IntegralDoesntExistError.html
|
103
|
+
- docs/Silicium/NumericalIntegration.html
|
104
|
+
- docs/Silicium/Optimization.html
|
105
|
+
- docs/Silicium/Plotter.html
|
106
|
+
- docs/Silicium/Plotter/Image.html
|
107
|
+
- docs/created.rid
|
108
|
+
- docs/css/fonts.css
|
109
|
+
- docs/css/rdoc.css
|
110
|
+
- docs/fonts/Lato-Light.ttf
|
111
|
+
- docs/fonts/Lato-LightItalic.ttf
|
112
|
+
- docs/fonts/Lato-Regular.ttf
|
113
|
+
- docs/fonts/Lato-RegularItalic.ttf
|
114
|
+
- docs/fonts/SourceCodePro-Bold.ttf
|
115
|
+
- docs/fonts/SourceCodePro-Regular.ttf
|
116
|
+
- docs/images/add.png
|
117
|
+
- docs/images/arrow_up.png
|
118
|
+
- docs/images/brick.png
|
119
|
+
- docs/images/brick_link.png
|
120
|
+
- docs/images/bug.png
|
121
|
+
- docs/images/bullet_black.png
|
122
|
+
- docs/images/bullet_toggle_minus.png
|
123
|
+
- docs/images/bullet_toggle_plus.png
|
124
|
+
- docs/images/date.png
|
125
|
+
- docs/images/delete.png
|
126
|
+
- docs/images/find.png
|
127
|
+
- docs/images/loadingAnimation.gif
|
128
|
+
- docs/images/macFFBgHack.png
|
129
|
+
- docs/images/package.png
|
130
|
+
- docs/images/page_green.png
|
131
|
+
- docs/images/page_white_text.png
|
132
|
+
- docs/images/page_white_width.png
|
133
|
+
- docs/images/plugin.png
|
134
|
+
- docs/images/ruby.png
|
135
|
+
- docs/images/tag_blue.png
|
136
|
+
- docs/images/tag_green.png
|
137
|
+
- docs/images/transparent.png
|
138
|
+
- docs/images/wrench.png
|
139
|
+
- docs/images/wrench_orange.png
|
140
|
+
- docs/images/zoom.png
|
141
|
+
- docs/index.html
|
142
|
+
- docs/js/darkfish.js
|
143
|
+
- docs/js/navigation.js
|
144
|
+
- docs/js/navigation.js.gz
|
145
|
+
- docs/js/search.js
|
146
|
+
- docs/js/search_index.js
|
147
|
+
- docs/js/search_index.js.gz
|
148
|
+
- docs/js/searcher.js
|
149
|
+
- docs/js/searcher.js.gz
|
150
|
+
- docs/table_of_contents.html
|
151
|
+
- lib/geometry.rb
|
152
|
+
- lib/graph.rb
|
153
|
+
- lib/numerical_integration.rb
|
154
|
+
- lib/optimization.rb
|
155
|
+
- lib/plotter.rb
|
156
|
+
- lib/silicium.rb
|
157
|
+
- lib/silicium/version.rb
|
158
|
+
- lib/theory_of_probability.rb
|
159
|
+
- silicium.gemspec
|
160
|
+
homepage:
|
161
|
+
licenses:
|
162
|
+
- MIT
|
163
|
+
metadata:
|
164
|
+
source_code_uri: https://github.com/mmcs-ruby/silicium
|
165
|
+
post_install_message:
|
166
|
+
rdoc_options: []
|
167
|
+
require_paths:
|
168
|
+
- lib
|
169
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - ">="
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0'
|
174
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
175
|
+
requirements:
|
176
|
+
- - ">="
|
177
|
+
- !ruby/object:Gem::Version
|
178
|
+
version: '0'
|
179
|
+
requirements: []
|
180
|
+
rubyforge_project:
|
181
|
+
rubygems_version: 2.7.7
|
182
|
+
signing_key:
|
183
|
+
specification_version: 4
|
184
|
+
summary: Ruby math library made as exercise by MMCS students .
|
185
|
+
test_files: []
|