PyPyNum 1.15.1__tar.gz → 1.16.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. {pypynum-1.15.1 → pypynum-1.16.0}/PKG-INFO +89 -36
  2. {pypynum-1.15.1 → pypynum-1.16.0}/PyPyNum.egg-info/PKG-INFO +89 -36
  3. {pypynum-1.15.1 → pypynum-1.16.0}/pypynum/README.md +88 -35
  4. {pypynum-1.15.1 → pypynum-1.16.0}/pypynum/__init__.py +1 -1
  5. pypynum-1.16.0/pypynum/consts.py +262 -0
  6. {pypynum-1.15.1 → pypynum-1.16.0}/pypynum/dists.py +2 -2
  7. {pypynum-1.15.1 → pypynum-1.16.0}/pypynum/matrices.py +74 -40
  8. {pypynum-1.15.1 → pypynum-1.16.0}/pypynum/multiprec.py +33 -0
  9. {pypynum-1.15.1 → pypynum-1.16.0}/pypynum/seqs.py +55 -3
  10. {pypynum-1.15.1 → pypynum-1.16.0}/pypynum/special.py +133 -12
  11. {pypynum-1.15.1 → pypynum-1.16.0}/pypynum/tools.py +93 -16
  12. {pypynum-1.15.1 → pypynum-1.16.0}/setup.py +1 -1
  13. pypynum-1.15.1/pypynum/consts.py +0 -68
  14. {pypynum-1.15.1 → pypynum-1.16.0}/PyPyNum.egg-info/SOURCES.txt +0 -0
  15. {pypynum-1.15.1 → pypynum-1.16.0}/PyPyNum.egg-info/dependency_links.txt +0 -0
  16. {pypynum-1.15.1 → pypynum-1.16.0}/PyPyNum.egg-info/top_level.txt +0 -0
  17. {pypynum-1.15.1 → pypynum-1.16.0}/pypynum/PyPyNum.png +0 -0
  18. {pypynum-1.15.1 → pypynum-1.16.0}/pypynum/arrays.py +0 -0
  19. {pypynum-1.15.1 → pypynum-1.16.0}/pypynum/chars.py +0 -0
  20. {pypynum-1.15.1 → pypynum-1.16.0}/pypynum/ciphers.py +0 -0
  21. {pypynum-1.15.1 → pypynum-1.16.0}/pypynum/crandom.py +0 -0
  22. {pypynum-1.15.1 → pypynum-1.16.0}/pypynum/dataproc.py +0 -0
  23. {pypynum-1.15.1 → pypynum-1.16.0}/pypynum/equations.py +0 -0
  24. {pypynum-1.15.1 → pypynum-1.16.0}/pypynum/fft.py +0 -0
  25. {pypynum-1.15.1 → pypynum-1.16.0}/pypynum/files.py +0 -0
  26. {pypynum-1.15.1 → pypynum-1.16.0}/pypynum/geoms.py +0 -0
  27. {pypynum-1.15.1 → pypynum-1.16.0}/pypynum/graphs.py +0 -0
  28. {pypynum-1.15.1 → pypynum-1.16.0}/pypynum/groups.py +0 -0
  29. {pypynum-1.15.1 → pypynum-1.16.0}/pypynum/images.py +0 -0
  30. {pypynum-1.15.1 → pypynum-1.16.0}/pypynum/interp.py +0 -0
  31. {pypynum-1.15.1 → pypynum-1.16.0}/pypynum/kernels.py +0 -0
  32. {pypynum-1.15.1 → pypynum-1.16.0}/pypynum/logics.py +0 -0
  33. {pypynum-1.15.1 → pypynum-1.16.0}/pypynum/maths.py +0 -0
  34. {pypynum-1.15.1 → pypynum-1.16.0}/pypynum/networks.py +0 -0
  35. {pypynum-1.15.1 → pypynum-1.16.0}/pypynum/numbers.py +0 -0
  36. {pypynum-1.15.1 → pypynum-1.16.0}/pypynum/plotting.py +0 -0
  37. {pypynum-1.15.1 → pypynum-1.16.0}/pypynum/polys.py +0 -0
  38. {pypynum-1.15.1 → pypynum-1.16.0}/pypynum/pprinters.py +0 -0
  39. {pypynum-1.15.1 → pypynum-1.16.0}/pypynum/quats.py +0 -0
  40. {pypynum-1.15.1 → pypynum-1.16.0}/pypynum/random.py +0 -0
  41. {pypynum-1.15.1 → pypynum-1.16.0}/pypynum/regs.py +0 -0
  42. {pypynum-1.15.1 → pypynum-1.16.0}/pypynum/stattest.py +0 -0
  43. {pypynum-1.15.1 → pypynum-1.16.0}/pypynum/symbols.py +0 -0
  44. {pypynum-1.15.1 → pypynum-1.16.0}/pypynum/tensors.py +0 -0
  45. {pypynum-1.15.1 → pypynum-1.16.0}/pypynum/test.py +0 -0
  46. {pypynum-1.15.1 → pypynum-1.16.0}/pypynum/this.py +0 -0
  47. {pypynum-1.15.1 → pypynum-1.16.0}/pypynum/trees.py +0 -0
  48. {pypynum-1.15.1 → pypynum-1.16.0}/pypynum/types.py +0 -0
  49. {pypynum-1.15.1 → pypynum-1.16.0}/pypynum/ufuncs.py +0 -0
  50. {pypynum-1.15.1 → pypynum-1.16.0}/pypynum/utils.py +0 -0
  51. {pypynum-1.15.1 → pypynum-1.16.0}/pypynum/vectors.py +0 -0
  52. {pypynum-1.15.1 → pypynum-1.16.0}/pypynum/zh_cn.py +0 -0
  53. {pypynum-1.15.1 → pypynum-1.16.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PyPyNum
3
- Version: 1.15.1
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.1 | 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
 
@@ -327,41 +327,81 @@ Python interpreter and run it!
327
327
  ```
328
328
  !=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=
329
329
 
330
- Fixed most of the known issues,
330
+ The submodule 'consts' has added
331
+ a large number of mathematical
332
+ and scientific constants,
333
+ currently totaling 128.
331
334
 
332
- especially modified the stopping
335
+ This module defines a collection
336
+ of constants representing
337
+ various physical, mathematical,
338
+ and unit conversion factors.
333
339
 
334
- conditions for multi precision
340
+ These constants are commonly
341
+ used in scientific and
342
+ engineering calculations.
335
343
 
336
- computation iterations.
344
+ If you want to know information
345
+ about each constant, you can
346
+ execute 'help(consts)' to
347
+ obtain it.
337
348
 
338
349
  !=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=
339
350
 
340
- The printout in
341
351
 
342
- "trees.BinaryTree.count_nodes()"
352
+ <<< Here are the newly added functions >>>
343
353
 
344
- was deleted, which is the trace
345
354
 
346
- left by previous debugging.
347
-
348
- !=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=
349
-
350
- Rename the "Bessel" submodule to
351
-
352
- "Special" and add some
353
-
354
- hypergeometric functions in the
355
+ PyPyNum
356
+ ├── special
357
+ │ └── FUNCTION
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.
370
+ ├── seqs
371
+ │ └── FUNCTION
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.
380
+ ├── tools
381
+ │ └── FUNCTION
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
387
+ │ ├── CLASS
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.
355
395
 
356
- form of "hyp * f *".
357
396
 
358
397
  !=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=
359
398
 
360
- 在“zh_cn”子模块中,把“多精度欧拉数”
361
-
362
- 改名为“多精度自然常数”,并且增加了
363
-
364
- “多精度欧拉伽马”。
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.
365
405
 
366
406
  !=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=
367
407
  ```
@@ -668,13 +708,15 @@ PyPyNum
668
708
  │ ├── CLASS
669
709
  │ │ └── Matrix(pypynum.arrays.Array)/__init__(self: Any, data: Any, check: Any) -> Any
670
710
  │ └── FUNCTION
671
- │ ├── cholesky(matrix: Any, hermitian: Any) -> Any
711
+ │ ├── cholesky(matrix: pypynum.matrices.Matrix, hermitian: bool) -> pypynum.matrices.Matrix
672
712
  │ ├── eigen(matrix: pypynum.matrices.Matrix) -> tuple
673
713
  │ ├── hessenberg(matrix: pypynum.matrices.Matrix) -> tuple
674
- │ ├── identity(n: int) -> pypynum.matrices.Matrix
714
+ │ ├── identity(n: int, m: int) -> pypynum.matrices.Matrix
675
715
  │ ├── lu(matrix: pypynum.matrices.Matrix) -> tuple
676
716
  │ ├── mat(data: Any) -> Any
677
- │ ├── 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
678
720
  │ ├── rank_decomp(matrix: pypynum.matrices.Matrix) -> tuple
679
721
  │ ├── rotate90(matrix: pypynum.matrices.Matrix, times: int) -> pypynum.matrices.Matrix
680
722
  │ ├── svd(matrix: pypynum.matrices.Matrix) -> tuple
@@ -692,6 +734,7 @@ PyPyNum
692
734
  │ ├── mp_asin(x: typing.Union[int, float, str, decimal.Decimal], sigfigs: int) -> decimal.Decimal
693
735
  │ ├── mp_atan(x: typing.Union[int, float, str, decimal.Decimal], sigfigs: int) -> decimal.Decimal
694
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
695
738
  │ ├── mp_cos(x: typing.Union[int, float, str, decimal.Decimal], sigfigs: int) -> decimal.Decimal
696
739
  │ ├── mp_cosh(x: typing.Union[int, float, str, decimal.Decimal], sigfigs: int) -> decimal.Decimal
697
740
  │ ├── mp_e(sigfigs: int, method: str) -> decimal.Decimal
@@ -775,32 +818,40 @@ PyPyNum
775
818
  │ └── FUNCTION
776
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
777
820
  │ ├── bell_triangle(n: int) -> list
778
- │ ├── bernoulli(n: int, single: bool) -> list
821
+ │ ├── bernoulli(n: int, single: bool) -> typing.Union[list, tuple]
779
822
  │ ├── catalan(n: int, single: bool) -> typing.Union[int, list]
780
823
  │ ├── farey(n: int) -> list
781
824
  │ ├── fibonacci(n: int, single: bool) -> typing.Union[int, list]
782
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
783
826
  │ ├── lucas(n: int, single: bool) -> typing.Union[int, list]
827
+ │ ├── padovan(n: int, single: bool) -> typing.Union[int, list]
784
828
  │ ├── pascal_triangle(n: int) -> list
785
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]
786
832
  │ ├── recaman(n: int, single: bool) -> typing.Union[int, list]
