PyPyNum 1.14.0__tar.gz → 1.15.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.
Files changed (57) hide show
  1. {pypynum-1.14.0 → pypynum-1.15.0}/PKG-INFO +301 -269
  2. {pypynum-1.14.0 → pypynum-1.15.0}/PyPyNum.egg-info/PKG-INFO +301 -269
  3. {pypynum-1.14.0 → pypynum-1.15.0}/PyPyNum.egg-info/SOURCES.txt +21 -22
  4. {pypynum-1.14.0 → pypynum-1.15.0}/pypynum/README.md +300 -268
  5. {pypynum-1.14.0 → pypynum-1.15.0}/pypynum/__init__.py +29 -31
  6. pypynum-1.14.0/pypynum/Array.py → pypynum-1.15.0/pypynum/arrays.py +1 -1
  7. {pypynum-1.14.0 → pypynum-1.15.0}/pypynum/chars.py +1 -0
  8. pypynum-1.14.0/pypynum/cipher.py → pypynum-1.15.0/pypynum/ciphers.py +4 -4
  9. {pypynum-1.14.0 → pypynum-1.15.0}/pypynum/dists.py +1 -1
  10. {pypynum-1.14.0 → pypynum-1.15.0}/pypynum/equations.py +2 -2
  11. pypynum-1.14.0/pypynum/file.py → pypynum-1.15.0/pypynum/files.py +14 -14
  12. pypynum-1.14.0/pypynum/Graph.py → pypynum-1.15.0/pypynum/graphs.py +18 -18
  13. pypynum-1.14.0/pypynum/image.py → pypynum-1.15.0/pypynum/images.py +1 -1
  14. {pypynum-1.14.0 → pypynum-1.15.0}/pypynum/interp.py +7 -7
  15. pypynum-1.15.0/pypynum/kernels.py +378 -0
  16. pypynum-1.14.0/pypynum/Logic.py → pypynum-1.15.0/pypynum/logics.py +1 -1
  17. {pypynum-1.14.0 → pypynum-1.15.0}/pypynum/maths.py +2 -2
  18. pypynum-1.14.0/pypynum/Matrix.py → pypynum-1.15.0/pypynum/matrices.py +14 -5
  19. {pypynum-1.14.0 → pypynum-1.15.0}/pypynum/multiprec.py +82 -46
  20. pypynum-1.14.0/pypynum/polynomial.py → pypynum-1.15.0/pypynum/polys.py +2 -2
  21. pypynum-1.14.0/pypynum/Quaternion.py → pypynum-1.15.0/pypynum/quats.py +2 -3
  22. {pypynum-1.14.0 → pypynum-1.15.0}/pypynum/random.py +1 -2
  23. pypynum-1.14.0/pypynum/regression.py → pypynum-1.15.0/pypynum/regs.py +1 -1
  24. pypynum-1.14.0/pypynum/sequence.py → pypynum-1.15.0/pypynum/seqs.py +115 -14
  25. {pypynum-1.14.0 → pypynum-1.15.0}/pypynum/stattest.py +2 -2
  26. pypynum-1.14.0/pypynum/Tensor.py → pypynum-1.15.0/pypynum/tensors.py +2 -12
  27. pypynum-1.15.0/pypynum/test.py +330 -0
  28. pypynum-1.15.0/pypynum/this.py +29 -0
  29. {pypynum-1.14.0 → pypynum-1.15.0}/pypynum/tools.py +98 -34
  30. pypynum-1.15.0/pypynum/trees.py +1159 -0
  31. pypynum-1.14.0/pypynum/confs.py → pypynum-1.15.0/pypynum/types.py +34 -0
  32. {pypynum-1.14.0 → pypynum-1.15.0}/pypynum/ufuncs.py +2 -2
  33. {pypynum-1.14.0 → pypynum-1.15.0}/pypynum/utils.py +3 -4
  34. pypynum-1.14.0/pypynum/Vector.py → pypynum-1.15.0/pypynum/vectors.py +2 -2
  35. {pypynum-1.14.0 → pypynum-1.15.0}/pypynum/zh_cn.py +7 -7
  36. {pypynum-1.14.0 → pypynum-1.15.0}/setup.py +1 -1
  37. pypynum-1.14.0/pypynum/Tree.py +0 -126
  38. pypynum-1.14.0/pypynum/errors.py +0 -23
  39. pypynum-1.14.0/pypynum/test.py +0 -330
  40. pypynum-1.14.0/pypynum/this.py +0 -10
  41. pypynum-1.14.0/pypynum/types.py +0 -11
  42. {pypynum-1.14.0 → pypynum-1.15.0}/PyPyNum.egg-info/dependency_links.txt +0 -0
  43. {pypynum-1.14.0 → pypynum-1.15.0}/PyPyNum.egg-info/top_level.txt +0 -0
  44. {pypynum-1.14.0 → pypynum-1.15.0}/pypynum/PyPyNum.png +0 -0
  45. {pypynum-1.14.0 → pypynum-1.15.0}/pypynum/bessel.py +0 -0
  46. /pypynum-1.14.0/pypynum/constants.py → /pypynum-1.15.0/pypynum/consts.py +0 -0
  47. {pypynum-1.14.0 → pypynum-1.15.0}/pypynum/crandom.py +0 -0
  48. {pypynum-1.14.0 → pypynum-1.15.0}/pypynum/dataproc.py +0 -0
  49. /pypynum-1.14.0/pypynum/FourierT.py → /pypynum-1.15.0/pypynum/fft.py +0 -0
  50. /pypynum-1.14.0/pypynum/Geometry.py → /pypynum-1.15.0/pypynum/geoms.py +0 -0
  51. /pypynum-1.14.0/pypynum/Group.py → /pypynum-1.15.0/pypynum/groups.py +0 -0
  52. /pypynum-1.14.0/pypynum/NeuralN.py → /pypynum-1.15.0/pypynum/networks.py +0 -0
  53. {pypynum-1.14.0 → pypynum-1.15.0}/pypynum/numbers.py +0 -0
  54. {pypynum-1.14.0 → pypynum-1.15.0}/pypynum/plotting.py +0 -0
  55. {pypynum-1.14.0 → pypynum-1.15.0}/pypynum/pprinters.py +0 -0
  56. /pypynum-1.14.0/pypynum/Symbolics.py → /pypynum-1.15.0/pypynum/symbols.py +0 -0
  57. {pypynum-1.14.0 → pypynum-1.15.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PyPyNum
3
- Version: 1.14.0
3
+ Version: 1.15.0
4
4
  Summary: PyPyNum is a Python library for math & science computations, covering algebra, calculus, stats, with data structures like matrices, vectors, tensors. It offers numerical tools, programs, and supports computational ops, functions, processing, simulation, & visualization in data science & ML, crucial for research, engineering, & data processing.
5
5
  Home-page: https://github.com/PythonSJL/PyPyNum
6
6
  Author: Shen Jiayi
@@ -234,7 +234,7 @@ processing.</font><font color = red>[Python>=3.4]</font>
234
234
  [![Downloads](https://static.pepy.tech/badge/pypynum/month)](https://pepy.tech/project/pypynum)
235
235
  [![Downloads](https://static.pepy.tech/badge/pypynum/week)](https://pepy.tech/project/pypynum)
236
236
 
237
- ## Version -> 1.14.0 | PyPI -> https://pypi.org/project/PyPyNum/ | Gitee -> https://www.gitee.com/PythonSJL/PyPyNum | GitHub -> https://github.com/PythonSJL/PyPyNum
237
+ ## Version -> 1.15.0 | PyPI -> https://pypi.org/project/PyPyNum/ | Gitee -> https://www.gitee.com/PythonSJL/PyPyNum | GitHub -> https://github.com/PythonSJL/PyPyNum
238
238
 
239
239
  ![LOGO](PyPyNum.png)
240
240
 
@@ -249,65 +249,63 @@ The logo cannot be displayed on PyPI, it can be viewed in Gitee or GitHub.
249
249
 
250
250
  ### Name and Function Introduction of Submodules
251
251
 
252
- | Submodule Name | Function Introduction |
253
- |:--------------------:|:-----------------------------------:|
254
- | `pypynum.Array` | Multidimensional array |
255
- | `pypynum.bessel` | Bessel functions |
256
- | `pypynum.chars` | Special mathematical symbols |
257
- | `pypynum.cipher` | Encryption and decryption algorithm |
258
- | `pypynum.confs` | Universal configuration |
259
- | `pypynum.constants` | Set of mathematical constants |
260
- | `pypynum.crandom` | Random complex number |
261
- | `pypynum.dataproc` | Data processing |
262
- | `pypynum.dists` | Probability distribution |
263
- | `pypynum.equations` | Solving equations |
264
- | `pypynum.errors` | Exception object |
265
- | `pypynum.file` | File read and write |
266
- | `pypynum.FourierT` | Fourier transform |
267
- | `pypynum.Geometry` | Geometric shape |
268
- | `pypynum.Graph` | Graph Theory Algorithm |
269
- | `pypynum.Group` | Group Theory Algorithm |
270
- | `pypynum.image` | Image processing |
271
- | `pypynum.interp` | Data Interpolation |
272
- | `pypynum.Logic` | Logic circuit design |
273
- | `pypynum.maths` | General mathematical functions |
274
- | `pypynum.Matrix` | Matrix operation |
275
- | `pypynum.multiprec` | Multi precision calculation |
276
- | `pypynum.NeuralN` | Neural network training |
277
- | `pypynum.numbers` | Number processing |
278
- | `pypynum.plotting` | Data visualization |
279
- | `pypynum.polynomial` | Polynomial operation |
280
- | `pypynum.pprinters` | Pretty printers |
281
- | `pypynum.Quaternion` | Quaternion operation |
282
- | `pypynum.random` | Random number generation |
283
- | `pypynum.regression` | Regression analysis |
284
- | `pypynum.sequence` | Sequence calculation |
285
- | `pypynum.stattest` | Statistical test |
286
- | `pypynum.Symbolics` | Symbol calculation |
287
- | `pypynum.Tensor` | Tensor operation |
288
- | `pypynum.test` | Easy test |
289
- | `pypynum.this` | Zen of Projects |
290
- | `pypynum.tools` | Auxiliary functions |
291
- | `pypynum.Tree` | Tree data structure |
292
- | `pypynum.types` | Special types |
293
- | `pypynum.ufuncs` | Universal functions |
294
- | `pypynum.utils` | Utility |
295
- | `pypynum.Vector` | Vector operation |
296
- | `pypynum.zh_cn` | Functions with Chinese names |
252
+ | Submodule Name | Function Introduction |
253
+ |:-------------------:|:------------------------------------------------------------------:|
254
+ | `pypynum.arrays` | Provides operations and calculations for multi-dimensional arrays. |
255
+ | `pypynum.bessel` | Implements calculations for Bessel functions. |
256
+ | `pypynum.chars` | Contains a variety of special mathematical characters. |
257
+ | `pypynum.ciphers` | Implements various encryption and decryption algorithms. |
258
+ | `pypynum.consts` | Contains mathematical and physical constants. |
259
+ | `pypynum.crandom` | Generates random complex numbers. |
260
+ | `pypynum.dataproc` | Tools for data preprocessing and transformation. |
261
+ | `pypynum.dists` | Statistical distribution functions and related calculations. |
262
+ | `pypynum.equations` | Solves equations and performs symbolic operations. |
263
+ | `pypynum.fft` | Implements Fast Fourier Transforms and related functionalities. |
264
+ | `pypynum.files` | File reading and writing tools. |
265
+ | `pypynum.geoms` | Geometric shapes and calculation methods. |
266
+ | `pypynum.graphs` | Graph theory algorithms and network analysis. |
267
+ | `pypynum.groups` | Group theory calculations and structural analysis. |
268
+ | `pypynum.images` | Image processing and manipulation tools. |
269
+ | `pypynum.interp` | Interpolation methods and function approximation. |
270
+ | `pypynum.kernels` | Implementation of kernel functions and methods. |
271
+ | `pypynum.logics` | Simulates logical circuits. |
272
+ | `pypynum.maths` | Basic mathematical operations and special functions. |
273
+ | `pypynum.matrices` | Matrix operations and linear algebra calculations. |
274
+ | `pypynum.multiprec` | High-precision numerical computations. |
275
+ | `pypynum.networks` | Network models and algorithms. |
276
+ | `pypynum.numbers` | Operations on numerical types and properties. |
277
+ | `pypynum.plotting` | Data visualization tools. |
278
+ | `pypynum.polys` | Polynomial operations and calculations. |
279
+ | `pypynum.pprinters` | Advanced printing and formatting output. |
280
+ | `pypynum.quats` | Quaternion operations and transformations. |
281
+ | `pypynum.random` | Generates arrays of random numbers. |
282
+ | `pypynum.regs` | Regression analysis and model fitting. |
283
+ | `pypynum.seqs` | Computes various mathematical sequences. |
284
+ | `pypynum.stattest` | Statistical tests and data analysis. |
285
+ | `pypynum.symbols` | Symbolic computation and expression manipulation. |
286
+ | `pypynum.tensors` | Tensor operations and calculations. |
287
+ | `pypynum.test` | Simple code testing for the library. |
288
+ | `pypynum.this` | The Zen of the library, expressing its guiding principles. |
289
+ | `pypynum.tools` | General tools and helper functions. |
290
+ | `pypynum.trees` | Tree structures and algorithm implementations. |
291
+ | `pypynum.types` | Contains various types, exceptions, and configurations. |
292
+ | `pypynum.ufuncs` | Universal functions and vectorized operations. |
293
+ | `pypynum.utils` | Utility programs and auxiliary functions. |
294
+ | `pypynum.vectors` | Vector operations and calculations. |
295
+ | `pypynum.zh_cn` | Provides Chinese language interfaces for various functionalities. |
297
296
 
298
297
  ### The Zen of PyPyNum (Preview)
299
298
 
300
299
  ```
301
- The Zen of PyPyNum, by Shen Jiayi
302
-
303
- This is a math package written purely in Python.
304
-
305
- Elegant is superior to clunky.
306
- Clarity trumps obscurity.
307
- Straightforwardness is preferred over convolution.
308
- Sophisticated is better than overcomplicated.
309
- Flat structure beats nested hierarchies.
310
- Sparse code wins over bloated ones.
300
+ The Zen of PyPyNum, by Shen Jiayi
301
+
302
+ In this mathematical sanctuary, we weave our algorithms with pure Python threads.
303
+ Precision outweighs approximation.
304
+ Elegance in mathematics transcends the bulky algorithms.
305
+ Clarity in logic illuminates the darkest problems.
306
+ Simplicity in form is the pinnacle of sophistication.
307
+ Flat hierarchies in our code mirror the linear nature of functions.
308
+ Sparse code, like a minimal polynomial, retains essence without redundancy.
311
309
  ```
312
310
 
313
311
  ```
@@ -321,55 +319,63 @@ Python interpreter and run it!
321
319
  ```
322
320
 
323
321
  ```
324
- February 27, 2024
322
+ September 5, 2024
325
323
  ```
326
324
 
327
- ### Functional changes compared to the previous version
325
+ ### Functional Changes Compared to the Previous Version
328
326
 
329
327
  ```
330
328
  !=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=
331
329
 
332
- 750 new lines have been added to the code
330
+ Renamed most of the submodules,
331
+ please refer to the
332
+ "Name and Function Introduction of Submodules"
333
333
 
334
- !=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=
335
334
 
336
- Newly added functions and classes
335
+ MultiTreeNode renamed as MTNode
337
336
 
338
337
 
339
- ├── bessel
340
- │ ├── CLASS
341
- │ └── FUNCTION
342
- │ ├── bessel_i0(x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
343
- │ ├── bessel_i1(x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
344
- │ ├── bessel_iv(v: typing.Union[int, float], x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
345
- │ ├── bessel_j0(x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
346
- │ ├── bessel_j1(x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
347
- │ └── bessel_jv(v: typing.Union[int, float], x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
348
- ├── crandom
338
+ Fixed all known issues in trees and graphs,
339
+ and added some new features.
340
+
341
+ !=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=
342
+
343
+ <<< Newly added functions and classes >>>
344
+
345
+ PyPyNum
346
+ ├── kernels
349
347
  │ └── FUNCTION
350
- │ ├── randint_polar(left: int, right: int, mod: typing.Union[int, float], angle: typing.Union[int, float]) -> complex
351
- │ ├── randint_rect(left: int, right: int, real: typing.Union[int, float], imag: typing.Union[int, float]) -> complex
352
- │ ├── random_polar(mod: typing.Union[int, float], angle: typing.Union[int, float]) -> complex
353
- │ ├── random_rect(real: typing.Union[int, float], imag: typing.Union[int, float]) -> complex
354
- │ ├── uniform_polar(left: typing.Union[int, float], right: typing.Union[int, float], mod: typing.Union[int, float], angle: typing.Union[int, float]) -> complex
355
- └── uniform_rect(left: typing.Union[int, float], right: typing.Union[int, float], real: typing.Union[int, float], imag: typing.Union[int, float]) -> complex
356
- ├── dataproc
357
- ├── CLASS
358
- │ └── Series(object)/__init__(self: Any, data: typing.Any, index: typing.Any) -> None
359
- ├── maths
348
+ │ ├── det2x2kernel(a: typing.Union[list, tuple]) -> float
349
+ │ ├── det3x3kernel(a: typing.Union[list, tuple]) -> float
350
+ │ ├── det4x4kernel(a: typing.Union[list, tuple]) -> float
351
+ │ ├── eigen2x2kernel(a: typing.Union[list, tuple]) -> tuple
352
+ │ ├── inv2x2kernel(a: typing.Union[list, tuple]) -> list
353
+ ├── inv3x3kernel(a: typing.Union[list, tuple]) -> list
354
+ ├── inv4x4kernel(a: typing.Union[list, tuple]) -> list
355
+ ├── lu2x2kernel(a: typing.Union[list, tuple]) -> tuple
356
+ ├── lu3x3kernel(a: typing.Union[list, tuple]) -> tuple
357
+ ├── lu4x4kernel(a: typing.Union[list, tuple]) -> tuple
358
+ │ ├── matexp2x2kernel(a: typing.Union[list, tuple]) -> list
359
+ │ ├── matmul2x2kernel(a: typing.Union[list, tuple], b: typing.Union[list, tuple]) -> list
360
+ │ ├── matmul3x3kernel(a: typing.Union[list, tuple], b: typing.Union[list, tuple]) -> list
361
+ │ ├── matmul4x4kernel(a: typing.Union[list, tuple], b: typing.Union[list, tuple]) -> list
362
+ │ └── matpow2x2kernel(a: typing.Union[list, tuple], n: typing.Union[int, float, complex]) -> list
363
+ ├── seqs
360
364
  │ └── FUNCTION
361
- │ ├── quantile(data: list, q: float, interpolation: str, ordered: bool) -> float
362
- ├── numbers
365
+ │ ├── lucas(n: int, single: bool) -> typing.Union[int, list]
366
+ ├── pell(n: int, single: bool) -> typing.Union[int, list]
367
+ │ ├── tetranacci(n: int, single: bool) -> typing.Union[int, list]
368
+ │ └── tribonacci(n: int, single: bool) -> typing.Union[int, list]
369
+ ├── tools
363
370
  │ └── FUNCTION
364
- │ ├── parse_float(s: str) -> tuple
365
- ├── split_float(s: str) -> tuple
366
-
367
- !=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=
371
+ │ ├── fast_pow(a: typing.Any, n: int, init: typing.Any, mul: typing.Callable) -> typing.Any
372
+ ├── trees
373
+ │ ├── CLASS
374
+ │ │ ├── BTNode(object)/__init__(self: Any, data: Any) -> Any
375
+ │ │ ├── BinaryTree(object)/__init__(self: Any, root: Any) -> Any
376
+ │ │ ├── RBTNode(object)/__init__(self: Any, data: Any, color: Any) -> Any
377
+ │ │ └── RedBlackTree(object)/__init__(self: Any) -> Any
368
378
 
369
- Tip: The second type of Bessel
370
- function has not been
371
- implemented yet, but will be
372
- added in future versions.
373
379
 
374
380
  !=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=
375
381
  ```
@@ -394,14 +400,14 @@ Python interpreter version
394
400
  | Finding the inverse of a thousand order matrix | 0.598905 | 1 | 17.072552 | 2 | It takes a long time | 3 | It takes a long time | 4 |
395
401
  | Array output effect | ```[[[[ -7 -67]```<br>```[-78  29]]```<br><br>```[[-86 -97]```<br>```[ 68  -3]]]```<br><br><br>```[[[ 11  42]```<br>```[ 24 -65]]```<br><br>```[[-60  72]```<br>```[ 73   2]]]]``` | / | ```[[[[ 37  83]```<br>```[ 40   2]]```<br><br>```[[ -5 -34]```<br>```[ -7  72]]]```<br><br><br>```[[[ 13 -64]```<br>```[  6  90]]```<br><br>```[[ 68  57]```<br>```[ 78  11]]]]``` | / | ```[-80.0   -8.0  80.0  -88.0]```<br>```[-99.0  -43.0  87.0   81.0]```<br>```[ 20.0  -55.0  98.0    8.0]```<br>```[  8.0   44.0  64.0  -35.0]```<br><br>(Only supports matrices) | / | ```⎡⎡16   -56⎤  ⎡ 8   -28⎤⎤```<br>```⎢⎢        ⎥  ⎢        ⎥⎥```<br>```⎢⎣-56  56 ⎦  ⎣-28  28 ⎦⎥```<br>```⎢                      ⎥```<br>```⎢ ⎡-2  7 ⎤   ⎡-18  63 ⎤⎥```<br>```⎢ ⎢      ⎥   ⎢        ⎥⎥```<br>```⎣ ⎣7   -7⎦   ⎣63   -63⎦⎦``` | / |
396
402
 
397
- ### Basic structure
403
+ ### Basic Structure
398
404
 
399
405
  ```
400
406
  PyPyNum
401
- ├── Array
407
+ ├── arrays
402
408
  │ ├── CLASS
403
409
  │ │ ├── Array(object)/__init__(self: Any, data: Any, check: Any) -> Any
404
- │ │ └── BoolArray(pypynum.Array.Array)/__init__(self: Any, data: Any, check: Any) -> Any
410
+ │ │ └── BoolArray(pypynum.arrays.Array)/__init__(self: Any, data: Any, check: Any) -> Any
405
411
  │ └── FUNCTION
406
412
  │ ├── array(data: Any) -> Any
407
413
  │ ├── asarray(data: Any) -> Any
@@ -416,111 +422,6 @@ PyPyNum
416
422
  │ ├── ones_like(a: Any, rtype: Any) -> Any
417
423
  │ ├── zeros(shape: Any, rtype: Any) -> Any
418
424
  │ └── zeros_like(a: Any, rtype: Any) -> Any
419
- ├── FourierT
420
- │ ├── CLASS
421
- │ │ └── FT1D(object)/__init__(self: Any, data: Any) -> Any
422
- │ └── FUNCTION
423
- ├── Geometry
424
- │ ├── CLASS
425
- │ │ ├── Circle(object)/__init__(self: Any, center: typing.Union[list, tuple], radius: typing.Union[int, float]) -> Any
426
- │ │ ├── Line(object)/__init__(self: Any, a: typing.Union[list, tuple], b: typing.Union[list, tuple]) -> Any
427
- │ │ ├── Point(object)/__init__(self: Any, p: typing.Union[list, tuple]) -> Any
428
- │ │ ├── Polygon(object)/__init__(self: Any, p: typing.Union[list, tuple]) -> Any
429
- │ │ ├── Quadrilateral(object)/__init__(self: Any, a: typing.Union[list, tuple], b: typing.Union[list, tuple], c: typing.Union[list, tuple], d: typing.Union[list, tuple]) -> Any
430
- │ │ └── Triangle(object)/__init__(self: Any, a: typing.Union[list, tuple], b: typing.Union[list, tuple], c: typing.Union[list, tuple]) -> Any
431
- │ └── FUNCTION
432
- │ └── distance(g1: Any, g2: Any, error: typing.Union[int, float]) -> float
433
- ├── Graph
434
- │ ├── CLASS
435
- │ │ ├── BaseGraph(object)/__init__(self: Any) -> Any
436
- │ │ ├── BaseWeGraph(pypynum.Graph.BaseGraph)/__init__(self: Any) -> Any
437
- │ │ ├── DiGraph(pypynum.Graph.BaseGraph)/__init__(self: Any) -> Any
438
- │ │ ├── UnGraph(pypynum.Graph.BaseGraph)/__init__(self: Any) -> Any
439
- │ │ ├── WeDiGraph(pypynum.Graph.BaseWeGraph)/__init__(self: Any) -> Any
440
- │ │ └── WeUnGraph(pypynum.Graph.BaseWeGraph)/__init__(self: Any) -> Any
441
- │ └── FUNCTION
442
- ├── Group
443
- │ ├── CLASS
444
- │ │ └── Group(object)/__init__(self: Any, data: Any, operation: Any) -> Any
445
- │ └── FUNCTION
446
- │ └── group(data: Any) -> Any
447
- ├── Logic
448
- │ ├── CLASS
449
- │ │ ├── AND(pypynum.Logic.Binary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any) -> Any
450
- │ │ ├── Basic(object)/__init__(self: Any, label: Any) -> Any
451
- │ │ ├── Binary(pypynum.Logic.Basic)/__init__(self: Any, label: Any, pin0: Any, pin1: Any) -> Any
452
- │ │ ├── COMP(pypynum.Logic.Binary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any) -> Any
453
- │ │ ├── DFF(pypynum.Logic.Unary)/__init__(self: Any, label: Any, pin0: Any, state: Any) -> Any
454
- │ │ ├── FullAdder(pypynum.Logic.Ternary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any, pin2: Any) -> Any
455
- │ │ ├── FullSuber(pypynum.Logic.Ternary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any, pin2: Any) -> Any
456
- │ │ ├── HalfAdder(pypynum.Logic.Binary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any) -> Any
457
- │ │ ├── HalfSuber(pypynum.Logic.Binary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any) -> Any
458
- │ │ ├── JKFF(pypynum.Logic.Binary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any, state: Any) -> Any
459
- │ │ ├── NAND(pypynum.Logic.Binary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any) -> Any
460
- │ │ ├── NOR(pypynum.Logic.Binary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any) -> Any
461
- │ │ ├── NOT(pypynum.Logic.Unary)/__init__(self: Any, label: Any, pin0: Any) -> Any
462
- │ │ ├── OR(pypynum.Logic.Binary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any) -> Any
463
- │ │ ├── Quaternary(pypynum.Logic.Basic)/__init__(self: Any, label: Any, pin0: Any, pin1: Any, pin2: Any, pin3: Any) -> Any
464
- │ │ ├── TFF(pypynum.Logic.Unary)/__init__(self: Any, label: Any, pin0: Any, state: Any) -> Any
465
- │ │ ├── Ternary(pypynum.Logic.Basic)/__init__(self: Any, label: Any, pin0: Any, pin1: Any, pin2: Any) -> Any
466
- │ │ ├── TwoBDiver(pypynum.Logic.Quaternary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any, pin2: Any, pin3: Any) -> Any
467
- │ │ ├── TwoBMuler(pypynum.Logic.Quaternary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any, pin2: Any, pin3: Any) -> Any
468
- │ │ ├── Unary(pypynum.Logic.Basic)/__init__(self: Any, label: Any, pin0: Any) -> Any
469
- │ │ ├── XNOR(pypynum.Logic.Binary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any) -> Any
470
- │ │ └── XOR(pypynum.Logic.Binary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any) -> Any
471
- │ └── FUNCTION
472
- │ └── connector(previous: Any, latter: Any) -> Any
473
- ├── Matrix
474
- │ ├── CLASS
475
- │ │ └── Matrix(pypynum.Array.Array)/__init__(self: Any, data: Any, check: Any) -> Any
476
- │ └── FUNCTION
477
- │ ├── cholesky(matrix: Any, hermitian: Any) -> Any
478
- │ ├── eigen(matrix: pypynum.Matrix.Matrix) -> tuple
479
- │ ├── hessenberg(matrix: pypynum.Matrix.Matrix) -> tuple
480
- │ ├── identity(n: int) -> pypynum.Matrix.Matrix
481
- │ ├── lu(matrix: pypynum.Matrix.Matrix) -> tuple
482
- │ ├── mat(data: Any) -> Any
483
- │ ├── qr(matrix: pypynum.Matrix.Matrix) -> tuple
484
- │ ├── rank_decomp(matrix: pypynum.Matrix.Matrix) -> tuple
485
- │ ├── rotate90(matrix: pypynum.Matrix.Matrix, times: int) -> pypynum.Matrix.Matrix
486
- │ ├── svd(matrix: pypynum.Matrix.Matrix) -> tuple
487
- │ └── tril_indices(n: int, k: int, m: int) -> tuple
488
- ├── NeuralN
489
- │ ├── CLASS
490
- │ │ └── NeuralNetwork(object)/__init__(self: Any, _input: Any, _hidden: Any, _output: Any) -> Any
491
- │ └── FUNCTION
492
- │ └── neuraln(_input: Any, _hidden: Any, _output: Any) -> Any
493
- ├── Quaternion
494
- │ ├── CLASS
495
- │ │ ├── Euler(object)/__init__(self: Any, y: typing.Union[int, float], p: typing.Union[int, float], r: typing.Union[int, float]) -> Any
496
- │ │ └── Quaternion(object)/__init__(self: Any, w: typing.Union[int, float], x: typing.Union[int, float], y: typing.Union[int, float], z: typing.Union[int, float]) -> Any
497
- │ └── FUNCTION
498
- │ ├── change(data: typing.Union[pypynum.Quaternion.Quaternion, pypynum.Matrix.Matrix, pypynum.Quaternion.Euler], to: str) -> typing.Union[pypynum.Quaternion.Quaternion, pypynum.Matrix.Matrix, pypynum.Quaternion.Euler]
499
- │ ├── euler(yaw: typing.Union[int, float], pitch: typing.Union[int, float], roll: typing.Union[int, float]) -> pypynum.Quaternion.Euler
500
- │ └── quat(w: typing.Union[int, float], x: typing.Union[int, float], y: typing.Union[int, float], z: typing.Union[int, float]) -> pypynum.Quaternion.Quaternion
501
- ├── Symbolics
502
- │ ├── CLASS
503
- │ └── FUNCTION
504
- │ └── parse_expr(expr: str) -> list
505
- ├── Tensor
506
- │ ├── CLASS
507
- │ │ └── Tensor(pypynum.Array.Array)/__init__(self: Any, data: Any, check: Any) -> Any
508
- │ └── FUNCTION
509
- │ ├── ten(data: list) -> pypynum.Tensor.Tensor
510
- │ ├── tensor_and_number(tensor: Any, operator: Any, number: Any) -> Any
511
- │ ├── tensorproduct(tensors: pypynum.Tensor.Tensor) -> pypynum.Tensor.Tensor
512
- │ ├── zeros(_dimensions: Any) -> Any
513
- │ └── zeros_like(_nested_list: Any) -> Any
514
- ├── Tree
515
- │ ├── CLASS
516
- │ │ ├── MultiTree(object)/__init__(self: Any, root: Any) -> Any
517
- │ │ └── MultiTreeNode(object)/__init__(self: Any, data: Any) -> Any
518
- │ └── FUNCTION
519
- ├── Vector
520
- │ ├── CLASS
521
- │ │ └── Vector(pypynum.Array.Array)/__init__(self: Any, data: Any, check: Any) -> Any
522
- │ └── FUNCTION
523
- │ └── vec(data: Any) -> Any
524
425
  ├── bessel
525
426
  │ ├── CLASS
526
427
  │ └── FUNCTION
@@ -537,7 +438,7 @@ PyPyNum
537
438
  │ ├── int2superscript(standard_str: str) -> str
538
439
  │ ├── subscript2int(subscript_str: str) -> str
539
440
  │ └── superscript2int(superscript_str: str) -> str
540
- ├── cipher
441
+ ├── ciphers
541
442
  │ ├── CLASS
542
443
  │ └── FUNCTION
543
444
  │ ├── atbash(text: str) -> str
@@ -552,10 +453,7 @@ PyPyNum
552
453
  │ ├── rot13(text: str) -> str
553
454
  │ ├── substitution(text: str, sub_map: dict, decrypt: bool) -> str
554
455
  │ └── vigenere(text: str, key: str, decrypt: bool) -> str
555
- ├── confs
556
- │ ├── CLASS
557
- │ └── FUNCTION
558
- ├── constants
456
+ ├── consts
559
457
  │ ├── CLASS
560
458
  │ └── FUNCTION
561
459
  ├── crandom
@@ -615,15 +513,40 @@ PyPyNum
615
513
  │ └── FUNCTION
616
514
  │ ├── lin_eq(left: list, right: list) -> list
617
515
  │ └── poly_eq(coefficients: list) -> list
618
- ├── errors
516
+ ├── fft
619
517
  │ ├── CLASS
518
+ │ │ └── FT1D(object)/__init__(self: Any, data: Any) -> Any
620
519
  │ └── FUNCTION
621
- ├── file
520
+ ├── files
622
521
  │ ├── CLASS
623
522
  │ └── FUNCTION
624
523
  │ ├── read(file: str) -> list
625
524
  │ └── write(file: str, cls: object) -> Any
626
- ├── image
525
+ ├── geoms
526
+ │ ├── CLASS
527
+ │ │ ├── Circle(object)/__init__(self: Any, center: typing.Union[list, tuple], radius: typing.Union[int, float]) -> Any
528
+ │ │ ├── Line(object)/__init__(self: Any, a: typing.Union[list, tuple], b: typing.Union[list, tuple]) -> Any
529
+ │ │ ├── Point(object)/__init__(self: Any, p: typing.Union[list, tuple]) -> Any
530
+ │ │ ├── Polygon(object)/__init__(self: Any, p: typing.Union[list, tuple]) -> Any
531
+ │ │ ├── Quadrilateral(object)/__init__(self: Any, a: typing.Union[list, tuple], b: typing.Union[list, tuple], c: typing.Union[list, tuple], d: typing.Union[list, tuple]) -> Any
532
+ │ │ └── Triangle(object)/__init__(self: Any, a: typing.Union[list, tuple], b: typing.Union[list, tuple], c: typing.Union[list, tuple]) -> Any
533
+ │ └── FUNCTION
534
+ │ └── distance(g1: Any, g2: Any, error: typing.Union[int, float]) -> float
535
+ ├── graphs
536
+ │ ├── CLASS
537
+ │ │ ├── BaseGraph(object)/__init__(self: Any) -> Any
538
+ │ │ ├── BaseWeGraph(pypynum.graphs.BaseGraph)/__init__(self: Any) -> Any
539
+ │ │ ├── DiGraph(pypynum.graphs.BaseGraph)/__init__(self: Any) -> Any
540
+ │ │ ├── UnGraph(pypynum.graphs.BaseGraph)/__init__(self: Any) -> Any
541
+ │ │ ├── WeDiGraph(pypynum.graphs.BaseWeGraph)/__init__(self: Any) -> Any
542
+ │ │ └── WeUnGraph(pypynum.graphs.BaseWeGraph)/__init__(self: Any) -> Any
543
+ │ └── FUNCTION
544
+ ├── groups
545
+ │ ├── CLASS
546
+ │ │ └── Group(object)/__init__(self: Any, data: Any, operation: Any) -> Any
547
+ │ └── FUNCTION
548
+ │ └── group(data: Any) -> Any
549
+ ├── images
627
550
  │ ├── CLASS
628
551
  │ │ └── PNG(object)/__init__(self: Any) -> None
629
552
  │ └── FUNCTION
@@ -635,6 +558,50 @@ PyPyNum
635
558
  │ ├── contribute(src: Any, x: Any, y: Any, channels: Any) -> Any
636
559
  │ ├── interp1d(data: typing.Union[list, tuple], length: int) -> list
637
560
  │ └── interp2d(src: Any, new_height: Any, new_width: Any, channels: Any, round_res: Any, min_val: Any, max_val: Any) -> Any
561
+ ├── kernels
562
+ │ ├── CLASS
563
+ │ └── FUNCTION
564
+ │ ├── det2x2kernel(a: typing.Union[list, tuple]) -> float
565
+ │ ├── det3x3kernel(a: typing.Union[list, tuple]) -> float
566
+ │ ├── det4x4kernel(a: typing.Union[list, tuple]) -> float
567
+ │ ├── eigen2x2kernel(a: typing.Union[list, tuple]) -> tuple
568
+ │ ├── inv2x2kernel(a: typing.Union[list, tuple]) -> list
569
+ │ ├── inv3x3kernel(a: typing.Union[list, tuple]) -> list
570
+ │ ├── inv4x4kernel(a: typing.Union[list, tuple]) -> list
571
+ │ ├── lu2x2kernel(a: typing.Union[list, tuple]) -> tuple
572
+ │ ├── lu3x3kernel(a: typing.Union[list, tuple]) -> tuple
573
+ │ ├── lu4x4kernel(a: typing.Union[list, tuple]) -> tuple
574
+ │ ├── matexp2x2kernel(a: typing.Union[list, tuple]) -> list
575
+ │ ├── matmul2x2kernel(a: typing.Union[list, tuple], b: typing.Union[list, tuple]) -> list
576
+ │ ├── matmul3x3kernel(a: typing.Union[list, tuple], b: typing.Union[list, tuple]) -> list
577
+ │ ├── matmul4x4kernel(a: typing.Union[list, tuple], b: typing.Union[list, tuple]) -> list
578
+ │ └── matpow2x2kernel(a: typing.Union[list, tuple], n: typing.Union[int, float, complex]) -> list
579
+ ├── logics
580
+ │ ├── CLASS
581
+ │ │ ├── AND(pypynum.logics.Binary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any) -> Any
582
+ │ │ ├── Basic(object)/__init__(self: Any, label: Any) -> Any
583
+ │ │ ├── Binary(pypynum.logics.Basic)/__init__(self: Any, label: Any, pin0: Any, pin1: Any) -> Any
584
+ │ │ ├── COMP(pypynum.logics.Binary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any) -> Any
585
+ │ │ ├── DFF(pypynum.logics.Unary)/__init__(self: Any, label: Any, pin0: Any, state: Any) -> Any
586
+ │ │ ├── FullAdder(pypynum.logics.Ternary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any, pin2: Any) -> Any
587
+ │ │ ├── FullSuber(pypynum.logics.Ternary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any, pin2: Any) -> Any
588
+ │ │ ├── HalfAdder(pypynum.logics.Binary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any) -> Any
589
+ │ │ ├── HalfSuber(pypynum.logics.Binary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any) -> Any
590
+ │ │ ├── JKFF(pypynum.logics.Binary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any, state: Any) -> Any
591
+ │ │ ├── NAND(pypynum.logics.Binary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any) -> Any
592
+ │ │ ├── NOR(pypynum.logics.Binary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any) -> Any
593
+ │ │ ├── NOT(pypynum.logics.Unary)/__init__(self: Any, label: Any, pin0: Any) -> Any
594
+ │ │ ├── OR(pypynum.logics.Binary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any) -> Any
595
+ │ │ ├── Quaternary(pypynum.logics.Basic)/__init__(self: Any, label: Any, pin0: Any, pin1: Any, pin2: Any, pin3: Any) -> Any
596
+ │ │ ├── TFF(pypynum.logics.Unary)/__init__(self: Any, label: Any, pin0: Any, state: Any) -> Any
597
+ │ │ ├── Ternary(pypynum.logics.Basic)/__init__(self: Any, label: Any, pin0: Any, pin1: Any, pin2: Any) -> Any
598
+ │ │ ├── TwoBDiver(pypynum.logics.Quaternary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any, pin2: Any, pin3: Any) -> Any
599
+ │ │ ├── TwoBMuler(pypynum.logics.Quaternary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any, pin2: Any, pin3: Any) -> Any
600
+ │ │ ├── Unary(pypynum.logics.Basic)/__init__(self: Any, label: Any, pin0: Any) -> Any
601
+ │ │ ├── XNOR(pypynum.logics.Binary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any) -> Any
602
+ │ │ └── XOR(pypynum.logics.Binary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any) -> Any
603
+ │ └── FUNCTION
604
+ │ └── connector(previous: Any, latter: Any) -> Any
638
605
  ├── maths
639
606
  │ ├── CLASS
640
607
  │ └── FUNCTION
@@ -720,6 +687,22 @@ PyPyNum
720
687
  │ ├── var(numbers: typing.Union[list, tuple], dof: int) -> typing.Union[int, float, complex]
721
688
  │ ├── xlogy(x: typing.Union[int, float, complex], y: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
722
689
  │ └── zeta(alpha: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
690
+ ├── matrices
691
+ │ ├── CLASS
692
+ │ │ └── Matrix(pypynum.arrays.Array)/__init__(self: Any, data: Any, check: Any) -> Any
693
+ │ └── FUNCTION
694
+ │ ├── cholesky(matrix: Any, hermitian: Any) -> Any
695
+ │ ├── eigen(matrix: pypynum.matrices.Matrix) -> tuple
696
+ │ ├── hessenberg(matrix: pypynum.matrices.Matrix) -> tuple
697
+ │ ├── identity(n: int) -> pypynum.matrices.Matrix
698
+ │ ├── lu(matrix: pypynum.matrices.Matrix) -> tuple
699
+ │ ├── mat(data: Any) -> Any
700
+ │ ├── qr(matrix: pypynum.matrices.Matrix) -> tuple
701
+ │ ├── rank_decomp(matrix: pypynum.matrices.Matrix) -> tuple
702
+ │ ├── rotate90(matrix: pypynum.matrices.Matrix, times: int) -> pypynum.matrices.Matrix
703
+ │ ├── svd(matrix: pypynum.matrices.Matrix) -> tuple
704
+ │ ├── tril_indices(n: int, k: int, m: int) -> tuple
705
+ │ └── triu_indices(n: int, k: int, m: int) -> tuple
723
706
  ├── multiprec
724
707
  │ ├── CLASS
725
708
  │ │ └── MPComplex(object)/__init__(self: Any, real: Any, imag: Any, sigfigs: Any) -> Any
@@ -735,6 +718,7 @@ PyPyNum
735
718
  │ ├── mp_cos(x: typing.Union[int, float, str, decimal.Decimal], sigfigs: int) -> decimal.Decimal
736
719
  │ ├── mp_cosh(x: typing.Union[int, float, str, decimal.Decimal], sigfigs: int) -> decimal.Decimal
737
720
  │ ├── mp_e(sigfigs: int, method: str) -> decimal.Decimal
721
+ │ ├── mp_euler_gamma(sigfigs: int) -> decimal.Decimal
738
722
  │ ├── mp_exp(x: typing.Union[int, float, str, decimal.Decimal], sigfigs: int, builtin: bool) -> decimal.Decimal
739
723
  │ ├── mp_fresnel_c(x: typing.Union[int, float, str, decimal.Decimal], sigfigs: int) -> decimal.Decimal
740
724
  │ ├── mp_fresnel_s(x: typing.Union[int, float, str, decimal.Decimal], sigfigs: int) -> decimal.Decimal
@@ -744,6 +728,11 @@ PyPyNum
744
728
  │ ├── mp_pi(sigfigs: int, method: str) -> decimal.Decimal
745
729
  │ ├── mp_sin(x: typing.Union[int, float, str, decimal.Decimal], sigfigs: int) -> decimal.Decimal
746
730
  │ └── mp_sinh(x: typing.Union[int, float, str, decimal.Decimal], sigfigs: int) -> decimal.Decimal
731
+ ├── networks
732
+ │ ├── CLASS
733
+ │ │ └── NeuralNetwork(object)/__init__(self: Any, _input: Any, _hidden: Any, _output: Any) -> Any
734
+ │ └── FUNCTION
735
+ │ └── neuraln(_input: Any, _hidden: Any, _output: Any) -> Any
747
736
  ├── numbers
748
737
  │ ├── CLASS
749
738
  │ └── FUNCTION
@@ -763,7 +752,7 @@ PyPyNum
763
752
  │ ├── change(data: typing.Union[list, str]) -> typing.Union[list, str]
764
753
  │ ├── color(text: str, rgb: typing.Union[list, tuple]) -> str
765
754
  │ └── unary(function: Any, right: typing.Union[int, float], left: typing.Union[int, float], top: typing.Union[int, float], bottom: typing.Union[int, float], complexity: typing.Union[int, float], ratio: typing.Union[int, float], string: bool, basic: list, character: str, data: bool, coloration: Any) -> typing.Union[list, str]
766
- ├── polynomial
755
+ ├── polys
767
756
  │ ├── CLASS
768
757
  │ │ └── Polynomial(object)/__init__(self: Any, terms: Any) -> Any
769
758
  │ └── FUNCTION
@@ -780,6 +769,14 @@ PyPyNum
780
769
  │ ├── CLASS
781
770
  │ └── FUNCTION
782
771
  │ └── pprint_matrix(matrix: Any, style: Any, output: Any) -> Any
772
+ ├── quats
773
+ │ ├── CLASS
774
+ │ │ ├── Euler(object)/__init__(self: Any, y: typing.Union[int, float], p: typing.Union[int, float], r: typing.Union[int, float]) -> Any
775
+ │ │ └── Quaternion(object)/__init__(self: Any, w: typing.Union[int, float], x: typing.Union[int, float], y: typing.Union[int, float], z: typing.Union[int, float]) -> Any
776
+ │ └── FUNCTION
777
+ │ ├── change(data: typing.Union[pypynum.quats.Quaternion, pypynum.matrices.Matrix, pypynum.quats.Euler], to: str) -> typing.Union[pypynum.quats.Quaternion, pypynum.matrices.Matrix, pypynum.quats.Euler]
778
+ │ ├── euler(yaw: typing.Union[int, float], pitch: typing.Union[int, float], roll: typing.Union[int, float]) -> pypynum.quats.Euler
779
+ │ └── quat(w: typing.Union[int, float], x: typing.Union[int, float], y: typing.Union[int, float], z: typing.Union[int, float]) -> pypynum.quats.Quaternion
783
780
  ├── random
784
781
  │ ├── CLASS
785
782
  │ └── FUNCTION
@@ -790,22 +787,30 @@ PyPyNum
790
787
  │ ├── rand(shape: typing.Union[list, tuple]) -> typing.Union[float, list]
791
788
  │ ├── randint(a: int, b: int, shape: typing.Union[list, tuple]) -> typing.Union[int, list]
792
789
  │ └── uniform(a: typing.Union[int, float], b: typing.Union[int, float], shape: typing.Union[list, tuple]) -> typing.Union[float, list]
793
- ├── regression
790
+ ├── regs
794
791
  │ ├── CLASS
795
792
  │ └── FUNCTION
796
793
  │ ├── lin_reg(x: typing.Union[list, tuple], y: typing.Union[list, tuple]) -> list
797
794
  │ ├── par_reg(x: typing.Union[list, tuple], y: typing.Union[list, tuple]) -> list
798
795
  │ └── poly_reg(x: typing.Union[list, tuple], y: typing.Union[list, tuple], n: int) -> list
799
- ├── sequence
796
+ ├── seqs
800
797
  │ ├── CLASS
801
798
  │ └── FUNCTION
802
799
  │ ├── arithmetic_sequence(a1: typing.Union[int, float], an: typing.Union[int, float], d: typing.Union[int, float], n: typing.Union[int, float], s: typing.Union[int, float]) -> dict
800
+ │ ├── bell_triangle(n: int) -> list
803
801
  │ ├── bernoulli(n: int, single: bool) -> list
804
802
  │ ├── catalan(n: int, single: bool) -> typing.Union[int, list]
805
803
  │ ├── farey(n: int) -> list
806
804
  │ ├── fibonacci(n: int, single: bool) -> typing.Union[int, list]
807
805
  │ ├── geometric_sequence(a1: typing.Union[int, float], an: typing.Union[int, float], r: typing.Union[int, float], n: typing.Union[int, float], s: typing.Union[int, float]) -> dict
808
- └── recaman(n: int, single: bool) -> typing.Union[int, list]
806
+ ├── lucas(n: int, single: bool) -> typing.Union[int, list]
807
+ │ ├── pascal_triangle(n: int) -> list
808
+ │ ├── pell(n: int, single: bool) -> typing.Union[int, list]
809
+ │ ├── recaman(n: int, single: bool) -> typing.Union[int, list]
810
+ │ ├── stirling1(n: int) -> list
811
+ │ ├── stirling2(n: int) -> list
812
+ │ ├── tetranacci(n: int, single: bool) -> typing.Union[int, list]
813
+ │ └── tribonacci(n: int, single: bool) -> typing.Union[int, list]
809
814
  ├── stattest
810
815
  │ ├── CLASS
811
816
  │ └── FUNCTION
@@ -815,6 +820,17 @@ PyPyNum
815
820
  │ ├── mediantest(samples: Any, ties: Any, lambda_: Any, corr: Any) -> Any
816
821
  │ ├── normaltest(data: list) -> tuple
817
822
  │ └── skewtest(data: list, two_tailed: bool) -> tuple
823
+ ├── symbols
824
+ │ ├── CLASS
825
+ │ └── FUNCTION
826
+ │ └── parse_expr(expr: str) -> list
827
+ ├── tensors
828
+ │ ├── CLASS
829
+ │ │ └── Tensor(pypynum.arrays.Array)/__init__(self: Any, data: Any, check: Any) -> Any
830
+ │ └── FUNCTION
831
+ │ ├── ten(data: list) -> pypynum.tensors.Tensor
832
+ │ ├── tensor_and_number(tensor: Any, operator: Any, number: Any) -> Any
833
+ │ └── tensorproduct(tensors: pypynum.tensors.Tensor) -> pypynum.tensors.Tensor
818
834
  ├── test
819
835
  │ ├── CLASS
820
836
  │ └── FUNCTION
@@ -826,16 +842,27 @@ PyPyNum
826
842
  │ └── FUNCTION
827
843
  │ ├── classify(array: typing.Union[list, tuple]) -> dict
828
844
  │ ├── dedup(iterable: typing.Union[list, tuple, str]) -> typing.Union[list, tuple, str]
845
+ │ ├── fast_pow(a: typing.Any, n: int, init: typing.Any, mul: typing.Callable) -> typing.Any
829
846
  │ ├── frange(start: typing.Union[int, float], stop: typing.Union[int, float], step: float) -> list
830
- │ ├── generate_primes(limit: int) -> list
831
- │ ├── generate_semiprimes(limit: int) -> list
832
847
  │ ├── geomspace(start: typing.Union[int, float], stop: typing.Union[int, float], number: int) -> list
833
848
  │ ├── levenshtein_distance(s1: str, s2: str) -> int
834
849
  │ ├── linspace(start: typing.Union[int, float], stop: typing.Union[int, float], number: int) -> list
835
- │ ├── magic_square(n: Any) -> Any
850
+ │ ├── magic_square(n: int) -> list
836
851
  │ ├── primality(n: int, iter_num: int) -> bool
837
852
  │ ├── prime_factors(integer: int, dictionary: bool, pollard_rho: bool) -> typing.Union[list, dict]
838
- └── split(iterable: typing.Union[list, tuple, str], key: typing.Union[list, tuple], retain: bool) -> list
853
+ ├── primes(limit: int) -> list
854
+ │ ├── semiprimes(limit: int) -> list
855
+ │ ├── split(iterable: typing.Union[list, tuple, str], key: typing.Union[list, tuple], retain: bool) -> list
856
+ │ └── twinprimes(limit: int) -> list
857
+ ├── trees
858
+ │ ├── CLASS
859
+ │ │ ├── BTNode(object)/__init__(self: Any, data: Any) -> Any
860
+ │ │ ├── BinaryTree(object)/__init__(self: Any, root: Any) -> Any
861
+ │ │ ├── MTNode(object)/__init__(self: Any, data: Any) -> Any
862
+ │ │ ├── MultiTree(object)/__init__(self: Any, root: Any) -> Any
863
+ │ │ ├── RBTNode(object)/__init__(self: Any, data: Any, color: Any) -> Any
864
+ │ │ └── RedBlackTree(object)/__init__(self: Any) -> Any
865
+ │ └── FUNCTION
839
866
  ├── types
840
867
  │ ├── CLASS
841
868
  │ └── FUNCTION
@@ -866,6 +893,11 @@ PyPyNum
866
893
  │ │ ├── LinkedListNode(object)/__init__(self: Any, value: Any, next_node: Any) -> Any
867
894
  │ │ └── OrderedSet(object)/__init__(self: Any, sequence: Any) -> Any
868
895
  │ └── FUNCTION
896
+ ├── vectors
897
+ │ ├── CLASS
898
+ │ │ └── Vector(pypynum.arrays.Array)/__init__(self: Any, data: Any, check: Any) -> Any
899
+ │ └── FUNCTION
900
+ │ └── vec(data: Any) -> Any
869
901
  └── zh_cn
870
902
  ├── CLASS
871
903
  └── FUNCTION
@@ -878,7 +910,7 @@ PyPyNum
878
910
  ├── base64密码(文本: str, 解密: bool) -> str
879
911
  ├── x对数y乘积(x: float, y: float) -> float
880
912
  ├── y次方根(被开方数: typing.Union[int, float, complex], 开方数: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
881
- ├── 一维傅里叶变换(数据: Any) -> pypynum.FourierT.FT1D
913
+ ├── 一维傅里叶变换(数据: Any) -> pypynum.fft.FT1D
882
914
  ├── 上伽玛(s: typing.Union[int, float, complex], x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
883
915
  ├── 上标转整数(上标字符串: str) -> str
884
916
  ├── 下伽玛(s: typing.Union[int, float, complex], x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
@@ -886,7 +918,7 @@ PyPyNum
886
918
  ├── 中位数(数据: typing.List[float]) -> float
887
919
  ├── 中国剩余定理(n: typing.List[int], a: typing.List[int]) -> int
888
920
  ├── 中心矩(数据: typing.List[float], 阶数: int) -> float
889
- ├── 乘积和(数组: typing.List[typing.Any]) -> float
921
+ ├── 乘积和(多个数组: typing.List[typing.Any]) -> float
890
922
  ├── 代替密码(文本: str, 替换映射: dict, 解密: bool) -> str
891
923
  ├── 众数(数据: typing.List[typing.Any]) -> Any
892
924
  ├── 伽玛函数(alpha: float) -> float
@@ -958,7 +990,7 @@ PyPyNum
958
990
  ├── 扩展欧几里得算法(a: int, b: int) -> typing.Tuple[int, int, int]
959
991
  ├── 拆分浮点数字符串(字符串: str) -> tuple
960
992
  ├── 排列数(总数: int, 选取数: int) -> int
961
- ├── 数组(数据: list, 检查: bool) -> pypynum.Array.Array
993
+ ├── 数组(数据: list, 检查: bool) -> pypynum.arrays.Array
962
994
  ├── 整数转上标(标准字符串: str) -> str
963
995
  ├── 整数转下标(标准字符串: str) -> str
964
996
  ├── 整数转单词(整数: int) -> str
@@ -1005,7 +1037,7 @@ PyPyNum
1005
1037
  ├── 负一整数次幂(指数: int) -> int
1006
1038
  ├── 转为多精度复数(实部: typing.Union[int, float, str, decimal.Decimal, complex, pypynum.multiprec.MPComplex], 虚部: typing.Union[int, float, str, decimal.Decimal], 有效位数: int) -> pypynum.multiprec.MPComplex
1007
1039
  ├── 转换为列表(数据: Any) -> list
1008
- ├── 转换为数组(数据: Any) -> pypynum.Array.Array
1040
+ ├── 转换为数组(数据: Any) -> pypynum.arrays.Array
1009
1041
  ├── 连续乘积(下界: int, 上界: int, 函数: typing.Callable) -> float
1010
1042
  ├── 连续加和(下界: int, 上界: int, 函数: typing.Callable) -> float
1011
1043
  ├── 阶乘函数(n: int) -> int
@@ -1014,18 +1046,18 @@ PyPyNum
1014
1046
  └── 黎曼函数(alpha: float) -> float
1015
1047
  ```
1016
1048
 
1017
- ### Code testing
1049
+ ### Code Testing
1018
1050
 
1019
1051
  ```python
1020
- from pypynum import (Array, Geometry, Logic, Matrix, Quaternion, Symbolics, Tensor, Vector,
1021
- cipher, constants, equations, maths, plotting, random, regression, tools)
1052
+ from pypynum import (arrays, geoms, logics, matrices, quats, symbols, tensors, vectors,
1053
+ ciphers, consts, equations, maths, plotting, random, regs, tools)
1022
1054
 
1023
1055
  ...
1024
1056
 
1025
- print(Array.array())
1026
- print(Array.array([1, 2, 3, 4, 5, 6, 7, 8]))
1027
- print(Array.array([[1, 2, 3, 4], [5, 6, 7, 8]]))
1028
- print(Array.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]))
1057
+ print(arrays.array())
1058
+ print(arrays.array([1, 2, 3, 4, 5, 6, 7, 8]))
1059
+ print(arrays.array([[1, 2, 3, 4], [5, 6, 7, 8]]))
1060
+ print(arrays.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]))
1029
1061
 
1030
1062
  """
1031
1063
  []
@@ -1039,7 +1071,7 @@ print(Array.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]))
1039
1071
  [7 8]]]
1040
1072
  """
1041
1073
 
1042
- triangle = Geometry.Triangle((0, 0), (2, 2), (3, 0))
1074
+ triangle = geoms.Triangle((0, 0), (2, 2), (3, 0))
1043
1075
  print(triangle.perimeter())
1044
1076
  print(triangle.area())
1045
1077
  print(triangle.centroid())
@@ -1051,24 +1083,24 @@ print(triangle.centroid())
1051
1083
  """
1052
1084
 
1053
1085
  a, b, c = 1, 1, 1
1054
- adder0, adder1 = Logic.HalfAdder("alpha", a, b), Logic.HalfAdder("beta", c, None)
1055
- xor0 = Logic.XOR("alpha")
1056
- ff0, ff1 = Logic.DFF("alpha"), Logic.DFF("beta")
1086
+ adder0, adder1 = logics.HalfAdder("alpha", a, b), logics.HalfAdder("beta", c, None)
1087
+ xor0 = logics.XOR("alpha")
1088
+ ff0, ff1 = logics.DFF("alpha"), logics.DFF("beta")
1057
1089
  xor0.set_order0(1)
1058
1090
  xor0.set_order1(1)
1059
- Logic.connector(adder0, adder1)
1060
- Logic.connector(adder0, xor0)
1061
- Logic.connector(adder1, xor0)
1062
- Logic.connector(adder1, ff0)
1063
- Logic.connector(xor0, ff1)
1091
+ logics.connector(adder0, adder1)
1092
+ logics.connector(adder0, xor0)
1093
+ logics.connector(adder1, xor0)
1094
+ logics.connector(adder1, ff0)
1095
+ logics.connector(xor0, ff1)
1064
1096
  print("sum: {}, carry: {}".format(ff0.out(), ff1.out()))
1065
1097
 
1066
1098
  """
1067
1099
  sum: [1], carry: [1]
1068
1100
  """
1069
1101
 
1070
- m0 = Matrix.mat([[1, 2], [3, 4]])
1071
- m1 = Matrix.mat([[5, 6], [7, 8]])
1102
+ m0 = matrices.mat([[1, 2], [3, 4]])
1103
+ m1 = matrices.mat([[5, 6], [7, 8]])
1072
1104
  print(m0)
1073
1105
  print(m1)
1074
1106
  print(m0 + m1)
@@ -1090,8 +1122,8 @@ print(m1.rank())
1090
1122
  2
1091
1123
  """
1092
1124
 
1093
- q0 = Quaternion.quat(1, 2, 3, 4)
1094
- q1 = Quaternion.quat(5, 6, 7, 8)
1125
+ q0 = quats.quat(1, 2, 3, 4)
1126
+ q1 = quats.quat(5, 6, 7, 8)
1095
1127
  print(q0)
1096
1128
  print(q1)
1097
1129
  print(q0 + q1)
@@ -1108,10 +1140,10 @@ print(q1.conjugate())
1108
1140
  (5+-6i+-7j+-8k)
1109
1141
  """
1110
1142
 
1111
- print(Symbolics.BASIC)
1112
- print(Symbolics.ENGLISH)
1113
- print(Symbolics.GREEK)
1114
- print(Symbolics.parse_expr("-(10+a-(3.14+b0)*(-5))**(-ζn1-2.718/mΣ99)//9"))
1143
+ print(symbols.BASIC)
1144
+ print(symbols.ENGLISH)
1145
+ print(symbols.GREEK)
1146
+ print(symbols.parse_expr("-(10+a-(3.14+b0)*(-5))**(-ζn1-2.718/mΣ99)//9"))
1115
1147
 
1116
1148
  """
1117
1149
  %()*+-./0123456789
@@ -1120,8 +1152,8 @@ ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
1120
1152
  [['10', '+', 'a', '-', ['3.14', '+', 'b0'], '*', '-5'], '**', ['-ζn1', '-', '2.718', '/', 'mΣ99'], '//', '9']
1121
1153
  """
1122
1154
 
1123
- t0 = Tensor.ten([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
1124
- t1 = Tensor.ten([[[9, 10], [11, 12]], [[13, 14], [15, 16]]])
1155
+ t0 = tensors.ten([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
1156
+ t1 = tensors.ten([[[9, 10], [11, 12]], [[13, 14], [15, 16]]])
1125
1157
  print(t0)
1126
1158
  print(t1)
1127
1159
  print(t0 + t1)
@@ -1151,33 +1183,33 @@ print(t0 @ t1)
1151
1183
  """
1152
1184
 
1153
1185
  string = "PyPyNum"
1154
- encrypted = cipher.caesar(string, 10)
1186
+ encrypted = ciphers.caesar(string, 10)
1155
1187
  print(string)
1156
1188
  print(encrypted)
1157
- print(cipher.caesar(encrypted, 10, decrypt=True))
1158
- encrypted = cipher.vigenere(string, "cipher")
1189
+ print(ciphers.caesar(encrypted, 10, decrypt=True))
1190
+ encrypted = ciphers.vigenere(string, "ciphers")
1159
1191
  print(string)
1160
1192
  print(encrypted)
1161
- print(cipher.vigenere(encrypted, "cipher", decrypt=True))
1162
- encrypted = cipher.morse(string)
1193
+ print(ciphers.vigenere(encrypted, "ciphers", decrypt=True))
1194
+ encrypted = ciphers.morse(string)
1163
1195
  print(string)
1164
1196
  print(encrypted)
1165
- print(cipher.morse(encrypted, decrypt=True))
1197
+ print(ciphers.morse(encrypted, decrypt=True))
1166
1198
 
1167
1199
  """
1168
1200
  PyPyNum
1169
1201
  ZiZiXew
1170
1202
  PyPyNum
1171
1203
  PyPyNum
1172
- RgEfRlo
1204
+ RgEfRle
1173
1205
  PyPyNum
1174
1206
  PyPyNum
1175
1207
  .--. -.-- .--. -.-- -. ..- --
1176
1208
  PYPYNUM
1177
1209
  """
1178
1210
 
1179
- v0 = Vector.vec([1, 2, 3, 4])
1180
- v1 = Vector.vec([5, 6, 7, 8])
1211
+ v0 = vectors.vec([1, 2, 3, 4])
1212
+ v1 = vectors.vec([5, 6, 7, 8])
1181
1213
  print(v0)
1182
1214
  print(v1)
1183
1215
  print(v0 + v1)
@@ -1194,12 +1226,12 @@ print(v1.angles())
1194
1226
  [1.1820279130506308, 1.0985826410133916, 1.0114070854293842, 0.9191723423169716]
1195
1227
  """
1196
1228
 
1197
- print(constants.TB)
1198
- print(constants.e)
1199
- print(constants.h)
1200
- print(constants.phi)
1201
- print(constants.pi)
1202
- print(constants.tera)
1229
+ print(consts.TB)
1230
+ print(consts.e)
1231
+ print(consts.h)
1232
+ print(consts.phi)
1233
+ print(consts.pi)
1234
+ print(consts.tera)
1203
1235
 
1204
1236
  """
1205
1237
  1099511627776
@@ -1227,7 +1259,7 @@ print(equations.lin_eq(*m))
1227
1259
  [1.6666666666666665, -0.6666666666666666, -0.4444444444444444]
1228
1260
  """
1229
1261
 
1230
- print(maths.cot(constants.pi / 3))
1262
+ print(maths.cot(consts.pi / 3))
1231
1263
  print(maths.gamma(1.5))
1232
1264
  print(maths.pi(1, 10, lambda x: x ** 2))
1233
1265
  print(maths.product([2, 3, 5, 7, 11, 13, 17, 19, 23, 29]))
@@ -1324,15 +1356,15 @@ print(random.randint(0, 9, [2, 3, 4]))
1324
1356
  print(random.uniform(0, 9, [2, 3, 4]))
1325
1357
 
1326
1358
  """
1327
- [[[0.015128082827448793, -0.731558889632968, -0.23379102528494308, 0.5923285646572862], [0.6389462900078073, -1.6347914510943111, 2.3694029836271726, -0.568526047386569], [-1.4229328154353735, 0.45185125607678145, -0.4003256267251042, -1.1425679894907612]], [[1.2876668616276734, 0.934232416262927, -1.4096609242818299, 0.2683613962988281], [0.3503627719719857, 1.9613965063102903, -2.0790609695353077, -0.10339725500993839], [-0.9334087233797456, 1.1394611182611, 1.3341558691128073, -0.3838574172857678]]]
1328
- [[[0.8274205130045614, 0.27524584776494854, 0.715710895889572, 0.5807271906102146], [0.21742840470887725, 0.04577819370109826, 0.873689463957162, 0.04119770233167375], [0.554823367037196, 0.5901404246422433, 0.21342393541488192, 0.2979716283166385]], [[0.6045948602408673, 0.265586003384665, 0.9646655285283718, 0.9873208424367568], [0.16916505841642293, 0.15942804932580645, 0.679004396069304, 0.4586819952716237], [0.6058239213086706, 0.37021967026096103, 0.0015603885735545608, 0.8432925281217005]]]
1329
- [[[7, 2, 9, 7], [0, 5, 1, 3], [9, 1, 0, 2]], [[1, 2, 7, 5], [5, 7, 4, 1], [2, 5, 7, 9]]]
1330
- [[[1.6682230173222767, 0.5174279535822173, 6.202024157209834, 5.097176032335483], [3.44538825088208, 3.7119354081208025, 4.584800897579607, 8.294514147889751], [7.201908571787272, 4.96544760729807, 5.896259095293225, 3.215472062129558]], [[6.352678024277219, 6.894646335413341, 2.0445980257056333, 1.5835361381716893], [6.363077167625872, 8.831103031792672, 6.229821243776864, 0.5639371628314593], [7.639545178199688, 8.079077083978365, 8.063058392021144, 8.673394953496695]]]
1359
+ [[[0.825882516672574, 1.3725886771525058, 1.0633834034457958, -0.9653681933485563], [-0.26676981942597733, -0.8111218278822722, -2.0334645819975408, -0.6920477799264579], [0.219847607640343, -0.11124595869774408, 0.3959826652933697, 0.44979678957252417]], [[-0.32870040193220884, 0.02332530718848737, -0.11463753179571698, 0.76497128138739], [0.5471632308210022, -1.208683530864806, 0.6609856809302458, -1.0172095093996394], [-0.4239944693396323, -0.9895869506909234, 0.3151444331927837, -1.0952382690567983]]]
1360
+ [[[0.7391048706507907, 0.8914203442107109, 0.7810881208477741, 0.42396350784517345], [0.44782953354925625, 0.14060494681841362, 0.36645338622864543, 0.8792327342896561], [0.8328977875499322, 0.7597606669429515, 0.7309414657218207, 0.39511825984097715]], [[0.4224440661015312, 0.2817063735017259, 0.11204741761562653, 0.7932546033111754], [0.6230861699889618, 0.16789479246904482, 0.4452307316686511, 0.7298193538352331], [0.879038899493412, 0.14646565947090828, 0.6904668348145003, 0.8027750348973339]]]
1361
+ [[[5, 6, 4, 0], [5, 0, 4, 1], [2, 3, 5, 4]], [[4, 2, 3, 8], [3, 0, 0, 8], [9, 9, 4, 8]]]
1362
+ [[[5.350800115670108, 5.835203389972244, 8.668571640348379, 6.784139317082117], [7.838141284015925, 0.46256545431156715, 2.8571047765183932, 0.0660157726117514], [5.587670205493748, 3.567592961539832, 2.9956823476061682, 7.924798867767713]], [[1.5388683451612495, 8.64453573809756, 1.4500691204596237, 6.551614999615261], [6.95157556639829, 4.179288210881939, 6.281664642870586, 1.0867107163432608], [0.18490809809604403, 1.9708027978691627, 0.23346492301822674, 0.935059580008676]]]
1331
1363
  """
1332
1364
 
1333
- print(regression.lin_reg(list(range(5)), [2, 4, 6, 7, 8]))
1334
- print(regression.par_reg(list(range(5)), [2, 4, 6, 7, 8]))
1335
- print(regression.poly_reg(list(range(5)), [2, 4, 6, 7, 8], 4))
1365
+ print(regs.lin_reg(list(range(5)), [2, 4, 6, 7, 8]))
1366
+ print(regs.par_reg(list(range(5)), [2, 4, 6, 7, 8]))
1367
+ print(regs.poly_reg(list(range(5)), [2, 4, 6, 7, 8], 4))
1336
1368
 
1337
1369
  """
1338
1370
  [1.5, 2.4000000000000004]