oresmej 0.1.0__tar.gz
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.
- oresmej-0.1.0/LICENSE +21 -0
- oresmej-0.1.0/MANIFEST.in +3 -0
- oresmej-0.1.0/PKG-INFO +288 -0
- oresmej-0.1.0/README.md +234 -0
- oresmej-0.1.0/pyproject.toml +42 -0
- oresmej-0.1.0/setup.cfg +4 -0
- oresmej-0.1.0/setup.py +19 -0
- oresmej-0.1.0/src/oresmej/__init__.py +406 -0
- oresmej-0.1.0/src/oresmej/_version.py +9 -0
- oresmej-0.1.0/src/oresmej/oresmej.py +534 -0
- oresmej-0.1.0/src/oresmej.egg-info/PKG-INFO +288 -0
- oresmej-0.1.0/src/oresmej.egg-info/SOURCES.txt +14 -0
- oresmej-0.1.0/src/oresmej.egg-info/dependency_links.txt +1 -0
- oresmej-0.1.0/src/oresmej.egg-info/top_level.txt +1 -0
- oresmej-0.1.0/tests/test_sample.py +2 -0
oresmej-0.1.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Mehmet Keçeci
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
oresmej-0.1.0/PKG-INFO
ADDED
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: oresmej
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Oresme numbers refer to the sums related to the harmonic series
|
|
5
|
+
Home-page: https://github.com/oresmej
|
|
6
|
+
Author: Mehmet Keçeci
|
|
7
|
+
Author-email: Mehmet Keçeci <mkececi@yaani.com>
|
|
8
|
+
License: MIT License
|
|
9
|
+
|
|
10
|
+
Copyright (c) 2025 Mehmet Keçeci
|
|
11
|
+
|
|
12
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
13
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
14
|
+
in the Software without restriction, including without limitation the rights
|
|
15
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
16
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
17
|
+
furnished to do so, subject to the following conditions:
|
|
18
|
+
|
|
19
|
+
The above copyright notice and this permission notice shall be included in all
|
|
20
|
+
copies or substantial portions of the Software.
|
|
21
|
+
|
|
22
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
23
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
24
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
25
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
26
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
27
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
28
|
+
SOFTWARE.
|
|
29
|
+
|
|
30
|
+
Project-URL: Homepage, https://github.com/WhiteSymmetry/oresmej/
|
|
31
|
+
Project-URL: Documentation, https://WhiteSymmetry.github.io/oresmej/
|
|
32
|
+
Project-URL: Repository, https://github.com/WhiteSymmetry/oresmej/
|
|
33
|
+
Project-URL: Issues, https://github.com/WhiteSymmetry/oresmej/issues
|
|
34
|
+
Keywords: oresmej
|
|
35
|
+
Classifier: Programming Language :: Python :: 3
|
|
36
|
+
Classifier: Operating System :: OS Independent
|
|
37
|
+
Classifier: Topic :: Software Development
|
|
38
|
+
Classifier: Topic :: Scientific/Engineering
|
|
39
|
+
Classifier: Typing :: Typed
|
|
40
|
+
Classifier: Operating System :: Microsoft :: Windows
|
|
41
|
+
Classifier: Operating System :: POSIX
|
|
42
|
+
Classifier: Operating System :: Unix
|
|
43
|
+
Classifier: Operating System :: MacOS
|
|
44
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
45
|
+
Classifier: Intended Audience :: Developers
|
|
46
|
+
Classifier: Intended Audience :: Science/Research
|
|
47
|
+
Requires-Python: >=3.9
|
|
48
|
+
Description-Content-Type: text/markdown
|
|
49
|
+
License-File: LICENSE
|
|
50
|
+
Dynamic: author
|
|
51
|
+
Dynamic: home-page
|
|
52
|
+
Dynamic: license-file
|
|
53
|
+
Dynamic: requires-python
|
|
54
|
+
|
|
55
|
+
# Oresme Jax
|
|
56
|
+
|
|
57
|
+
[](https://doi.org/-)
|
|
58
|
+
|
|
59
|
+
[](https://doi.org/)
|
|
60
|
+
|
|
61
|
+
[](https://doi.org/)
|
|
62
|
+
|
|
63
|
+
[](https://anaconda.org/bilgi/oresmej)
|
|
64
|
+
[](https://anaconda.org/bilgi/oresmej)
|
|
65
|
+
[](https://anaconda.org/bilgi/oresmej)
|
|
66
|
+
[](https://anaconda.org/bilgi/oresmej)
|
|
67
|
+
[](https://opensource.org/)
|
|
68
|
+
[](https://opensource.org/licenses/MIT)
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
Oresme numbers refer to the sums related to the harmonic series.
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
### **Türkçe Tanım:**
|
|
75
|
+
**Oresme Sayıları**, 14. yüzyılda Nicole Oresme tarafından incelenen matematiksel serilerdir. Oresme sayıları harmonik seriye ait toplamları ifade eder. İki türü vardır:
|
|
76
|
+
1. **\( \frac{n}{2^n} \) serisi** (Oresme'nin orijinal çalışması),
|
|
77
|
+
2. **Harmonik sayılar** (\( H_n = 1 + \frac{1}{2} + \cdots + \frac{1}{n} \)).
|
|
78
|
+
Bu sayılar, analiz ve sayı teorisinde önemli rol oynar.
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
### **English Definition:**
|
|
83
|
+
**Oresme Numbers** are mathematical series studied by Nicole Oresme in the 14th century. Oresme numbers refer to the sums related to the harmonic series. They include two types:
|
|
84
|
+
1. The **\( \frac{n}{2^n} \) sequence** (Oresme's original work),
|
|
85
|
+
2. **Harmonic numbers** (\( H_n = 1 + \frac{1}{2} + \cdots + \frac{1}{n} \)).
|
|
86
|
+
These numbers play a key role in analysis and number theory.
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
### **Fark/Karşılaştırma (Difference):**
|
|
91
|
+
- **Oresme'nin \( \frac{n}{2^n} \) serisi** ıraksaklık kanıtları için önemlidir.
|
|
92
|
+
- **Harmonik sayılar** (\( H_n \)) ise logaritmik büyüme gösterir ve \( n \to \infty \) iken ıraksar.
|
|
93
|
+
- Modern literatürde "Oresme numbers" terimi daha çok tarihsel bağlamda kullanılır.
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Kurulum (Türkçe) / Installation (English)
|
|
98
|
+
|
|
99
|
+
### Python ile Kurulum / Install with pip, conda, mamba
|
|
100
|
+
```bash
|
|
101
|
+
pip install oresmej -U
|
|
102
|
+
python -m pip install -U oresmej
|
|
103
|
+
conda install bilgi::oresmej -y
|
|
104
|
+
mamba install bilgi::oresmej -y
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
```diff
|
|
108
|
+
- pip uninstall Oresme -y
|
|
109
|
+
+ pip install -U oresmej
|
|
110
|
+
+ python -m pip install -U oresmej
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
[PyPI](https://pypi.org/project/Oresme/)
|
|
114
|
+
|
|
115
|
+
### Test Kurulumu / Test Installation
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
pip install -i https://test.pypi.org/simple/ oresmej -U
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### Github Master Kurulumu / GitHub Master Installation
|
|
122
|
+
|
|
123
|
+
**Terminal:**
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
pip install git+https://github.com/WhiteSymmetry/oresmej.git
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
**Jupyter Lab, Notebook, Visual Studio Code:**
|
|
130
|
+
|
|
131
|
+
```python
|
|
132
|
+
!pip install git+https://github.com/WhiteSymmetry/oresmej.git
|
|
133
|
+
# or
|
|
134
|
+
%pip install git+https://github.com/WhiteSymmetry/oresmej.git
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## Kullanım (Türkçe) / Usage (English)
|
|
140
|
+
|
|
141
|
+
```python
|
|
142
|
+
import oresmej as oj
|
|
143
|
+
import numpy as np
|
|
144
|
+
import jax
|
|
145
|
+
import jax.numpy as jnp
|
|
146
|
+
import time
|
|
147
|
+
from oresmej import *
|
|
148
|
+
import matplotlib.pyplot as plt
|
|
149
|
+
|
|
150
|
+
# Simple usage example
|
|
151
|
+
plt.figure(figsize=(10, 5))
|
|
152
|
+
plt.plot(oj.harmonic_numbers_jax(500))
|
|
153
|
+
plt.title("First 5000000 Harmonic Numbers")
|
|
154
|
+
plt.xlabel("n")
|
|
155
|
+
plt.ylabel("H(n)")
|
|
156
|
+
plt.show()
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
```python
|
|
160
|
+
import oresmej
|
|
161
|
+
oresmej.__version__
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
```python
|
|
165
|
+
import importlib
|
|
166
|
+
import inspect
|
|
167
|
+
import oresmej as oj # Varsa import hatasını yakalamak için
|
|
168
|
+
import jax.numpy as jnp
|
|
169
|
+
|
|
170
|
+
def diagnose_module(module_name):
|
|
171
|
+
try:
|
|
172
|
+
# Modülü yükle
|
|
173
|
+
module = importlib.import_module(module_name)
|
|
174
|
+
|
|
175
|
+
print(f"\n{' Modül Tanılama Raporu ':=^80}")
|
|
176
|
+
print(f"Modül adı: {module_name}")
|
|
177
|
+
print(f"Modül dosya yolu: {inspect.getfile(module)}")
|
|
178
|
+
|
|
179
|
+
# Modülün tüm özelliklerini listele
|
|
180
|
+
print("\nModülde bulunan özellikler:")
|
|
181
|
+
members = inspect.getmembers(module)
|
|
182
|
+
public_members = [name for name, _ in members if not name.startswith('_')]
|
|
183
|
+
print(public_members)
|
|
184
|
+
|
|
185
|
+
# Özel olarak kontrol edilecek fonksiyonlar
|
|
186
|
+
required_functions = [
|
|
187
|
+
'oresme_sequence',
|
|
188
|
+
'harmonic_numbers',
|
|
189
|
+
'harmonic_number',
|
|
190
|
+
'harmonic_number_jax',
|
|
191
|
+
'harmonic_numbers_jax',
|
|
192
|
+
'harmonic_generator_jax',
|
|
193
|
+
'harmonic_number_approx'
|
|
194
|
+
]
|
|
195
|
+
|
|
196
|
+
print("\nEksik olan fonksiyonlar:")
|
|
197
|
+
missing = [fn for fn in required_functions if not hasattr(module, fn)]
|
|
198
|
+
print(missing if missing else "Tüm gerekli fonksiyonlar mevcut")
|
|
199
|
+
|
|
200
|
+
# __all__ değişkenini kontrol et
|
|
201
|
+
print("\n__all__ değişkeni:")
|
|
202
|
+
if hasattr(module, '__all__'):
|
|
203
|
+
print(module.__all__)
|
|
204
|
+
else:
|
|
205
|
+
print("__all__ tanımlı değil (tüm public fonksiyonlar içe aktarılır)")
|
|
206
|
+
|
|
207
|
+
except ImportError as e:
|
|
208
|
+
print(f"\nHATA: Modül yüklenemedi - {e}")
|
|
209
|
+
except Exception as e:
|
|
210
|
+
print(f"\nBeklenmeyen hata: {e}")
|
|
211
|
+
|
|
212
|
+
# Tanılama çalıştır
|
|
213
|
+
diagnose_module('oresmej')
|
|
214
|
+
|
|
215
|
+
# Alternatif olarak doğrudan kontrol
|
|
216
|
+
print("\nDoğrudan fonksiyon varlığı kontrolü:")
|
|
217
|
+
try:
|
|
218
|
+
print("harmonic_numbers_jax mevcut mu?", hasattr(oj, 'harmonic_numbers_jax'))
|
|
219
|
+
if hasattr(oj, 'harmonic_numbers_jax'):
|
|
220
|
+
print("Fonksiyon imzası:", inspect.signature(oj.harmonic_numbers_jax))
|
|
221
|
+
else:
|
|
222
|
+
print("Eksik fonksiyon: harmonic_numbers_jax")
|
|
223
|
+
except Exception as e:
|
|
224
|
+
print("Kontrol sırasında hata:", e)
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
```python
|
|
228
|
+
# 1. Alternatif içe aktarma yöntemi
|
|
229
|
+
from oresmej import harmonic_numbers_jax # Doğrudan import deneyin
|
|
230
|
+
import oresmej as oj
|
|
231
|
+
import jax.numpy as jnp
|
|
232
|
+
|
|
233
|
+
# 2. Modülü yeniden yükleme
|
|
234
|
+
import importlib
|
|
235
|
+
importlib.reload(oj)
|
|
236
|
+
|
|
237
|
+
# 3. Fonksiyonun alternatif isimle var olup olmadığını kontrol
|
|
238
|
+
print("Alternatif fonksiyon isimleri:", [name for name in dir(oj) if 'harmonic' in name.lower()])
|
|
239
|
+
```
|
|
240
|
+
---
|
|
241
|
+
|
|
242
|
+
### Development
|
|
243
|
+
```bash
|
|
244
|
+
# Clone the repository
|
|
245
|
+
git clone https://github.com/WhiteSymmetry/oresmej.git
|
|
246
|
+
cd oresmej
|
|
247
|
+
|
|
248
|
+
# Install in development mode
|
|
249
|
+
python -m pip install -ve . # Install package in development mode
|
|
250
|
+
|
|
251
|
+
# Run tests
|
|
252
|
+
pytest
|
|
253
|
+
|
|
254
|
+
Notebook, Jupyterlab, Colab, Visual Studio Code
|
|
255
|
+
!python -m pip install git+https://github.com/WhiteSymmetry/oresmej.git
|
|
256
|
+
```
|
|
257
|
+
---
|
|
258
|
+
|
|
259
|
+
## Citation
|
|
260
|
+
|
|
261
|
+
If this library was useful to you in your research, please cite us. Following the [GitHub citation standards](https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/about-citation-files), here is the recommended citation.
|
|
262
|
+
|
|
263
|
+
### BibTeX
|
|
264
|
+
|
|
265
|
+
|
|
266
|
+
### APA
|
|
267
|
+
|
|
268
|
+
```
|
|
269
|
+
Keçeci, M. (2025). Dynamic vs Static Number Sequences: The Case of Keçeci and Oresme Numbers. Open Science Articles (OSAs), Zenodo. https://doi.org/10.5281/zenodo.15833351
|
|
270
|
+
|
|
271
|
+
Keçeci, M. (2025). oresmej (0.1.0). Open Science Articles (OSAs), Zenodo. https://doi.org/
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
### Chicago
|
|
275
|
+
|
|
276
|
+
```
|
|
277
|
+
Keçeci, Mehmet. Dynamic vs Static Number Sequences: The Case of Keçeci and Oresme Numbers. Open Science Articles (OSAs), Zenodo, 2025. https://doi.org/10.5281/zenodo.15833351
|
|
278
|
+
|
|
279
|
+
Keçeci, Mehmet. Oresme. Open Science Articles (OSAs), Zenodo, 2025. https://doi.org/
|
|
280
|
+
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
|
|
284
|
+
### Lisans (Türkçe) / License (English)
|
|
285
|
+
|
|
286
|
+
```
|
|
287
|
+
This project is licensed under the MIT License.
|
|
288
|
+
```
|
oresmej-0.1.0/README.md
ADDED
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
# Oresme Jax
|
|
2
|
+
|
|
3
|
+
[](https://doi.org/-)
|
|
4
|
+
|
|
5
|
+
[](https://doi.org/)
|
|
6
|
+
|
|
7
|
+
[](https://doi.org/)
|
|
8
|
+
|
|
9
|
+
[](https://anaconda.org/bilgi/oresmej)
|
|
10
|
+
[](https://anaconda.org/bilgi/oresmej)
|
|
11
|
+
[](https://anaconda.org/bilgi/oresmej)
|
|
12
|
+
[](https://anaconda.org/bilgi/oresmej)
|
|
13
|
+
[](https://opensource.org/)
|
|
14
|
+
[](https://opensource.org/licenses/MIT)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
Oresme numbers refer to the sums related to the harmonic series.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
### **Türkçe Tanım:**
|
|
21
|
+
**Oresme Sayıları**, 14. yüzyılda Nicole Oresme tarafından incelenen matematiksel serilerdir. Oresme sayıları harmonik seriye ait toplamları ifade eder. İki türü vardır:
|
|
22
|
+
1. **\( \frac{n}{2^n} \) serisi** (Oresme'nin orijinal çalışması),
|
|
23
|
+
2. **Harmonik sayılar** (\( H_n = 1 + \frac{1}{2} + \cdots + \frac{1}{n} \)).
|
|
24
|
+
Bu sayılar, analiz ve sayı teorisinde önemli rol oynar.
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
### **English Definition:**
|
|
29
|
+
**Oresme Numbers** are mathematical series studied by Nicole Oresme in the 14th century. Oresme numbers refer to the sums related to the harmonic series. They include two types:
|
|
30
|
+
1. The **\( \frac{n}{2^n} \) sequence** (Oresme's original work),
|
|
31
|
+
2. **Harmonic numbers** (\( H_n = 1 + \frac{1}{2} + \cdots + \frac{1}{n} \)).
|
|
32
|
+
These numbers play a key role in analysis and number theory.
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
### **Fark/Karşılaştırma (Difference):**
|
|
37
|
+
- **Oresme'nin \( \frac{n}{2^n} \) serisi** ıraksaklık kanıtları için önemlidir.
|
|
38
|
+
- **Harmonik sayılar** (\( H_n \)) ise logaritmik büyüme gösterir ve \( n \to \infty \) iken ıraksar.
|
|
39
|
+
- Modern literatürde "Oresme numbers" terimi daha çok tarihsel bağlamda kullanılır.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Kurulum (Türkçe) / Installation (English)
|
|
44
|
+
|
|
45
|
+
### Python ile Kurulum / Install with pip, conda, mamba
|
|
46
|
+
```bash
|
|
47
|
+
pip install oresmej -U
|
|
48
|
+
python -m pip install -U oresmej
|
|
49
|
+
conda install bilgi::oresmej -y
|
|
50
|
+
mamba install bilgi::oresmej -y
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
```diff
|
|
54
|
+
- pip uninstall Oresme -y
|
|
55
|
+
+ pip install -U oresmej
|
|
56
|
+
+ python -m pip install -U oresmej
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
[PyPI](https://pypi.org/project/Oresme/)
|
|
60
|
+
|
|
61
|
+
### Test Kurulumu / Test Installation
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
pip install -i https://test.pypi.org/simple/ oresmej -U
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Github Master Kurulumu / GitHub Master Installation
|
|
68
|
+
|
|
69
|
+
**Terminal:**
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
pip install git+https://github.com/WhiteSymmetry/oresmej.git
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
**Jupyter Lab, Notebook, Visual Studio Code:**
|
|
76
|
+
|
|
77
|
+
```python
|
|
78
|
+
!pip install git+https://github.com/WhiteSymmetry/oresmej.git
|
|
79
|
+
# or
|
|
80
|
+
%pip install git+https://github.com/WhiteSymmetry/oresmej.git
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## Kullanım (Türkçe) / Usage (English)
|
|
86
|
+
|
|
87
|
+
```python
|
|
88
|
+
import oresmej as oj
|
|
89
|
+
import numpy as np
|
|
90
|
+
import jax
|
|
91
|
+
import jax.numpy as jnp
|
|
92
|
+
import time
|
|
93
|
+
from oresmej import *
|
|
94
|
+
import matplotlib.pyplot as plt
|
|
95
|
+
|
|
96
|
+
# Simple usage example
|
|
97
|
+
plt.figure(figsize=(10, 5))
|
|
98
|
+
plt.plot(oj.harmonic_numbers_jax(500))
|
|
99
|
+
plt.title("First 5000000 Harmonic Numbers")
|
|
100
|
+
plt.xlabel("n")
|
|
101
|
+
plt.ylabel("H(n)")
|
|
102
|
+
plt.show()
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
```python
|
|
106
|
+
import oresmej
|
|
107
|
+
oresmej.__version__
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
```python
|
|
111
|
+
import importlib
|
|
112
|
+
import inspect
|
|
113
|
+
import oresmej as oj # Varsa import hatasını yakalamak için
|
|
114
|
+
import jax.numpy as jnp
|
|
115
|
+
|
|
116
|
+
def diagnose_module(module_name):
|
|
117
|
+
try:
|
|
118
|
+
# Modülü yükle
|
|
119
|
+
module = importlib.import_module(module_name)
|
|
120
|
+
|
|
121
|
+
print(f"\n{' Modül Tanılama Raporu ':=^80}")
|
|
122
|
+
print(f"Modül adı: {module_name}")
|
|
123
|
+
print(f"Modül dosya yolu: {inspect.getfile(module)}")
|
|
124
|
+
|
|
125
|
+
# Modülün tüm özelliklerini listele
|
|
126
|
+
print("\nModülde bulunan özellikler:")
|
|
127
|
+
members = inspect.getmembers(module)
|
|
128
|
+
public_members = [name for name, _ in members if not name.startswith('_')]
|
|
129
|
+
print(public_members)
|
|
130
|
+
|
|
131
|
+
# Özel olarak kontrol edilecek fonksiyonlar
|
|
132
|
+
required_functions = [
|
|
133
|
+
'oresme_sequence',
|
|
134
|
+
'harmonic_numbers',
|
|
135
|
+
'harmonic_number',
|
|
136
|
+
'harmonic_number_jax',
|
|
137
|
+
'harmonic_numbers_jax',
|
|
138
|
+
'harmonic_generator_jax',
|
|
139
|
+
'harmonic_number_approx'
|
|
140
|
+
]
|
|
141
|
+
|
|
142
|
+
print("\nEksik olan fonksiyonlar:")
|
|
143
|
+
missing = [fn for fn in required_functions if not hasattr(module, fn)]
|
|
144
|
+
print(missing if missing else "Tüm gerekli fonksiyonlar mevcut")
|
|
145
|
+
|
|
146
|
+
# __all__ değişkenini kontrol et
|
|
147
|
+
print("\n__all__ değişkeni:")
|
|
148
|
+
if hasattr(module, '__all__'):
|
|
149
|
+
print(module.__all__)
|
|
150
|
+
else:
|
|
151
|
+
print("__all__ tanımlı değil (tüm public fonksiyonlar içe aktarılır)")
|
|
152
|
+
|
|
153
|
+
except ImportError as e:
|
|
154
|
+
print(f"\nHATA: Modül yüklenemedi - {e}")
|
|
155
|
+
except Exception as e:
|
|
156
|
+
print(f"\nBeklenmeyen hata: {e}")
|
|
157
|
+
|
|
158
|
+
# Tanılama çalıştır
|
|
159
|
+
diagnose_module('oresmej')
|
|
160
|
+
|
|
161
|
+
# Alternatif olarak doğrudan kontrol
|
|
162
|
+
print("\nDoğrudan fonksiyon varlığı kontrolü:")
|
|
163
|
+
try:
|
|
164
|
+
print("harmonic_numbers_jax mevcut mu?", hasattr(oj, 'harmonic_numbers_jax'))
|
|
165
|
+
if hasattr(oj, 'harmonic_numbers_jax'):
|
|
166
|
+
print("Fonksiyon imzası:", inspect.signature(oj.harmonic_numbers_jax))
|
|
167
|
+
else:
|
|
168
|
+
print("Eksik fonksiyon: harmonic_numbers_jax")
|
|
169
|
+
except Exception as e:
|
|
170
|
+
print("Kontrol sırasında hata:", e)
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
```python
|
|
174
|
+
# 1. Alternatif içe aktarma yöntemi
|
|
175
|
+
from oresmej import harmonic_numbers_jax # Doğrudan import deneyin
|
|
176
|
+
import oresmej as oj
|
|
177
|
+
import jax.numpy as jnp
|
|
178
|
+
|
|
179
|
+
# 2. Modülü yeniden yükleme
|
|
180
|
+
import importlib
|
|
181
|
+
importlib.reload(oj)
|
|
182
|
+
|
|
183
|
+
# 3. Fonksiyonun alternatif isimle var olup olmadığını kontrol
|
|
184
|
+
print("Alternatif fonksiyon isimleri:", [name for name in dir(oj) if 'harmonic' in name.lower()])
|
|
185
|
+
```
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
### Development
|
|
189
|
+
```bash
|
|
190
|
+
# Clone the repository
|
|
191
|
+
git clone https://github.com/WhiteSymmetry/oresmej.git
|
|
192
|
+
cd oresmej
|
|
193
|
+
|
|
194
|
+
# Install in development mode
|
|
195
|
+
python -m pip install -ve . # Install package in development mode
|
|
196
|
+
|
|
197
|
+
# Run tests
|
|
198
|
+
pytest
|
|
199
|
+
|
|
200
|
+
Notebook, Jupyterlab, Colab, Visual Studio Code
|
|
201
|
+
!python -m pip install git+https://github.com/WhiteSymmetry/oresmej.git
|
|
202
|
+
```
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
## Citation
|
|
206
|
+
|
|
207
|
+
If this library was useful to you in your research, please cite us. Following the [GitHub citation standards](https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/about-citation-files), here is the recommended citation.
|
|
208
|
+
|
|
209
|
+
### BibTeX
|
|
210
|
+
|
|
211
|
+
|
|
212
|
+
### APA
|
|
213
|
+
|
|
214
|
+
```
|
|
215
|
+
Keçeci, M. (2025). Dynamic vs Static Number Sequences: The Case of Keçeci and Oresme Numbers. Open Science Articles (OSAs), Zenodo. https://doi.org/10.5281/zenodo.15833351
|
|
216
|
+
|
|
217
|
+
Keçeci, M. (2025). oresmej (0.1.0). Open Science Articles (OSAs), Zenodo. https://doi.org/
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
### Chicago
|
|
221
|
+
|
|
222
|
+
```
|
|
223
|
+
Keçeci, Mehmet. Dynamic vs Static Number Sequences: The Case of Keçeci and Oresme Numbers. Open Science Articles (OSAs), Zenodo, 2025. https://doi.org/10.5281/zenodo.15833351
|
|
224
|
+
|
|
225
|
+
Keçeci, Mehmet. Oresme. Open Science Articles (OSAs), Zenodo, 2025. https://doi.org/
|
|
226
|
+
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
|
|
230
|
+
### Lisans (Türkçe) / License (English)
|
|
231
|
+
|
|
232
|
+
```
|
|
233
|
+
This project is licensed under the MIT License.
|
|
234
|
+
```
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools", "wheel", "setuptools_scm"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "oresmej"
|
|
7
|
+
dynamic = ["version"]
|
|
8
|
+
license = {file = "LICENSE"}
|
|
9
|
+
authors = [
|
|
10
|
+
{ name="Mehmet Keçeci", email="mkececi@yaani.com" },
|
|
11
|
+
]
|
|
12
|
+
description = "Oresme numbers refer to the sums related to the harmonic series"
|
|
13
|
+
readme = "README.md"
|
|
14
|
+
requires-python = ">=3.8"
|
|
15
|
+
dependencies = [
|
|
16
|
+
]
|
|
17
|
+
|
|
18
|
+
keywords = ["oresmej"]
|
|
19
|
+
classifiers = [
|
|
20
|
+
"Programming Language :: Python :: 3",
|
|
21
|
+
"Operating System :: OS Independent",
|
|
22
|
+
"Topic :: Software Development",
|
|
23
|
+
"Topic :: Scientific/Engineering",
|
|
24
|
+
"Typing :: Typed",
|
|
25
|
+
"Operating System :: Microsoft :: Windows",
|
|
26
|
+
"Operating System :: POSIX",
|
|
27
|
+
"Operating System :: Unix",
|
|
28
|
+
"Operating System :: MacOS",
|
|
29
|
+
"License :: OSI Approved :: MIT License",
|
|
30
|
+
"Intended Audience :: Developers",
|
|
31
|
+
"Intended Audience :: Science/Research",
|
|
32
|
+
]
|
|
33
|
+
|
|
34
|
+
[tool.setuptools_scm]
|
|
35
|
+
version_file = "src/oresmej/_version.py" # Sürüm bilgisinin bulunduğu dosya
|
|
36
|
+
local_scheme = "no-local-version"
|
|
37
|
+
|
|
38
|
+
[project.urls]
|
|
39
|
+
Homepage = "https://github.com/WhiteSymmetry/oresmej/"
|
|
40
|
+
Documentation = "https://WhiteSymmetry.github.io/oresmej/"
|
|
41
|
+
Repository = "https://github.com/WhiteSymmetry/oresmej/"
|
|
42
|
+
Issues = "https://github.com/WhiteSymmetry/oresmej/issues"
|
oresmej-0.1.0/setup.cfg
ADDED
oresmej-0.1.0/setup.py
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
from setuptools import setup, find_packages
|
|
2
|
+
|
|
3
|
+
setup(
|
|
4
|
+
name="oresmej",
|
|
5
|
+
use_scm_version=True, # Sürüm bilgisini setuptools_scm ile alır
|
|
6
|
+
setup_requires=["setuptools", "wheel", "setuptools_scm"], # Gerekli kurulum bağımlılıkları
|
|
7
|
+
version='0.1.0',
|
|
8
|
+
packages=find_packages(where="src"), # src dizinindeki modülleri bul
|
|
9
|
+
package_dir={"": "src"}, # src dizinine yönlendirme
|
|
10
|
+
include_package_data=True, # Ek dosyaları dahil et
|
|
11
|
+
install_requires=[
|
|
12
|
+
"numpy",
|
|
13
|
+
],
|
|
14
|
+
author="Mehmet Keçeci",
|
|
15
|
+
description="Oresme numbers refer to the sums related to the harmonic series.",
|
|
16
|
+
url="https://github.com/oresmej",
|
|
17
|
+
license="MIT",
|
|
18
|
+
python_requires='>=3.9',
|
|
19
|
+
)
|