PythonSTB commited on
Commit
6a9ff7d
·
verified ·
1 Parent(s): 238ef75

Delete pywavelets/PYWAVELETS_USER_GUIDE.txt

Browse files
pywavelets/PYWAVELETS_USER_GUIDE.txt DELETED
@@ -1,91 +0,0 @@
1
- ================================================================================
2
- PYWAVELETS - USER GUIDE (Android Python STB) - Generated by RIMI
3
- ================================================================================
4
-
5
- PyWavelets 1.10.0 for Android (CPython 3.12, API 24)
6
- ----------------------------------------------------
7
- PyWavelets (import name: pywt) is a wavelet transform library for Python:
8
- discrete and stationary wavelet transforms (1D, 2D, nD), wavelet packets,
9
- continuous wavelet transform (CWT), thresholding, and multilevel analysis.
10
-
11
- Provided wheels (C extensions, cross-compiled with NDK r26):
12
- pywavelets-1.10.0-cp312-cp312-android_24_arm64_v8a.whl (real ARM64 phones)
13
- pywavelets-1.10.0-cp312-cp312-android_24_x86_64.whl (x86_64 emulators)
14
-
15
- Installation
16
- ------------
17
- 1. Install the numpy 2.5.2 Android wheel FIRST (from its own package
18
- folder — do NOT look for numpy in the pywavelets folder):
19
- numpy-2.5.2-cp312-cp312-android_24_<arch>.whl
20
- 2. Install the matching pywavelets STANDALONE wheel:
21
- pywavelets-1.10.0-cp312-cp312-android_24_<arch>.whl
22
- pip resolves the `numpy<3,>=1.26.4` runtime dependency from the
23
- already-installed numpy (both wheels share the same Python 3.12 ABI).
24
- 3. Run Test_PyWavelets.py from the Scripts folder; expect ALL PASSED.
25
-
26
- Quick start
27
- -----------
28
- import pywt
29
- import numpy as np
30
-
31
- x = np.arange(16, dtype=float)
32
-
33
- # 1D discrete transform and perfect reconstruction
34
- cA, cD = pywt.dwt(x, 'db1')
35
- y = pywt.idwt(cA, cD, 'db1')
36
-
37
- # Multilevel decomposition
38
- coeffs = pywt.wavedec(x, 'db2', level=2)
39
- y = pywt.waverec(coeffs, 'db2')
40
-
41
- # Stationary (undecimated) transform
42
- swt = pywt.swt(x, 'haar', level=1)
43
- y = pywt.iswt(swt, 'haar')
44
-
45
- # 2D transform
46
- img = np.arange(64, dtype=float).reshape(8, 8)
47
- cA, (cH, cV, cD) = pywt.dwt2(img, 'haar')
48
- rec = pywt.idwt2((cA, (cH, cV, cD)), 'haar')
49
-
50
- # Denoising-style thresholding
51
- t = pywt.threshold(np.linspace(-2, 2, 32), 1.0, mode='soft')
52
-
53
- print(pywt.wavelist()[:5]) # ['bior1.1', 'bior1.3', ...]
54
-
55
- Android-specific notes
56
- ----------------------
57
- * The 4 native modules (pywt/_extensions/_cwt, _dwt, _pywt, _swt,
58
- named *.cpython-312.so) link only against librimi.so + system
59
- libm/libdl/libc. No C++ runtime is needed (pure C + Cython).
60
- * 16 KB page aligned, no GNU_RELRO: safe on Android 13+ (no dlopen
61
- `can't enable GNU RELRO protection` crash).
62
- * No OPENBLAS/Fortran dependency — unlike numpy/scipy this wheel is
63
- small (~4.3 MB) and has no native deps besides numpy's headers
64
- at build time.
65
- * Shell `python3` on device cannot load these modules (librimi.so needs
66
- the app JVM context); always test inside the app via Scripts.
67
-
68
- Known upstream quirk (NOT a build defect)
69
- -----------------------------------------
70
- The 1.10.0 source distribution ships util/version_utils.py with the
71
- version constants still at 1.8.0, so `pywt.__version__` reports '1.8.0'
72
- — the official PyPI 1.10.0 wheels do exactly the same. The *wheel*
73
- version (pywavelets-1.10.0.dist-info) is 1.10.0. The device test
74
- therefore checks only that the version string is present.
75
-
76
- Tested features (device script Test_PyWavelets.py, 10 checks)
77
- --------------------------------------------------------------
78
- import pywt + numpy / version string / Wavelet('db1') object /
79
- wavelist contents (db1, db2, haar, sym2) / dwt+idwt roundtrip /
80
- wavedec+waverec roundtrip (db2, level 2) / swt+iswt roundtrip (haar) /
81
- dwt2+idwt2 roundtrip (haar, 8x8) / soft+hard threshold smoke /
82
- pywt.data.camera() load.
83
-
84
- Runtime dependency
85
- ------------------
86
- numpy<3,>=1.26.4 (declared in METADATA Requires-Dist; install the
87
- numpy 2.5.2 Android wheel from its own package folder separately).
88
-
89
- ================================================================================
90
- Generated by RIMI
91
- ================================================================================