oresme 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.
- oresme-0.1.0/LICENSE +21 -0
- oresme-0.1.0/MANIFEST.in +3 -0
- oresme-0.1.0/PKG-INFO +209 -0
- oresme-0.1.0/README.md +155 -0
- oresme-0.1.0/pyproject.toml +41 -0
- oresme-0.1.0/setup.cfg +4 -0
- oresme-0.1.0/setup.py +19 -0
- oresme-0.1.0/src/oresme/__init__.py +45 -0
- oresme-0.1.0/src/oresme/_version.py +9 -0
- oresme-0.1.0/src/oresme/oresme.py +51 -0
- oresme-0.1.0/src/oresme.egg-info/PKG-INFO +209 -0
- oresme-0.1.0/src/oresme.egg-info/SOURCES.txt +13 -0
- oresme-0.1.0/src/oresme.egg-info/dependency_links.txt +1 -0
- oresme-0.1.0/src/oresme.egg-info/top_level.txt +1 -0
- oresme-0.1.0/tests/test_sample.py +2 -0
oresme-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.
|
oresme-0.1.0/MANIFEST.in
ADDED
oresme-0.1.0/PKG-INFO
ADDED
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: oresme
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Oresme numbers refer to the sums related to the harmonic series
|
|
5
|
+
Home-page: https://github.com/WhiteSymmetry/Oresme
|
|
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/Oresme/
|
|
31
|
+
Project-URL: Documentation, https://WhiteSymmetry.github.io/Oresme/
|
|
32
|
+
Project-URL: Repository, https://github.com/WhiteSymmetry/Oresme/
|
|
33
|
+
Project-URL: Issues, https://github.com/WhiteSymmetry/Oresme/issues
|
|
34
|
+
Keywords: Oresme
|
|
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
|
|
56
|
+
|
|
57
|
+
[](https://doi.org/)
|
|
58
|
+
|
|
59
|
+
[](https://doi.org/)
|
|
60
|
+
|
|
61
|
+
[](https://anaconda.org/bilgi/Oresme)
|
|
62
|
+
[](https://anaconda.org/bilgi/Oresme)
|
|
63
|
+
[](https://anaconda.org/bilgi/Oresme)
|
|
64
|
+
[](https://anaconda.org/bilgi/Oresme)
|
|
65
|
+
[](https://opensource.org/)
|
|
66
|
+
[](https://opensource.org/licenses/MIT)
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
Oresme numbers refer to the sums related to the harmonic series.
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Tanım (Türkçe)
|
|
74
|
+
Oresme sayıları harmonik seriye ait toplamları ifade eder.
|
|
75
|
+
|
|
76
|
+
## Description (English)
|
|
77
|
+
Oresme numbers refer to the sums related to the harmonic series.
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## Kurulum (Türkçe) / Installation (English)
|
|
82
|
+
|
|
83
|
+
### Python ile Kurulum / Install with pip, conda, mamba
|
|
84
|
+
```bash
|
|
85
|
+
pip install Oresme -U
|
|
86
|
+
python -m pip install -U Oresme
|
|
87
|
+
conda install bilgi::Oresme -y
|
|
88
|
+
mamba install bilgi::Oresme -y
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
```diff
|
|
92
|
+
- pip uninstall Oresme -y
|
|
93
|
+
+ pip install -U Oresme
|
|
94
|
+
+ python -m pip install -U Oresme
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
[PyPI](https://pypi.org/project/Oresme/)
|
|
98
|
+
|
|
99
|
+
### Test Kurulumu / Test Installation
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
pip install -i https://test.pypi.org/simple/ Oresme -U
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### Github Master Kurulumu / GitHub Master Installation
|
|
106
|
+
|
|
107
|
+
**Terminal:**
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
pip install git+https://github.com/WhiteSymmetry/Oresme.git
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
**Jupyter Lab, Notebook, Visual Studio Code:**
|
|
114
|
+
|
|
115
|
+
```python
|
|
116
|
+
!pip install git+https://github.com/WhiteSymmetry/Oresme.git
|
|
117
|
+
# or
|
|
118
|
+
%pip install git+https://github.com/WhiteSymmetry/Oresme.git
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## Kullanım (Türkçe) / Usage (English)
|
|
124
|
+
|
|
125
|
+
```python
|
|
126
|
+
import oresme as ore
|
|
127
|
+
|
|
128
|
+
# Example 1: Generate Oresme sequence
|
|
129
|
+
print(ore.oresme_sequence(5)) # [0.5, 0.5, 0.375, 0.25, 0.15625]
|
|
130
|
+
|
|
131
|
+
# Example 2: Get exact harmonic numbers as fractions
|
|
132
|
+
print(ore.harmonic_numbers(3)) # [Fraction(1, 1), Fraction(3, 2), Fraction(11, 6)]
|
|
133
|
+
|
|
134
|
+
# Example 3: Calculate single harmonic number
|
|
135
|
+
print(ore.harmonic_number(5)) # 2.283333333333333
|
|
136
|
+
|
|
137
|
+
# Example 4: Approximate large harmonic number
|
|
138
|
+
print(ore.harmonic_number_approx(1_000_000)) # ≈14.392726722865724
|
|
139
|
+
|
|
140
|
+
# Example 5: Use generator
|
|
141
|
+
for i, h in enumerate(ore.harmonic_generator(3), 1):
|
|
142
|
+
print(f"H_{i} = {h}")
|
|
143
|
+
|
|
144
|
+
# Example 6: NumPy vectorized version
|
|
145
|
+
print(ore.harmonic_numbers_numpy(5)) # [1. 1.5 1.833... 2.083... 2.283...]
|
|
146
|
+
|
|
147
|
+
[0.5, 0.5, 0.375, 0.25, 0.15625]
|
|
148
|
+
[Fraction(1, 1), Fraction(3, 2), Fraction(11, 6)]
|
|
149
|
+
2.283333333333333
|
|
150
|
+
14.392726722865808
|
|
151
|
+
H_1 = 1.0
|
|
152
|
+
H_2 = 1.5
|
|
153
|
+
H_3 = 1.8333333333333333
|
|
154
|
+
[1. 1.5 1.83333333 2.08333333 2.28333333]
|
|
155
|
+
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
```python
|
|
159
|
+
import oresme
|
|
160
|
+
oresme.__version__
|
|
161
|
+
```
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
### Development
|
|
165
|
+
```bash
|
|
166
|
+
# Clone the repository
|
|
167
|
+
git clone https://github.com/WhiteSymmetry/Oresme.git
|
|
168
|
+
cd Oresme
|
|
169
|
+
|
|
170
|
+
# Install in development mode
|
|
171
|
+
python -m pip install -ve . # Install package in development mode
|
|
172
|
+
|
|
173
|
+
# Run tests
|
|
174
|
+
pytest
|
|
175
|
+
|
|
176
|
+
Notebook, Jupyterlab, Colab, Visual Studio Code
|
|
177
|
+
!python -m pip install git+https://github.com/WhiteSymmetry/Oresme.git
|
|
178
|
+
```
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## Citation
|
|
182
|
+
|
|
183
|
+
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.
|
|
184
|
+
|
|
185
|
+
### BibTeX
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
### APA
|
|
189
|
+
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
Keçeci, M. (2025). Oresme. GZenodo. https://doi.org/
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
### Chicago
|
|
197
|
+
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
Keçeci, Mehmet. "Oresme". Zenodo, 2025. https://doi.org/
|
|
201
|
+
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
### Lisans (Türkçe) / License (English)
|
|
206
|
+
|
|
207
|
+
```
|
|
208
|
+
This project is licensed under the MIT License.
|
|
209
|
+
```
|
oresme-0.1.0/README.md
ADDED
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
# Oresme
|
|
2
|
+
|
|
3
|
+
[](https://doi.org/)
|
|
4
|
+
|
|
5
|
+
[](https://doi.org/)
|
|
6
|
+
|
|
7
|
+
[](https://anaconda.org/bilgi/Oresme)
|
|
8
|
+
[](https://anaconda.org/bilgi/Oresme)
|
|
9
|
+
[](https://anaconda.org/bilgi/Oresme)
|
|
10
|
+
[](https://anaconda.org/bilgi/Oresme)
|
|
11
|
+
[](https://opensource.org/)
|
|
12
|
+
[](https://opensource.org/licenses/MIT)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
Oresme numbers refer to the sums related to the harmonic series.
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Tanım (Türkçe)
|
|
20
|
+
Oresme sayıları harmonik seriye ait toplamları ifade eder.
|
|
21
|
+
|
|
22
|
+
## Description (English)
|
|
23
|
+
Oresme numbers refer to the sums related to the harmonic series.
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Kurulum (Türkçe) / Installation (English)
|
|
28
|
+
|
|
29
|
+
### Python ile Kurulum / Install with pip, conda, mamba
|
|
30
|
+
```bash
|
|
31
|
+
pip install Oresme -U
|
|
32
|
+
python -m pip install -U Oresme
|
|
33
|
+
conda install bilgi::Oresme -y
|
|
34
|
+
mamba install bilgi::Oresme -y
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
```diff
|
|
38
|
+
- pip uninstall Oresme -y
|
|
39
|
+
+ pip install -U Oresme
|
|
40
|
+
+ python -m pip install -U Oresme
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
[PyPI](https://pypi.org/project/Oresme/)
|
|
44
|
+
|
|
45
|
+
### Test Kurulumu / Test Installation
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
pip install -i https://test.pypi.org/simple/ Oresme -U
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Github Master Kurulumu / GitHub Master Installation
|
|
52
|
+
|
|
53
|
+
**Terminal:**
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
pip install git+https://github.com/WhiteSymmetry/Oresme.git
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
**Jupyter Lab, Notebook, Visual Studio Code:**
|
|
60
|
+
|
|
61
|
+
```python
|
|
62
|
+
!pip install git+https://github.com/WhiteSymmetry/Oresme.git
|
|
63
|
+
# or
|
|
64
|
+
%pip install git+https://github.com/WhiteSymmetry/Oresme.git
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Kullanım (Türkçe) / Usage (English)
|
|
70
|
+
|
|
71
|
+
```python
|
|
72
|
+
import oresme as ore
|
|
73
|
+
|
|
74
|
+
# Example 1: Generate Oresme sequence
|
|
75
|
+
print(ore.oresme_sequence(5)) # [0.5, 0.5, 0.375, 0.25, 0.15625]
|
|
76
|
+
|
|
77
|
+
# Example 2: Get exact harmonic numbers as fractions
|
|
78
|
+
print(ore.harmonic_numbers(3)) # [Fraction(1, 1), Fraction(3, 2), Fraction(11, 6)]
|
|
79
|
+
|
|
80
|
+
# Example 3: Calculate single harmonic number
|
|
81
|
+
print(ore.harmonic_number(5)) # 2.283333333333333
|
|
82
|
+
|
|
83
|
+
# Example 4: Approximate large harmonic number
|
|
84
|
+
print(ore.harmonic_number_approx(1_000_000)) # ≈14.392726722865724
|
|
85
|
+
|
|
86
|
+
# Example 5: Use generator
|
|
87
|
+
for i, h in enumerate(ore.harmonic_generator(3), 1):
|
|
88
|
+
print(f"H_{i} = {h}")
|
|
89
|
+
|
|
90
|
+
# Example 6: NumPy vectorized version
|
|
91
|
+
print(ore.harmonic_numbers_numpy(5)) # [1. 1.5 1.833... 2.083... 2.283...]
|
|
92
|
+
|
|
93
|
+
[0.5, 0.5, 0.375, 0.25, 0.15625]
|
|
94
|
+
[Fraction(1, 1), Fraction(3, 2), Fraction(11, 6)]
|
|
95
|
+
2.283333333333333
|
|
96
|
+
14.392726722865808
|
|
97
|
+
H_1 = 1.0
|
|
98
|
+
H_2 = 1.5
|
|
99
|
+
H_3 = 1.8333333333333333
|
|
100
|
+
[1. 1.5 1.83333333 2.08333333 2.28333333]
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
```python
|
|
105
|
+
import oresme
|
|
106
|
+
oresme.__version__
|
|
107
|
+
```
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
### Development
|
|
111
|
+
```bash
|
|
112
|
+
# Clone the repository
|
|
113
|
+
git clone https://github.com/WhiteSymmetry/Oresme.git
|
|
114
|
+
cd Oresme
|
|
115
|
+
|
|
116
|
+
# Install in development mode
|
|
117
|
+
python -m pip install -ve . # Install package in development mode
|
|
118
|
+
|
|
119
|
+
# Run tests
|
|
120
|
+
pytest
|
|
121
|
+
|
|
122
|
+
Notebook, Jupyterlab, Colab, Visual Studio Code
|
|
123
|
+
!python -m pip install git+https://github.com/WhiteSymmetry/Oresme.git
|
|
124
|
+
```
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## Citation
|
|
128
|
+
|
|
129
|
+
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.
|
|
130
|
+
|
|
131
|
+
### BibTeX
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
### APA
|
|
135
|
+
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
Keçeci, M. (2025). Oresme. GZenodo. https://doi.org/
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### Chicago
|
|
143
|
+
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
Keçeci, Mehmet. "Oresme". Zenodo, 2025. https://doi.org/
|
|
147
|
+
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
### Lisans (Türkçe) / License (English)
|
|
152
|
+
|
|
153
|
+
```
|
|
154
|
+
This project is licensed under the MIT License.
|
|
155
|
+
```
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools", "wheel", "setuptools_scm"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "oresme"
|
|
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
|
+
keywords = ["Oresme"]
|
|
18
|
+
classifiers = [
|
|
19
|
+
"Programming Language :: Python :: 3",
|
|
20
|
+
"Operating System :: OS Independent",
|
|
21
|
+
"Topic :: Software Development",
|
|
22
|
+
"Topic :: Scientific/Engineering",
|
|
23
|
+
"Typing :: Typed",
|
|
24
|
+
"Operating System :: Microsoft :: Windows",
|
|
25
|
+
"Operating System :: POSIX",
|
|
26
|
+
"Operating System :: Unix",
|
|
27
|
+
"Operating System :: MacOS",
|
|
28
|
+
"License :: OSI Approved :: MIT License",
|
|
29
|
+
"Intended Audience :: Developers",
|
|
30
|
+
"Intended Audience :: Science/Research",
|
|
31
|
+
]
|
|
32
|
+
|
|
33
|
+
[tool.setuptools_scm]
|
|
34
|
+
version_file = "src/oresme/_version.py" # Sürüm bilgisinin bulunduğu dosya
|
|
35
|
+
local_scheme = "no-local-version"
|
|
36
|
+
|
|
37
|
+
[project.urls]
|
|
38
|
+
Homepage = "https://github.com/WhiteSymmetry/Oresme/"
|
|
39
|
+
Documentation = "https://WhiteSymmetry.github.io/Oresme/"
|
|
40
|
+
Repository = "https://github.com/WhiteSymmetry/Oresme/"
|
|
41
|
+
Issues = "https://github.com/WhiteSymmetry/Oresme/issues"
|
oresme-0.1.0/setup.cfg
ADDED
oresme-0.1.0/setup.py
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
from setuptools import setup, find_packages
|
|
2
|
+
|
|
3
|
+
setup(
|
|
4
|
+
name="oresme",
|
|
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/WhiteSymmetry/Oresme",
|
|
17
|
+
license="MIT",
|
|
18
|
+
python_requires='>=3.9',
|
|
19
|
+
)
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# __init__.py
|
|
2
|
+
# Bu dosya paketin başlangıç noktası olarak çalışır.
|
|
3
|
+
# Alt modülleri yükler, sürüm bilgileri tanımlar ve geriye dönük uyumluluk için uyarılar sağlar.
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations # Gelecekteki özellikler için (Python 3.7+)
|
|
6
|
+
|
|
7
|
+
import importlib
|
|
8
|
+
import warnings
|
|
9
|
+
import os
|
|
10
|
+
if os.getenv("DEVELOPMENT") == "true":
|
|
11
|
+
importlib.reload(oresme)
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
# Göreli modül içe aktarmaları
|
|
15
|
+
# F401 hatasını önlemek için sadece kullanacağınız şeyleri dışa aktarın
|
|
16
|
+
# Aksi halde linter'lar "imported but unused" uyarısı verir
|
|
17
|
+
try:
|
|
18
|
+
from .oresme import * # gerekirse burada belirli fonksiyonları seçmeli yapmak daha güvenlidir
|
|
19
|
+
from . import oresme # Modülün kendisine doğrudan erişim isteniyorsa
|
|
20
|
+
except ImportError as e:
|
|
21
|
+
warnings.warn(f"Gerekli modül yüklenemedi: {e}", ImportWarning)
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
# Eski bir fonksiyonun yer tutucusu - gelecekte kaldırılacak
|
|
25
|
+
def eski_fonksiyon():
|
|
26
|
+
"""
|
|
27
|
+
Kaldırılması planlanan eski bir fonksiyondur.
|
|
28
|
+
Lütfen alternatif fonksiyonları kullanın.
|
|
29
|
+
"""
|
|
30
|
+
warnings.warn(
|
|
31
|
+
"eski_fonksiyon() artık kullanılmamaktadır ve gelecekte kaldırılacaktır. "
|
|
32
|
+
"Lütfen yeni alternatif fonksiyonları kullanın. "
|
|
33
|
+
"Oresme Python 3.9-3.14 sürümlerinde desteklenmektedir.",
|
|
34
|
+
category=DeprecationWarning,
|
|
35
|
+
stacklevel=2
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
# Paket sürüm numarası
|
|
40
|
+
__version__ = "0.1.0"
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
# Geliştirme sırasında test etmek için
|
|
44
|
+
if __name__ == "__main__":
|
|
45
|
+
eski_fonksiyon()
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# _version.py
|
|
2
|
+
|
|
3
|
+
__version__ = "0.1.0"
|
|
4
|
+
__license__ = "MIT"
|
|
5
|
+
__description__ = "Oresme numbers refer to the sums related to the harmonic series."
|
|
6
|
+
__author__ = "Mehmet Keçeci"
|
|
7
|
+
__url__ = "https://github.com/WhiteSymmetry/Oresme"
|
|
8
|
+
__docs__ = "https://WhiteSymmetry.github.io/Oresme" # Opsiyonel: Dokümantasyon linki
|
|
9
|
+
__dependencies__ = ["python>=3.9"] # Diğer bağımlılıkları da ekleyebilirsiniz
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# oresme.py
|
|
2
|
+
"""
|
|
3
|
+
A module for generating Oresme numbers (harmonic series partial sums)
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
from fractions import Fraction
|
|
7
|
+
import math
|
|
8
|
+
import numpy as np
|
|
9
|
+
from typing import List, Union, Generator
|
|
10
|
+
|
|
11
|
+
def oresme_sequence(n_terms: int) -> List[float]:
|
|
12
|
+
"""Generates the first n terms of the Oresme sequence (1/2^n series)."""
|
|
13
|
+
return [i / (2 ** i) for i in range(1, n_terms + 1)]
|
|
14
|
+
|
|
15
|
+
def harmonic_numbers(n_terms: int, start_index: int = 1) -> List[Fraction]:
|
|
16
|
+
"""Generates the first n terms of harmonic numbers (H_n = 1 + 1/2 + ... + 1/n)."""
|
|
17
|
+
sequence = []
|
|
18
|
+
current_sum = Fraction(0)
|
|
19
|
+
for i in range(start_index, start_index + n_terms):
|
|
20
|
+
current_sum += Fraction(1, i)
|
|
21
|
+
sequence.append(current_sum)
|
|
22
|
+
return sequence
|
|
23
|
+
|
|
24
|
+
def harmonic_number(n: int) -> float:
|
|
25
|
+
"""Calculates the nth harmonic number (H_n = 1 + 1/2 + ... + 1/n)."""
|
|
26
|
+
return sum(1/k for k in range(1, n + 1))
|
|
27
|
+
|
|
28
|
+
def harmonic_number_approx(n: int) -> float:
|
|
29
|
+
"""Approximates the nth harmonic number using Euler-Mascheroni constant."""
|
|
30
|
+
gamma = 0.57721566490153286060 # Euler-Mascheroni constant
|
|
31
|
+
return math.log(n) + gamma + 1/(2*n)
|
|
32
|
+
|
|
33
|
+
def harmonic_generator(n: int) -> Generator[float, None, None]:
|
|
34
|
+
"""Generates harmonic numbers H_1 to H_n."""
|
|
35
|
+
total = 0.0
|
|
36
|
+
for k in range(1, n + 1):
|
|
37
|
+
total += 1/k
|
|
38
|
+
yield total
|
|
39
|
+
|
|
40
|
+
def harmonic_numbers_numpy(n: int) -> np.ndarray:
|
|
41
|
+
"""Calculates harmonic numbers H_1 to H_n using NumPy for vectorization."""
|
|
42
|
+
return np.cumsum(1/np.arange(1, n + 1))
|
|
43
|
+
|
|
44
|
+
# Example usage when module is run directly
|
|
45
|
+
if __name__ == "__main__":
|
|
46
|
+
print("Oresme sequence (first 5 terms):", oresme_sequence(5))
|
|
47
|
+
print("Harmonic numbers (H1-H5):", harmonic_numbers(5))
|
|
48
|
+
print("5th harmonic number:", harmonic_number(5))
|
|
49
|
+
print("Approximation of 1000th harmonic number:", harmonic_number_approx(1000))
|
|
50
|
+
print("Harmonic generator (first 3 terms):", list(harmonic_generator(3)))
|
|
51
|
+
print("NumPy harmonic numbers (H1-H5):", harmonic_numbers_numpy(5))
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: oresme
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Oresme numbers refer to the sums related to the harmonic series
|
|
5
|
+
Home-page: https://github.com/WhiteSymmetry/Oresme
|
|
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/Oresme/
|
|
31
|
+
Project-URL: Documentation, https://WhiteSymmetry.github.io/Oresme/
|
|
32
|
+
Project-URL: Repository, https://github.com/WhiteSymmetry/Oresme/
|
|
33
|
+
Project-URL: Issues, https://github.com/WhiteSymmetry/Oresme/issues
|
|
34
|
+
Keywords: Oresme
|
|
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
|
|
56
|
+
|
|
57
|
+
[](https://doi.org/)
|
|
58
|
+
|
|
59
|
+
[](https://doi.org/)
|
|
60
|
+
|
|
61
|
+
[](https://anaconda.org/bilgi/Oresme)
|
|
62
|
+
[](https://anaconda.org/bilgi/Oresme)
|
|
63
|
+
[](https://anaconda.org/bilgi/Oresme)
|
|
64
|
+
[](https://anaconda.org/bilgi/Oresme)
|
|
65
|
+
[](https://opensource.org/)
|
|
66
|
+
[](https://opensource.org/licenses/MIT)
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
Oresme numbers refer to the sums related to the harmonic series.
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Tanım (Türkçe)
|
|
74
|
+
Oresme sayıları harmonik seriye ait toplamları ifade eder.
|
|
75
|
+
|
|
76
|
+
## Description (English)
|
|
77
|
+
Oresme numbers refer to the sums related to the harmonic series.
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## Kurulum (Türkçe) / Installation (English)
|
|
82
|
+
|
|
83
|
+
### Python ile Kurulum / Install with pip, conda, mamba
|
|
84
|
+
```bash
|
|
85
|
+
pip install Oresme -U
|
|
86
|
+
python -m pip install -U Oresme
|
|
87
|
+
conda install bilgi::Oresme -y
|
|
88
|
+
mamba install bilgi::Oresme -y
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
```diff
|
|
92
|
+
- pip uninstall Oresme -y
|
|
93
|
+
+ pip install -U Oresme
|
|
94
|
+
+ python -m pip install -U Oresme
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
[PyPI](https://pypi.org/project/Oresme/)
|
|
98
|
+
|
|
99
|
+
### Test Kurulumu / Test Installation
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
pip install -i https://test.pypi.org/simple/ Oresme -U
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### Github Master Kurulumu / GitHub Master Installation
|
|
106
|
+
|
|
107
|
+
**Terminal:**
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
pip install git+https://github.com/WhiteSymmetry/Oresme.git
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
**Jupyter Lab, Notebook, Visual Studio Code:**
|
|
114
|
+
|
|
115
|
+
```python
|
|
116
|
+
!pip install git+https://github.com/WhiteSymmetry/Oresme.git
|
|
117
|
+
# or
|
|
118
|
+
%pip install git+https://github.com/WhiteSymmetry/Oresme.git
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## Kullanım (Türkçe) / Usage (English)
|
|
124
|
+
|
|
125
|
+
```python
|
|
126
|
+
import oresme as ore
|
|
127
|
+
|
|
128
|
+
# Example 1: Generate Oresme sequence
|
|
129
|
+
print(ore.oresme_sequence(5)) # [0.5, 0.5, 0.375, 0.25, 0.15625]
|
|
130
|
+
|
|
131
|
+
# Example 2: Get exact harmonic numbers as fractions
|
|
132
|
+
print(ore.harmonic_numbers(3)) # [Fraction(1, 1), Fraction(3, 2), Fraction(11, 6)]
|
|
133
|
+
|
|
134
|
+
# Example 3: Calculate single harmonic number
|
|
135
|
+
print(ore.harmonic_number(5)) # 2.283333333333333
|
|
136
|
+
|
|
137
|
+
# Example 4: Approximate large harmonic number
|
|
138
|
+
print(ore.harmonic_number_approx(1_000_000)) # ≈14.392726722865724
|
|
139
|
+
|
|
140
|
+
# Example 5: Use generator
|
|
141
|
+
for i, h in enumerate(ore.harmonic_generator(3), 1):
|
|
142
|
+
print(f"H_{i} = {h}")
|
|
143
|
+
|
|
144
|
+
# Example 6: NumPy vectorized version
|
|
145
|
+
print(ore.harmonic_numbers_numpy(5)) # [1. 1.5 1.833... 2.083... 2.283...]
|
|
146
|
+
|
|
147
|
+
[0.5, 0.5, 0.375, 0.25, 0.15625]
|
|
148
|
+
[Fraction(1, 1), Fraction(3, 2), Fraction(11, 6)]
|
|
149
|
+
2.283333333333333
|
|
150
|
+
14.392726722865808
|
|
151
|
+
H_1 = 1.0
|
|
152
|
+
H_2 = 1.5
|
|
153
|
+
H_3 = 1.8333333333333333
|
|
154
|
+
[1. 1.5 1.83333333 2.08333333 2.28333333]
|
|
155
|
+
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
```python
|
|
159
|
+
import oresme
|
|
160
|
+
oresme.__version__
|
|
161
|
+
```
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
### Development
|
|
165
|
+
```bash
|
|
166
|
+
# Clone the repository
|
|
167
|
+
git clone https://github.com/WhiteSymmetry/Oresme.git
|
|
168
|
+
cd Oresme
|
|
169
|
+
|
|
170
|
+
# Install in development mode
|
|
171
|
+
python -m pip install -ve . # Install package in development mode
|
|
172
|
+
|
|
173
|
+
# Run tests
|
|
174
|
+
pytest
|
|
175
|
+
|
|
176
|
+
Notebook, Jupyterlab, Colab, Visual Studio Code
|
|
177
|
+
!python -m pip install git+https://github.com/WhiteSymmetry/Oresme.git
|
|
178
|
+
```
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## Citation
|
|
182
|
+
|
|
183
|
+
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.
|
|
184
|
+
|
|
185
|
+
### BibTeX
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
### APA
|
|
189
|
+
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
Keçeci, M. (2025). Oresme. GZenodo. https://doi.org/
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
### Chicago
|
|
197
|
+
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
Keçeci, Mehmet. "Oresme". Zenodo, 2025. https://doi.org/
|
|
201
|
+
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
### Lisans (Türkçe) / License (English)
|
|
206
|
+
|
|
207
|
+
```
|
|
208
|
+
This project is licensed under the MIT License.
|
|
209
|
+
```
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
LICENSE
|
|
2
|
+
MANIFEST.in
|
|
3
|
+
README.md
|
|
4
|
+
pyproject.toml
|
|
5
|
+
setup.py
|
|
6
|
+
src/oresme/__init__.py
|
|
7
|
+
src/oresme/_version.py
|
|
8
|
+
src/oresme/oresme.py
|
|
9
|
+
src/oresme.egg-info/PKG-INFO
|
|
10
|
+
src/oresme.egg-info/SOURCES.txt
|
|
11
|
+
src/oresme.egg-info/dependency_links.txt
|
|
12
|
+
src/oresme.egg-info/top_level.txt
|
|
13
|
+
tests/test_sample.py
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
oresme
|