787
833
  │ ├── stirling1(n: int) -> list
788
834
  │ ├── stirling2(n: int) -> list
835
+ │ ├── sylvester(n: int, single: bool) -> typing.Union[int, list]
789
836
  │ ├── tetranacci(n: int, single: bool) -> typing.Union[int, list]
790
837
  │ └── tribonacci(n: int, single: bool) -> typing.Union[int, list]
791
838
  ├── special
792
839
  │ ├── CLASS
793
840
  │ └── FUNCTION
794
- │ ├── bessel_i0(x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
795
- │ ├── bessel_i1(x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
796
- │ ├── bessel_iv(v: typing.Union[int, float], x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
797
- │ ├── bessel_j0(x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
798
- │ ├── bessel_j1(x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
799
- │ ├── bessel_jv(v: typing.Union[int, float], x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
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]
800
847
  │ ├── hyp0f1(b0: typing.Union[int, float, complex], z: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
801
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]
802
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]
803
- └── hyppfq(a: typing.Union[list, tuple], b: typing.Union[list, tuple], 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]
804
855
  ├── stattest
805
856
  │ ├── CLASS
806
857
  │ └── FUNCTION
@@ -835,7 +886,9 @@ PyPyNum
835
886
  │ ├── fast_pow(a: typing.Any, n: int, init: typing.Any, mul: typing.Callable) -> typing.Any
836
887
  │ ├── frange(start: typing.Union[int, float], stop: typing.Union[int, float], step: float) -> list
837
888
  │ ├── geomspace(start: typing.Union[int, float], stop: typing.Union[int, float], number: int) -> list
838
- │ ├── 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
839
892
  │ ├── linspace(start: typing.Union[int, float], stop: typing.Union[int, float], number: int) -> list
840
893
  │ ├── magic_square(n: int) -> list
841
894
  │ ├── primality(n: int, iter_num: int) -> bool
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PyPyNum
3
- Version: 1.15.1
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.1 | 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
 
@@ -327,41 +327,81 @@ Python interpreter and run it!
327
327
  ```
328
328
  !=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=
329
329
 
330
- Fixed most of the known issues,
330
+ The submodule 'consts' has added
331
+ a large number of mathematical
332
+ and scientific constants,
333
+ currently totaling 128.
331
334
 
332
- especially modified the stopping
335
+ This module defines a collection
336
+ of constants representing
337
+ various physical, mathematical,
338
+ and unit conversion factors.
333
339
 
334
- conditions for multi precision
340
+ These constants are commonly
341
+ used in scientific and
342
+ engineering calculations.
335
343
 
336
- computation iterations.
344
+ If you want to know information
345
+ about each constant, you can
346
+ execute 'help(consts)' to
347
+ obtain it.
337
348
 
338
349
  !=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=
339
350
 
340
- The printout in
341
351
 
342
- "trees.BinaryTree.count_nodes()"
352
+ <<< Here are the newly added functions >>>
343
353
 
344
- was deleted, which is the trace
345
354
 
346
- left by previous debugging.
347
-
348
- !=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=
349
-
350
- Rename the "Bessel" submodule to
351
-
352
- "Special" and add some
353
-
354
- hypergeometric functions in the
355
+ PyPyNum
356
+ ├── special
357
+ │ └── FUNCTION
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.
370
+ ├── seqs
371
+ │ └── FUNCTION
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.
380
+ ├── tools
381
+ │ └── FUNCTION
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
387
+ │ ├── CLASS
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.
355
395
 
356
- form of "hyp * f *".
357
396
 
358
397
  !=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=
359
398
 
360
- 在“zh_cn”子模块中,把“多精度欧拉数”
361
-
362
- 改名为“多精度自然常数”,并且增加了
363
-
364
- “多精度欧拉伽马”。
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.
365
405
 
366
406
  !=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=
367
407
  ```
@@ -668,13 +708,15 @@ PyPyNum
668
708
  │ ├── CLASS
669
709
  │ │ └── Matrix(pypynum.arrays.Array)/__init__(self: Any, data: Any, check: Any) -> Any
670
710
  │ └── FUNCTION
671
- │ ├── cholesky(matrix: Any, hermitian: Any) -> Any
711
+ │ ├── cholesky(matrix: pypynum.matrices.Matrix, hermitian: bool) -> pypynum.matrices.Matrix
672
712
  │ ├── eigen(matrix: pypynum.matrices.Matrix) -> tuple
673
713
  │ ├── hessenberg(matrix: pypynum.matrices.Matrix) -> tuple
674
- │ ├── identity(n: int) -> pypynum.matrices.Matrix
714
+ │ ├── identity(n: int, m: int) -> pypynum.matrices.Matrix
675
715
  │ ├── lu(matrix: pypynum.matrices.Matrix) -> tuple
676
716
  │ ├── mat(data: Any) -> Any
677
- │ ├── 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
678
720
  │ ├── rank_decomp(matrix: pypynum.matrices.Matrix) -> tuple
679
721
  │ ├── rotate90(matrix: pypynum.matrices.Matrix, times: int) -> pypynum.matrices.Matrix
680
722
  │ ├── svd(matrix: pypynum.matrices.Matrix) -> tuple
@@ -692,6 +734,7 @@ PyPyNum
692
734
  │ ├── mp_asin(x: typing.Union[int, float, str, decimal.Decimal], sigfigs: int) -> decimal.Decimal
693
735
  │ ├── mp_atan(x: typing.Union[int, float, str, decimal.Decimal], sigfigs: int) -> decimal.Decimal
694
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
695
738
  │ ├── mp_cos(x: typing.Union[int, float, str, decimal.Decimal], sigfigs: int) -> decimal.Decimal
696
739
  │ ├── mp_cosh(x: typing.Union[int, float, str, decimal.Decimal], sigfigs: int) -> decimal.Decimal
697
740
  │ ├── mp_e(sigfigs: int, method: str) -> decimal.Decimal
@@ -775,32 +818,40 @@ PyPyNum
775
818
  │ └── FUNCTION
776
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
777
820
  │ ├── bell_triangle(n: int) -> list
778
- │ ├── bernoulli(n: int, single: bool) -> list
821
+ │ ├── bernoulli(n: int, single: bool) -> typing.Union[list, tuple]
779
822
  │ ├── catalan(n: int, single: bool) -> typing.Union[int, list]
780
823
  │ ├── farey(n: int) -> list
781
824
  │ ├── fibonacci(n: int, single: bool) -> typing.Union[int, list]
782
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
783
826
  │ ├── lucas(n: int, single: bool) -> typing.Union[int, list]
827
+ │ ├── padovan(n: int, single: bool) -> typing.Union[int, list]
784
828
  │ ├── pascal_triangle(n: int) -> list
785
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]
786
832
  │ ├── recaman(n: int, single: bool) -> typing.Union[int, list]
787
833
  │ ├── stirling1(n: int) -> list
788
834
  │ ├── stirling2(n: int) -> list
835
+ │ ├── sylvester(n: int, single: bool) -> typing.Union[int, list]
789
836
  │ ├── tetranacci(n: int, single: bool) -> typing.Union[int, list]
790
837
  │ └── tribonacci(n: int, single: bool) -> typing.Union[int, list]
791
838
  ├── special
792
839
  │ ├── CLASS
793
840
  │ └── FUNCTION
794
- │ ├── bessel_i0(x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
795
- │ ├── bessel_i1(x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
796
- │ ├── bessel_iv(v: typing.Union[int, float], x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
797
- │ ├── bessel_j0(x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
798
- │ ├── bessel_j1(x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
799
- │ ├── bessel_jv(v: typing.Union[int, float], x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
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]
800
847
  │ ├── hyp0f1(b0: typing.Union[int, float, complex], z: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
801
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]
802
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]
803
- └── hyppfq(a: typing.Union[list, tuple], b: typing.Union[list, tuple], 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]
804
855
  ├── stattest
805
856
  │ ├── CLASS
806
857
  │ └── FUNCTION
@@ -835,7 +886,9 @@ PyPyNum
835
886
  │ ├── fast_pow(a: typing.Any, n: int, init: typing.Any, mul: typing.Callable) -> typing.Any
836
887
  │ ├── frange(start: typing.Union[int, float], stop: typing.Union[int, float], step: float) -> list
837
888
  │ ├── geomspace(start: typing.Union[int, float], stop: typing.Union[int, float], number: int) -> list
838
- │ ├── 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
839
892
  │ ├── linspace(start: typing.Union[int, float], stop: typing.Union[int, float], number: int) -> list
840
893
  │ ├── magic_square(n: int) -> list
841
894
  │ ├── primality(n: int, iter_num: int) -> bool
@@ -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.1 | 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
 
@@ -113,41 +113,81 @@ Python interpreter and run it!
113
113
  ```
114
114
  !=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=
115
115
 
116
- Fixed most of the known issues,
116
+ The submodule 'consts' has added
117
+ a large number of mathematical
118
+ and scientific constants,
119
+ currently totaling 128.
117
120
 
118
- especially modified the stopping
121
+ This module defines a collection
122
+ of constants representing
123
+ various physical, mathematical,
124
+ and unit conversion factors.
119
125
 
120
- conditions for multi precision
126
+ These constants are commonly
127
+ used in scientific and
128
+ engineering calculations.
121
129
 
122
- computation iterations.
130
+ If you want to know information
131
+ about each constant, you can
132
+ execute 'help(consts)' to
133
+ obtain it.
123
134
 
124
135
  !=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=
125
136
 
126
- The printout in
127
137
 
128
- "trees.BinaryTree.count_nodes()"
138
+ <<< Here are the newly added functions >>>
129
139
 
130
- was deleted, which is the trace
131
140
 
132
- left by previous debugging.
133
-
134
- !=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=
135
-
136
- Rename the "Bessel" submodule to
137
-
138
- "Special" and add some
139
-
140
- hypergeometric functions in the
141
+ PyPyNum
142
+ ├── special
143
+ │ └── FUNCTION
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.
156
+ ├── seqs
157
+ │ └── FUNCTION
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.
166
+ ├── tools
167
+ │ └── FUNCTION
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
173
+ │ ├── CLASS
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.
141
181
 
142
- form of "hyp * f *".
143
182
 
144
183
  !=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=
145
184
 
146
- 在“zh_cn”子模块中,把“多精度欧拉数”
147
-
148
- 改名为“多精度自然常数”,并且增加了
149
-
150
- “多精度欧拉伽马”。
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.
151
191
 
152
192
  !=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=
153
193
  ```
@@ -454,13 +494,15 @@ PyPyNum
454
494
  │ ├── CLASS
455
495
  │ │ └── Matrix(pypynum.arrays.Array)/__init__(self: Any, data: Any, check: Any) -> Any
456
496
  │ └── FUNCTION
457
- │ ├── cholesky(matrix: Any, hermitian: Any) -> Any
497
+ │ ├── cholesky(matrix: pypynum.matrices.Matrix, hermitian: bool) -> pypynum.matrices.Matrix
458
498
  │ ├── eigen(matrix: pypynum.matrices.Matrix) -> tuple
459
499
  │ ├── hessenberg(matrix: pypynum.matrices.Matrix) -> tuple
460
- │ ├── identity(n: int) -> pypynum.matrices.Matrix
500
+ │ ├── identity(n: int, m: int) -> pypynum.matrices.Matrix
461
501
  │ ├── lu(matrix: pypynum.matrices.Matrix) -> tuple
462
502
  │ ├── mat(data: Any) -> Any
463
- │ ├── 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
464
506
  │ ├── rank_decomp(matrix: pypynum.matrices.Matrix) -> tuple
465
507
  │ ├── rotate90(matrix: pypynum.matrices.Matrix, times: int) -> pypynum.matrices.Matrix
466
508
  │ ├── svd(matrix: pypynum.matrices.Matrix) -> tuple
@@ -478,6 +520,7 @@ PyPyNum
478
520
  │ ├── mp_asin(x: typing.Union[int, float, str, decimal.Decimal], sigfigs: int) -> decimal.Decimal
479
521
  │ ├── mp_atan(x: typing.Union[int, float, str, decimal.Decimal], sigfigs: int) -> decimal.Decimal
480
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
481
524
  │ ├── mp_cos(x: typing.Union[int, float, str, decimal.Decimal], sigfigs: int) -> decimal.Decimal
482
525
  │ ├── mp_cosh(x: typing.Union[int, float, str, decimal.Decimal], sigfigs: int) -> decimal.Decimal
483
526
  │ ├── mp_e(sigfigs: int, method: str) -> decimal.Decimal
@@ -561,32 +604,40 @@ PyPyNum
561
604
  │ └── FUNCTION
562
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
563
606
  │ ├── bell_triangle(n: int) -> list
564
- │ ├── bernoulli(n: int, single: bool) -> list
607
+ │ ├── bernoulli(n: int, single: bool) -> typing.Union[list, tuple]
565
608
  │ ├── catalan(n: int, single: bool) -> typing.Union[int, list]
566
609
  │ ├── farey(n: int) -> list
567
610
  │ ├── fibonacci(n: int, single: bool) -> typing.Union[int, list]
568
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
569
612
  │ ├── lucas(n: int, single: bool) -> typing.Union[int, list]
613
+ │ ├── padovan(n: int, single: bool) -> typing.Union[int, list]
570
614
  │ ├── pascal_triangle(n: int) -> list
571
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]
572
618
  │ ├── recaman(n: int, single: bool) -> typing.Union[int, list]
573
619
  │ ├── stirling1(n: int) -> list
574
620
  │ ├── stirling2(n: int) -> list
621
+ │ ├── sylvester(n: int, single: bool) -> typing.Union[int, list]
575
622
  │ ├── tetranacci(n: int, single: bool) -> typing.Union[int, list]
576
623
  │ └── tribonacci(n: int, single: bool) -> typing.Union[int, list]
577
624
  ├── special
578
625
  │ ├── CLASS
579
626
  │ └── FUNCTION
580
- │ ├── bessel_i0(x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
581
- │ ├── bessel_i1(x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
582
- │ ├── bessel_iv(v: typing.Union[int, float], x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
583
- │ ├── bessel_j0(x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
584
- │ ├── bessel_j1(x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
585
- │ ├── bessel_jv(v: typing.Union[int, float], x: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
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]
586
633
  │ ├── hyp0f1(b0: typing.Union[int, float, complex], z: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
587
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]
588
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]
589
- └── hyppfq(a: typing.Union[list, tuple], b: typing.Union[list, tuple], 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]
590
641
  ├── stattest
591
642
  │ ├── CLASS
592
643
  │ └── FUNCTION
@@ -621,7 +672,9 @@ PyPyNum
621
672
  │ ├── fast_pow(a: typing.Any, n: int, init: typing.Any, mul: typing.Callable) -> typing.Any
622
673
  │ ├── frange(start: typing.Union[int, float], stop: typing.Union[int, float], step: float) -> list
623
674
  │ ├── geomspace(start: typing.Union[int, float], stop: typing.Union[int, float], number: int) -> list
624
- │ ├── 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
625
678
  │ ├── linspace(start: typing.Union[int, float], stop: typing.Union[int, float], number: int) -> list
626
679
  │ ├── magic_square(n: int) -> list
627
680
  │ ├── primality(n: int, iter_num: int) -> bool
@@ -68,7 +68,7 @@ from .ufuncs import *
68
68
  from .utils import *
69
69
  from .vectors import *
70
70
 
71
- __version__ = "1.15.1"
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
74
  for _ in list(globals().keys()):