modular_forms 0.0.3 → 0.0.4
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 +4 -4
- data/README.md +20 -3
- data/lib/modular_forms/core/number_fields.rb +31 -0
- data/lib/modular_forms/core.rb +1 -0
- data/lib/modular_forms/version.rb +1 -1
- data/lib/modular_forms.rb +4 -0
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1e77e70af5b9ca9fa2bcc7543c8eaa45ac1603bf168d0fd2c9fa73aa639836de
|
4
|
+
data.tar.gz: 2df87ac5d2f7c6c950fb5312226422dc146a180e250ca3ce2e31abbb100a18d2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 90ec48ab7fad347c8ab257bdc65f71d21f34c2dfc50822695d178f6babc624358477d448bb947fc681e6767ece07a8b1cb8c168fe0f6ca364a2a33a03d288b59
|
7
|
+
data.tar.gz: ee4e8a42d6b2953c8de928d6582d487447364847e455f7ae74a2a5e3a1d96d597fdc95cb8e7bcdba4121cf9decca5c1ee0e960528fa5173ece1dba0f5a474235
|
data/README.md
CHANGED
@@ -42,6 +42,7 @@ Given the vastness of the field, this tool intentionally focuses on a limited su
|
|
42
42
|
- [Newform Invariants](#newform-invariants)
|
43
43
|
- [L-functions](#l-functions)
|
44
44
|
- [p-adic Fields](#p-adic-fields)
|
45
|
+
- [Number Fields](#number-fields)
|
45
46
|
|
46
47
|
### Not Optimized for Computational Efficiency
|
47
48
|
|
@@ -122,17 +123,29 @@ Unlike the structured Fermat example, this finite loop explores more abstract te
|
|
122
123
|
```rb
|
123
124
|
require "<PATH>/modular_forms.rb"
|
124
125
|
|
125
|
-
eisenstein_melody = ModularForms.eisenstein_series(8)
|
126
126
|
p = 3
|
127
|
-
|
128
|
-
disc = ModularForms.discriminant_q(ellc)
|
127
|
+
eisenstein_melody = ModularForms.eisenstein_series(8)
|
129
128
|
e8 = eisenstein_melody.take(58)
|
130
129
|
hecke_op = ModularForms.hecke_operator_prime_non_cusp(e8, p, 8, 20)
|
130
|
+
|
131
|
+
ellc = ModularForms.elliptic_curve_q([2, 5])
|
132
|
+
disc = ModularForms.discriminant_q(ellc)
|
133
|
+
|
131
134
|
j_func = ModularForms.j_function(40)
|
132
135
|
newform_ac = ModularForms.analytic_conductor(15, 2)
|
133
136
|
pol = ModularForms.def_pol_2deg(41)
|
134
137
|
|
138
|
+
x = 7
|
139
|
+
dirichlet_char_group = []
|
140
|
+
(1..x).each do |i|
|
141
|
+
dirichlet_char_group << ModularForms.conrey_p_pminus1(x, i)
|
142
|
+
end
|
143
|
+
|
135
144
|
(disc * -1).times do
|
145
|
+
synth :zawa,
|
146
|
+
note: ModularForms.zeta_coeffs_deg2(dirichlet_char_group, 30)
|
147
|
+
.tick(:zeta) + 72, amp: rrand(0.3, 0.6)
|
148
|
+
|
136
149
|
synth :subpulse, note: ModularForms.padic_valuation(eisenstein_melody.next, p) % 7 + 70,
|
137
150
|
release: 0.25 if (spread (disc % 6), 7).tick(:d)
|
138
151
|
|
@@ -243,6 +256,10 @@ end
|
|
243
256
|
49. `ModularForms.padic_expansion(num_b10, p, prec = 11, reverse_trim = false)`
|
244
257
|
50. `ModularForms.def_pol_2deg(p = 2, c = 0, num = 1)`
|
245
258
|
|
259
|
+
### Number Fields
|
260
|
+
|
261
|
+
51. `ModularForms.zeta_coeffs_deg2(dirichlet_char_group, n)`
|
262
|
+
|
246
263
|
## 🧪 Testing
|
247
264
|
|
248
265
|
Install dependencies first:
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module ModularForms
|
4
|
+
module Core
|
5
|
+
# ModularForms::Core::NumberFields
|
6
|
+
#
|
7
|
+
# This module provides methods and objects related to number fields,
|
8
|
+
# such as zeta_coefficients and utility helpers.
|
9
|
+
module NumberFields
|
10
|
+
def self.fill_arr_with_interval(length, num, interval)
|
11
|
+
arr = Array.new(length, 0)
|
12
|
+
(interval - 1).step(length - 1, interval) do |i|
|
13
|
+
arr[i] = num
|
14
|
+
end
|
15
|
+
arr
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.zeta_coeffs_deg2(dirichlet_char_group, num_coeffs)
|
19
|
+
ded_zeta_to_dir_serie = []
|
20
|
+
dirichlet_char_group.each_with_index do |i, j|
|
21
|
+
a = 1
|
22
|
+
while a <= num_coeffs
|
23
|
+
ded_zeta_to_dir_serie << fill_arr_with_interval(num_coeffs, i, j + a)
|
24
|
+
a += dirichlet_char_group.length
|
25
|
+
end
|
26
|
+
end
|
27
|
+
ded_zeta_to_dir_serie.transpose.map { |component| component.sum } # rubocop:disable Style/SymbolProc
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
data/lib/modular_forms/core.rb
CHANGED
data/lib/modular_forms.rb
CHANGED
@@ -212,4 +212,8 @@ module ModularForms # rubocop:disable Metrics/ModuleLength
|
|
212
212
|
def def_pol_2deg(p = 2, c = 0, num = 1)
|
213
213
|
Core::PAdicFields.def_pol_2deg(p, c, num)
|
214
214
|
end
|
215
|
+
|
216
|
+
def zeta_coeffs_deg2(dirichlet_char_group, n)
|
217
|
+
Core::NumberFields.zeta_coeffs_deg2(dirichlet_char_group, n)
|
218
|
+
end
|
215
219
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: modular_forms
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Edgar Armando Delgado Vega
|
@@ -33,6 +33,7 @@ files:
|
|
33
33
|
- lib/modular_forms/core/klein_j_invariant.rb
|
34
34
|
- lib/modular_forms/core/l_functions.rb
|
35
35
|
- lib/modular_forms/core/newform_invariants.rb
|
36
|
+
- lib/modular_forms/core/number_fields.rb
|
36
37
|
- lib/modular_forms/core/numeric_helpers/numeric_helpers.rb
|
37
38
|
- lib/modular_forms/core/padic_fields.rb
|
38
39
|
- lib/modular_forms/core/padic_pol/data_pol_2deg.rb
|