PyPyNum 1.14.1__tar.gz → 1.15.1__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 (56) hide show
  1. {pypynum-1.14.1 → pypynum-1.15.1}/PKG-INFO +280 -255
  2. {pypynum-1.14.1 → pypynum-1.15.1}/PyPyNum.egg-info/PKG-INFO +280 -255
  3. {pypynum-1.14.1 → pypynum-1.15.1}/PyPyNum.egg-info/SOURCES.txt +22 -23
  4. {pypynum-1.14.1 → pypynum-1.15.1}/pypynum/README.md +279 -254
  5. {pypynum-1.14.1 → pypynum-1.15.1}/pypynum/__init__.py +31 -30
  6. pypynum-1.14.1/pypynum/Array.py → pypynum-1.15.1/pypynum/arrays.py +1 -1
  7. {pypynum-1.14.1 → pypynum-1.15.1}/pypynum/chars.py +1 -0
  8. pypynum-1.14.1/pypynum/cipher.py → pypynum-1.15.1/pypynum/ciphers.py +4 -4
  9. {pypynum-1.14.1 → pypynum-1.15.1}/pypynum/dataproc.py +4 -4
  10. {pypynum-1.14.1 → pypynum-1.15.1}/pypynum/equations.py +2 -2
  11. pypynum-1.14.1/pypynum/file.py → pypynum-1.15.1/pypynum/files.py +14 -14
  12. pypynum-1.14.1/pypynum/Graph.py → pypynum-1.15.1/pypynum/graphs.py +18 -18
  13. pypynum-1.14.1/pypynum/image.py → pypynum-1.15.1/pypynum/images.py +1 -1
  14. {pypynum-1.14.1 → pypynum-1.15.1}/pypynum/interp.py +7 -7
  15. pypynum-1.15.1/pypynum/kernels.py +378 -0
  16. pypynum-1.14.1/pypynum/Logic.py → pypynum-1.15.1/pypynum/logics.py +1 -1
  17. pypynum-1.14.1/pypynum/Matrix.py → pypynum-1.15.1/pypynum/matrices.py +4 -4
  18. {pypynum-1.14.1 → pypynum-1.15.1}/pypynum/multiprec.py +73 -60
  19. pypynum-1.14.1/pypynum/polynomial.py → pypynum-1.15.1/pypynum/polys.py +2 -2
  20. pypynum-1.14.1/pypynum/Quaternion.py → pypynum-1.15.1/pypynum/quats.py +3 -4
  21. {pypynum-1.14.1 → pypynum-1.15.1}/pypynum/random.py +1 -2
  22. pypynum-1.14.1/pypynum/regression.py → pypynum-1.15.1/pypynum/regs.py +1 -1
  23. pypynum-1.14.1/pypynum/sequence.py → pypynum-1.15.1/pypynum/seqs.py +72 -14
  24. pypynum-1.14.1/pypynum/bessel.py → pypynum-1.15.1/pypynum/special.py +104 -1
  25. {pypynum-1.14.1 → pypynum-1.15.1}/pypynum/stattest.py +2 -2
  26. pypynum-1.14.1/pypynum/Tensor.py → pypynum-1.15.1/pypynum/tensors.py +2 -12
  27. pypynum-1.15.1/pypynum/test.py +330 -0
  28. {pypynum-1.14.1 → pypynum-1.15.1}/pypynum/tools.py +40 -2
  29. pypynum-1.15.1/pypynum/trees.py +1156 -0
  30. pypynum-1.14.1/pypynum/confs.py → pypynum-1.15.1/pypynum/types.py +34 -0
  31. {pypynum-1.14.1 → pypynum-1.15.1}/pypynum/ufuncs.py +2 -2
  32. {pypynum-1.14.1 → pypynum-1.15.1}/pypynum/utils.py +3 -4
  33. pypynum-1.14.1/pypynum/Vector.py → pypynum-1.15.1/pypynum/vectors.py +2 -2
  34. {pypynum-1.14.1 → pypynum-1.15.1}/pypynum/zh_cn.py +13 -9
  35. {pypynum-1.14.1 → pypynum-1.15.1}/setup.py +5 -2
  36. pypynum-1.14.1/pypynum/Tree.py +0 -126
  37. pypynum-1.14.1/pypynum/errors.py +0 -23
  38. pypynum-1.14.1/pypynum/test.py +0 -330
  39. pypynum-1.14.1/pypynum/types.py +0 -11
  40. {pypynum-1.14.1 → pypynum-1.15.1}/PyPyNum.egg-info/dependency_links.txt +0 -0
  41. {pypynum-1.14.1 → pypynum-1.15.1}/PyPyNum.egg-info/top_level.txt +0 -0
  42. {pypynum-1.14.1 → pypynum-1.15.1}/pypynum/PyPyNum.png +0 -0
  43. /pypynum-1.14.1/pypynum/constants.py → /pypynum-1.15.1/pypynum/consts.py +0 -0
  44. {pypynum-1.14.1 → pypynum-1.15.1}/pypynum/crandom.py +0 -0
  45. {pypynum-1.14.1 → pypynum-1.15.1}/pypynum/dists.py +0 -0
  46. /pypynum-1.14.1/pypynum/FourierT.py → /pypynum-1.15.1/pypynum/fft.py +0 -0
  47. /pypynum-1.14.1/pypynum/Geometry.py → /pypynum-1.15.1/pypynum/geoms.py +0 -0
  48. /pypynum-1.14.1/pypynum/Group.py → /pypynum-1.15.1/pypynum/groups.py +0 -0
  49. {pypynum-1.14.1 → pypynum-1.15.1}/pypynum/maths.py +0 -0
  50. /pypynum-1.14.1/pypynum/NeuralN.py → /pypynum-1.15.1/pypynum/networks.py +0 -0
  51. {pypynum-1.14.1 → pypynum-1.15.1}/pypynum/numbers.py +0 -0
  52. {pypynum-1.14.1 → pypynum-1.15.1}/pypynum/plotting.py +0 -0
  53. {pypynum-1.14.1 → pypynum-1.15.1}/pypynum/pprinters.py +0 -0
  54. /pypynum-1.14.1/pypynum/Symbolics.py → /pypynum-1.15.1/pypynum/symbols.py +0 -0
  55. {pypynum-1.14.1 → pypynum-1.15.1}/pypynum/this.py +0 -0
  56. {pypynum-1.14.1 → pypynum-1.15.1}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PyPyNum
