PyPyNum 1.15.0__py3-none-any.whl → 1.16.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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PyPyNum
3
- Version: 1.15.0
3
+ Version: 1.16.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.15.0 | PyPI -> https://pypi.org/project/PyPyNum/ | Gitee -> https://www.gitee.com/PythonSJL/PyPyNum | GitHub -> https://github.com/PythonSJL/PyPyNum
237
+ ## Version -> 1.16.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
 
@@ -252,7 +252,6 @@ The logo cannot be displayed on PyPI, it can be viewed in Gitee or GitHub.
252
252
  | Submodule Name | Function Introduction |
253
253
  |:-------------------:|:------------------------------------------------------------------:|
254
254
  | `pypynum.arrays` | Provides operations and calculations for multi-dimensional arrays. |
255
- | `pypynum.bessel` | Implements calculations for Bessel functions. |
256
255
  | `pypynum.chars` | Contains a variety of special mathematical characters. |
257
256
  | `pypynum.ciphers` | Implements various encryption and decryption algorithms. |
258
257
  | `pypynum.consts` | Contains mathematical and physical constants. |
@@ -281,6 +280,7 @@ The logo cannot be displayed on PyPI, it can be viewed in Gitee or GitHub.
281
280
  | `pypynum.random` | Generates arrays of random numbers. |
282
281
  | `pypynum.regs` | Regression analysis and model fitting. |
283
282
  | `pypynum.seqs` | Computes various mathematical sequences. |
283
+ | `pypynum.special` | Provides advanced special functions for mathematical computations. |
284
284
  | `pypynum.stattest` | Statistical tests and data analysis. |
285
285
  | `pypynum.symbols` | Symbolic computation and expression manipulation. |
286
286
  | `pypynum.tensors` | Tensor operations and calculations. |
@@ -327,55 +327,81 @@ Python interpreter and run it!
327
327
  ```
328
328
  !=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=
329
329
 
330
- Renamed most of the submodules,
331
- please refer to the
332
- "Name and Function Introduction of Submodules"
330
+ The submodule 'consts' has added
331
+ a large number of mathematical
332
+ and scientific constants,
333
+ currently totaling 128.
333
334
 
335
+ This module defines a collection
336
+ of constants representing
337
+ various physical, mathematical,
338
+ and unit conversion factors.
334
339
 
335
- MultiTreeNode renamed as MTNode
340
+ These constants are commonly
341
+ used in scientific and
342
+ engineering calculations.
336
343
 
337
-
338
- Fixed all known issues in trees and graphs,
339
- and added some new features.
344
+ If you want to know information
345
+ about each constant, you can
346
+ execute 'help(consts)' to
347
+ obtain it.
340
348
 
341
349
  !=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=
342
350
 
343
- <<< Newly added functions and classes >>>
351
+
352
+ <<< Here are the newly added functions >>>
353
+
344
354
 
345
355
  PyPyNum
346
- ├── kernels
356
+ ├── special
347
357
  │ └── FUNCTION
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
358
+ │ ├── qbinomial(n: typing.Union[int, float, complex], m: typing.Union[int, float, complex], q: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
359
+ │ # Calculate the q-binomial coefficient of n and m with parameter q.
360
+ │ ├── qfactorial(n: typing.Union[int, float, complex], q: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
361
+ │ # Compute the q-factorial of n with parameter q.
362
+ │ ├── qgamma(n: typing.Union[int, float, complex], q: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
363
+ │ # Calculate the q-gamma function of n with parameter q.
364
+ └── qpochhammer(a: typing.Union[int, float, complex], q: typing.Union[int, float, complex], n: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
365
+ # Compute the q-Pochhammer symbol for given a, q, and n.
366
+ ├── multiprec
367
+ └── FUNCTION
368
+ │ ├── mp_catalan(sigfigs: int) -> decimal.Decimal
369
+ # Calculate the Catalan's constant with a specified number of significant figures using multiprecision arithmetic.
363
370
  ├── seqs
364
371
  │ └── FUNCTION
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]
372
+ │ ├── padovan(n: int, single: bool) -> typing.Union[int, list]
373
+ │ # Generate the Padovan sequence up to the nth term.
374
+ │ ├── pelllucas(n: int, single: bool) -> typing.Union[int, list]
375
+ │ # Generate the Pell-Lucas sequence up to the nth term.
376
+ │ ├── perrin(n: int, single: bool) -> typing.Union[int, list]
377
+ │ │ # Generate the Perrin sequence up to the nth term.
378
+ │ └── sylvester(n: int, single: bool) -> typing.Union[int, list]
379
+ │ # Generate the Sylvester sequence up to the nth term.
369
380
  ├── tools
370
381
  │ └── FUNCTION
371
- │ ├── fast_pow(a: typing.Any, n: int, init: typing.Any, mul: typing.Callable) -> typing.Any
372
- ├── trees
382
+ │ ├── lcsubseq(x: typing.Union[list, tuple, str], y: typing.Union[list, tuple, str]) -> list
383
+ │ │ # Find the longest common subsequence between two sequences x and y.
384
+ │ └── lcsubstr(x: typing.Union[list, tuple, str], y: typing.Union[list, tuple, str]) -> list
385
+ │ # Find the longest common substring between two sequences x and y.
386
+ ├── matrices
373
387
  │ ├── 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
388
+ │ │ └── Matrix(pypynum.arrays.Array)/__init__(self: Any, data: Any, check: Any) -> Any
389
+ │ │ # Initialize a Matrix object from a given data array.
390
+ └── FUNCTION
391
+ ├── perm_mat(num_rows: int, num_cols: int, row_swaps: typing.Union[list, tuple], col_swaps: typing.Union[list, tuple], rtype: typing.Callable) -> typing.Any
392
+ │ │ # Create a permutation matrix based on specified row and column swaps.
393
+ │ └── perm_mat_indices(num_rows: int, num_cols: int, row_swaps: typing.Union[list, tuple], col_swaps: typing.Union[list, tuple]) -> tuple
394
+ │ # Compute the indices for a permutation matrix based on specified row and column swaps.
395
+
396
+
397
+ !=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=
378
398
 
399
+ Other functions and classes have
400
+ also undergone certain
401
+ modifications, such as adding a
402
+ "reduce" parameter to the "qr"
403
+ function to determine whether to
404
+ crop the matrix.
379
405
 
380
406
  !=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=
381
407
  ```
