PyPyNum 1.14.1__py3-none-any.whl → 1.15.0__py3-none-any.whl

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 (43) hide show
  1. {PyPyNum-1.14.1.dist-info → PyPyNum-1.15.0.dist-info}/METADATA +276 -242
  2. PyPyNum-1.15.0.dist-info/RECORD +49 -0
  3. pypynum/README.md +275 -241
  4. pypynum/__init__.py +27 -29
  5. pypynum/{Array.py → arrays.py} +1 -1
  6. pypynum/chars.py +1 -0
  7. pypynum/{cipher.py → ciphers.py} +4 -4
  8. pypynum/equations.py +2 -2
  9. pypynum/{file.py → files.py} +14 -14
  10. pypynum/{Graph.py → graphs.py} +18 -18
  11. pypynum/{image.py → images.py} +1 -1
  12. pypynum/interp.py +7 -7
  13. pypynum/kernels.py +378 -0
  14. pypynum/{Logic.py → logics.py} +1 -1
  15. pypynum/{Matrix.py → matrices.py} +4 -4
  16. pypynum/multiprec.py +39 -35
  17. pypynum/{polynomial.py → polys.py} +2 -2
  18. pypynum/{Quaternion.py → quats.py} +2 -3
  19. pypynum/random.py +1 -2
  20. pypynum/{regression.py → regs.py} +1 -1
  21. pypynum/{sequence.py → seqs.py} +72 -14
  22. pypynum/stattest.py +2 -2
  23. pypynum/{Tensor.py → tensors.py} +2 -12
  24. pypynum/test.py +136 -136
  25. pypynum/tools.py +40 -2
  26. pypynum/trees.py +1159 -0
  27. pypynum/types.py +104 -0
  28. pypynum/ufuncs.py +2 -2
  29. pypynum/utils.py +3 -4
  30. pypynum/{Vector.py → vectors.py} +2 -2
  31. pypynum/zh_cn.py +7 -7
  32. PyPyNum-1.14.1.dist-info/RECORD +0 -50
  33. pypynum/Tree.py +0 -126
  34. pypynum/confs.py +0 -81
  35. pypynum/errors.py +0 -23
  36. {PyPyNum-1.14.1.dist-info → PyPyNum-1.15.0.dist-info}/WHEEL +0 -0
  37. {PyPyNum-1.14.1.dist-info → PyPyNum-1.15.0.dist-info}/top_level.txt +0 -0
  38. /pypynum/{constants.py → consts.py} +0 -0
  39. /pypynum/{FourierT.py → fft.py} +0 -0
  40. /pypynum/{Geometry.py → geoms.py} +0 -0
  41. /pypynum/{Group.py → groups.py} +0 -0
  42. /pypynum/{NeuralN.py → networks.py} +0 -0
  43. /pypynum/{Symbolics.py → symbols.py} +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.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.1 | 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,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.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
 
@@ -323,44 +322,60 @@ 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
+ Renamed most of the submodules,
331
+ please refer to the
332
+ "Name and Function Introduction of Submodules"
332
333
 
333
- !=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=
334
-
335
- < Updated the Zen content of the project >
336
334
 
337
- !=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=
335
+ MultiTreeNode renamed as MTNode
338
336
 
339
- < The following two function names have removed the 'generate' prefix >
340
337
 
341
- generate_primes(limit: int) -> list
342
- generate_semiprimes(limit: int) -> list
338
+ Fixed all known issues in trees and graphs,
339
+ and added some new features.
343
340
 
344
341
  !=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=
345
342
 
346
343
  <<< Newly added functions and classes >>>
347
344
 
348
345
  PyPyNum
349
- ├── Matrix
346
+ ├── kernels
350
347
  │ └── FUNCTION
351
- └── triu_indices(n: int, k: int, m: int) -> tuple # Returns the indices of the upper triangular part of a matrix
352
- ├── multiprec
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
353
364
  │ └── 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
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]
361
369
  ├── tools
362
370
  │ └── FUNCTION
363
- └── twinprimes(limit: int) -> list # Returns all twin prime pairs up to and including the specified limit
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
378
+
364
379
 
365
380
  !=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=
366
381
  ```
@@ -385,14 +400,14 @@ Python interpreter version
385
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 |
386
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⎦⎦``` | / |
387
402
 
388
- ### Basic structure
403
+ ### Basic Structure
389
404
 