3
- Version: 1.14.1
3
+ Version: 1.15.1
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.1 | PyPI -> https://pypi.org/project/PyPyNum/ | Gitee -> https://www.gitee.com/PythonSJL/PyPyNum | GitHub -> https://github.com/PythonSJL/PyPyNum
237
+ ## Version -> 1.15.1 | 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,51 +249,50 @@ 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.chars` | Contains a variety of special mathematical characters. |
256
+ | `pypynum.ciphers` | Implements various encryption and decryption algorithms. |
257
+ | `pypynum.consts` | Contains mathematical and physical constants. |
258
+ | `pypynum.crandom` | Generates random complex numbers. |
259
+ | `pypynum.dataproc` | Tools for data preprocessing and transformation. |
260
+ | `pypynum.dists` | Statistical distribution functions and related calculations. |
261
+ | `pypynum.equations` | Solves equations and performs symbolic operations. |
262
+ | `pypynum.fft` | Implements Fast Fourier Transforms and related functionalities. |
263
+ | `pypynum.files` | File reading and writing tools. |
264
+ | `pypynum.geoms` | Geometric shapes and calculation methods. |
265
+ | `pypynum.graphs` | Graph theory algorithms and network analysis. |
266
+ | `pypynum.groups` | Group theory calculations and structural analysis. |
267
+ | `pypynum.images` | Image processing and manipulation tools. |
268
+ | `pypynum.interp` | Interpolation methods and function approximation. |
269
+ | `pypynum.kernels` | Implementation of kernel functions and methods. |
270
+ | `pypynum.logics` | Simulates logical circuits. |
271
+ | `pypynum.maths` | Basic mathematical operations and special functions. |
272
+ | `pypynum.matrices` | Matrix operations and linear algebra calculations. |
273
+ | `pypynum.multiprec` | High-precision numerical computations. |
274
+ | `pypynum.networks` | Network models and algorithms. |
275
+ | `pypynum.numbers` | Operations on numerical types and properties. |
276
+ | `pypynum.plotting` | Data visualization tools. |
277
+ | `pypynum.polys` | Polynomial operations and calculations. |
278
+ | `pypynum.pprinters` | Advanced printing and formatting output. |
279
+ | `pypynum.quats` | Quaternion operations and transformations. |
280
+ | `pypynum.random` | Generates arrays of random numbers. |
281
+ | `pypynum.regs` | Regression analysis and model fitting. |
282
+ | `pypynum.seqs` | Computes various mathematical sequences. |
283
+ | `pypynum.special` | Provides advanced special functions for mathematical computations. |
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
 
@@ -323,44 +322,46 @@ Python interpreter and run it!
323
322
  September 5, 2024
324
323
  ```
325
324
 
326
- ### Functional changes compared to the previous version
325
+ ### Functional Changes Compared to the Previous Version
327
326
 
328
327
  ```
329
328
  !=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=
330
329
 
331
- < Fixed the display issue of multi precision complex numbers >
330
+ Fixed most of the known issues,
331
+
332
+ especially modified the stopping
333
+
334
+ conditions for multi precision
335
+
336
+ computation iterations.
332
337
 
333
338
  !=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=
334
339
 
335
- < Updated the Zen content of the project >
340
+ The printout in
341
+
342
+ "trees.BinaryTree.count_nodes()"
343
+
344
+ was deleted, which is the trace
345
+
346
+ left by previous debugging.
336
347
 
337
348
  !=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=
338
349
 
339
- < The following two function names have removed the 'generate' prefix >
350
+ Rename the "Bessel" submodule to
351
+
352
+ "Special" and add some
340
353
 
341
- generate_primes(limit: int) -> list
342
- generate_semiprimes(limit: int) -> list
354
+ hypergeometric functions in the
355
+
356
+ form of "hyp * f *".
343
357
 
344
358
  !=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=
345
359
 
346
- <<< Newly added functions and classes >>>
360
+ 在“zh_cn”子模块中,把“多精度欧拉数”
347
361
 
348
- PyPyNum
349
- ├── Matrix
350
- │ └── FUNCTION
351
- │ └── triu_indices(n: int, k: int, m: int) -> tuple # Returns the indices of the upper triangular part of a matrix
352
- ├── multiprec
353
- │ └── FUNCTION
354
- │ ├── mp_euler_gamma(sigfigs: int) -> decimal.Decimal # Returns the Euler-Mascheroni constant with specified significant figures
355
- ├── sequence
356
- │ └── FUNCTION
357
- │ ├── bell_triangle(n: int) -> list # Returns the first n rows of the Bell triangle
358
- │ ├── pascal_triangle(n: int) -> list # Returns the first n rows of Pascal's triangle
359
- │ ├── stirling1(n: int) -> list # Returns the first n rows of Stirling numbers of the first kind
360
- │ └── stirling2(n: int) -> list # Returns the first n rows of Stirling numbers of the second kind
361
- ├── tools
362
- │ └── FUNCTION
363
- │ └── twinprimes(limit: int) -> list # Returns all twin prime pairs up to and including the specified limit
362
+ 改名为“多精度自然常数”,并且增加了
363
+
364
+ “多精度欧拉伽马”。
364
365
 
365
366
  !=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=
366
367
  ```
@@ -385,14 +386,14 @@ Python interpreter version
385
386
  | 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 |
386
387
  | 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⎦⎦``` | / |
387
388
 
388
- ### Basic structure
389
+ ### Basic Structure
389
390
 
