Skip to main content

A module for generating Oresme numbers (harmonic series partial sums)

Project description

Oresmen (Oresme+Numba)

Oresmen Oresmen

DOI

WorkflowHub DOI

figshare DOI

ResearchGate DOI

Anaconda-Server Badge Anaconda-Server Badge Anaconda-Server Badge Anaconda-Server Badge Open Source License: AGPL

Python CI codecov Documentation Status Binder PyPI version PyPI Downloads Contributor Covenant Linted with Ruff


PyPI PyPI version
Conda conda-forge version
DOI DOI
License: AGPL-3.0-or-later License


Oresme numbers refer to the sums related to the harmonic series.


Türkçe Tanım:

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:

  1. ( \frac{n}{2^n} ) serisi (Oresme'nin orijinal çalışması),
  2. Harmonik sayılar (( H_n = 1 + \frac{1}{2} + \cdots + \frac{1}{n} )).
    Bu sayılar, analiz ve sayı teorisinde önemli rol oynar.

Bu modül şunları sağlar:

  • Harmonik sayı hesaplamaları (kesirli tam sonuçlar ve kayan noktalı)
  • Oresme dizisi (n / 2^n) üretimi
  • ℓ² (Hilbert uzayı) aidiyet testleri (matematiksel olarak doğru)
  • Büyük ölçekli işlemler için Numba ile hızlandırılmış hesaplamalar
  • Dizi analizi ve karşılaştırma yardımcıları

English Definition:

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:

  1. The ( \frac{n}{2^n} ) sequence (Oresme's original work),
  2. Harmonic numbers (( H_n = 1 + \frac{1}{2} + \cdots + \frac{1}{n} )).
    These numbers play a key role in analysis and number theory.

This module provides:

  • Harmonic number calculations (exact fractions and floating point)
  • Oresme sequence (n / 2^n) generation
  • Hilbert space (ℓ²) membership tests (mathematically sound)
  • Numba-accelerated computations for large‑scale work
  • Sequence analysis and comparison utilities

Fark/Karşılaştırma (Difference):

  • Oresme'nin ( \frac{n}{2^n} ) serisi ıraksaklık kanıtları için önemlidir.
  • Harmonik sayılar (( H_n )) ise logaritmik büyüme gösterir ve ( n \to \infty ) iken ıraksar.
  • Modern literatürde "Oresme numbers" terimi daha çok tarihsel bağlamda kullanılır.

Kurulum (Türkçe) / Installation (English)

Python ile Kurulum / Install with pip, conda, mamba

pip install oresmen -U
python -m pip install -U oresmen
conda install bilgi::oresmen -y
mamba install bilgi::oresmen -y
- pip uninstall Oresme -y
+ pip install -U oresmen
+ python -m pip install -U oresmen

PyPI

Test Kurulumu / Test Installation

pip install -i https://test.pypi.org/simple/ oresmen -U

Github Master Kurulumu / GitHub Master Installation

Terminal:

pip install git+https://github.com/WhiteSymmetry/oresmen.git

Jupyter Lab, Notebook, Visual Studio Code:

!pip install git+https://github.com/WhiteSymmetry/oresmen.git
# or
%pip install git+https://github.com/WhiteSymmetry/oresmen.git

Kullanım (Türkçe) / Usage (English)

Note: "\Lib\site-packages\numba_init_.py"

if numpy_version > (2, 0):
    msg = (f"Numba needs NumPy 2.0 or less. Got NumPy "
           f"{numpy_version[0]}.{numpy_version[1]}.")
    raise ImportError(msg)

-->

if numpy_version > (2, 5):
    msg = (f"Numba needs NumPy 2.5 or less. Got NumPy "
           f"{numpy_version[0]}.{numpy_version[1]}.")
    raise ImportError(msg)
import oresmen as on

# Doğrudan erişim (on.main.harmonic_number yerine)
n = 100
hn = on.harmonic_number(n)
print(f"H_{n} = {hn}")

# Enum sınıfına doğrudan erişim
approx_hn = on.harmonic_number_approx(
    n,
    method=on.ApproximationMethod.EULER_MASCHERONI
)
print(f"H_{n} (Yaklaşık) = {approx_hn}")

# Numba ile hızlandırılmış diziye erişim
sums_array = on.harmonic_numbers_numba(10)
print(f"İlk 10 harmonik sayı: {sums_array}")
import oresmen as on
import numpy as np
import numba
import time
import matplotlib.pyplot as plt

# Simple usage example
plt.figure(figsize=(10, 5))
plt.plot(on.harmonic_numbers_numba(500))
plt.title("First 5000000 Harmonic Numbers")
plt.xlabel("n")
plt.ylabel("H(n)")
plt.show()
import oresmen
oresmen.__version__
import importlib
import inspect
import oresmen as on  # Varsa import hatasını yakalamak için


def diagnose_module(module_name):
    try:
        # Modülü yükle
        module = importlib.import_module(module_name)
        
        print(f"\n{' Modül Tanılama Raporu ':=^80}")
        print(f"Modül adı: {module_name}")
        print(f"Modül dosya yolu: {inspect.getfile(module)}")
        
        # Modülün tüm özelliklerini listele
        print("\nModülde bulunan özellikler:")
        members = inspect.getmembers(module)
        public_members = [name for name, _ in members if not name.startswith('_')]
        print(public_members)
        
        # Özel olarak kontrol edilecek fonksiyonlar
        required_functions = [
            'oresme_sequence',
            'harmonic_numbers',
            'harmonic_number',
            'harmonic_number_numba',
            'harmonic_numbers_numba',
            'harmonic_generator_numba',
            'harmonic_number_approx'
        ]
        
        print("\nEksik olan fonksiyonlar:")
        missing = [fn for fn in required_functions if not hasattr(module, fn)]
        print(missing if missing else "Tüm gerekli fonksiyonlar mevcut")
        
        # __all__ değişkenini kontrol et
        print("\n__all__ değişkeni:")
        if hasattr(module, '__all__'):
            print(module.__all__)
        else:
            print("__all__ tanımlı değil (tüm public fonksiyonlar içe aktarılır)")
            
    except ImportError as e:
        print(f"\nHATA: Modül yüklenemedi - {e}")
    except Exception as e:
        print(f"\nBeklenmeyen hata: {e}")

# Tanılama çalıştır
diagnose_module('oresmen')

# Alternatif olarak doğrudan kontrol
print("\nDoğrudan fonksiyon varlığı kontrolü:")
try:
    print("harmonic_numbers_numba mevcut mu?", hasattr(on, 'harmonic_numbers_numba'))
    if hasattr(on, 'harmonic_numbers_numba'):
        print("Fonksiyon imzası:", inspect.signature(on.harmonic_numbers_numba))
    else:
        print("Eksik fonksiyon: harmonic_numbers_numba")
except Exception as e:
    print("Kontrol sırasında hata:", e)
# 1. Alternatif içe aktarma yöntemi
from oresmen import harmonic_numbers_numba  # Doğrudan import deneyin
import oresmen as on

# 2. Modülü yeniden yükleme
import importlib
importlib.reload(on)

# 3. Fonksiyonun alternatif isimle var olup olmadığını kontrol
print("Alternatif fonksiyon isimleri:", [name for name in dir(on) if 'harmonic' in name.lower()])
from oresme import _run_tests, main
_run_tests()
main()

Development

# Clone the repository
git clone https://github.com/WhiteSymmetry/oresmen.git
cd oresmen

# Install in development mode
python -m pip install -ve . # Install package in development mode

# Run tests
pytest

Notebook, Jupyterlab, Colab, Visual Studio Code
!python -m pip install git+https://github.com/WhiteSymmetry/oresmen.git

Citation

If this library was useful to you in your research, please cite us. Following the GitHub citation standards, here is the recommended citation.

BibTeX

APA


Keçeci, M. (2025). oresmen [Data set]. ResearchGate. https://doi.org/10.13140/RG.2.2.19566.52804

Keçeci, M. (2025). oresmen [Data set]. figshare. https://doi.org/

Keçeci, M. (2025). oresmen [Data set]. WorkflowHub. https://doi.org/

Keçeci, M. (2025). oresmen (0.1.0). Zenodo. https://doi.org/10.5281/zenodo.16634186

Chicago


Keçeci, Mehmet. oresmen [Data set]. ResearchGate, 2025. https://doi.org/10.13140/RG.2.2.19566.52804

Keçeci, Mehmet (2025). oresmen [Data set]. figshare, 2025. https://doi.org/

Keçeci, Mehmet. oresmen [Data set]. WorkflowHub, 2025. https://doi.org/

Keçeci, Mehmet. oresmen. Open Science Articles (OSAs), Zenodo, 2025. [https://doi.org/](https://doi.org/10.5281/zenodo.16634186)

Lisans (Türkçe) / License (English)

This project is licensed under the AGPL-3.0-or-later License.

Pixi:

Pixi

pixi init oresmen

cd oresmen

pixi workspace channel add https://prefix.dev/channels/bilgi --prepend

✔ Added https://prefix.dev/channels/bilgi

pixi add oresmen

✔ Added oresmen >=...,<1

pixi install

pixi shell

pixi run python -c "import oresmen; print(oresmen.version)"

Çıktı:

pixi remove oresmen

conda install -c https://prefix.dev/channels/bilgi oresmen

pixi run python -c "import oresmen; print(oresmen.version)"

Çıktı:

pixi run pip list | grep oresmen

oresmen

pixi run pip show oresmen

Name: oresmen

Version:

Summary:

Home-page: https://github.com/WhiteSymmetry/oresmen

Author: Mehmet Keçeci

Author-email: Mehmet Keçeci <...>

License: GNU AFFERO GENERAL PUBLIC LICENSE

Copyright (c) 2025-2026 Mehmet Keçeci


  1. https://pypi.org/project/oresmen/
  2. https://anaconda.org/bilgi/oresmen
  3. https://prefix.dev/channels/bilgi/packages/oresmen

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

oresmen-0.2.0.tar.gz (29.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

oresmen-0.2.0-py3-none-any.whl (27.6 kB view details)

Uploaded Python 3

File details

Details for the file oresmen-0.2.0.tar.gz.

File metadata

  • Download URL: oresmen-0.2.0.tar.gz
  • Upload date:
  • Size: 29.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for oresmen-0.2.0.tar.gz
Algorithm Hash digest
SHA256 797b7c7b59531d8abf942a7635112e1512deb1106789f1de1b737365b39f156c
MD5 8c7dedbf2f1255f6007bb138a13dd669
BLAKE2b-256 67a5fc410172a84215ecda0932af2bd933a98165d64cdb6726b1b204d715aa9f

See more details on using hashes here.

Provenance

The following attestation bundles were made for oresmen-0.2.0.tar.gz:

Publisher: workflow.yml on WhiteSymmetry/oresmen

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oresmen-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: oresmen-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 27.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for oresmen-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3912f0690182b1dc9013f7d836518252020cfc8ae1a4d812f63116510397878e
MD5 8d5a6d9b5853deef717a9deb65aa5a0a
BLAKE2b-256 4f4f2c50d6b048a5c5be2a992a22f928975f6c5b01d4ec5b04901e957921c72c

See more details on using hashes here.

Provenance

The following attestation bundles were made for oresmen-0.2.0-py3-none-any.whl:

Publisher: workflow.yml on WhiteSymmetry/oresmen

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page