PyPyNum 1.15.0__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 (54) hide show
  1. {pypynum-1.15.0 → pypynum-1.16.0}/PKG-INFO +97 -53
  2. {pypynum-1.15.0 → pypynum-1.16.0}/PyPyNum.egg-info/PKG-INFO +97 -53
  3. {pypynum-1.15.0 → pypynum-1.16.0}/PyPyNum.egg-info/SOURCES.txt +1 -1
  4. {pypynum-1.15.0 → pypynum-1.16.0}/pypynum/README.md +96 -52
  5. {pypynum-1.15.0 → pypynum-1.16.0}/pypynum/__init__.py +5 -2
  6. pypynum-1.16.0/pypynum/consts.py +262 -0
  7. {pypynum-1.15.0 → pypynum-1.16.0}/pypynum/dataproc.py +4 -4
  8. {pypynum-1.15.0 → pypynum-1.16.0}/pypynum/dists.py +2 -2
  9. {pypynum-1.15.0 → pypynum-1.16.0}/pypynum/matrices.py +74 -40
  10. {pypynum-1.15.0 → pypynum-1.16.0}/pypynum/multiprec.py +67 -25
  11. {pypynum-1.15.0 → pypynum-1.16.0}/pypynum/quats.py +1 -1
  12. {pypynum-1.15.0 → pypynum-1.16.0}/pypynum/seqs.py +55 -3
  13. pypynum-1.16.0/pypynum/special.py +397 -0
  14. {pypynum-1.15.0 → pypynum-1.16.0}/pypynum/tools.py +93 -16
  15. {pypynum-1.15.0 → pypynum-1.16.0}/pypynum/trees.py +0 -3
  16. {pypynum-1.15.0 → pypynum-1.16.0}/pypynum/zh_cn.py +6 -2
  17. {pypynum-1.15.0 → pypynum-1.16.0}/setup.py +5 -2
  18. pypynum-1.15.0/pypynum/bessel.py +0 -173
  19. pypynum-1.15.0/pypynum/consts.py +0 -68
  20. {pypynum-1.15.0 → pypynum-1.16.0}/PyPyNum.egg-info/dependency_links.txt +0 -0
  21. {pypynum-1.15.0 → pypynum-1.16.0}/PyPyNum.egg-info/top_level.txt +0 -0
  22. {pypynum-1.15.0 → pypynum-1.16.0}/pypynum/PyPyNum.png +0 -0
  23. {pypynum-1.15.0 → pypynum-1.16.0}/pypynum/arrays.py +0 -0
  24. {pypynum-1.15.0 → pypynum-1.16.0}/pypynum/chars.py +0 -0
  25. {pypynum-1.15.0 → pypynum-1.16.0}/pypynum/ciphers.py +0 -0
  26. {pypynum-1.15.0 → pypynum-1.16.0}/pypynum/crandom.py +0 -0
  27. {pypynum-1.15.0 → pypynum-1.16.0}/pypynum/equations.py +0 -0
  28. {pypynum-1.15.0 → pypynum-1.16.0}/pypynum/fft.py +0 -0
  29. {pypynum-1.15.0 → pypynum-1.16.0}/pypynum/files.py +0 -0
  30. {pypynum-1.15.0 → pypynum-1.16.0}/pypynum/geoms.py +0 -0
  31. {pypynum-1.15.0 → pypynum-1.16.0}/pypynum/graphs.py +0 -0
  32. {pypynum-1.15.0 → pypynum-1.16.0}/pypynum/groups.py +0 -0
  33. {pypynum-1.15.0 → pypynum-1.16.0}/pypynum/images.py +0 -0
  34. {pypynum-1.15.0 → pypynum-1.16.0}/pypynum/interp.py +0 -0
  35. {pypynum-1.15.0 → pypynum-1.16.0}/pypynum/kernels.py +0 -0
  36. {pypynum-1.15.0 → pypynum-1.16.0}/pypynum/logics.py +0 -0
  37. {pypynum-1.15.0 → pypynum-1.16.0}/pypynum/maths.py +0 -0
  38. {pypynum-1.15.0 → pypynum-1.16.0}/pypynum/networks.py +0 -0
  39. {pypynum-1.15.0 → pypynum-1.16.0}/pypynum/numbers.py +0 -0
  40. {pypynum-1.15.0 → pypynum-1.16.0}/pypynum/plotting.py +0 -0
  41. {pypynum-1.15.0 → pypynum-1.16.0}/pypynum/polys.py +0 -0
  42. {pypynum-1.15.0 → pypynum-1.16.0}/pypynum/pprinters.py +0 -0
  43. {pypynum-1.15.0 → pypynum-1.16.0}/pypynum/random.py +0 -0
  44. {pypynum-1.15.0 → pypynum-1.16.0}/pypynum/regs.py +0 -0
  45. {pypynum-1.15.0 → pypynum-1.16.0}/pypynum/stattest.py +0 -0
  46. {pypynum-1.15.0 → pypynum-1.16.0}/pypynum/symbols.py +0 -0
  47. {pypynum-1.15.0 → pypynum-1.16.0}/pypynum/tensors.py +0 -0
  48. {pypynum-1.15.0 → pypynum-1.16.0}/pypynum/test.py +0 -0
  49. {pypynum-1.15.0 → pypynum-1.16.0}/pypynum/this.py +0 -0
  50. {pypynum-1.15.0 → pypynum-1.16.0}/pypynum/types.py +0 -0
  51. {pypynum-1.15.0 → pypynum-1.16.0}/pypynum/ufuncs.py +0 -0
  52. {pypynum-1.15.0 → pypynum-1.16.0}/pypynum/utils.py +0 -0
  53. {pypynum-1.15.0 → pypynum-1.16.0}/pypynum/vectors.py +0 -0
  54. {pypynum-1.15.0 → 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.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,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
@@ -7,7 +7,6 @@ pypynum/PyPyNum.png
7
7
  pypynum/README.md
8
8
  pypynum/__init__.py
9
9
  pypynum/arrays.py
10
- pypynum/bessel.py
11
10
  pypynum/chars.py
12
11
  pypynum/ciphers.py
13
12
  pypynum/consts.py
@@ -36,6 +35,7 @@ pypynum/quats.py
36
35
  pypynum/random.py
37
36
  pypynum/regs.py
38
37
  pypynum/seqs.py
38
+ pypynum/special.py
39
39
  pypynum/stattest.py
40
40
  pypynum/symbols.py
41
41
  pypynum/tensors.py