@@ -422,15 +448,6 @@ PyPyNum
422
448
  │ ├── ones_like(a: Any, rtype: Any) -> Any
423
449
  │ ├── zeros(shape: Any, rtype: Any) -> Any
424
450
  │ └── zeros_like(a: Any, rtype: Any) -> Any
425
- ├── bessel
426
- │ ├── CLASS
427
- │ └── FUNCTION
428
- │ ├── bessel_i0(x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
429
- │ ├── bessel_i1(x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
430
- │ ├── bessel_iv(v: typing.Union[int, float], x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
431
- │ ├── bessel_j0(x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
432
- │ ├── bessel_j1(x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
433
- │ └── bessel_jv(v: typing.Union[int, float], x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
434
451
  ├── chars
435
452
  │ ├── CLASS
436
453
  │ └── FUNCTION
@@ -691,13 +708,15 @@ PyPyNum
691
708
  │ ├── CLASS
692
709
  │ │ └── Matrix(pypynum.arrays.Array)/__init__(self: Any, data: Any, check: Any) -> Any
693
710
  │ └── FUNCTION
694
- │ ├── cholesky(matrix: Any, hermitian: Any) -> Any
711
+ │ ├── cholesky(matrix: pypynum.matrices.Matrix, hermitian: bool) -> pypynum.matrices.Matrix
695
712
  │ ├── eigen(matrix: pypynum.matrices.Matrix) -> tuple
696
713
  │ ├── hessenberg(matrix: pypynum.matrices.Matrix) -> tuple
697
- │ ├── identity(n: int) -> pypynum.matrices.Matrix
714
+ │ ├── identity(n: int, m: int) -> pypynum.matrices.Matrix
698
715
  │ ├── lu(matrix: pypynum.matrices.Matrix) -> tuple
699
716
  │ ├── mat(data: Any) -> Any
700
- │ ├── qr(matrix: pypynum.matrices.Matrix) -> tuple
717
+ │ ├── perm_mat(num_rows: int, num_cols: int, row_swaps: typing.Union[list, tuple], col_swaps: typing.Union[list, tuple], rtype: typing.Callable) -> typing.Any
718
+ │ ├── perm_mat_indices(num_rows: int, num_cols: int, row_swaps: typing.Union[list, tuple], col_swaps: typing.Union[list, tuple]) -> tuple
719
+ │ ├── qr(matrix: pypynum.matrices.Matrix, reduce: bool) -> tuple
701
720
  │ ├── rank_decomp(matrix: pypynum.matrices.Matrix) -> tuple
702
721
  │ ├── rotate90(matrix: pypynum.matrices.Matrix, times: int) -> pypynum.matrices.Matrix
703
722
  │ ├── svd(matrix: pypynum.matrices.Matrix) -> tuple
@@ -715,6 +734,7 @@ PyPyNum
715
734
  │ ├── mp_asin(x: typing.Union[int, float, str, decimal.Decimal], sigfigs: int) -> decimal.Decimal
716
735
  │ ├── mp_atan(x: typing.Union[int, float, str, decimal.Decimal], sigfigs: int) -> decimal.Decimal
717
736
  │ ├── mp_atan2(y: typing.Union[int, float, str, decimal.Decimal], x: typing.Union[int, float, str, decimal.Decimal], sigfigs: int) -> decimal.Decimal
737
+ │ ├── mp_catalan(sigfigs: int) -> decimal.Decimal
718
738
  │ ├── mp_cos(x: typing.Union[int, float, str, decimal.Decimal], sigfigs: int) -> decimal.Decimal
719
739
  │ ├── mp_cosh(x: typing.Union[int, float, str, decimal.Decimal], sigfigs: int) -> decimal.Decimal
720
740
  │ ├── mp_e(sigfigs: int, method: str) -> decimal.Decimal
@@ -774,7 +794,7 @@ PyPyNum
774
794
  │ │ ├── Euler(object)/__init__(self: Any, y: typing.Union[int, float], p: typing.Union[int, float], r: typing.Union[int, float]) -> Any
775
795
  │ │ └── 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
796
  │ └── 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]
797
+ │ ├── 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]
778
798
  │ ├── euler(yaw: typing.Union[int, float], pitch: typing.Union[int, float], roll: typing.Union[int, float]) -> pypynum.quats.Euler
779
799
  │ └── quat(w: typing.Union[int, float], x: typing.Union[int, float], y: typing.Union[int, float], z: typing.Union[int, float]) -> pypynum.quats.Quaternion
780
800
  ├── random
@@ -798,19 +818,40 @@ PyPyNum
798
818
  │ └── FUNCTION
799
819
  │ ├── arithmetic_sequence(a1: typing.Union[int, float], an: typing.Union[int, float], d: typing.Union[int, float], n: typing.Union[int, float], s: typing.Union[int, float]) -> dict
800
820
  │ ├── bell_triangle(n: int) -> list
801
- │ ├── bernoulli(n: int, single: bool) -> list
821
+ │ ├── bernoulli(n: int, single: bool) -> typing.Union[list, tuple]
802
822
  │ ├── catalan(n: int, single: bool) -> typing.Union[int, list]
803
823
  │ ├── farey(n: int) -> list
804
824
  │ ├── fibonacci(n: int, single: bool) -> typing.Union[int, list]
805
825
  │ ├── 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
826
  │ ├── lucas(n: int, single: bool) -> typing.Union[int, list]
827
+ │ ├── padovan(n: int, single: bool) -> typing.Union[int, list]
807
828
  │ ├── pascal_triangle(n: int) -> list
808
829
  │ ├── pell(n: int, single: bool) -> typing.Union[int, list]
830
+ │ ├── pelllucas(n: int, single: bool) -> typing.Union[int, list]
831
+ │ ├── perrin(n: int, single: bool) -> typing.Union[int, list]
809
832
  │ ├── recaman(n: int, single: bool) -> typing.Union[int, list]
810
833
  │ ├── stirling1(n: int) -> list
811
834
  │ ├── stirling2(n: int) -> list
835
+ │ ├── sylvester(n: int, single: bool) -> typing.Union[int, list]
812
836
  │ ├── tetranacci(n: int, single: bool) -> typing.Union[int, list]
813
837
  │ └── tribonacci(n: int, single: bool) -> typing.Union[int, list]
838
+ ├── special
839
+ │ ├── CLASS
840
+ │ └── FUNCTION
841
+ │ ├── besseli0(x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
842
+ │ ├── besseli1(x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
843
+ │ ├── besseliv(v: typing.Union[int, float], x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
844
+ │ ├── besselj0(x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
845
+ │ ├── besselj1(x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
846
+ │ ├── besseljv(v: typing.Union[int, float], x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
847
+ │ ├── hyp0f1(b0: typing.Union[int, float, complex], z: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
848
+ │ ├── hyp1f1(a0: typing.Union[int, float, complex], b0: typing.Union[int, float, complex], z: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
849
+ │ ├── 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]
850
+ │ ├── hyppfq(a: typing.Union[list, tuple], b: typing.Union[list, tuple], z: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
851
+ │ ├── qbinomial(n: typing.Union[int, float, complex], m: typing.Union[int, float, complex], q: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
852
+ │ ├── qfactorial(n: typing.Union[int, float, complex], q: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
853
+ │ ├── qgamma(n: typing.Union[int, float, complex], q: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
854
+ │ └── qpochhammer(a: typing.Union[int, float, complex], q: typing.Union[int, float, complex], n: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
814
855
  ├── stattest
815
856
  │ ├── CLASS
816
857
  │ └── FUNCTION
@@ -845,7 +886,9 @@ PyPyNum
845
886
  │ ├── fast_pow(a: typing.Any, n: int, init: typing.Any, mul: typing.Callable) -> typing.Any
846
887
  │ ├── frange(start: typing.Union[int, float], stop: typing.Union[int, float], step: float) -> list
847
888
  │ ├── geomspace(start: typing.Union[int, float], stop: typing.Union[int, float], number: int) -> list
848
- │ ├── levenshtein_distance(s1: str, s2: str) -> int
889
+ │ ├── lcsubseq(x: typing.Union[list, tuple, str], y: typing.Union[list, tuple, str]) -> list
890
+ │ ├── lcsubstr(x: typing.Union[list, tuple, str], y: typing.Union[list, tuple, str]) -> list
891
+ │ ├── levenshtein(x: typing.Union[list, tuple, str], y: typing.Union[list, tuple, str]) -> int
849
892
  │ ├── linspace(start: typing.Union[int, float], stop: typing.Union[int, float], number: int) -> list
850
893
  │ ├── magic_square(n: int) -> list
851
894
  │ ├── primality(n: int, iter_num: int) -> bool
@@ -970,9 +1013,10 @@ PyPyNum
970
1013
  ├── 多精度复数(实部: typing.Union[int, float, str, decimal.Decimal], 虚部: typing.Union[int, float, str, decimal.Decimal], 有效位数: int) -> pypynum.multiprec.MPComplex
971
1014
  ├── 多精度对数(真数: typing.Union[int, float], 底数: typing.Union[int, float], 有效位数: int, 使用内置方法: bool) -> decimal.Decimal
972
1015
  ├── 多精度方位角(y: typing.Union[int, float], x: typing.Union[int, float], 有效位数: int) -> decimal.Decimal
973
- ├── 多精度欧拉数(有效位数: int, 方法: str) -> decimal.Decimal
1016
+ ├── 多精度欧拉伽马(有效位数: int) -> decimal.Decimal
974
1017
  ├── 多精度正弦(x: typing.Union[int, float], 有效位数: int) -> decimal.Decimal
975
1018
  ├── 多精度自然对数(真数: typing.Union[int, float], 有效位数: int, 使用内置方法: bool) -> decimal.Decimal
1019
+ ├── 多精度自然常数(有效位数: int, 方法: str) -> decimal.Decimal
976
1020
  ├── 多精度自然指数(指数: typing.Union[int, float], 有效位数: int, 使用内置方法: bool) -> decimal.Decimal
977
1021
  ├── 多精度菲涅耳余弦积分(x: typing.Union[int, float], 有效位数: int) -> decimal.Decimal
978
1022
  ├── 多精度菲涅耳正弦积分(x: typing.Union[int, float], 有效位数: int) -> decimal.Decimal
@@ -1,14 +1,13 @@
1
1
  pypynum/PyPyNum.png,sha256=t96tJPWfHxT8kcXm_qZI2z5W36TgOqjCU9qdgbmlFws,11623
2
- pypynum/README.md,sha256=zMv5AxYpZNfRwCoQzAqpPpenA1EjyY4XTemR0sCkAJw,80756
3
- pypynum/__init__.py,sha256=MWgluL42Uu7Fk0SMI7NuiC7LZgbfXFJRnAVPhm7xq9M,2550
2
+ pypynum/README.md,sha256=1SOzsAn-Z-7WMCdc3TNB_SFHqhNscOpf7DCQ7mh6Cr4,84595
3
+ pypynum/__init__.py,sha256=2Huv1gP1tUG1seEJmofWw_UMFlf3A_xIKT87hLfEMn8,2640
4
4
  pypynum/arrays.py,sha256=NiNs_wTeVgQpJuSe5OrIdFFG0Nln_ed4Im3hua0ZBnE,13293
5
- pypynum/bessel.py,sha256=4g4XZAw1craezmxkYkvyPt1OlKjJU1JCqn_SZKME3PY,4164
6
5
  pypynum/chars.py,sha256=6XNmH0zYsv0pfadW3KoevrR8xQPIkles9oGikjS6R1I,2181
7
6
  pypynum/ciphers.py,sha256=kC7wZk3FF-MCCvn2-1YxiaRa4ImDKxyyihJYc6Dyf5E,10008
8
- pypynum/consts.py,sha256=xELv4DIKEqBdwF9tUqCmTQVbgVrlrj385ht5eawvshU,1406
7
+ pypynum/consts.py,sha256=enetPwJevWgYXuGEasAb-tXMHpvL2xWKUe-B1gTwInk,8416
9
8
  pypynum/crandom.py,sha256=44GZ7o6y5PwgL-cZLkXUZaAUfiW6aadyRNfMdxTnH30,5111
10
- pypynum/dataproc.py,sha256=xQJUvndP4APff2wpu2HItDZKWqrRZt72AU9CA8i-7tM,9277
11
- pypynum/dists.py,sha256=qyZLsXF1x3QYjsge50wMWrPcFoMHs5yBbHAbg5L9rDw,29698
9
+ pypynum/dataproc.py,sha256=bJ2a1-S7TQj8V8vzXZ3ooP32fBe99NQU0orPGprEIdg,9231
10
+ pypynum/dists.py,sha256=SGxZ08n4mRaqegHILoaJNH4jzPzk-fsE7kvN-EmegPQ,29697
12
11
  pypynum/equations.py,sha256=_oywKzbrOPOOhD4yu83qqNiIOKQPbJJs6SghdkGbqUw,561
13
12
  pypynum/fft.py,sha256=AtG0tESykzEs4gDsXhcizW7qhQnmw0gjcWcXefBqzhs,1401
14
13
  pypynum/files.py,sha256=iLtTc5UTtUUWoh2sDJl5Yyy_rT8-Vi0pby5c2J95EqE,3397
@@ -20,30 +19,31 @@ pypynum/interp.py,sha256=wNMa6M_IRpSe026tuRxXfr244oBtgHOpCpYlGd4eyhA,4920
20
19
  pypynum/kernels.py,sha256=GMwWnjLWEprFXSEAIN8d6GZrC2KDx6qhJdbcLBoYOTg,15869
21
20
  pypynum/logics.py,sha256=EwvWFNND14__oWx7o-_oYIUubmVhp3DrvBcnRCWW8vc,10999
22
21
  pypynum/maths.py,sha256=McuOXRktbjcjZpTfWEoHnmFkeeQVacMoHyThqTIC27E,32808
23
- pypynum/matrices.py,sha256=zmY_heAt5zIeXNg5q5L-Kex3rxe9ra1NoBzn0KozMcA,20633
24
- pypynum/multiprec.py,sha256=OfP02aCXRfAiVpL9rFOAQ_twMgE1p5n5fWHN5fYZIXM,19154
22
+ pypynum/matrices.py,sha256=useh4_Hlk3YBRTSTJK6SsErTRnDVblsqB0a7iw1mB_k,22439
23
+ pypynum/multiprec.py,sha256=r8_OoWH56pRbBxCjd5-qkfxJMBU1r7LjV4Wvr7zR46Y,20111
25
24
  pypynum/networks.py,sha256=iSOvC9JW1h4AFGokGGOTkKie5hAYN_YT9H4f3apI9b8,3275
26
25
  pypynum/numbers.py,sha256=EPzw8zq5U7GQj8URu2VxeVIXS-_XQm2ADmSAIHa816k,11133
27
26
  pypynum/plotting.py,sha256=mbIYK5TpY1qvuMJrqz4d8bxJEiZww3AI684vSKV-DgU,7781
28
27
  pypynum/polys.py,sha256=9ZrIYHpnCh2XoKaym2aQKArjjTRjLGvwcJ4_rPikVwI,14581
29
28
  pypynum/pprinters.py,sha256=Qt9-V5SUyoOqC3lsUU5D5zSSM-MmcnFCUyUtLxhS4pE,2514
30
- pypynum/quats.py,sha256=gp-W2YG69nLGLP-Zzl-VpAStXkATkoTES8txjKmgTdA,7999
29
+ pypynum/quats.py,sha256=tn1ZogMiV8FGYucZ3u8ynG6SFpPjhFAachVHxgBdDZk,8000
31
30
  pypynum/random.py,sha256=fGaJfwS0QUWV-qb8hldXpRUYJ-79n7Al0gEmPJMAwJc,2254
32
31
  pypynum/regs.py,sha256=mV1r1KkXAv07FmcTntaBF0rcwHBXUyXPvC9h6UOkhE0,2042
33
- pypynum/seqs.py,sha256=UqV6n7txwJHMrevZz3zgHSjOj_uSTwDzcWoFZV5qSWo,10212
32
+ pypynum/seqs.py,sha256=Hch8ebCrVFHUfKig54CVGzf3xXkVJlVbLsE0e7flOX4,11666
33
+ pypynum/special.py,sha256=58pRacza__MwnovWFRemVglszF1wdUwgA4uyS25M47w,11643
34
34
  pypynum/stattest.py,sha256=nCAqFjaHVa9EOaWcmgWrhPuBoyLdoypkz6_YeM_AOd8,5511
35
35
  pypynum/symbols.py,sha256=u-Dig3OLs6qoLzxMpTAYJGq5uSWDMvgU13TAHKLyjMY,2768
36
36
  pypynum/tensors.py,sha256=gKpklk-7R9FHRD9iUOXOG6d-h-mL3I_E7TAL-xOWKu8,3685
37
37
  pypynum/test.py,sha256=HY6TiQr9-wIadRoXElu8TJkVWKMxcahisyWBtew8B9c,8730
38
38
  pypynum/this.py,sha256=wT7DwodxqOQ7LoDaUtvskMkAb8CODL_56mtXPy12P54,3411
39
- pypynum/tools.py,sha256=INPFU05zViokLV3i3R7-TEbe0IHz5Ah2C5cBbw2RGUg,16163
40
- pypynum/trees.py,sha256=LaRCYF3zcsi0q5kMsbINLTY4_BYGVehiErUAcIXn51Y,39998
39
+ pypynum/tools.py,sha256=QOuftgsu9603odrzMUXG9HQIJumFtGhXq0x9PFlUIS4,18850
40
+ pypynum/trees.py,sha256=b02t69vBjc3ibKaUAkWfBvMDdsugF4DpGC2-q4RsgEU,39779
41
41
  pypynum/types.py,sha256=v1lGIL_p0xgxL6mGX7uBQBHBa7UScKCsgPkW8Q6nzlk,3348
42
42
  pypynum/ufuncs.py,sha256=Lmr_ZVsswQqbGo2MB8gjd_lijRBOZIy2q2wQBOHvYxM,3549
43
43
  pypynum/utils.py,sha256=BhH_iSU44bS6tC3MMrDfIfGhIsQg9nMVlp6fl0-KcRA,21001
44
44
  pypynum/vectors.py,sha256=GGVk0YSLVm-hzJjm068W7tNRYu8NqPgOKtWHIOTn9yY,3212
45
- pypynum/zh_cn.py,sha256=1Jzdk3NHkyDs7M38Jytj1TTxrgXSZpZM8hX1FqLNzHw,13711
46
- PyPyNum-1.15.0.dist-info/METADATA,sha256=4DPz75dxF3ZES4rSAeWaefkk_2eK_ab-AfUDxC1q-3U,95135
47
- PyPyNum-1.15.0.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
48
- PyPyNum-1.15.0.dist-info/top_level.txt,sha256=4wW_Xb4bRglmiMsdPAe9f75MkXhNpuN88H17g_Cr5u8,8
49
- PyPyNum-1.15.0.dist-info/RECORD,,
45
+ pypynum/zh_cn.py,sha256=YBmTCO0h-xMDEo9pfpaR1qvh0qaL811psoZDdBniuzE,13818
46
+ PyPyNum-1.16.0.dist-info/METADATA,sha256=insI60KoVZ3gxJwZN7pb4WQC3iQ9Kgia_VYIItcyUxQ,98974
47
+ PyPyNum-1.16.0.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
48
+ PyPyNum-1.16.0.dist-info/top_level.txt,sha256=4wW_Xb4bRglmiMsdPAe9f75MkXhNpuN88H17g_Cr5u8,8
49
+ PyPyNum-1.16.0.dist-info/RECORD,,
pypynum/README.md CHANGED
@@ -20,7 +20,7 @@ processing.</font><font color = red>[Python>=3.4]</font>
20
20
  [![Downloads](https://static.pepy.tech/badge/pypynum/month)](https://pepy.tech/project/pypynum)
21
21
  [![Downloads](https://static.pepy.tech/badge/pypynum/week)](https://pepy.tech/project/pypynum)
22
22
 
23
- ## Version -> 1.15.0 | PyPI -> https://pypi.org/project/PyPyNum/ | Gitee -> https://www.gitee.com/PythonSJL/PyPyNum | GitHub -> https://github.com/PythonSJL/PyPyNum
23
+ ## Version -> 1.16.0 | PyPI -> https://pypi.org/project/PyPyNum/ | Gitee -> https://www.gitee.com/PythonSJL/PyPyNum | GitHub -> https://github.com/PythonSJL/PyPyNum
24
24
 
25
25
  ![LOGO](PyPyNum.png)
26
26
 
@@ -38,7 +38,6 @@ The logo cannot be displayed on PyPI, it can be viewed in Gitee or GitHub.
38
38
  | Submodule Name | Function Introduction |
39
39
  |:-------------------:|:------------------------------------------------------------------:|
40
40
  | `pypynum.arrays` | Provides operations and calculations for multi-dimensional arrays. |
41
- | `pypynum.bessel` | Implements calculations for Bessel functions. |
42
41
  | `pypynum.chars` | Contains a variety of special mathematical characters. |
43
42
  | `pypynum.ciphers` | Implements various encryption and decryption algorithms. |
44
43
  | `pypynum.consts` | Contains mathematical and physical constants. |
@@ -67,6 +66,7 @@ The logo cannot be displayed on PyPI, it can be viewed in Gitee or GitHub.
67
66
  | `pypynum.random` | Generates arrays of random numbers. |
68
67
  | `pypynum.regs` | Regression analysis and model fitting. |
69
68
  | `pypynum.seqs` | Computes various mathematical sequences. |
69
+ | `pypynum.special` | Provides advanced special functions for mathematical computations. |
70
70
  | `pypynum.stattest` | Statistical tests and data analysis. |
71
71
  | `pypynum.symbols` | Symbolic computation and expression manipulation. |
72
72
  | `pypynum.tensors` | Tensor operations and calculations. |
@@ -113,55 +113,81 @@ Python interpreter and run it!
113
113
  ```
114
114
  !=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=
115
115
 
116
- Renamed most of the submodules,
117
- please refer to the
118
- "Name and Function Introduction of Submodules"
116
+ The submodule 'consts' has added
117
+ a large number of mathematical
118
+ and scientific constants,
119
+ currently totaling 128.
119
120
 
121
+ This module defines a collection
122
+ of constants representing
123
+ various physical, mathematical,
124
+ and unit conversion factors.
120
125
 
121
- MultiTreeNode renamed as MTNode
126
+ These constants are commonly
127
+ used in scientific and
128
+ engineering calculations.
122
129
 
123
-
124
- Fixed all known issues in trees and graphs,
125
- and added some new features.
130
+ If you want to know information
131
+ about each constant, you can
132
+ execute 'help(consts)' to
133
+ obtain it.
126
134
 
127
135
  !=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=
128
136
 
129
- <<< Newly added functions and classes >>>
137
+
138
+ <<< Here are the newly added functions >>>
139
+
130
140
 
131
141
  PyPyNum
132
- ├── kernels
142
+ ├── special
133
143
  │ └── FUNCTION
134
- │ ├── det2x2kernel(a: typing.Union[list, tuple]) -> float
135
- ├── det3x3kernel(a: typing.Union[list, tuple]) -> float
136
- │ ├── det4x4kernel(a: typing.Union[list, tuple]) -> float
137
- ├── eigen2x2kernel(a: typing.Union[list, tuple]) -> tuple
138
- │ ├── inv2x2kernel(a: typing.Union[list, tuple]) -> list
139
- ├── inv3x3kernel(a: typing.Union[list, tuple]) -> list
140
- ├── inv4x4kernel(a: typing.Union[list, tuple]) -> list
141
- ├── lu2x2kernel(a: typing.Union[list, tuple]) -> tuple
142
- ├── lu3x3kernel(a: typing.Union[list, tuple]) -> tuple
143
- ├── lu4x4kernel(a: typing.Union[list, tuple]) -> tuple
144
- │ ├── matexp2x2kernel(a: typing.Union[list, tuple]) -> list
145
- ├── matmul2x2kernel(a: typing.Union[list, tuple], b: typing.Union[list, tuple]) -> list
146
- │ ├── matmul3x3kernel(a: typing.Union[list, tuple], b: typing.Union[list, tuple]) -> list
147
- │ ├── matmul4x4kernel(a: typing.Union[list, tuple], b: typing.Union[list, tuple]) -> list
148
- │ └── matpow2x2kernel(a: typing.Union[list, tuple], n: typing.Union[int, float, complex]) -> list
144
+ │ ├── qbinomial(n: typing.Union[int, float, complex], m: typing.Union[int, float, complex], q: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
145
+ │ # Calculate the q-binomial coefficient of n and m with parameter q.
146
+ │ ├── qfactorial(n: typing.Union[int, float, complex], q: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
147
+ │ # Compute the q-factorial of n with parameter q.
148
+ │ ├── qgamma(n: typing.Union[int, float, complex], q: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
149
+ │ # Calculate the q-gamma function of n with parameter q.
150
+ └── qpochhammer(a: typing.Union[int, float, complex], q: typing.Union[int, float, complex], n: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
151
+ # Compute the q-Pochhammer symbol for given a, q, and n.
152
+ ├── multiprec
153
+ └── FUNCTION
154
+ │ ├── mp_catalan(sigfigs: int) -> decimal.Decimal
155
+ # Calculate the Catalan's constant with a specified number of significant figures using multiprecision arithmetic.
149
156
  ├── seqs
150
157
  │ └── FUNCTION
151
- │ ├── lucas(n: int, single: bool) -> typing.Union[int, list]
152
- ├── pell(n: int, single: bool) -> typing.Union[int, list]
153
- │ ├── tetranacci(n: int, single: bool) -> typing.Union[int, list]
154
- └── tribonacci(n: int, single: bool) -> typing.Union[int, list]
158
+ │ ├── padovan(n: int, single: bool) -> typing.Union[int, list]
159
+ │ # Generate the Padovan sequence up to the nth term.
160
+ │ ├── pelllucas(n: int, single: bool) -> typing.Union[int, list]
161
+ │ # Generate the Pell-Lucas sequence up to the nth term.
162
+ │ ├── perrin(n: int, single: bool) -> typing.Union[int, list]
163
+ │ │ # Generate the Perrin sequence up to the nth term.
164
+ │ └── sylvester(n: int, single: bool) -> typing.Union[int, list]
165
+ │ # Generate the Sylvester sequence up to the nth term.
155
166
  ├── tools
156
167
  │ └── FUNCTION
157
- │ ├── fast_pow(a: typing.Any, n: int, init: typing.Any, mul: typing.Callable) -> typing.Any
158
- ├── trees
168
+ │ ├── lcsubseq(x: typing.Union[list, tuple, str], y: typing.Union[list, tuple, str]) -> list
169
+ │ │ # Find the longest common subsequence between two sequences x and y.
170
+ │ └── lcsubstr(x: typing.Union[list, tuple, str], y: typing.Union[list, tuple, str]) -> list
171
+ │ # Find the longest common substring between two sequences x and y.
172
+ ├── matrices
159
173
  │ ├── CLASS
160
- │ │ ├── BTNode(object)/__init__(self: Any, data: Any) -> Any
161
- │ │ ├── BinaryTree(object)/__init__(self: Any, root: Any) -> Any
162
- │ ├── RBTNode(object)/__init__(self: Any, data: Any, color: Any) -> Any
163
- │ └── RedBlackTree(object)/__init__(self: Any) -> Any
174
+ │ │ └── Matrix(pypynum.arrays.Array)/__init__(self: Any, data: Any, check: Any) -> Any
175
+ │ │ # Initialize a Matrix object from a given data array.
176
+ └── FUNCTION
177
+ ├── perm_mat(num_rows: int, num_cols: int, row_swaps: typing.Union[list, tuple], col_swaps: typing.Union[list, tuple], rtype: typing.Callable) -> typing.Any
178
+ │ │ # Create a permutation matrix based on specified row and column swaps.
179
+ │ └── perm_mat_indices(num_rows: int, num_cols: int, row_swaps: typing.Union[list, tuple], col_swaps: typing.Union[list, tuple]) -> tuple
180
+ │ # Compute the indices for a permutation matrix based on specified row and column swaps.
181
+
182
+
183
+ !=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=
164
184
 
185
+ Other functions and classes have
186
+ also undergone certain
187
+ modifications, such as adding a
188
+ "reduce" parameter to the "qr"
189
+ function to determine whether to
190
+ crop the matrix.
165
191
 
166
192
  !=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=
167
193
  ```
@@ -208,15 +234,6 @@ PyPyNum
208
234
  │ ├── ones_like(a: Any, rtype: Any) -> Any
209
235
  │ ├── zeros(shape: Any, rtype: Any) -> Any
210
236
  │ └── zeros_like(a: Any, rtype: Any) -> Any
211
- ├── bessel
212
- │ ├── CLASS
213
- │ └── FUNCTION
214
- │ ├── bessel_i0(x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
215
- │ ├── bessel_i1(x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
216
- │ ├── bessel_iv(v: typing.Union[int, float], x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
217
- │ ├── bessel_j0(x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
218
- │ ├── bessel_j1(x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
219
- │ └── bessel_jv(v: typing.Union[int, float], x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
220
237
  ├── chars
221
238
  │ ├── CLASS
222
239
  │ └── FUNCTION
@@ -477,13 +494,15 @@ PyPyNum
477
494
  │ ├── CLASS
478
495
  │ │ └── Matrix(pypynum.arrays.Array)/__init__(self: Any, data: Any, check: Any) -> Any
479
496
  │ └── FUNCTION
480
- │ ├── cholesky(matrix: Any, hermitian: Any) -> Any
497
+ │ ├── cholesky(matrix: pypynum.matrices.Matrix, hermitian: bool) -> pypynum.matrices.Matrix
481
498
  │ ├── eigen(matrix: pypynum.matrices.Matrix) -> tuple
482
499
  │ ├── hessenberg(matrix: pypynum.matrices.Matrix) -> tuple
483
- │ ├── identity(n: int) -> pypynum.matrices.Matrix
500
+ │ ├── identity(n: int, m: int) -> pypynum.matrices.Matrix
484
501
  │ ├── lu(matrix: pypynum.matrices.Matrix) -> tuple
485
502
  │ ├── mat(data: Any) -> Any
486
- │ ├── qr(matrix: pypynum.matrices.Matrix) -> tuple
503
+ │ ├── perm_mat(num_rows: int, num_cols: int, row_swaps: typing.Union[list, tuple], col_swaps: typing.Union[list, tuple], rtype: typing.Callable) -> typing.Any
504
+ │ ├── perm_mat_indices(num_rows: int, num_cols: int, row_swaps: typing.Union[list, tuple], col_swaps: typing.Union[list, tuple]) -> tuple
505
+ │ ├── qr(matrix: pypynum.matrices.Matrix, reduce: bool) -> tuple
487
506
  │ ├── rank_decomp(matrix: pypynum.matrices.Matrix) -> tuple
488
507
  │ ├── rotate90(matrix: pypynum.matrices.Matrix, times: int) -> pypynum.matrices.Matrix
489
508
  │ ├── svd(matrix: pypynum.matrices.Matrix) -> tuple
@@ -501,6 +520,7 @@ PyPyNum
501
520
  │ ├── mp_asin(x: typing.Union[int, float, str, decimal.Decimal], sigfigs: int) -> decimal.Decimal
502
521
  │ ├── mp_atan(x: typing.Union[int, float, str, decimal.Decimal], sigfigs: int) -> decimal.Decimal
503
522
  │ ├── mp_atan2(y: typing.Union[int, float, str, decimal.Decimal], x: typing.Union[int, float, str, decimal.Decimal], sigfigs: int) -> decimal.Decimal
523
+ │ ├── mp_catalan(sigfigs: int) -> decimal.Decimal
504
524
  │ ├── mp_cos(x: typing.Union[int, float, str, decimal.Decimal], sigfigs: int) -> decimal.Decimal
505
525
  │ ├── mp_cosh(x: typing.Union[int, float, str, decimal.Decimal], sigfigs: int) -> decimal.Decimal
506
526
  │ ├── mp_e(sigfigs: int, method: str) -> decimal.Decimal
@@ -560,7 +580,7 @@ PyPyNum
560
580
  │ │ ├── Euler(object)/__init__(self: Any, y: typing.Union[int, float], p: typing.Union[int, float], r: typing.Union[int, float]) -> Any
561
581
  │ │ └── 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
562
582
  │ └── FUNCTION
563
- │ ├── 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]
583
+ │ ├── 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]
564
584
  │ ├── euler(yaw: typing.Union[int, float], pitch: typing.Union[int, float], roll: typing.Union[int, float]) -> pypynum.quats.Euler
565
585
  │ └── quat(w: typing.Union[int, float], x: typing.Union[int, float], y: typing.Union[int, float], z: typing.Union[int, float]) -> pypynum.quats.Quaternion
566
586
  ├── random
@@ -584,19 +604,40 @@ PyPyNum
584
604
  │ └── FUNCTION
585
605
  │ ├── 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
586
606
  │ ├── bell_triangle(n: int) -> list
587
- │ ├── bernoulli(n: int, single: bool) -> list
607
+ │ ├── bernoulli(n: int, single: bool) -> typing.Union[list, tuple]
588
608
  │ ├── catalan(n: int, single: bool) -> typing.Union[int, list]
589
609
  │ ├── farey(n: int) -> list
590
610
  │ ├── fibonacci(n: int, single: bool) -> typing.Union[int, list]
591
611
  │ ├── 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
592
612
  │ ├── lucas(n: int, single: bool) -> typing.Union[int, list]
613
+ │ ├── padovan(n: int, single: bool) -> typing.Union[int, list]
593
614
  │ ├── pascal_triangle(n: int) -> list
594
615
  │ ├── pell(n: int, single: bool) -> typing.Union[int, list]
616
+ │ ├── pelllucas(n: int, single: bool) -> typing.Union[int, list]
617
+ │ ├── perrin(n: int, single: bool) -> typing.Union[int, list]
595
618
  │ ├── recaman(n: int, single: bool) -> typing.Union[int, list]
596
619
  │ ├── stirling1(n: int) -> list
597
620
  │ ├── stirling2(n: int) -> list
621
+ │ ├── sylvester(n: int, single: bool) -> typing.Union[int, list]
598
622
  │ ├── tetranacci(n: int, single: bool) -> typing.Union[int, list]
599
623
  │ └── tribonacci(n: int, single: bool) -> typing.Union[int, list]
624
+ ├── special
625
+ │ ├── CLASS
626
+ │ └── FUNCTION
627
+ │ ├── besseli0(x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
628
+ │ ├── besseli1(x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
629
+ │ ├── besseliv(v: typing.Union[int, float], x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
630
+ │ ├── besselj0(x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
631
+ │ ├── besselj1(x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
632
+ │ ├── besseljv(v: typing.Union[int, float], x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
633
+ │ ├── hyp0f1(b0: typing.Union[int, float, complex], z: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
634
+ │ ├── hyp1f1(a0: typing.Union[int, float, complex], b0: typing.Union[int, float, complex], z: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
635
+ │ ├── 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]
636
+ │ ├── hyppfq(a: typing.Union[list, tuple], b: typing.Union[list, tuple], z: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
637
+ │ ├── qbinomial(n: typing.Union[int, float, complex], m: typing.Union[int, float, complex], q: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
638
+ │ ├── qfactorial(n: typing.Union[int, float, complex], q: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
639
+ │ ├── qgamma(n: typing.Union[int, float, complex], q: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
640
+ │ └── qpochhammer(a: typing.Union[int, float, complex], q: typing.Union[int, float, complex], n: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
600
641
  ├── stattest
601
642
  │ ├── CLASS
602
643
  │ └── FUNCTION
@@ -631,7 +672,9 @@ PyPyNum
631
672
  │ ├── fast_pow(a: typing.Any, n: int, init: typing.Any, mul: typing.Callable) -> typing.Any
632
673
  │ ├── frange(start: typing.Union[int, float], stop: typing.Union[int, float], step: float) -> list
633
674
  │ ├── geomspace(start: typing.Union[int, float], stop: typing.Union[int, float], number: int) -> list
634
- │ ├── levenshtein_distance(s1: str, s2: str) -> int
675
+ │ ├── lcsubseq(x: typing.Union[list, tuple, str], y: typing.Union[list, tuple, str]) -> list
676
+ │ ├── lcsubstr(x: typing.Union[list, tuple, str], y: typing.Union[list, tuple, str]) -> list
677
+ │ ├── levenshtein(x: typing.Union[list, tuple, str], y: typing.Union[list, tuple, str]) -> int
635
678
  │ ├── linspace(start: typing.Union[int, float], stop: typing.Union[int, float], number: int) -> list
636
679
  │ ├── magic_square(n: int) -> list
637
680
  │ ├── primality(n: int, iter_num: int) -> bool
@@ -756,9 +799,10 @@ PyPyNum
756
799
  ├── 多精度复数(实部: typing.Union[int, float, str, decimal.Decimal], 虚部: typing.Union[int, float, str, decimal.Decimal], 有效位数: int) -> pypynum.multiprec.MPComplex
757
800
  ├── 多精度对数(真数: typing.Union[int, float], 底数: typing.Union[int, float], 有效位数: int, 使用内置方法: bool) -> decimal.Decimal
758
801
  ├── 多精度方位角(y: typing.Union[int, float], x: typing.Union[int, float], 有效位数: int) -> decimal.Decimal
759
- ├── 多精度欧拉数(有效位数: int, 方法: str) -> decimal.Decimal
802
+ ├── 多精度欧拉伽马(有效位数: int) -> decimal.Decimal
760
803
  ├── 多精度正弦(x: typing.Union[int, float], 有效位数: int) -> decimal.Decimal
761
804
  ├── 多精度自然对数(真数: typing.Union[int, float], 有效位数: int, 使用内置方法: bool) -> decimal.Decimal
805
+ ├── 多精度自然常数(有效位数: int, 方法: str) -> decimal.Decimal
762
806
  ├── 多精度自然指数(指数: typing.Union[int, float], 有效位数: int, 使用内置方法: bool) -> decimal.Decimal
763
807
  ├── 多精度菲涅耳余弦积分(x: typing.Union[int, float], 有效位数: int) -> decimal.Decimal
764
808
  ├── 多精度菲涅耳正弦积分(x: typing.Union[int, float], 有效位数: int) -> decimal.Decimal
pypynum/__init__.py CHANGED
@@ -30,7 +30,6 @@ __copyright__ = "Copyright (c) 2023, Shen Jiayi. All rights reserved."
30
30
  from . import consts
31
31
  from . import zh_cn
32
32
  from .arrays import *
33
- from .bessel import *
34
33
  from .chars import int2superscript, superscript2int, int2subscript, subscript2int
35
34
  from .ciphers import *
36
35
  from .crandom import *
@@ -58,6 +57,7 @@ from .quats import *
58
57
  from .random import *
59
58
  from .regs import *
60
59
  from .seqs import *
60
+ from .special import *
61
61
  from .stattest import *
62
62
  from .symbols import *
63
63
  from .tensors import *
@@ -68,6 +68,9 @@ from .ufuncs import *
68
68
  from .utils import *
69
69
  from .vectors import *
70
70
 
71
- __version__ = "1.15.0"
71
+ __version__ = "1.16.0"
72
72
  print("PyPyNum", "Version -> " + __version__, "PyPI -> https://pypi.org/project/PyPyNum/",
73
73
  "Gitee -> https://www.gitee.com/PythonSJL/PyPyNum", "GitHub -> https://github.com/PythonSJL/PyPyNum", sep=" | ")
74
+ for _ in list(globals().keys()):
75
+ if _.endswith("Error"):
76
+ del globals()[_]