390
391
  ```
391
392
  PyPyNum
392
- ├── Array
393
+ ├── arrays
393
394
  │ ├── CLASS
394
395
  │ │ ├── Array(object)/__init__(self: Any, data: Any, check: Any) -> Any
395
- │ │ └── BoolArray(pypynum.Array.Array)/__init__(self: Any, data: Any, check: Any) -> Any
396
+ │ │ └── BoolArray(pypynum.arrays.Array)/__init__(self: Any, data: Any, check: Any) -> Any
396
397
  │ └── FUNCTION
397
398
  │ ├── array(data: Any) -> Any
398
399
  │ ├── asarray(data: Any) -> Any
@@ -407,121 +408,6 @@ PyPyNum
407
408
  │ ├── ones_like(a: Any, rtype: Any) -> Any
408
409
  │ ├── zeros(shape: Any, rtype: Any) -> Any
409
410
  │ └── zeros_like(a: Any, rtype: Any) -> Any
410
- ├── FourierT
411
- │ ├── CLASS
412
- │ │ └── FT1D(object)/__init__(self: Any, data: Any) -> Any
413
- │ └── FUNCTION
414
- ├── Geometry
415
- │ ├── CLASS
416
- │ │ ├── Circle(object)/__init__(self: Any, center: typing.Union[list, tuple], radius: typing.Union[int, float]) -> Any
417
- │ │ ├── Line(object)/__init__(self: Any, a: typing.Union[list, tuple], b: typing.Union[list, tuple]) -> Any
418
- │ │ ├── Point(object)/__init__(self: Any, p: typing.Union[list, tuple]) -> Any
419
- │ │ ├── Polygon(object)/__init__(self: Any, p: typing.Union[list, tuple]) -> Any
420
- │ │ ├── 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
421
- │ │ └── Triangle(object)/__init__(self: Any, a: typing.Union[list, tuple], b: typing.Union[list, tuple], c: typing.Union[list, tuple]) -> Any
422
- │ └── FUNCTION
423
- │ └── distance(g1: Any, g2: Any, error: typing.Union[int, float]) -> float
424
- ├── Graph
425
- │ ├── CLASS
426
- │ │ ├── BaseGraph(object)/__init__(self: Any) -> Any
427
- │ │ ├── BaseWeGraph(pypynum.Graph.BaseGraph)/__init__(self: Any) -> Any
428
- │ │ ├── DiGraph(pypynum.Graph.BaseGraph)/__init__(self: Any) -> Any
429
- │ │ ├── UnGraph(pypynum.Graph.BaseGraph)/__init__(self: Any) -> Any
430
- │ │ ├── WeDiGraph(pypynum.Graph.BaseWeGraph)/__init__(self: Any) -> Any
431
- │ │ └── WeUnGraph(pypynum.Graph.BaseWeGraph)/__init__(self: Any) -> Any
432
- │ └── FUNCTION
433
- ├── Group
434
- │ ├── CLASS
435
- │ │ └── Group(object)/__init__(self: Any, data: Any, operation: Any) -> Any
436
- │ └── FUNCTION
437
- │ └── group(data: Any) -> Any
438
- ├── Logic
439
- │ ├── CLASS
440
- │ │ ├── AND(pypynum.Logic.Binary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any) -> Any
441
- │ │ ├── Basic(object)/__init__(self: Any, label: Any) -> Any
442
- │ │ ├── Binary(pypynum.Logic.Basic)/__init__(self: Any, label: Any, pin0: Any, pin1: Any) -> Any
443
- │ │ ├── COMP(pypynum.Logic.Binary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any) -> Any
444
- │ │ ├── DFF(pypynum.Logic.Unary)/__init__(self: Any, label: Any, pin0: Any, state: Any) -> Any
445
- │ │ ├── FullAdder(pypynum.Logic.Ternary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any, pin2: Any) -> Any
446
- │ │ ├── FullSuber(pypynum.Logic.Ternary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any, pin2: Any) -> Any
447
- │ │ ├── HalfAdder(pypynum.Logic.Binary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any) -> Any
448
- │ │ ├── HalfSuber(pypynum.Logic.Binary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any) -> Any
449
- │ │ ├── JKFF(pypynum.Logic.Binary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any, state: Any) -> Any
450
- │ │ ├── NAND(pypynum.Logic.Binary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any) -> Any
451
- │ │ ├── NOR(pypynum.Logic.Binary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any) -> Any
452
- │ │ ├── NOT(pypynum.Logic.Unary)/__init__(self: Any, label: Any, pin0: Any) -> Any
453
- │ │ ├── OR(pypynum.Logic.Binary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any) -> Any
454
- │ │ ├── Quaternary(pypynum.Logic.Basic)/__init__(self: Any, label: Any, pin0: Any, pin1: Any, pin2: Any, pin3: Any) -> Any
455
- │ │ ├── TFF(pypynum.Logic.Unary)/__init__(self: Any, label: Any, pin0: Any, state: Any) -> Any
456
- │ │ ├── Ternary(pypynum.Logic.Basic)/__init__(self: Any, label: Any, pin0: Any, pin1: Any, pin2: Any) -> Any
457
- │ │ ├── TwoBDiver(pypynum.Logic.Quaternary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any, pin2: Any, pin3: Any) -> Any
458
- │ │ ├── TwoBMuler(pypynum.Logic.Quaternary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any, pin2: Any, pin3: Any) -> Any
459
- │ │ ├── Unary(pypynum.Logic.Basic)/__init__(self: Any, label: Any, pin0: Any) -> Any
460
- │ │ ├── XNOR(pypynum.Logic.Binary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any) -> Any
461
- │ │ └── XOR(pypynum.Logic.Binary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any) -> Any
462
- │ └── FUNCTION
463
- │ └── connector(previous: Any, latter: Any) -> Any
464
- ├── Matrix
465
- │ ├── CLASS
466
- │ │ └── Matrix(pypynum.Array.Array)/__init__(self: Any, data: Any, check: Any) -> Any
467
- │ └── FUNCTION
468
- │ ├── cholesky(matrix: Any, hermitian: Any) -> Any
469
- │ ├── eigen(matrix: pypynum.Matrix.Matrix) -> tuple
470
- │ ├── hessenberg(matrix: pypynum.Matrix.Matrix) -> tuple
471
- │ ├── identity(n: int) -> pypynum.Matrix.Matrix
472
- │ ├── lu(matrix: pypynum.Matrix.Matrix) -> tuple
473
- │ ├── mat(data: Any) -> Any
474
- │ ├── qr(matrix: pypynum.Matrix.Matrix) -> tuple
475
- │ ├── rank_decomp(matrix: pypynum.Matrix.Matrix) -> tuple
476
- │ ├── rotate90(matrix: pypynum.Matrix.Matrix, times: int) -> pypynum.Matrix.Matrix
477
- │ ├── svd(matrix: pypynum.Matrix.Matrix) -> tuple
478
- │ ├── tril_indices(n: int, k: int, m: int) -> tuple
479
- │ └── triu_indices(n: int, k: int, m: int) -> tuple
480
- ├── NeuralN
481
- │ ├── CLASS
482
- │ │ └── NeuralNetwork(object)/__init__(self: Any, _input: Any, _hidden: Any, _output: Any) -> Any
483
- │ └── FUNCTION
484
- │ └── neuraln(_input: Any, _hidden: Any, _output: Any) -> Any
485
- ├── Quaternion
486
- │ ├── CLASS
487
- │ │ ├── Euler(object)/__init__(self: Any, y: typing.Union[int, float], p: typing.Union[int, float], r: typing.Union[int, float]) -> Any
488
- │ │ └── 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
489
- │ └── FUNCTION
490
- │ ├── 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]
491
- │ ├── euler(yaw: typing.Union[int, float], pitch: typing.Union[int, float], roll: typing.Union[int, float]) -> pypynum.Quaternion.Euler
492
- │ └── quat(w: typing.Union[int, float], x: typing.Union[int, float], y: typing.Union[int, float], z: typing.Union[int, float]) -> pypynum.Quaternion.Quaternion
493
- ├── Symbolics
494
- │ ├── CLASS
495
- │ └── FUNCTION
496
- │ └── parse_expr(expr: str) -> list
497
- ├── Tensor
498
- │ ├── CLASS
499
- │ │ └── Tensor(pypynum.Array.Array)/__init__(self: Any, data: Any, check: Any) -> Any
500
- │ └── FUNCTION
501
- │ ├── ten(data: list) -> pypynum.Tensor.Tensor
502
- │ ├── tensor_and_number(tensor: Any, operator: Any, number: Any) -> Any
503
- │ ├── tensorproduct(tensors: pypynum.Tensor.Tensor) -> pypynum.Tensor.Tensor
504
- │ ├── zeros(_dimensions: Any) -> Any
505
- │ └── zeros_like(_nested_list: Any) -> Any
506
- ├── Tree
507
- │ ├── CLASS
508
- │ │ ├── MultiTree(object)/__init__(self: Any, root: Any) -> Any
509
- │ │ └── MultiTreeNode(object)/__init__(self: Any, data: Any) -> Any
510
- │ └── FUNCTION
511
- ├── Vector
512
- │ ├── CLASS
513
- │ │ └── Vector(pypynum.Array.Array)/__init__(self: Any, data: Any, check: Any) -> Any
514
- │ └── FUNCTION
515
- │ └── vec(data: Any) -> Any
516
- ├── bessel
517
- │ ├── CLASS
518
- │ └── FUNCTION
519
- │ ├── bessel_i0(x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
520
- │ ├── bessel_i1(x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
521
- │ ├── bessel_iv(v: typing.Union[int, float], x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
522
- │ ├── bessel_j0(x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
523
- │ ├── bessel_j1(x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
524
- │ └── bessel_jv(v: typing.Union[int, float], x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
525
411
  ├── chars
526
412
  │ ├── CLASS
527
413
  │ └── FUNCTION
@@ -529,7 +415,7 @@ PyPyNum
529
415
  │ ├── int2superscript(standard_str: str) -> str
530
416
  │ ├── subscript2int(subscript_str: str) -> str
531
417
  │ └── superscript2int(superscript_str: str) -> str
532
- ├── cipher
418
+ ├── ciphers
533
419
  │ ├── CLASS
534
420
  │ └── FUNCTION
535
421
  │ ├── atbash(text: str) -> str
@@ -544,10 +430,7 @@ PyPyNum
544
430
  │ ├── rot13(text: str) -> str
545
431
  │ ├── substitution(text: str, sub_map: dict, decrypt: bool) -> str
546
432
  │ └── vigenere(text: str, key: str, decrypt: bool) -> str
547
- ├── confs
548
- │ ├── CLASS
549
- │ └── FUNCTION
550
- ├── constants
433
+ ├── consts
551
434
  │ ├── CLASS
552
435
  │ └── FUNCTION
553
436
  ├── crandom
@@ -607,15 +490,40 @@ PyPyNum
607
490
  │ └── FUNCTION
608
491
  │ ├── lin_eq(left: list, right: list) -> list
609
492
  │ └── poly_eq(coefficients: list) -> list
610
- ├── errors
493
+ ├── fft
611
494
  │ ├── CLASS
495
+ │ │ └── FT1D(object)/__init__(self: Any, data: Any) -> Any
612
496
  │ └── FUNCTION
613
- ├── file
497
+ ├── files
614
498
  │ ├── CLASS
615
499
  │ └── FUNCTION
616
500
  │ ├── read(file: str) -> list
617
501
  │ └── write(file: str, cls: object) -> Any
618
- ├── image
502
+ ├── geoms
503
+ │ ├── CLASS
504
+ │ │ ├── Circle(object)/__init__(self: Any, center: typing.Union[list, tuple], radius: typing.Union[int, float]) -> Any
505
+ │ │ ├── Line(object)/__init__(self: Any, a: typing.Union[list, tuple], b: typing.Union[list, tuple]) -> Any
506
+ │ │ ├── Point(object)/__init__(self: Any, p: typing.Union[list, tuple]) -> Any
507
+ │ │ ├── Polygon(object)/__init__(self: Any, p: typing.Union[list, tuple]) -> Any
508
+ │ │ ├── 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
509
+ │ │ └── Triangle(object)/__init__(self: Any, a: typing.Union[list, tuple], b: typing.Union[list, tuple], c: typing.Union[list, tuple]) -> Any
510
+ │ └── FUNCTION
511
+ │ └── distance(g1: Any, g2: Any, error: typing.Union[int, float]) -> float
512
+ ├── graphs
513
+ │ ├── CLASS
514
+ │ │ ├── BaseGraph(object)/__init__(self: Any) -> Any
515
+ │ │ ├── BaseWeGraph(pypynum.graphs.BaseGraph)/__init__(self: Any) -> Any
516
+ │ │ ├── DiGraph(pypynum.graphs.BaseGraph)/__init__(self: Any) -> Any
517
+ │ │ ├── UnGraph(pypynum.graphs.BaseGraph)/__init__(self: Any) -> Any
518
+ │ │ ├── WeDiGraph(pypynum.graphs.BaseWeGraph)/__init__(self: Any) -> Any
519
+ │ │ └── WeUnGraph(pypynum.graphs.BaseWeGraph)/__init__(self: Any) -> Any
520
+ │ └── FUNCTION
521
+ ├── groups
522
+ │ ├── CLASS
523
+ │ │ └── Group(object)/__init__(self: Any, data: Any, operation: Any) -> Any
524
+ │ └── FUNCTION
525
+ │ └── group(data: Any) -> Any
526
+ ├── images
619
527
  │ ├── CLASS
620
528
  │ │ └── PNG(object)/__init__(self: Any) -> None
621
529
  │ └── FUNCTION
@@ -627,6 +535,50 @@ PyPyNum
627
535
  │ ├── contribute(src: Any, x: Any, y: Any, channels: Any) -> Any
628
536
  │ ├── interp1d(data: typing.Union[list, tuple], length: int) -> list
629
537
  │ └── interp2d(src: Any, new_height: Any, new_width: Any, channels: Any, round_res: Any, min_val: Any, max_val: Any) -> Any
538
+ ├── kernels
539
+ │ ├── CLASS
540
+ │ └── FUNCTION
541
+ │ ├── det2x2kernel(a: typing.Union[list, tuple]) -> float
542
+ │ ├── det3x3kernel(a: typing.Union[list, tuple]) -> float
543
+ │ ├── det4x4kernel(a: typing.Union[list, tuple]) -> float
544
+ │ ├── eigen2x2kernel(a: typing.Union[list, tuple]) -> tuple
545
+ │ ├── inv2x2kernel(a: typing.Union[list, tuple]) -> list
546
+ │ ├── inv3x3kernel(a: typing.Union[list, tuple]) -> list
547
+ │ ├── inv4x4kernel(a: typing.Union[list, tuple]) -> list
548
+ │ ├── lu2x2kernel(a: typing.Union[list, tuple]) -> tuple
549
+ │ ├── lu3x3kernel(a: typing.Union[list, tuple]) -> tuple
550
+ │ ├── lu4x4kernel(a: typing.Union[list, tuple]) -> tuple
551
+ │ ├── matexp2x2kernel(a: typing.Union[list, tuple]) -> list
552
+ │ ├── matmul2x2kernel(a: typing.Union[list, tuple], b: typing.Union[list, tuple]) -> list
553
+ │ ├── matmul3x3kernel(a: typing.Union[list, tuple], b: typing.Union[list, tuple]) -> list
554
+ │ ├── matmul4x4kernel(a: typing.Union[list, tuple], b: typing.Union[list, tuple]) -> list
555
+ │ └── matpow2x2kernel(a: typing.Union[list, tuple], n: typing.Union[int, float, complex]) -> list
556
+ ├── logics
557
+ │ ├── CLASS
558
+ │ │ ├── AND(pypynum.logics.Binary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any) -> Any
559
+ │ │ ├── Basic(object)/__init__(self: Any, label: Any) -> Any
560
+ │ │ ├── Binary(pypynum.logics.Basic)/__init__(self: Any, label: Any, pin0: Any, pin1: Any) -> Any
561
+ │ │ ├── COMP(pypynum.logics.Binary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any) -> Any
562
+ │ │ ├── DFF(pypynum.logics.Unary)/__init__(self: Any, label: Any, pin0: Any, state: Any) -> Any
563
+ │ │ ├── FullAdder(pypynum.logics.Ternary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any, pin2: Any) -> Any
564
+ │ │ ├── FullSuber(pypynum.logics.Ternary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any, pin2: Any) -> Any
565
+ │ │ ├── HalfAdder(pypynum.logics.Binary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any) -> Any
566
+ │ │ ├── HalfSuber(pypynum.logics.Binary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any) -> Any
567
+ │ │ ├── JKFF(pypynum.logics.Binary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any, state: Any) -> Any
568
+ │ │ ├── NAND(pypynum.logics.Binary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any) -> Any
569
+ │ │ ├── NOR(pypynum.logics.Binary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any) -> Any
570
+ │ │ ├── NOT(pypynum.logics.Unary)/__init__(self: Any, label: Any, pin0: Any) -> Any
571
+ │ │ ├── OR(pypynum.logics.Binary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any) -> Any
572
+ │ │ ├── Quaternary(pypynum.logics.Basic)/__init__(self: Any, label: Any, pin0: Any, pin1: Any, pin2: Any, pin3: Any) -> Any
573
+ │ │ ├── TFF(pypynum.logics.Unary)/__init__(self: Any, label: Any, pin0: Any, state: Any) -> Any
574
+ │ │ ├── Ternary(pypynum.logics.Basic)/__init__(self: Any, label: Any, pin0: Any, pin1: Any, pin2: Any) -> Any
575
+ │ │ ├── TwoBDiver(pypynum.logics.Quaternary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any, pin2: Any, pin3: Any) -> Any
576
+ │ │ ├── TwoBMuler(pypynum.logics.Quaternary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any, pin2: Any, pin3: Any) -> Any
577
+ │ │ ├── Unary(pypynum.logics.Basic)/__init__(self: Any, label: Any, pin0: Any) -> Any
578
+ │ │ ├── XNOR(pypynum.logics.Binary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any) -> Any
579
+ │ │ └── XOR(pypynum.logics.Binary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any) -> Any
580
+ │ └── FUNCTION
581
+ │ └── connector(previous: Any, latter: Any) -> Any
630
582
  ├── maths
631
583
  │ ├── CLASS
632
584
  │ └── FUNCTION
@@ -712,6 +664,22 @@ PyPyNum
712
664
  │ ├── var(numbers: typing.Union[list, tuple], dof: int) -> typing.Union[int, float, complex]
713
665
  │ ├── xlogy(x: typing.Union[int, float, complex], y: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
714
666
  │ └── zeta(alpha: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
667
+ ├── matrices
668
+ │ ├── CLASS
669
+ │ │ └── Matrix(pypynum.arrays.Array)/__init__(self: Any, data: Any, check: Any) -> Any
670
+ │ └── FUNCTION
671
+ │ ├── cholesky(matrix: Any, hermitian: Any) -> Any
672
+ │ ├── eigen(matrix: pypynum.matrices.Matrix) -> tuple
673
+ │ ├── hessenberg(matrix: pypynum.matrices.Matrix) -> tuple
674
+ │ ├── identity(n: int) -> pypynum.matrices.Matrix
675
+ │ ├── lu(matrix: pypynum.matrices.Matrix) -> tuple
676
+ │ ├── mat(data: Any) -> Any
677
+ │ ├── qr(matrix: pypynum.matrices.Matrix) -> tuple
678
+ │ ├── rank_decomp(matrix: pypynum.matrices.Matrix) -> tuple
679
+ │ ├── rotate90(matrix: pypynum.matrices.Matrix, times: int) -> pypynum.matrices.Matrix
680
+ │ ├── svd(matrix: pypynum.matrices.Matrix) -> tuple
681
+ │ ├── tril_indices(n: int, k: int, m: int) -> tuple
682
+ │ └── triu_indices(n: int, k: int, m: int) -> tuple
715
683
  ├── multiprec
716
684
  │ ├── CLASS
717
685
  │ │ └── MPComplex(object)/__init__(self: Any, real: Any, imag: Any, sigfigs: Any) -> Any
@@ -737,6 +705,11 @@ PyPyNum
737
705
  │ ├── mp_pi(sigfigs: int, method: str) -> decimal.Decimal
738
706
  │ ├── mp_sin(x: typing.Union[int, float, str, decimal.Decimal], sigfigs: int) -> decimal.Decimal
739
707
  │ └── mp_sinh(x: typing.Union[int, float, str, decimal.Decimal], sigfigs: int) -> decimal.Decimal
708
+ ├── networks
709
+ │ ├── CLASS
710
+ │ │ └── NeuralNetwork(object)/__init__(self: Any, _input: Any, _hidden: Any, _output: Any) -> Any
711
+ │ └── FUNCTION
712
+ │ └── neuraln(_input: Any, _hidden: Any, _output: Any) -> Any
740
713
  ├── numbers
741
714
  │ ├── CLASS
742
715
  │ └── FUNCTION
@@ -756,7 +729,7 @@ PyPyNum
756
729
  │ ├── change(data: typing.Union[list, str]) -> typing.Union[list, str]
757
730
  │ ├── color(text: str, rgb: typing.Union[list, tuple]) -> str
758
731
  │ └── 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]
759
- ├── polynomial
732
+ ├── polys
760
733
  │ ├── CLASS
761
734
  │ │ └── Polynomial(object)/__init__(self: Any, terms: Any) -> Any
762
735
  │ └── FUNCTION
@@ -773,6 +746,14 @@ PyPyNum
773
746
  │ ├── CLASS
774
747
  │ └── FUNCTION
775
748
  │ └── pprint_matrix(matrix: Any, style: Any, output: Any) -> Any
749
+ ├── quats
750
+ │ ├── CLASS
751
+ │ │ ├── Euler(object)/__init__(self: Any, y: typing.Union[int, float], p: typing.Union[int, float], r: typing.Union[int, float]) -> Any
752
+ │ │ └── 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
753
+ │ └── FUNCTION
754
+ │ ├── convert(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]
755
+ │ ├── euler(yaw: typing.Union[int, float], pitch: typing.Union[int, float], roll: typing.Union[int, float]) -> pypynum.quats.Euler
756
+ │ └── quat(w: typing.Union[int, float], x: typing.Union[int, float], y: typing.Union[int, float], z: typing.Union[int, float]) -> pypynum.quats.Quaternion
776
757
  ├── random
777
758
  │ ├── CLASS
778
759
  │ └── FUNCTION
@@ -783,13 +764,13 @@ PyPyNum
783
764
  │ ├── rand(shape: typing.Union[list, tuple]) -> typing.Union[float, list]
784
765
  │ ├── randint(a: int, b: int, shape: typing.Union[list, tuple]) -> typing.Union[int, list]
785
766
  │ └── uniform(a: typing.Union[int, float], b: typing.Union[int, float], shape: typing.Union[list, tuple]) -> typing.Union[float, list]
786
- ├── regression
767
+ ├── regs
787
768
  │ ├── CLASS
788
769
  │ └── FUNCTION
789
770
  │ ├── lin_reg(x: typing.Union[list, tuple], y: typing.Union[list, tuple]) -> list
790
771
  │ ├── par_reg(x: typing.Union[list, tuple], y: typing.Union[list, tuple]) -> list
791
772
  │ └── poly_reg(x: typing.Union[list, tuple], y: typing.Union[list, tuple], n: int) -> list
792
- ├── sequence
773
+ ├── seqs
793
774
  │ ├── CLASS
794
775
  │ └── FUNCTION
795
776
  │ ├── 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
@@ -799,10 +780,27 @@ PyPyNum
799
780
  │ ├── farey(n: int) -> list
800
781
  │ ├── fibonacci(n: int, single: bool) -> typing.Union[int, list]
801
782
  │ ├── 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
783
+ │ ├── lucas(n: int, single: bool) -> typing.Union[int, list]
802
784
  │ ├── pascal_triangle(n: int) -> list
785
+ │ ├── pell(n: int, single: bool) -> typing.Union[int, list]
803
786
  │ ├── recaman(n: int, single: bool) -> typing.Union[int, list]
804
787
  │ ├── stirling1(n: int) -> list
805
- └── stirling2(n: int) -> list
788
+ ├── stirling2(n: int) -> list
789
+ │ ├── tetranacci(n: int, single: bool) -> typing.Union[int, list]
790
+ │ └── tribonacci(n: int, single: bool) -> typing.Union[int, list]
791
+ ├── special
792
+ │ ├── CLASS
793
+ │ └── FUNCTION
794
+ │ ├── bessel_i0(x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
795
+ │ ├── bessel_i1(x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
796
+ │ ├── bessel_iv(v: typing.Union[int, float], x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
797
+ │ ├── bessel_j0(x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
798
+ │ ├── bessel_j1(x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
799
+ │ ├── bessel_jv(v: typing.Union[int, float], x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
800
+ │ ├── hyp0f1(b0: typing.Union[int, float, complex], z: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
801
+ │ ├── hyp1f1(a0: typing.Union[int, float, complex], b0: typing.Union[int, float, complex], z: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
802
+ │ ├── hyp2f1(a0: typing.Union[int, float, complex], a1: typing.Union[int, float, complex], b0: typing.Union[int, float, complex], z: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
803
+ │ └── hyppfq(a: typing.Union[list, tuple], b: typing.Union[list, tuple], z: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
806
804
  ├── stattest
807
805
  │ ├── CLASS
808
806
  │ └── FUNCTION
@@ -812,6 +810,17 @@ PyPyNum
812
810
  │ ├── mediantest(samples: Any, ties: Any, lambda_: Any, corr: Any) -> Any
813
811
  │ ├── normaltest(data: list) -> tuple
814
812
  │ └── skewtest(data: list, two_tailed: bool) -> tuple
813
+ ├── symbols
814
+ │ ├── CLASS
815
+ │ └── FUNCTION
816
+ │ └── parse_expr(expr: str) -> list
817
+ ├── tensors
818
+ │ ├── CLASS
819
+ │ │ └── Tensor(pypynum.arrays.Array)/__init__(self: Any, data: Any, check: Any) -> Any
820
+ │ └── FUNCTION
821
+ │ ├── ten(data: list) -> pypynum.tensors.Tensor
822
+ │ ├── tensor_and_number(tensor: Any, operator: Any, number: Any) -> Any
823
+ │ └── tensorproduct(tensors: pypynum.tensors.Tensor) -> pypynum.tensors.Tensor
815
824
  ├── test
816
825
  │ ├── CLASS
817
826
  │ └── FUNCTION
@@ -823,17 +832,27 @@ PyPyNum
823
832
  │ └── FUNCTION
824
833
  │ ├── classify(array: typing.Union[list, tuple]) -> dict
825
834
  │ ├── dedup(iterable: typing.Union[list, tuple, str]) -> typing.Union[list, tuple, str]
835
+ │ ├── fast_pow(a: typing.Any, n: int, init: typing.Any, mul: typing.Callable) -> typing.Any
826
836
  │ ├── frange(start: typing.Union[int, float], stop: typing.Union[int, float], step: float) -> list
827
837
  │ ├── geomspace(start: typing.Union[int, float], stop: typing.Union[int, float], number: int) -> list
828
838
  │ ├── levenshtein_distance(s1: str, s2: str) -> int
829
839
  │ ├── linspace(start: typing.Union[int, float], stop: typing.Union[int, float], number: int) -> list
830
- │ ├── magic_square(n: Any) -> Any
840
+ │ ├── magic_square(n: int) -> list
831
841
  │ ├── primality(n: int, iter_num: int) -> bool
832
842
  │ ├── prime_factors(integer: int, dictionary: bool, pollard_rho: bool) -> typing.Union[list, dict]
833
843
  │ ├── primes(limit: int) -> list
834
844
  │ ├── semiprimes(limit: int) -> list
835
845
  │ ├── split(iterable: typing.Union[list, tuple, str], key: typing.Union[list, tuple], retain: bool) -> list
836
846
  │ └── twinprimes(limit: int) -> list
847
+ ├── trees
848
+ │ ├── CLASS
849
+ │ │ ├── BTNode(object)/__init__(self: Any, data: Any) -> Any
850
+ │ │ ├── BinaryTree(object)/__init__(self: Any, root: Any) -> Any
851
+ │ │ ├── MTNode(object)/__init__(self: Any, data: Any) -> Any
852
+ │ │ ├── MultiTree(object)/__init__(self: Any, root: Any) -> Any
853
+ │ │ ├── RBTNode(object)/__init__(self: Any, data: Any, color: Any) -> Any
854
+ │ │ └── RedBlackTree(object)/__init__(self: Any) -> Any
855
+ │ └── FUNCTION
837
856
  ├── types
838
857
  │ ├── CLASS
839
858
  │ └── FUNCTION
@@ -864,6 +883,11 @@ PyPyNum
864
883
  │ │ ├── LinkedListNode(object)/__init__(self: Any, value: Any, next_node: Any) -> Any
865
884
  │ │ └── OrderedSet(object)/__init__(self: Any, sequence: Any) -> Any
866
885
  │ └── FUNCTION
886
+ ├── vectors
887
+ │ ├── CLASS
888
+ │ │ └── Vector(pypynum.arrays.Array)/__init__(self: Any, data: Any, check: Any) -> Any
889
+ │ └── FUNCTION
890
+ │ └── vec(data: Any) -> Any
867
891
  └── zh_cn
868
892
  ├── CLASS
869
893
  └── FUNCTION
@@ -876,7 +900,7 @@ PyPyNum
876
900
  ├── base64密码(文本: str, 解密: bool) -> str
877
901
  ├── x对数y乘积(x: float, y: float) -> float
878
902
  ├── y次方根(被开方数: typing.Union[int, float, complex], 开方数: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
879
- ├── 一维傅里叶变换(数据: Any) -> pypynum.FourierT.FT1D
903
+ ├── 一维傅里叶变换(数据: Any) -> pypynum.fft.FT1D
880
904
  ├── 上伽玛(s: typing.Union[int, float, complex], x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
881
905
  ├── 上标转整数(上标字符串: str) -> str
882
906
  ├── 下伽玛(s: typing.Union[int, float, complex], x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
@@ -884,7 +908,7 @@ PyPyNum
884
908
  ├── 中位数(数据: typing.List[float]) -> float
885
909
  ├── 中国剩余定理(n: typing.List[int], a: typing.List[int]) -> int
886
910
  ├── 中心矩(数据: typing.List[float], 阶数: int) -> float
887
- ├── 乘积和(数组: typing.List[typing.Any]) -> float
911
+ ├── 乘积和(多个数组: typing.List[typing.Any]) -> float
888
912
  ├── 代替密码(文本: str, 替换映射: dict, 解密: bool) -> str
889
913
  ├── 众数(数据: typing.List[typing.Any]) -> Any
890
914
  ├── 伽玛函数(alpha: float) -> float
@@ -936,9 +960,10 @@ PyPyNum
936
960
  ├── 多精度复数(实部: typing.Union[int, float, str, decimal.Decimal], 虚部: typing.Union[int, float, str, decimal.Decimal], 有效位数: int) -> pypynum.multiprec.MPComplex
937
961
  ├── 多精度对数(真数: typing.Union[int, float], 底数: typing.Union[int, float], 有效位数: int, 使用内置方法: bool) -> decimal.Decimal
938
962
  ├── 多精度方位角(y: typing.Union[int, float], x: typing.Union[int, float], 有效位数: int) -> decimal.Decimal
939
- ├── 多精度欧拉数(有效位数: int, 方法: str) -> decimal.Decimal
963
+ ├── 多精度欧拉伽马(有效位数: int) -> decimal.Decimal
940
964
  ├── 多精度正弦(x: typing.Union[int, float], 有效位数: int) -> decimal.Decimal
941
965
  ├── 多精度自然对数(真数: typing.Union[int, float], 有效位数: int, 使用内置方法: bool) -> decimal.Decimal
966
+ ├── 多精度自然常数(有效位数: int, 方法: str) -> decimal.Decimal
942
967
  ├── 多精度自然指数(指数: typing.Union[int, float], 有效位数: int, 使用内置方法: bool) -> decimal.Decimal
943
968
  ├── 多精度菲涅耳余弦积分(x: typing.Union[int, float], 有效位数: int) -> decimal.Decimal
944
969
  ├── 多精度菲涅耳正弦积分(x: typing.Union[int, float], 有效位数: int) -> decimal.Decimal
@@ -956,7 +981,7 @@ PyPyNum
956
981
  ├── 扩展欧几里得算法(a: int, b: int) -> typing.Tuple[int, int, int]
957
982
  ├── 拆分浮点数字符串(字符串: str) -> tuple
958
983
  ├── 排列数(总数: int, 选取数: int) -> int
959
- ├── 数组(数据: list, 检查: bool) -> pypynum.Array.Array
984
+ ├── 数组(数据: list, 检查: bool) -> pypynum.arrays.Array
960
985
  ├── 整数转上标(标准字符串: str) -> str
961
986
  ├── 整数转下标(标准字符串: str) -> str
962
987
  ├── 整数转单词(整数: int) -> str
@@ -1003,7 +1028,7 @@ PyPyNum
1003
1028
  ├── 负一整数次幂(指数: int) -> int
1004
1029
  ├── 转为多精度复数(实部: typing.Union[int, float, str, decimal.Decimal, complex, pypynum.multiprec.MPComplex], 虚部: typing.Union[int, float, str, decimal.Decimal], 有效位数: int) -> pypynum.multiprec.MPComplex
1005
1030
  ├── 转换为列表(数据: Any) -> list
1006
- ├── 转换为数组(数据: Any) -> pypynum.Array.Array
1031
+ ├── 转换为数组(数据: Any) -> pypynum.arrays.Array
1007
1032
  ├── 连续乘积(下界: int, 上界: int, 函数: typing.Callable) -> float
1008
1033
  ├── 连续加和(下界: int, 上界: int, 函数: typing.Callable) -> float
1009
1034
  ├── 阶乘函数(n: int) -> int
@@ -1012,18 +1037,18 @@ PyPyNum
1012
1037
  └── 黎曼函数(alpha: float) -> float
1013
1038
  ```
