algebra 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +53 -0
- data/.travis.yml +7 -0
- data/CODE_OF_CONDUCT.md +49 -0
- data/Gemfile +7 -0
- data/Gemfile.lock +28 -0
- data/LICENSE.txt +21 -0
- data/README-ja.txt +60 -0
- data/README.md +61 -0
- data/Rakefile +43 -0
- data/algebra.gemspec +33 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/doc-ja/README-ja.html +69 -0
- data/doc-ja/README-ja.rd +60 -0
- data/doc-ja/README.html +0 -0
- data/doc-ja/README.rd +0 -0
- data/doc-ja/algebra-ja.html +66 -0
- data/doc-ja/algebra-ja.rd +60 -0
- data/doc-ja/algebraic-equation-ja.html +36 -0
- data/doc-ja/algebraic-equation-ja.rd +26 -0
- data/doc-ja/algebraic-extension-field-ja.html +122 -0
- data/doc-ja/algebraic-extension-field-ja.rd +118 -0
- data/doc-ja/algebraic-parser-ja.html +87 -0
- data/doc-ja/algebraic-parser-ja.rd +95 -0
- data/doc-ja/changes.html +161 -0
- data/doc-ja/changes.rd +119 -0
- data/doc-ja/elementary-divisor-ja.html +56 -0
- data/doc-ja/elementary-divisor-ja.rd +45 -0
- data/doc-ja/euclidian-ring-ja.html +78 -0
- data/doc-ja/euclidian-ring-ja.rd +69 -0
- data/doc-ja/finite-group-ja.html +285 -0
- data/doc-ja/finite-group-ja.rd +276 -0
- data/doc-ja/finite-map-ja.html +224 -0
- data/doc-ja/finite-map-ja.rd +227 -0
- data/doc-ja/finite-set-ja.html +393 -0
- data/doc-ja/finite-set-ja.rd +408 -0
- data/doc-ja/index-ja.html +113 -0
- data/doc-ja/index-ja.rd +112 -0
- data/doc-ja/jordan-form-ja.html +106 -0
- data/doc-ja/jordan-form-ja.rd +99 -0
- data/doc-ja/localized-ring-ja.html +121 -0
- data/doc-ja/localized-ring-ja.rd +131 -0
- data/doc-ja/m-polynomial-ja.html +542 -0
- data/doc-ja/m-polynomial-ja.rd +596 -0
- data/doc-ja/matrix-algebra-ja.html +686 -0
- data/doc-ja/matrix-algebra-ja.rd +727 -0
- data/doc-ja/matrix-algebra-triplet-ja.html +124 -0
- data/doc-ja/matrix-algebra-triplet-ja.rd +129 -0
- data/doc-ja/permutation-group-ja.html +159 -0
- data/doc-ja/permutation-group-ja.rd +151 -0
- data/doc-ja/polynomial-converter-ja.html +64 -0
- data/doc-ja/polynomial-converter-ja.rd +54 -0
- data/doc-ja/polynomial-ja.html +446 -0
- data/doc-ja/polynomial-ja.rd +473 -0
- data/doc-ja/residue-class-ring-ja.html +112 -0
- data/doc-ja/residue-class-ring-ja.rd +113 -0
- data/doc-ja/sample-algebraic-equation01.rb.v.rd +11 -0
- data/doc-ja/sample-algebraic-equation02.rb.v.rd +11 -0
- data/doc-ja/sample-algebraic-root01.rb.v.rd +20 -0
- data/doc-ja/sample-algebraicfield01.rb.v.rd +26 -0
- data/doc-ja/sample-algebraicfield02.rb.v.rd +15 -0
- data/doc-ja/sample-cayleyhamilton01.rb.v.rd +14 -0
- data/doc-ja/sample-diagonalization01.rb.v.rd +48 -0
- data/doc-ja/sample-divmod01.rb.v.rd +17 -0
- data/doc-ja/sample-elementary-divisor01.rb.v.rd +48 -0
- data/doc-ja/sample-factorize01.rb.v.rd +11 -0
- data/doc-ja/sample-factorize02.rb.v.rd +13 -0
- data/doc-ja/sample-factorize03.rb.v.rd +14 -0
- data/doc-ja/sample-factorize04.rb.v.rd +14 -0
- data/doc-ja/sample-factorize05.rb.v.rd +53 -0
- data/doc-ja/sample-galois-group01.rb.v.rd +27 -0
- data/doc-ja/sample-gaussian-elimination01.rb.v.rd +19 -0
- data/doc-ja/sample-geometry01.rb.v.rd +33 -0
- data/doc-ja/sample-geometry02.rb.v.rd +34 -0
- data/doc-ja/sample-geometry03.rb.v.rd +45 -0
- data/doc-ja/sample-geometry04.rb.v.rd +33 -0
- data/doc-ja/sample-geometry07.rb.v.rd +62 -0
- data/doc-ja/sample-groebner01.rb.v.rd +13 -0
- data/doc-ja/sample-groebner02.rb.v.rd +18 -0
- data/doc-ja/sample-groebner03.rb.v.rd +19 -0
- data/doc-ja/sample-group01.rb.v.rd +21 -0
- data/doc-ja/sample-jordan-form01.rb.v.rd +56 -0
- data/doc-ja/sample-jordanform01.rb.v.rd +55 -0
- data/doc-ja/sample-lagrange-multiplier01.rb.v.rd +35 -0
- data/doc-ja/sample-m-factorize01.rb.v.rd +15 -0
- data/doc-ja/sample-m-factorize02.rb.v.rd +12 -0
- data/doc-ja/sample-m-polynomial01.rb.v.rd +10 -0
- data/doc-ja/sample-map01.rb.v.rd +9 -0
- data/doc-ja/sample-polynomial01.rb.v.rd +9 -0
- data/doc-ja/sample-polynomial02.rb.v.rd +11 -0
- data/doc-ja/sample-primefield01.rb.v.rd +13 -0
- data/doc-ja/sample-quotientfield01.rb.v.rd +11 -0
- data/doc-ja/sample-quotientfield02.rb.v.rd +18 -0
- data/doc-ja/sample-quotientfield03.rb.v.rd +16 -0
- data/doc-ja/sample-quotientfield04.rb.v.rd +16 -0
- data/doc-ja/sample-set01.rb.v.rd +18 -0
- data/doc-ja/sample-splitting-field01.rb.v.rd +19 -0
- data/doc-ja/samples-ja.html +885 -0
- data/doc-ja/samples-ja.rd +221 -0
- data/doc-ja/style.css +85 -0
- data/doc-ja/todo.html +20 -0
- data/doc-ja/todo.rd +9 -0
- data/lib/algebra.rb +36 -0
- data/lib/algebra/algebraic-equation.rb +56 -0
- data/lib/algebra/algebraic-extension-field.rb +135 -0
- data/lib/algebra/algebraic-parser.rb +160 -0
- data/lib/algebra/algebraic-system.rb +224 -0
- data/lib/algebra/annihilate.rb +52 -0
- data/lib/algebra/array-supplement.rb +53 -0
- data/lib/algebra/auto-require.rb +84 -0
- data/lib/algebra/chinese-rem-th.rb +135 -0
- data/lib/algebra/combinatorial.rb +145 -0
- data/lib/algebra/elementary-divisor.rb +193 -0
- data/lib/algebra/euclidian-ring.rb +161 -0
- data/lib/algebra/factors.rb +305 -0
- data/lib/algebra/finite-group.rb +374 -0
- data/lib/algebra/finite-map.rb +201 -0
- data/lib/algebra/finite-set.rb +456 -0
- data/lib/algebra/galois-group.rb +129 -0
- data/lib/algebra/gaussian-elimination.rb +385 -0
- data/lib/algebra/groebner-basis-coeff.rb +228 -0
- data/lib/algebra/groebner-basis.rb +197 -0
- data/lib/algebra/import-module-single-thread.rb +86 -0
- data/lib/algebra/import-module.rb +491 -0
- data/lib/algebra/jordan-form.rb +114 -0
- data/lib/algebra/linear-algebra.rb +143 -0
- data/lib/algebra/localized-ring.rb +294 -0
- data/lib/algebra/m-index.rb +282 -0
- data/lib/algebra/m-polynomial-factor-int.rb +186 -0
- data/lib/algebra/m-polynomial-factor-zp.rb +114 -0
- data/lib/algebra/m-polynomial-factor.rb +315 -0
- data/lib/algebra/m-polynomial-gcd.rb +40 -0
- data/lib/algebra/m-polynomial.rb +875 -0
- data/lib/algebra/matrix-algebra-triplet.rb +292 -0
- data/lib/algebra/matrix-algebra.rb +929 -0
- data/lib/algebra/numeric-supplement.rb +123 -0
- data/lib/algebra/permutation-group.rb +257 -0
- data/lib/algebra/polynomial-converter.rb +193 -0
- data/lib/algebra/polynomial-factor-alg.rb +148 -0
- data/lib/algebra/polynomial-factor-int.rb +252 -0
- data/lib/algebra/polynomial-factor-zp.rb +165 -0
- data/lib/algebra/polynomial-factor.rb +140 -0
- data/lib/algebra/polynomial.rb +592 -0
- data/lib/algebra/powers.rb +31 -0
- data/lib/algebra/prime-gen.rb +32 -0
- data/lib/algebra/rational.rb +81 -0
- data/lib/algebra/residue-class-ring.rb +219 -0
- data/lib/algebra/sets-system.rb +43 -0
- data/lib/algebra/splitting-field.rb +103 -0
- data/lib/algebra/version.rb +3 -0
- data/sample/Makefile +10 -0
- data/sample/do-testscripts.rb +100 -0
- data/sample/sample-algebraic-equation01.rb +6 -0
- data/sample/sample-algebraic-equation02.rb +6 -0
- data/sample/sample-algebraic-root01.rb +15 -0
- data/sample/sample-algebraicfield01.rb +21 -0
- data/sample/sample-algebraicfield02.rb +10 -0
- data/sample/sample-cayleyhamilton01.rb +9 -0
- data/sample/sample-diagonalization01.rb +43 -0
- data/sample/sample-divmod01.rb +12 -0
- data/sample/sample-elementary-divisor01.rb +43 -0
- data/sample/sample-factorize01.rb +6 -0
- data/sample/sample-factorize02.rb +8 -0
- data/sample/sample-factorize03.rb +9 -0
- data/sample/sample-factorize04.rb +9 -0
- data/sample/sample-factorize05.rb +48 -0
- data/sample/sample-galois-group01.rb +22 -0
- data/sample/sample-gaussian-elimination01.rb +14 -0
- data/sample/sample-geometry01.rb +28 -0
- data/sample/sample-geometry02.rb +29 -0
- data/sample/sample-geometry03.rb +40 -0
- data/sample/sample-geometry04.rb +28 -0
- data/sample/sample-geometry07.rb +58 -0
- data/sample/sample-groebner01.rb +8 -0
- data/sample/sample-groebner02.rb +13 -0
- data/sample/sample-groebner03.rb +14 -0
- data/sample/sample-group01.rb +16 -0
- data/sample/sample-jordan-form01.rb +51 -0
- data/sample/sample-lagrange-multiplier01.rb +30 -0
- data/sample/sample-m-factorize01.rb +10 -0
- data/sample/sample-m-factorize02.rb +7 -0
- data/sample/sample-m-polynomial01.rb +5 -0
- data/sample/sample-map01.rb +4 -0
- data/sample/sample-polynomial01.rb +4 -0
- data/sample/sample-polynomial02.rb +6 -0
- data/sample/sample-primefield01.rb +8 -0
- data/sample/sample-quotientfield01.rb +6 -0
- data/sample/sample-quotientfield02.rb +13 -0
- data/sample/sample-quotientfield03.rb +11 -0
- data/sample/sample-quotientfield04.rb +11 -0
- data/sample/sample-set01.rb +13 -0
- data/sample/sample-splitting-field01.rb +14 -0
- data/sample/test-00-cayley-hamilton.rb +76 -0
- data/sample/test-00-groebner-basis.rb +274 -0
- data/sample/test-00-polynomial-factor-alg.rb +89 -0
- data/sample/test-00.list +4 -0
- data/sample/time-trial.rb +65 -0
- metadata +373 -0
@@ -0,0 +1,274 @@
|
|
1
|
+
#!/usr/local/bin/ruby
|
2
|
+
#
|
3
|
+
# TEST SCRIPT FOR groebner-basis.rb
|
4
|
+
#
|
5
|
+
# 2001.04.08 Version 1.05
|
6
|
+
|
7
|
+
$totS, $totK = 0, 0
|
8
|
+
|
9
|
+
#$lp = "~/ruby/poly"
|
10
|
+
#$lp = "~/ruby/poly-2001-0202"
|
11
|
+
#$lp = "~/ruby/poly-2001-0326"
|
12
|
+
|
13
|
+
if $lp
|
14
|
+
$LOAD_PATH.unshift $lp
|
15
|
+
require "algebra/polynomialm"
|
16
|
+
require "algebra/gbasem"
|
17
|
+
end
|
18
|
+
$LOAD_PATH.push File.dirname($0)
|
19
|
+
|
20
|
+
require "algebra"
|
21
|
+
#require "algebra/m-polynomial"
|
22
|
+
require "algebra/algebraic-parser"
|
23
|
+
require "time-trial"
|
24
|
+
include Algebra
|
25
|
+
|
26
|
+
def gb(k, f, ord = :lex, sw = false)
|
27
|
+
f0 = f.first
|
28
|
+
print "Basis of: "
|
29
|
+
sw ? puts('', *f.to_s) : puts(f.map { |v| v.to_s }.join(', '))
|
30
|
+
gbase = b = nil
|
31
|
+
$stot.start {
|
32
|
+
a = Time.now
|
33
|
+
k.with_ord(:lex, nil, f) do
|
34
|
+
gbase = Groebner.basis(f)
|
35
|
+
end
|
36
|
+
b = Time.now - a
|
37
|
+
}
|
38
|
+
print "Is: "
|
39
|
+
sw ? puts('', *gbase.to_s) : puts(gbase.map { |v| v.to_s }.join(", "))
|
40
|
+
puts "(#{b} seconds.)"
|
41
|
+
true
|
42
|
+
end
|
43
|
+
|
44
|
+
def mkarray(s, mod = 0, ord = :lex)
|
45
|
+
if mod < 0
|
46
|
+
require "mathn"
|
47
|
+
require "algebra/rational"
|
48
|
+
puts 'require "mathn"'
|
49
|
+
fp = Rational
|
50
|
+
elsif mod > 0
|
51
|
+
puts "modulo #{mod}"
|
52
|
+
require "algebra/residue-class-ring"
|
53
|
+
fp = ResidueClassRing(Integer, mod)
|
54
|
+
else
|
55
|
+
puts "modulo #{mod}"
|
56
|
+
require "algebra/rational"
|
57
|
+
fp = Rational
|
58
|
+
end
|
59
|
+
k = MPolynomial(fp)
|
60
|
+
if $variables
|
61
|
+
k.variables = $variables
|
62
|
+
$variables = nil
|
63
|
+
end
|
64
|
+
strs = s.collect{|str| str.split(/\s*,\s*/)}.flatten
|
65
|
+
sf = strs.collect{|x| AlgebraicParser.eval(x, k)}
|
66
|
+
kf = strs.collect{|x| PolynomialM(x)} if $lp
|
67
|
+
$lp ? [k, kf, sf, fp] : [k, sf, fp]
|
68
|
+
end
|
69
|
+
|
70
|
+
def gb_ks(s, mod = 0, ord = :lex)
|
71
|
+
k, kf, sf, fp = mkarray(s, mod, ord)
|
72
|
+
|
73
|
+
stime = sg = ktime = kg = nil
|
74
|
+
|
75
|
+
$stot.start {
|
76
|
+
stime = Time.now
|
77
|
+
k.with_ord(ord, nil, sf) do
|
78
|
+
sg = Groebner.basis(sf)
|
79
|
+
end
|
80
|
+
stime = Time.now - stime
|
81
|
+
}
|
82
|
+
|
83
|
+
$ktot.start {
|
84
|
+
ktime = Time.now
|
85
|
+
kg = mod > 0 ? GBase.getGBaseZp(kf, mod) : GBase.getGBase(kf)
|
86
|
+
ktime = Time.now - ktime
|
87
|
+
}
|
88
|
+
|
89
|
+
sg.rsort!
|
90
|
+
puts(*sg)
|
91
|
+
|
92
|
+
skg = kg.collect{|t| AlgebraicParser.eval(t.to_s, k)}
|
93
|
+
|
94
|
+
skg.rsort!
|
95
|
+
if skg == sg
|
96
|
+
puts "Coinside. (#{stime}, #{ktime}) =-=-=-=-=-=-=-=-=-=-=-=-"
|
97
|
+
true
|
98
|
+
else
|
99
|
+
puts "Defferent. (#{stime}, #{ktime}) !!!!!!!!!!!!!!!!!!!!"
|
100
|
+
puts kg
|
101
|
+
false
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
def gbks(s, mod = 0, ord = :lex)
|
106
|
+
print s.inspect + " => "
|
107
|
+
if $lp
|
108
|
+
gb_ks(s, mod, ord)
|
109
|
+
else
|
110
|
+
k, sf, fp = mkarray(s, mod, ord)
|
111
|
+
gb(k, sf, ord, true)
|
112
|
+
# gb(sf)
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
|
117
|
+
def test_gb(n, m)
|
118
|
+
case n
|
119
|
+
when 0
|
120
|
+
gbks(["x + y - 1", "x - y - 1"], m)
|
121
|
+
when 1
|
122
|
+
gbks(["3x^2*y+7y", "4x*y^2-5x"], m)
|
123
|
+
when 2
|
124
|
+
# MPolynomial.set_ord(:grlex)
|
125
|
+
Monomial.setTermOrder("deglex") if $lp
|
126
|
+
# "lex"(default), "deglex", "degrevlex"
|
127
|
+
gbks(["x**3 - 2*x*y", "x**2*y - 2*y**2 + x", "-x**2",
|
128
|
+
"-2*x*y", "-2*y**2 + x"], m, :grlex)
|
129
|
+
when 3
|
130
|
+
puts "It takes 8 minuites"
|
131
|
+
# MPolynomial.set_ord(:lex)
|
132
|
+
Monomial.setTermOrder("lex") if $lp
|
133
|
+
gbks(["x**3 * y**2 - x**2 * y**3 + x", "3 * x**4 * y + y**2"], m, :lex)
|
134
|
+
when 4
|
135
|
+
gbks(["x**2 + y**2 + z**2 -1, x**2 + z**2 - y, x - z"], m)
|
136
|
+
when 5
|
137
|
+
$variables=["t","x","y","z"]
|
138
|
+
Monomial.setVarOrder(["t","x","y","z"]) if $lp
|
139
|
+
gbks(["t**4 - x, t**3 - y, t**2 - z"], m)
|
140
|
+
when 6 #p145
|
141
|
+
puts "It takes 3 minuites"
|
142
|
+
$variables=["t","u","x","y","z"]
|
143
|
+
# MPolynomial.set_ord(:lex)
|
144
|
+
Monomial.setVarOrder(["t","u","x","y","z"]) if $lp
|
145
|
+
Monomial.setTermOrder("lex") if $lp
|
146
|
+
gbks(["x - (t+u), y - (t**2 + 2*t*u), z - (t**3 + 3 * t**2 * u)"], m, :lex)
|
147
|
+
when 7 #p136
|
148
|
+
$variables=["x","y","z", "w"]
|
149
|
+
# MPolynomial.set_ord(:lex)
|
150
|
+
Monomial.setVarOrder(["x","y","z","w"]) if $lp
|
151
|
+
Monomial.setTermOrder("lex") if $lp
|
152
|
+
gbks(["3*x-6*y-2*z, 2*x-4*y+4*w, x-2*y-z-w"], m, :lex)
|
153
|
+
when 8
|
154
|
+
$variables=["x","y","z", "w"]
|
155
|
+
# MPolynomial.set_ord(:lex)
|
156
|
+
Monomial.setVarOrder(["x","y","z","w"]) if $lp
|
157
|
+
Monomial.setTermOrder("lex") if $lp
|
158
|
+
gbks(["3x^2*y+7y","4x*y^2-5x"], m, :lex)
|
159
|
+
when 9
|
160
|
+
puts "It takes long time"
|
161
|
+
# MPolynomial.set_ord(:lex)
|
162
|
+
Monomial.setTermOrder("lex") if $lp
|
163
|
+
gbks(["x**3 * y**2 - x**2 * y**3 + x", "3 * x**4 * y + y**2"], m, :lex)
|
164
|
+
when 10 #p141
|
165
|
+
puts "It takes very long time"
|
166
|
+
$variables=["w", "x", "y", "z"]
|
167
|
+
# MPolynomial.set_ord(:lex)
|
168
|
+
Monomial.setVarOrder(["w", "x", "y", "z"]) if $lp
|
169
|
+
Monomial.setTermOrder("lex") if $lp
|
170
|
+
gbks(["3x**2 + 2yz - 2xw","2xz - 2yw","2xy - 2z - 2zw", "x**2 + y**2 + z**2 - 1"], m, :lex)
|
171
|
+
when 11
|
172
|
+
gbks(["x**2 + y**2 + z**2 -1, x**2 + z**2 - y, x - z"], m)
|
173
|
+
when 12
|
174
|
+
#
|
175
|
+
gbks(["2x+3y+3","x+5y+2"], m)
|
176
|
+
when 13
|
177
|
+
puts "raise error!"
|
178
|
+
gbks(["2x+3y+3","x+5y+2","x*y-1"], m)
|
179
|
+
when 14
|
180
|
+
gbks(["3x^2*y+7y","4x*y^2-5x"], m)
|
181
|
+
when 15
|
182
|
+
$variables=(["y","x"])
|
183
|
+
# MPolynomial.set_ord(:lex)
|
184
|
+
Monomial.setVarOrder(["y","x"]) if $lp
|
185
|
+
Monomial.setTermOrder("lex") if $lp
|
186
|
+
|
187
|
+
gbks(["2x*y-x,3y-x^2"], m, :lex)
|
188
|
+
when 16
|
189
|
+
Monomial.setTermOrder("deglex") if $lp
|
190
|
+
# MPolynomial.set_ord(:grlex)
|
191
|
+
|
192
|
+
gbks(["3x^2y-3y*z+y", "5x^2z-8z^2"], m, :grlex)
|
193
|
+
when 17
|
194
|
+
Monomial.setTermOrder("lex") if $lp
|
195
|
+
# MPolynomial.set_ord(:lex)
|
196
|
+
|
197
|
+
gbks(["6x^2+y^2", "10x^2y+2x*y"], m, :lex)
|
198
|
+
else
|
199
|
+
puts "All tests succeed."
|
200
|
+
puts
|
201
|
+
nil
|
202
|
+
end
|
203
|
+
end
|
204
|
+
|
205
|
+
$stot, $ktot = TimeTrial["stot, ktot"]
|
206
|
+
|
207
|
+
if false
|
208
|
+
$atime, $btime = TimeTrial["atime, btime"]
|
209
|
+
|
210
|
+
$sbas, $smin, $sred, $sdiv, $sspa, $slt, $smul, $llc =
|
211
|
+
TimeTrial["sbas, smin, sred, sdiv, sspa, slt, smul, llc"]
|
212
|
+
|
213
|
+
$kbas, $kmin, $kred, $kdiv, $kspa, $klt, $kmul =
|
214
|
+
TimeTrial["kbas, kmin, kred, kdiv, kspa, klt, ksml"]
|
215
|
+
end
|
216
|
+
|
217
|
+
m = ARGV.shift
|
218
|
+
m = Integer(m) if m
|
219
|
+
|
220
|
+
if m
|
221
|
+
m = Integer(m)
|
222
|
+
if m < 0
|
223
|
+
m = -1
|
224
|
+
end
|
225
|
+
else
|
226
|
+
m = 0
|
227
|
+
end
|
228
|
+
|
229
|
+
k = ARGV.shift
|
230
|
+
k = Integer(k) if k
|
231
|
+
|
232
|
+
if k
|
233
|
+
test_gb(k, m)
|
234
|
+
else
|
235
|
+
n = -1
|
236
|
+
loop do
|
237
|
+
n += 1
|
238
|
+
puts "======================= test #{n} ======================"
|
239
|
+
case n
|
240
|
+
when 10
|
241
|
+
puts "takes very long time. skip."
|
242
|
+
next# if $lp
|
243
|
+
when 9, 3
|
244
|
+
puts "takes long time. skip."
|
245
|
+
next
|
246
|
+
when 13
|
247
|
+
puts "error. skip."
|
248
|
+
next
|
249
|
+
end
|
250
|
+
k = nil if k && k < 0
|
251
|
+
r = test_gb(n, m)
|
252
|
+
break unless r
|
253
|
+
end
|
254
|
+
end
|
255
|
+
|
256
|
+
unless k
|
257
|
+
puts "<< This is a test script for groebner-basis calculators. >>"
|
258
|
+
puts "USAGE: #$0 [modulo [num]]"
|
259
|
+
puts " mod ... modulo (= -1, 0, 2, 3, 5... (-1 means 'by mathn')"
|
260
|
+
puts " num ... No. of test (if omitted, test all)"
|
261
|
+
puts
|
262
|
+
puts "S : K =\n#$stot\n#$ktot"
|
263
|
+
end
|
264
|
+
|
265
|
+
if false
|
266
|
+
puts $atime, $btime
|
267
|
+
puts $sbas, $kbas
|
268
|
+
puts $smin, $kmin
|
269
|
+
puts $sred, $kred
|
270
|
+
puts $sdiv, $kdiv
|
271
|
+
puts $sspa, $kspa
|
272
|
+
puts $slt, $klt
|
273
|
+
puts $smul, $llc
|
274
|
+
end
|
@@ -0,0 +1,89 @@
|
|
1
|
+
########################################################
|
2
|
+
# #
|
3
|
+
# This is test script for 'polynomial-factor-alg.rb' #
|
4
|
+
# #
|
5
|
+
########################################################
|
6
|
+
require "algebra/rational"
|
7
|
+
require "algebra/polynomial-factor-alg.rb"
|
8
|
+
include Algebra
|
9
|
+
|
10
|
+
def test(f, s = "")
|
11
|
+
print "#{f}#{s}\n"
|
12
|
+
a = f.factorize
|
13
|
+
sw = (f == a.pi)
|
14
|
+
puts "#{a.inspect}, #{sw}"
|
15
|
+
raise unless sw
|
16
|
+
end
|
17
|
+
|
18
|
+
require "algebra/polynomial"
|
19
|
+
require "algebra/polynomial-factor"
|
20
|
+
require "algebra/rational"
|
21
|
+
require "algebra/residue-class-ring"
|
22
|
+
|
23
|
+
n, i, j, k = ARGV.collect{|v| v.to_i}
|
24
|
+
fss = [
|
25
|
+
"x**4 + 1",#0
|
26
|
+
"x**2 + x + 1",#1
|
27
|
+
"x**4 + 1 + a",#2
|
28
|
+
"(x**4 + 1)*(x**2 + x + 1)",#3
|
29
|
+
"x**4 + 4",#4
|
30
|
+
"x**2 + 4*x + 1",#5
|
31
|
+
"x**2 + 1",#6
|
32
|
+
"x**3 - 1",#7
|
33
|
+
"x**3 - 2",#8
|
34
|
+
]
|
35
|
+
fs = fss[n||0]
|
36
|
+
ass = [
|
37
|
+
"a**2 + 1",#0
|
38
|
+
"a**2 - 2",#1
|
39
|
+
"a**3 - 2",#2
|
40
|
+
"a**2 - 3",#3
|
41
|
+
]
|
42
|
+
bss = [
|
43
|
+
"b**2 - 2",#0
|
44
|
+
"b**3 - 2",#1
|
45
|
+
"b**2 + b + 1",#2
|
46
|
+
"b**2 + 1",#3
|
47
|
+
"b**2 - 3",#4
|
48
|
+
]
|
49
|
+
css = [
|
50
|
+
"c**3 - 2",#0
|
51
|
+
"c**2 - 3",#1
|
52
|
+
]
|
53
|
+
|
54
|
+
as = ass[i||0]
|
55
|
+
bs = bss[j||0]
|
56
|
+
cs = css[k||0]
|
57
|
+
|
58
|
+
unless i
|
59
|
+
[fss, ass, bss, css].each do |xs|
|
60
|
+
puts "-----------"
|
61
|
+
xs.each_with_index do |f, i|
|
62
|
+
puts "#{i}: #{f}"
|
63
|
+
end
|
64
|
+
end
|
65
|
+
else
|
66
|
+
ka = AlgebraicExtensionField(Rational, "a") {|a| eval as }
|
67
|
+
a = ka.var
|
68
|
+
unless j
|
69
|
+
pka = Polynomial(ka, "x")
|
70
|
+
x = pka.var
|
71
|
+
f = eval fs
|
72
|
+
test(f, ", in Q[a, x]/(#{as})")
|
73
|
+
else
|
74
|
+
kab = AlgebraicExtensionField(ka, "b") { |b| eval bs}
|
75
|
+
|
76
|
+
unless k
|
77
|
+
pkab = Polynomial(kab, "x")
|
78
|
+
x = pkab.var
|
79
|
+
f = eval fs
|
80
|
+
test(f, ", in Q[a, b, x]/(#{as}, #{bs})")
|
81
|
+
else
|
82
|
+
kabc = AlgebraicExtensionField(kab, "c") { |c| eval cs}
|
83
|
+
pkabc = Polynomial(kabc, "x")
|
84
|
+
x = pkabc.var
|
85
|
+
f = eval fs
|
86
|
+
test(f, ", in Q[a, b, c, x]/(#{as}, #{bs}, #{cs})")
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
data/sample/test-00.list
ADDED
@@ -0,0 +1,65 @@
|
|
1
|
+
# Time Trial
|
2
|
+
#
|
3
|
+
# by Shin-ichiro Hara
|
4
|
+
#
|
5
|
+
# Version 1.0 (2001.04.01)
|
6
|
+
|
7
|
+
class TimeTrial
|
8
|
+
def initialize(name = type.name)
|
9
|
+
@name = name
|
10
|
+
@time = 0
|
11
|
+
@ntime = 0
|
12
|
+
@open = false
|
13
|
+
end
|
14
|
+
|
15
|
+
def start
|
16
|
+
begin
|
17
|
+
open
|
18
|
+
yield @ntime
|
19
|
+
ensure
|
20
|
+
close
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def open
|
25
|
+
@ntime += 1
|
26
|
+
if @open
|
27
|
+
$stderr.puts "TimeTrial: warning (duplicate open)"
|
28
|
+
end
|
29
|
+
@open = true
|
30
|
+
@stime = Time.now
|
31
|
+
end
|
32
|
+
|
33
|
+
def close
|
34
|
+
@time += Time.now - @stime
|
35
|
+
unless @open
|
36
|
+
$stderr.puts "TimeTrial: warning (duplicate close)"
|
37
|
+
end
|
38
|
+
@open = nil
|
39
|
+
end
|
40
|
+
|
41
|
+
def to_s
|
42
|
+
"#{@name}: #{@time} sec. (#{@ntime} times)"
|
43
|
+
end
|
44
|
+
|
45
|
+
def self.[](s)
|
46
|
+
s.split("\s*,\s*").collect{ |name| new(name) }
|
47
|
+
end
|
48
|
+
|
49
|
+
alias inspect to_s
|
50
|
+
end
|
51
|
+
|
52
|
+
if __FILE__ == $0
|
53
|
+
$a, $b = TimeTrial["addition, multiplication"]
|
54
|
+
x = 0
|
55
|
+
y = 1
|
56
|
+
0.upto 10000 do |i|
|
57
|
+
$a.start{
|
58
|
+
x += i
|
59
|
+
}
|
60
|
+
$b.start{
|
61
|
+
y *= i
|
62
|
+
}
|
63
|
+
end
|
64
|
+
puts $a, $b
|
65
|
+
end
|
metadata
ADDED
@@ -0,0 +1,373 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: algebra
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Takeo Kunishima
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-08-23 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.12'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.12'
|
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
|
+
description: This is a library for mathematical computations. Our purpose is to express
|
56
|
+
the mathematical object naturally in Ruby. Though it is not operated fast, we can
|
57
|
+
see the algorithm of the mathematical processing not in black box but in scripts. This
|
58
|
+
library is in development stage.
|
59
|
+
email:
|
60
|
+
- t.kunishi@gmail.com
|
61
|
+
executables: []
|
62
|
+
extensions: []
|
63
|
+
extra_rdoc_files: []
|
64
|
+
files:
|
65
|
+
- ".gitignore"
|
66
|
+
- ".travis.yml"
|
67
|
+
- CODE_OF_CONDUCT.md
|
68
|
+
- Gemfile
|
69
|
+
- Gemfile.lock
|
70
|
+
- LICENSE.txt
|
71
|
+
- README-ja.txt
|
72
|
+
- README.md
|
73
|
+
- Rakefile
|
74
|
+
- algebra.gemspec
|
75
|
+
- bin/console
|
76
|
+
- bin/setup
|
77
|
+
- doc-ja/README-ja.html
|
78
|
+
- doc-ja/README-ja.rd
|
79
|
+
- doc-ja/README.html
|
80
|
+
- doc-ja/README.rd
|
81
|
+
- doc-ja/algebra-ja.html
|
82
|
+
- doc-ja/algebra-ja.rd
|
83
|
+
- doc-ja/algebraic-equation-ja.html
|
84
|
+
- doc-ja/algebraic-equation-ja.rd
|
85
|
+
- doc-ja/algebraic-extension-field-ja.html
|
86
|
+
- doc-ja/algebraic-extension-field-ja.rd
|
87
|
+
- doc-ja/algebraic-parser-ja.html
|
88
|
+
- doc-ja/algebraic-parser-ja.rd
|
89
|
+
- doc-ja/changes.html
|
90
|
+
- doc-ja/changes.rd
|
91
|
+
- doc-ja/elementary-divisor-ja.html
|
92
|
+
- doc-ja/elementary-divisor-ja.rd
|
93
|
+
- doc-ja/euclidian-ring-ja.html
|
94
|
+
- doc-ja/euclidian-ring-ja.rd
|
95
|
+
- doc-ja/finite-group-ja.html
|
96
|
+
- doc-ja/finite-group-ja.rd
|
97
|
+
- doc-ja/finite-map-ja.html
|
98
|
+
- doc-ja/finite-map-ja.rd
|
99
|
+
- doc-ja/finite-set-ja.html
|
100
|
+
- doc-ja/finite-set-ja.rd
|
101
|
+
- doc-ja/index-ja.html
|
102
|
+
- doc-ja/index-ja.rd
|
103
|
+
- doc-ja/jordan-form-ja.html
|
104
|
+
- doc-ja/jordan-form-ja.rd
|
105
|
+
- doc-ja/localized-ring-ja.html
|
106
|
+
- doc-ja/localized-ring-ja.rd
|
107
|
+
- doc-ja/m-polynomial-ja.html
|
108
|
+
- doc-ja/m-polynomial-ja.rd
|
109
|
+
- doc-ja/matrix-algebra-ja.html
|
110
|
+
- doc-ja/matrix-algebra-ja.rd
|
111
|
+
- doc-ja/matrix-algebra-triplet-ja.html
|
112
|
+
- doc-ja/matrix-algebra-triplet-ja.rd
|
113
|
+
- doc-ja/permutation-group-ja.html
|
114
|
+
- doc-ja/permutation-group-ja.rd
|
115
|
+
- doc-ja/polynomial-converter-ja.html
|
116
|
+
- doc-ja/polynomial-converter-ja.rd
|
117
|
+
- doc-ja/polynomial-ja.html
|
118
|
+
- doc-ja/polynomial-ja.rd
|
119
|
+
- doc-ja/residue-class-ring-ja.html
|
120
|
+
- doc-ja/residue-class-ring-ja.rd
|
121
|
+
- doc-ja/sample-algebraic-equation01.rb.v.rd
|
122
|
+
- doc-ja/sample-algebraic-equation02.rb.v.rd
|
123
|
+
- doc-ja/sample-algebraic-root01.rb.v.rd
|
124
|
+
- doc-ja/sample-algebraicfield01.rb.v.rd
|
125
|
+
- doc-ja/sample-algebraicfield02.rb.v.rd
|
126
|
+
- doc-ja/sample-cayleyhamilton01.rb.v.rd
|
127
|
+
- doc-ja/sample-diagonalization01.rb.v.rd
|
128
|
+
- doc-ja/sample-divmod01.rb.v.rd
|
129
|
+
- doc-ja/sample-elementary-divisor01.rb.v.rd
|
130
|
+
- doc-ja/sample-factorize01.rb.v.rd
|
131
|
+
- doc-ja/sample-factorize02.rb.v.rd
|
132
|
+
- doc-ja/sample-factorize03.rb.v.rd
|
133
|
+
- doc-ja/sample-factorize04.rb.v.rd
|
134
|
+
- doc-ja/sample-factorize05.rb.v.rd
|
135
|
+
- doc-ja/sample-galois-group01.rb.v.rd
|
136
|
+
- doc-ja/sample-gaussian-elimination01.rb.v.rd
|
137
|
+
- doc-ja/sample-geometry01.rb.v.rd
|
138
|
+
- doc-ja/sample-geometry02.rb.v.rd
|
139
|
+
- doc-ja/sample-geometry03.rb.v.rd
|
140
|
+
- doc-ja/sample-geometry04.rb.v.rd
|
141
|
+
- doc-ja/sample-geometry07.rb.v.rd
|
142
|
+
- doc-ja/sample-groebner01.rb.v.rd
|
143
|
+
- doc-ja/sample-groebner02.rb.v.rd
|
144
|
+
- doc-ja/sample-groebner03.rb.v.rd
|
145
|
+
- doc-ja/sample-group01.rb.v.rd
|
146
|
+
- doc-ja/sample-jordan-form01.rb.v.rd
|
147
|
+
- doc-ja/sample-jordanform01.rb.v.rd
|
148
|
+
- doc-ja/sample-lagrange-multiplier01.rb.v.rd
|
149
|
+
- doc-ja/sample-m-factorize01.rb.v.rd
|
150
|
+
- doc-ja/sample-m-factorize02.rb.v.rd
|
151
|
+
- doc-ja/sample-m-polynomial01.rb.v.rd
|
152
|
+
- doc-ja/sample-map01.rb.v.rd
|
153
|
+
- doc-ja/sample-polynomial01.rb.v.rd
|
154
|
+
- doc-ja/sample-polynomial02.rb.v.rd
|
155
|
+
- doc-ja/sample-primefield01.rb.v.rd
|
156
|
+
- doc-ja/sample-quotientfield01.rb.v.rd
|
157
|
+
- doc-ja/sample-quotientfield02.rb.v.rd
|
158
|
+
- doc-ja/sample-quotientfield03.rb.v.rd
|
159
|
+
- doc-ja/sample-quotientfield04.rb.v.rd
|
160
|
+
- doc-ja/sample-set01.rb.v.rd
|
161
|
+
- doc-ja/sample-splitting-field01.rb.v.rd
|
162
|
+
- doc-ja/samples-ja.html
|
163
|
+
- doc-ja/samples-ja.rd
|
164
|
+
- doc-ja/style.css
|
165
|
+
- doc-ja/todo.html
|
166
|
+
- doc-ja/todo.rd
|
167
|
+
- doc/README.html
|
168
|
+
- doc/README.rd
|
169
|
+
- doc/algebra.html
|
170
|
+
- doc/algebra.rd
|
171
|
+
- doc/algebraic-equation.html
|
172
|
+
- doc/algebraic-equation.rd
|
173
|
+
- doc/algebraic-extension-field.html
|
174
|
+
- doc/algebraic-extension-field.rd
|
175
|
+
- doc/algebraic-parser.html
|
176
|
+
- doc/algebraic-parser.rd
|
177
|
+
- doc/changes.html
|
178
|
+
- doc/changes.rd
|
179
|
+
- doc/elementary-divisor.html
|
180
|
+
- doc/elementary-divisor.rd
|
181
|
+
- doc/euclidian-ring.html
|
182
|
+
- doc/euclidian-ring.rd
|
183
|
+
- doc/finite-group.html
|
184
|
+
- doc/finite-group.rd
|
185
|
+
- doc/finite-map.html
|
186
|
+
- doc/finite-map.rd
|
187
|
+
- doc/finite-set.html
|
188
|
+
- doc/finite-set.rd
|
189
|
+
- doc/index.html
|
190
|
+
- doc/index.rd
|
191
|
+
- doc/jordan-form.html
|
192
|
+
- doc/jordan-form.rd
|
193
|
+
- doc/localized-ring.html
|
194
|
+
- doc/localized-ring.rd
|
195
|
+
- doc/m-polynomial.html
|
196
|
+
- doc/m-polynomial.rd
|
197
|
+
- doc/matrix-algebra-triplet.html
|
198
|
+
- doc/matrix-algebra-triplet.rd
|
199
|
+
- doc/matrix-algebra.html
|
200
|
+
- doc/matrix-algebra.rd
|
201
|
+
- doc/permutation-group.html
|
202
|
+
- doc/permutation-group.rd
|
203
|
+
- doc/polynomial-converter.html
|
204
|
+
- doc/polynomial-converter.rd
|
205
|
+
- doc/polynomial.html
|
206
|
+
- doc/polynomial.rd
|
207
|
+
- doc/residue-class-ring.html
|
208
|
+
- doc/residue-class-ring.rd
|
209
|
+
- doc/sample-algebraic-equation01.rb.v.rd
|
210
|
+
- doc/sample-algebraic-equation02.rb.v.rd
|
211
|
+
- doc/sample-algebraic-root01.rb.v.rd
|
212
|
+
- doc/sample-algebraicfield01.rb.v.rd
|
213
|
+
- doc/sample-algebraicfield02.rb.v.rd
|
214
|
+
- doc/sample-cayleyhamilton01.rb.v.rd
|
215
|
+
- doc/sample-diagonalization01.rb.v.rd
|
216
|
+
- doc/sample-divmod01.rb.v.rd
|
217
|
+
- doc/sample-elementary-divisor01.rb.v.rd
|
218
|
+
- doc/sample-factorize01.rb.v.rd
|
219
|
+
- doc/sample-factorize02.rb.v.rd
|
220
|
+
- doc/sample-factorize03.rb.v.rd
|
221
|
+
- doc/sample-factorize04.rb.v.rd
|
222
|
+
- doc/sample-factorize05.rb.v.rd
|
223
|
+
- doc/sample-galois-group01.rb.v.rd
|
224
|
+
- doc/sample-gaussian-elimination01.rb.v.rd
|
225
|
+
- doc/sample-geometry01.rb.v.rd
|
226
|
+
- doc/sample-geometry02.rb.v.rd
|
227
|
+
- doc/sample-geometry03.rb.v.rd
|
228
|
+
- doc/sample-geometry04.rb.v.rd
|
229
|
+
- doc/sample-geometry07.rb.v.rd
|
230
|
+
- doc/sample-groebner01.rb.v.rd
|
231
|
+
- doc/sample-groebner02.rb.v.rd
|
232
|
+
- doc/sample-groebner03.rb.v.rd
|
233
|
+
- doc/sample-group01.rb.v.rd
|
234
|
+
- doc/sample-jordan-form01.rb.v.rd
|
235
|
+
- doc/sample-lagrange-multiplier01.rb.v.rd
|
236
|
+
- doc/sample-m-factorize01.rb.v.rd
|
237
|
+
- doc/sample-m-factorize02.rb.v.rd
|
238
|
+
- doc/sample-m-polynomial01.rb.v.rd
|
239
|
+
- doc/sample-map01.rb.v.rd
|
240
|
+
- doc/sample-polynomial01.rb.v.rd
|
241
|
+
- doc/sample-polynomial02.rb.v.rd
|
242
|
+
- doc/sample-primefield01.rb.v.rd
|
243
|
+
- doc/sample-quotientfield01.rb.v.rd
|
244
|
+
- doc/sample-quotientfield02.rb.v.rd
|
245
|
+
- doc/sample-quotientfield03.rb.v.rd
|
246
|
+
- doc/sample-quotientfield04.rb.v.rd
|
247
|
+
- doc/sample-set01.rb.v.rd
|
248
|
+
- doc/sample-splitting-field01.rb.v.rd
|
249
|
+
- doc/samples.html
|
250
|
+
- doc/samples.rd
|
251
|
+
- doc/style.css
|
252
|
+
- doc/todo.html
|
253
|
+
- doc/todo.rd
|
254
|
+
- lib/algebra.rb
|
255
|
+
- lib/algebra/algebraic-equation.rb
|
256
|
+
- lib/algebra/algebraic-extension-field.rb
|
257
|
+
- lib/algebra/algebraic-parser.rb
|
258
|
+
- lib/algebra/algebraic-system.rb
|
259
|
+
- lib/algebra/annihilate.rb
|
260
|
+
- lib/algebra/array-supplement.rb
|
261
|
+
- lib/algebra/auto-require.rb
|
262
|
+
- lib/algebra/chinese-rem-th.rb
|
263
|
+
- lib/algebra/combinatorial.rb
|
264
|
+
- lib/algebra/elementary-divisor.rb
|
265
|
+
- lib/algebra/euclidian-ring.rb
|
266
|
+
- lib/algebra/factors.rb
|
267
|
+
- lib/algebra/finite-group.rb
|
268
|
+
- lib/algebra/finite-map.rb
|
269
|
+
- lib/algebra/finite-set.rb
|
270
|
+
- lib/algebra/galois-group.rb
|
271
|
+
- lib/algebra/gaussian-elimination.rb
|
272
|
+
- lib/algebra/groebner-basis-coeff.rb
|
273
|
+
- lib/algebra/groebner-basis.rb
|
274
|
+
- lib/algebra/import-module-single-thread.rb
|
275
|
+
- lib/algebra/import-module.rb
|
276
|
+
- lib/algebra/jordan-form.rb
|
277
|
+
- lib/algebra/linear-algebra.rb
|
278
|
+
- lib/algebra/localized-ring.rb
|
279
|
+
- lib/algebra/m-index.rb
|
280
|
+
- lib/algebra/m-polynomial-factor-int.rb
|
281
|
+
- lib/algebra/m-polynomial-factor-zp.rb
|
282
|
+
- lib/algebra/m-polynomial-factor.rb
|
283
|
+
- lib/algebra/m-polynomial-gcd.rb
|
284
|
+
- lib/algebra/m-polynomial.rb
|
285
|
+
- lib/algebra/matrix-algebra-triplet.rb
|
286
|
+
- lib/algebra/matrix-algebra.rb
|
287
|
+
- lib/algebra/numeric-supplement.rb
|
288
|
+
- lib/algebra/permutation-group.rb
|
289
|
+
- lib/algebra/polynomial-converter.rb
|
290
|
+
- lib/algebra/polynomial-factor-alg.rb
|
291
|
+
- lib/algebra/polynomial-factor-int.rb
|
292
|
+
- lib/algebra/polynomial-factor-zp.rb
|
293
|
+
- lib/algebra/polynomial-factor.rb
|
294
|
+
- lib/algebra/polynomial.rb
|
295
|
+
- lib/algebra/powers.rb
|
296
|
+
- lib/algebra/prime-gen.rb
|
297
|
+
- lib/algebra/rational.rb
|
298
|
+
- lib/algebra/residue-class-ring.rb
|
299
|
+
- lib/algebra/sets-system.rb
|
300
|
+
- lib/algebra/splitting-field.rb
|
301
|
+
- lib/algebra/version.rb
|
302
|
+
- sample/Makefile
|
303
|
+
- sample/do-testscripts.rb
|
304
|
+
- sample/sample-algebraic-equation01.rb
|
305
|
+
- sample/sample-algebraic-equation02.rb
|
306
|
+
- sample/sample-algebraic-root01.rb
|
307
|
+
- sample/sample-algebraicfield01.rb
|
308
|
+
- sample/sample-algebraicfield02.rb
|
309
|
+
- sample/sample-cayleyhamilton01.rb
|
310
|
+
- sample/sample-diagonalization01.rb
|
311
|
+
- sample/sample-divmod01.rb
|
312
|
+
- sample/sample-elementary-divisor01.rb
|
313
|
+
- sample/sample-factorize01.rb
|
314
|
+
- sample/sample-factorize02.rb
|
315
|
+
- sample/sample-factorize03.rb
|
316
|
+
- sample/sample-factorize04.rb
|
317
|
+
- sample/sample-factorize05.rb
|
318
|
+
- sample/sample-galois-group01.rb
|
319
|
+
- sample/sample-gaussian-elimination01.rb
|
320
|
+
- sample/sample-geometry01.rb
|
321
|
+
- sample/sample-geometry02.rb
|
322
|
+
- sample/sample-geometry03.rb
|
323
|
+
- sample/sample-geometry04.rb
|
324
|
+
- sample/sample-geometry07.rb
|
325
|
+
- sample/sample-groebner01.rb
|
326
|
+
- sample/sample-groebner02.rb
|
327
|
+
- sample/sample-groebner03.rb
|
328
|
+
- sample/sample-group01.rb
|
329
|
+
- sample/sample-jordan-form01.rb
|
330
|
+
- sample/sample-lagrange-multiplier01.rb
|
331
|
+
- sample/sample-m-factorize01.rb
|
332
|
+
- sample/sample-m-factorize02.rb
|
333
|
+
- sample/sample-m-polynomial01.rb
|
334
|
+
- sample/sample-map01.rb
|
335
|
+
- sample/sample-polynomial01.rb
|
336
|
+
- sample/sample-polynomial02.rb
|
337
|
+
- sample/sample-primefield01.rb
|
338
|
+
- sample/sample-quotientfield01.rb
|
339
|
+
- sample/sample-quotientfield02.rb
|
340
|
+
- sample/sample-quotientfield03.rb
|
341
|
+
- sample/sample-quotientfield04.rb
|
342
|
+
- sample/sample-set01.rb
|
343
|
+
- sample/sample-splitting-field01.rb
|
344
|
+
- sample/test-00-cayley-hamilton.rb
|
345
|
+
- sample/test-00-groebner-basis.rb
|
346
|
+
- sample/test-00-polynomial-factor-alg.rb
|
347
|
+
- sample/test-00.list
|
348
|
+
- sample/time-trial.rb
|
349
|
+
homepage: https://github.com/kunishi/algebra-ruby2
|
350
|
+
licenses:
|
351
|
+
- MIT
|
352
|
+
metadata: {}
|
353
|
+
post_install_message:
|
354
|
+
rdoc_options: []
|
355
|
+
require_paths:
|
356
|
+
- lib
|
357
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
358
|
+
requirements:
|
359
|
+
- - ">="
|
360
|
+
- !ruby/object:Gem::Version
|
361
|
+
version: '0'
|
362
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
363
|
+
requirements:
|
364
|
+
- - ">="
|
365
|
+
- !ruby/object:Gem::Version
|
366
|
+
version: '0'
|
367
|
+
requirements: []
|
368
|
+
rubyforge_project:
|
369
|
+
rubygems_version: 2.5.1
|
370
|
+
signing_key:
|
371
|
+
specification_version: 4
|
372
|
+
summary: a library for mathematical computations.
|
373
|
+
test_files: []
|