390
405
  ```
391
406
  PyPyNum
392
- ├── Array
407
+ ├── arrays
393
408
  │ ├── CLASS
394
409
  │ │ ├── Array(object)/__init__(self: Any, data: Any, check: Any) -> Any
395
- │ │ └── 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
396
411
  │ └── FUNCTION
397
412
  │ ├── array(data: Any) -> Any
398
413
  │ ├── asarray(data: Any) -> Any
@@ -407,112 +422,6 @@ PyPyNum
407
422
  │ ├── ones_like(a: Any, rtype: Any) -> Any
408
423
  │ ├── zeros(shape: Any, rtype: Any) -> Any
409
424
  │ └── 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
425
  ├── bessel
517
426
  │ ├── CLASS
518
427
  │ └── FUNCTION
@@ -529,7 +438,7 @@ PyPyNum
529
438
  │ ├── int2superscript(standard_str: str) -> str
530
439
  │ ├── subscript2int(subscript_str: str) -> str
531
440
  │ └── superscript2int(superscript_str: str) -> str
532
- ├── cipher
441
+ ├── ciphers
533
442
  │ ├── CLASS
534
443
  │ └── FUNCTION
535
444
  │ ├── atbash(text: str) -> str
@@ -544,10 +453,7 @@ PyPyNum
544
453
  │ ├── rot13(text: str) -> str
545
454
  │ ├── substitution(text: str, sub_map: dict, decrypt: bool) -> str
546
455
  │ └── vigenere(text: str, key: str, decrypt: bool) -> str
547
- ├── confs
548
- │ ├── CLASS
549
- │ └── FUNCTION
550
- ├── constants
456
+ ├── consts
551
457
  │ ├── CLASS
552
458
  │ └── FUNCTION
553
459
  ├── crandom
@@ -607,15 +513,40 @@ PyPyNum
607
513
  │ └── FUNCTION
608
514
  │ ├── lin_eq(left: list, right: list) -> list
609
515
  │ └── poly_eq(coefficients: list) -> list
610
- ├── errors
516
+ ├── fft
611
517
  │ ├── CLASS
518
+ │ │ └── FT1D(object)/__init__(self: Any, data: Any) -> Any
612
519
  │ └── FUNCTION
613
- ├── file
520
+ ├── files
614
521
  │ ├── CLASS
615
522
  │ └── FUNCTION
616
523
  │ ├── read(file: str) -> list
617
524
  │ └── write(file: str, cls: object) -> Any
618
- ├── 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
619
550
  │ ├── CLASS
620
551
  │ │ └── PNG(object)/__init__(self: Any) -> None
621
552
  │ └── FUNCTION
@@ -627,6 +558,50 @@ PyPyNum
627
558
  │ ├── contribute(src: Any, x: Any, y: Any, channels: Any) -> Any
628
559
  │ ├── interp1d(data: typing.Union[list, tuple], length: int) -> list
629
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
630
605
  ├── maths
631
606
  │ ├── CLASS
632
607
  │ └── FUNCTION
@@ -712,6 +687,22 @@ PyPyNum
712
687
  │ ├── var(numbers: typing.Union[list, tuple], dof: int) -> typing.Union[int, float, complex]
713
688
  │ ├── xlogy(x: typing.Union[int, float, complex], y: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
714
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
715
706
  ├── multiprec
716
707
  │ ├── CLASS
717
708
  │ │ └── MPComplex(object)/__init__(self: Any, real: Any, imag: Any, sigfigs: Any) -> Any
@@ -737,6 +728,11 @@ PyPyNum
737
728
  │ ├── mp_pi(sigfigs: int, method: str) -> decimal.Decimal
738
729
  │ ├── mp_sin(x: typing.Union[int, float, str, decimal.Decimal], sigfigs: int) -> decimal.Decimal
739
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
740
736
  ├── numbers
741
737
  │ ├── CLASS
742
738
  │ └── FUNCTION
@@ -756,7 +752,7 @@ PyPyNum
756
752
  │ ├── change(data: typing.Union[list, str]) -> typing.Union[list, str]
757
753
  │ ├── color(text: str, rgb: typing.Union[list, tuple]) -> str
758
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]
759
- ├── polynomial
755
+ ├── polys
760
756
  │ ├── CLASS
761
757
  │ │ └── Polynomial(object)/__init__(self: Any, terms: Any) -> Any
762
758
  │ └── FUNCTION
@@ -773,6 +769,14 @@ PyPyNum
773
769
  │ ├── CLASS
774
770
  │ └── FUNCTION
775
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
776
780
  ├── random
777
781
  │ ├── CLASS
778
782
  │ └── FUNCTION
@@ -783,13 +787,13 @@ PyPyNum
783
787
  │ ├── rand(shape: typing.Union[list, tuple]) -> typing.Union[float, list]
784
788
  │ ├── randint(a: int, b: int, shape: typing.Union[list, tuple]) -> typing.Union[int, list]
785
789
  │ └── uniform(a: typing.Union[int, float], b: typing.Union[int, float], shape: typing.Union[list, tuple]) -> typing.Union[float, list]
786
- ├── regression
790
+ ├── regs
787
791
  │ ├── CLASS
788
792
  │ └── FUNCTION
789
793
  │ ├── lin_reg(x: typing.Union[list, tuple], y: typing.Union[list, tuple]) -> list
790
794
  │ ├── par_reg(x: typing.Union[list, tuple], y: typing.Union[list, tuple]) -> list
791
795
  │ └── poly_reg(x: typing.Union[list, tuple], y: typing.Union[list, tuple], n: int) -> list
792
- ├── sequence
796
+ ├── seqs
793
797
  │ ├── CLASS
794
798
  │ └── FUNCTION
795
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
@@ -799,10 +803,14 @@ PyPyNum
799
803
  │ ├── farey(n: int) -> list
800
804
  │ ├── fibonacci(n: int, single: bool) -> typing.Union[int, list]
801
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
806
+ │ ├── lucas(n: int, single: bool) -> typing.Union[int, list]
802
807
  │ ├── pascal_triangle(n: int) -> list
808
+ │ ├── pell(n: int, single: bool) -> typing.Union[int, list]
803
809
  │ ├── recaman(n: int, single: bool) -> typing.Union[int, list]
804
810
  │ ├── stirling1(n: int) -> list
805
- └── stirling2(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]
806
814
  ├── stattest
807
815
  │ ├── CLASS
808
816
  │ └── FUNCTION
@@ -812,6 +820,17 @@ PyPyNum
812
820
  │ ├── mediantest(samples: Any, ties: Any, lambda_: Any, corr: Any) -> Any
813
821
  │ ├── normaltest(data: list) -> tuple
814
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
815
834
  ├── test
816
835
  │ ├── CLASS
817
836
  │ └── FUNCTION
@@ -823,17 +842,27 @@ PyPyNum
823
842
  │ └── FUNCTION
824
843
  │ ├── classify(array: typing.Union[list, tuple]) -> dict
825
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
826
846
  │ ├── frange(start: typing.Union[int, float], stop: typing.Union[int, float], step: float) -> list
827
847
  │ ├── geomspace(start: typing.Union[int, float], stop: typing.Union[int, float], number: int) -> list
828
848
  │ ├── levenshtein_distance(s1: str, s2: str) -> int
829
849
  │ ├── linspace(start: typing.Union[int, float], stop: typing.Union[int, float], number: int) -> list
830
- │ ├── magic_square(n: Any) -> Any
850
+ │ ├── magic_square(n: int) -> list
831
851
  │ ├── primality(n: int, iter_num: int) -> bool
832
852
  │ ├── prime_factors(integer: int, dictionary: bool, pollard_rho: bool) -> typing.Union[list, dict]
833
853
  │ ├── primes(limit: int) -> list
834
854
  │ ├── semiprimes(limit: int) -> list
835
855
  │ ├── split(iterable: typing.Union[list, tuple, str], key: typing.Union[list, tuple], retain: bool) -> list
836
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
837
866
  ├── types
838
867
  │ ├── CLASS
839
868
  │ └── FUNCTION
@@ -864,6 +893,11 @@ PyPyNum
864
893
  │ │ ├── LinkedListNode(object)/__init__(self: Any, value: Any, next_node: Any) -> Any
865
894
  │ │ └── OrderedSet(object)/__init__(self: Any, sequence: Any) -> Any
866
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
867
901
  └── zh_cn
868
902
  ├── CLASS
869
903
  └── FUNCTION
@@ -876,7 +910,7 @@ PyPyNum
876
910
  ├── base64密码(文本: str, 解密: bool) -> str
877
911
  ├── x对数y乘积(x: float, y: float) -> float
878
912
  ├── y次方根(被开方数: typing.Union[int, float, complex], 开方数: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
879
- ├── 一维傅里叶变换(数据: Any) -> pypynum.FourierT.FT1D
913
+ ├── 一维傅里叶变换(数据: Any) -> pypynum.fft.FT1D
880
914
  ├── 上伽玛(s: typing.Union[int, float, complex], x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
881
915
  ├── 上标转整数(上标字符串: str) -> str
882
916
  ├── 下伽玛(s: typing.Union[int, float, complex], x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
@@ -884,7 +918,7 @@ PyPyNum
884
918
  ├── 中位数(数据: typing.List[float]) -> float
885
919
  ├── 中国剩余定理(n: typing.List[int], a: typing.List[int]) -> int
886
920
  ├── 中心矩(数据: typing.List[float], 阶数: int) -> float
887
- ├── 乘积和(数组: typing.List[typing.Any]) -> float
921
+ ├── 乘积和(多个数组: typing.List[typing.Any]) -> float
888
922
  ├── 代替密码(文本: str, 替换映射: dict, 解密: bool) -> str
889
923
  ├── 众数(数据: typing.List[typing.Any]) -> Any
890
924
  ├── 伽玛函数(alpha: float) -> float
@@ -956,7 +990,7 @@ PyPyNum
956
990
  ├── 扩展欧几里得算法(a: int, b: int) -> typing.Tuple[int, int, int]
957
991
  ├── 拆分浮点数字符串(字符串: str) -> tuple
958
992
  ├── 排列数(总数: int, 选取数: int) -> int
959
- ├── 数组(数据: list, 检查: bool) -> pypynum.Array.Array
993
+ ├── 数组(数据: list, 检查: bool) -> pypynum.arrays.Array
960
994
  ├── 整数转上标(标准字符串: str) -> str
961
995
  ├── 整数转下标(标准字符串: str) -> str
962
996
  ├── 整数转单词(整数: int) -> str
@@ -1003,7 +1037,7 @@ PyPyNum
1003
1037
  ├── 负一整数次幂(指数: int) -> int
1004
1038
  ├── 转为多精度复数(实部: typing.Union[int, float, str, decimal.Decimal, complex, pypynum.multiprec.MPComplex], 虚部: typing.Union[int, float, str, decimal.Decimal], 有效位数: int) -> pypynum.multiprec.MPComplex
1005
1039
  ├── 转换为列表(数据: Any) -> list
1006
- ├── 转换为数组(数据: Any) -> pypynum.Array.Array
1040
+ ├── 转换为数组(数据: Any) -> pypynum.arrays.Array
1007
1041
  ├── 连续乘积(下界: int, 上界: int, 函数: typing.Callable) -> float
1008
1042
  ├── 连续加和(下界: int, 上界: int, 函数: typing.Callable) -> float
1009
1043
  ├── 阶乘函数(n: int) -> int
@@ -1012,18 +1046,18 @@ PyPyNum
1012
1046
  └── 黎曼函数(alpha: float) -> float
1013
1047
  ```