1014
1039
 
1015
- ### Code testing
1040
+ ### Code Testing
1016
1041
 
1017
1042
  ```python
1018
- from pypynum import (Array, Geometry, Logic, Matrix, Quaternion, Symbolics, Tensor, Vector,
1019
- cipher, constants, equations, maths, plotting, random, regression, tools)
1043
+ from pypynum import (arrays, geoms, logics, matrices, quats, symbols, tensors, vectors,
1044
+ ciphers, consts, equations, maths, plotting, random, regs, tools)
1020
1045
 
1021
1046
  ...
1022
1047
 
1023
- print(Array.array())
1024
- print(Array.array([1, 2, 3, 4, 5, 6, 7, 8]))
1025
- print(Array.array([[1, 2, 3, 4], [5, 6, 7, 8]]))
1026
- print(Array.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]))
1048
+ print(arrays.array())
1049
+ print(arrays.array([1, 2, 3, 4, 5, 6, 7, 8]))
1050
+ print(arrays.array([[1, 2, 3, 4], [5, 6, 7, 8]]))
1051
+ print(arrays.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]))
1027
1052
 
1028
1053
  """
1029
1054
  []
@@ -1037,7 +1062,7 @@ print(Array.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]))
1037
1062
  [7 8]]]
1038
1063
  """
1039
1064
 
1040
- triangle = Geometry.Triangle((0, 0), (2, 2), (3, 0))
1065
+ triangle = geoms.Triangle((0, 0), (2, 2), (3, 0))
1041
1066
  print(triangle.perimeter())
1042
1067
  print(triangle.area())
1043
1068
  print(triangle.centroid())
@@ -1049,24 +1074,24 @@ print(triangle.centroid())
1049
1074
  """
1050
1075
 
1051
1076
  a, b, c = 1, 1, 1
1052
- adder0, adder1 = Logic.HalfAdder("alpha", a, b), Logic.HalfAdder("beta", c, None)
1053
- xor0 = Logic.XOR("alpha")
1054
- ff0, ff1 = Logic.DFF("alpha"), Logic.DFF("beta")
1077
+ adder0, adder1 = logics.HalfAdder("alpha", a, b), logics.HalfAdder("beta", c, None)
1078
+ xor0 = logics.XOR("alpha")
1079
+ ff0, ff1 = logics.DFF("alpha"), logics.DFF("beta")
1055
1080
  xor0.set_order0(1)
1056
1081
  xor0.set_order1(1)
1057
- Logic.connector(adder0, adder1)
1058
- Logic.connector(adder0, xor0)
1059
- Logic.connector(adder1, xor0)
1060
- Logic.connector(adder1, ff0)
1061
- Logic.connector(xor0, ff1)
1082
+ logics.connector(adder0, adder1)
1083
+ logics.connector(adder0, xor0)
1084
+ logics.connector(adder1, xor0)
1085
+ logics.connector(adder1, ff0)
1086
+ logics.connector(xor0, ff1)
1062
1087
  print("sum: {}, carry: {}".format(ff0.out(), ff1.out()))
1063
1088
 
1064
1089
  """
1065
1090
  sum: [1], carry: [1]
1066
1091
  """
1067
1092
 
1068
- m0 = Matrix.mat([[1, 2], [3, 4]])
1069
- m1 = Matrix.mat([[5, 6], [7, 8]])
1093
+ m0 = matrices.mat([[1, 2], [3, 4]])
1094
+ m1 = matrices.mat([[5, 6], [7, 8]])
1070
1095
  print(m0)
1071
1096
  print(m1)
1072
1097
  print(m0 + m1)
@@ -1088,8 +1113,8 @@ print(m1.rank())
1088
1113
  2
1089
1114
  """
1090
1115
 
1091
- q0 = Quaternion.quat(1, 2, 3, 4)
1092
- q1 = Quaternion.quat(5, 6, 7, 8)
1116
+ q0 = quats.quat(1, 2, 3, 4)
1117
+ q1 = quats.quat(5, 6, 7, 8)
1093
1118
  print(q0)
1094
1119
  print(q1)
1095
1120
  print(q0 + q1)
@@ -1106,10 +1131,10 @@ print(q1.conjugate())
1106
1131
  (5+-6i+-7j+-8k)
1107
1132
  """
1108
1133
 
1109
- print(Symbolics.BASIC)
1110
- print(Symbolics.ENGLISH)
1111
- print(Symbolics.GREEK)
1112
- print(Symbolics.parse_expr("-(10+a-(3.14+b0)*(-5))**(-ζn1-2.718/mΣ99)//9"))
1134
+ print(symbols.BASIC)
1135
+ print(symbols.ENGLISH)
1136
+ print(symbols.GREEK)
1137
+ print(symbols.parse_expr("-(10+a-(3.14+b0)*(-5))**(-ζn1-2.718/mΣ99)//9"))
1113
1138
 
1114
1139
  """
1115
1140
  %()*+-./0123456789
@@ -1118,8 +1143,8 @@ ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
1118
1143
  [['10', '+', 'a', '-', ['3.14', '+', 'b0'], '*', '-5'], '**', ['-ζn1', '-', '2.718', '/', 'mΣ99'], '//', '9']
1119
1144
  """
1120
1145
 
1121
- t0 = Tensor.ten([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
1122
- t1 = Tensor.ten([[[9, 10], [11, 12]], [[13, 14], [15, 16]]])
1146
+ t0 = tensors.ten([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
1147
+ t1 = tensors.ten([[[9, 10], [11, 12]], [[13, 14], [15, 16]]])
1123
1148
  print(t0)
1124
1149
  print(t1)
1125
1150
  print(t0 + t1)
@@ -1149,33 +1174,33 @@ print(t0 @ t1)
1149
1174
  """
1150
1175
 
1151
1176
  string = "PyPyNum"
1152
- encrypted = cipher.caesar(string, 10)
1177
+ encrypted = ciphers.caesar(string, 10)
1153
1178
  print(string)
1154
1179
  print(encrypted)
1155
- print(cipher.caesar(encrypted, 10, decrypt=True))
1156
- encrypted = cipher.vigenere(string, "cipher")
1180
+ print(ciphers.caesar(encrypted, 10, decrypt=True))
1181
+ encrypted = ciphers.vigenere(string, "ciphers")
1157
1182
  print(string)
1158
1183
  print(encrypted)
1159
- print(cipher.vigenere(encrypted, "cipher", decrypt=True))
1160
- encrypted = cipher.morse(string)
1184
+ print(ciphers.vigenere(encrypted, "ciphers", decrypt=True))
1185
+ encrypted = ciphers.morse(string)
1161
1186
  print(string)
1162
1187
  print(encrypted)
1163
- print(cipher.morse(encrypted, decrypt=True))
1188
+ print(ciphers.morse(encrypted, decrypt=True))
1164
1189
 
1165
1190
  """
1166
1191
  PyPyNum
1167
1192
  ZiZiXew
1168
1193
  PyPyNum
1169
1194
  PyPyNum
1170
- RgEfRlo
1195
+ RgEfRle
1171
1196
  PyPyNum
1172
1197
  PyPyNum
1173
1198
  .--. -.-- .--. -.-- -. ..- --
1174
1199
  PYPYNUM
1175
1200
  """
1176
1201
 
1177
- v0 = Vector.vec([1, 2, 3, 4])
1178
- v1 = Vector.vec([5, 6, 7, 8])
1202
+ v0 = vectors.vec([1, 2, 3, 4])
1203
+ v1 = vectors.vec([5, 6, 7, 8])
1179
1204
  print(v0)
1180
1205
  print(v1)
1181
1206
  print(v0 + v1)
@@ -1192,12 +1217,12 @@ print(v1.angles())
1192
1217
  [1.1820279130506308, 1.0985826410133916, 1.0114070854293842, 0.9191723423169716]
1193
1218
  """
1194
1219
 
1195
- print(constants.TB)
1196
- print(constants.e)
1197
- print(constants.h)
1198
- print(constants.phi)
1199
- print(constants.pi)
1200
- print(constants.tera)
1220
+ print(consts.TB)
1221
+ print(consts.e)
1222
+ print(consts.h)
1223
+ print(consts.phi)
1224
+ print(consts.pi)
1225
+ print(consts.tera)
1201
1226
 
1202
1227
  """
1203
1228
  1099511627776
@@ -1225,7 +1250,7 @@ print(equations.lin_eq(*m))
1225
1250
  [1.6666666666666665, -0.6666666666666666, -0.4444444444444444]
1226
1251
  """
1227
1252
 
1228
- print(maths.cot(constants.pi / 3))
1253
+ print(maths.cot(consts.pi / 3))
1229
1254
  print(maths.gamma(1.5))
1230
1255
  print(maths.pi(1, 10, lambda x: x ** 2))
1231
1256
  print(maths.product([2, 3, 5, 7, 11, 13, 17, 19, 23, 29]))
@@ -1322,15 +1347,15 @@ print(random.randint(0, 9, [2, 3, 4]))
1322
1347
  print(random.uniform(0, 9, [2, 3, 4]))
1323
1348
 
1324
1349
  """
1325
- [[[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]]]
1326
- [[[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]]]
1327
- [[[7, 2, 9, 7], [0, 5, 1, 3], [9, 1, 0, 2]], [[1, 2, 7, 5], [5, 7, 4, 1], [2, 5, 7, 9]]]
1328
- [[[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]]]
1350
+ [[[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]]]
1351
+ [[[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]]]
1352
+ [[[5, 6, 4, 0], [5, 0, 4, 1], [2, 3, 5, 4]], [[4, 2, 3, 8], [3, 0, 0, 8], [9, 9, 4, 8]]]
1353
+ [[[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]]]
1329
1354
  """
1330
1355
 
1331
- print(regression.lin_reg(list(range(5)), [2, 4, 6, 7, 8]))
1332
- print(regression.par_reg(list(range(5)), [2, 4, 6, 7, 8]))
1333
- print(regression.poly_reg(list(range(5)), [2, 4, 6, 7, 8], 4))
1356
+ print(regs.lin_reg(list(range(5)), [2, 4, 6, 7, 8]))
1357
+ print(regs.par_reg(list(range(5)), [2, 4, 6, 7, 8]))
1358
+ print(regs.poly_reg(list(range(5)), [2, 4, 6, 7, 8], 4))
1334
1359
 
1335
1360
  """
1336
1361
  [1.5, 2.4000000000000004]