1014
1048
 
1015
- ### Code testing
1049
+ ### Code Testing
1016
1050
 
1017
1051
  ```python
1018
- from pypynum import (Array, Geometry, Logic, Matrix, Quaternion, Symbolics, Tensor, Vector,
1019
- 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)
1020
1054
 
1021
1055
  ...
1022
1056
 
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]]]))
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]]]))
1027
1061
 
1028
1062
  """
1029
1063
  []
@@ -1037,7 +1071,7 @@ print(Array.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]))
1037
1071
  [7 8]]]
1038
1072
  """
1039
1073
 
1040
- triangle = Geometry.Triangle((0, 0), (2, 2), (3, 0))
1074
+ triangle = geoms.Triangle((0, 0), (2, 2), (3, 0))
1041
1075
  print(triangle.perimeter())
1042
1076
  print(triangle.area())
1043
1077
  print(triangle.centroid())
@@ -1049,24 +1083,24 @@ print(triangle.centroid())
1049
1083
  """
1050
1084
 
1051
1085
  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")
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")
1055
1089
  xor0.set_order0(1)
1056
1090
  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)
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)
1062
1096
  print("sum: {}, carry: {}".format(ff0.out(), ff1.out()))
1063
1097
 
1064
1098
  """
1065
1099
  sum: [1], carry: [1]
1066
1100
  """
1067
1101
 
1068
- m0 = Matrix.mat([[1, 2], [3, 4]])
1069
- m1 = Matrix.mat([[5, 6], [7, 8]])
1102
+ m0 = matrices.mat([[1, 2], [3, 4]])
1103
+ m1 = matrices.mat([[5, 6], [7, 8]])
1070
1104
  print(m0)
1071
1105
  print(m1)
1072
1106
  print(m0 + m1)
@@ -1088,8 +1122,8 @@ print(m1.rank())
1088
1122
  2
1089
1123
  """
1090
1124
 
1091
- q0 = Quaternion.quat(1, 2, 3, 4)
1092
- q1 = Quaternion.quat(5, 6, 7, 8)
1125
+ q0 = quats.quat(1, 2, 3, 4)
1126
+ q1 = quats.quat(5, 6, 7, 8)
1093
1127
  print(q0)
1094
1128
  print(q1)
1095
1129
  print(q0 + q1)
@@ -1106,10 +1140,10 @@ print(q1.conjugate())
1106
1140
  (5+-6i+-7j+-8k)
1107
1141
  """
1108
1142
 
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"))
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"))
1113
1147
 
1114
1148
  """
1115
1149
  %()*+-./0123456789
@@ -1118,8 +1152,8 @@ ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
1118
1152
  [['10', '+', 'a', '-', ['3.14', '+', 'b0'], '*', '-5'], '**', ['-ζn1', '-', '2.718', '/', 'mΣ99'], '//', '9']
1119
1153
  """
1120
1154
 
1121
- t0 = Tensor.ten([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
1122
- 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]]])
1123
1157
  print(t0)
1124
1158
  print(t1)
1125
1159
  print(t0 + t1)
@@ -1149,33 +1183,33 @@ print(t0 @ t1)
1149
1183
  """
1150
1184
 
1151
1185
  string = "PyPyNum"
1152
- encrypted = cipher.caesar(string, 10)
1186
+ encrypted = ciphers.caesar(string, 10)
1153
1187
  print(string)
1154
1188
  print(encrypted)
1155
- print(cipher.caesar(encrypted, 10, decrypt=True))
1156
- encrypted = cipher.vigenere(string, "cipher")
1189
+ print(ciphers.caesar(encrypted, 10, decrypt=True))
1190
+ encrypted = ciphers.vigenere(string, "ciphers")
1157
1191
  print(string)
1158
1192
  print(encrypted)
1159
- print(cipher.vigenere(encrypted, "cipher", decrypt=True))
1160
- encrypted = cipher.morse(string)
1193
+ print(ciphers.vigenere(encrypted, "ciphers", decrypt=True))
1194
+ encrypted = ciphers.morse(string)
1161
1195
  print(string)
1162
1196
  print(encrypted)
1163
- print(cipher.morse(encrypted, decrypt=True))
1197
+ print(ciphers.morse(encrypted, decrypt=True))
1164
1198
 
1165
1199
  """
1166
1200
  PyPyNum
1167
1201
  ZiZiXew
1168
1202
  PyPyNum
1169
1203
  PyPyNum
1170
- RgEfRlo
1204
+ RgEfRle
1171
1205
  PyPyNum
1172
1206
  PyPyNum
1173
1207
  .--. -.-- .--. -.-- -. ..- --
1174
1208
  PYPYNUM
1175
1209
  """
1176
1210
 
1177
- v0 = Vector.vec([1, 2, 3, 4])
1178
- v1 = Vector.vec([5, 6, 7, 8])
1211
+ v0 = vectors.vec([1, 2, 3, 4])
1212
+ v1 = vectors.vec([5, 6, 7, 8])
1179
1213
  print(v0)
1180
1214
  print(v1)
1181
1215
  print(v0 + v1)
@@ -1192,12 +1226,12 @@ print(v1.angles())
1192
1226
  [1.1820279130506308, 1.0985826410133916, 1.0114070854293842, 0.9191723423169716]
1193
1227
  """
1194
1228
 
1195
- print(constants.TB)
1196
- print(constants.e)
1197
- print(constants.h)
1198
- print(constants.phi)
1199
- print(constants.pi)
1200
- 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)
1201
1235
 
1202
1236
  """
1203
1237
  1099511627776
@@ -1225,7 +1259,7 @@ print(equations.lin_eq(*m))
1225
1259
  [1.6666666666666665, -0.6666666666666666, -0.4444444444444444]
1226
1260
  """
1227
1261
 
1228
- print(maths.cot(constants.pi / 3))
1262
+ print(maths.cot(consts.pi / 3))
1229
1263
  print(maths.gamma(1.5))
1230
1264
  print(maths.pi(1, 10, lambda x: x ** 2))
1231
1265
  print(maths.product([2, 3, 5, 7, 11, 13, 17, 19, 23, 29]))
@@ -1322,15 +1356,15 @@ print(random.randint(0, 9, [2, 3, 4]))
1322
1356
  print(random.uniform(0, 9, [2, 3, 4]))
1323
1357
 
1324
1358
  """
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]]]
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]]]
1329
1363
  """
1330
1364
 
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))
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))
1334
1368
 
1335
1369
  """
1336
1370
  [1.5, 2.4000000000000004]