nrl-tracker 0.22.0__py3-none-any.whl → 0.22.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. {nrl_tracker-0.22.0.dist-info → nrl_tracker-0.22.1.dist-info}/METADATA +1 -1
  2. nrl_tracker-0.22.1.dist-info/RECORD +150 -0
  3. pytcl/__init__.py +11 -9
  4. pytcl/assignment_algorithms/__init__.py +42 -32
  5. pytcl/assignment_algorithms/data_association.py +3 -7
  6. pytcl/assignment_algorithms/gating.py +2 -4
  7. pytcl/assignment_algorithms/jpda.py +2 -6
  8. pytcl/assignment_algorithms/three_dimensional/__init__.py +8 -6
  9. pytcl/assignment_algorithms/three_dimensional/assignment.py +2 -6
  10. pytcl/assignment_algorithms/two_dimensional/__init__.py +13 -9
  11. pytcl/assignment_algorithms/two_dimensional/assignment.py +2 -5
  12. pytcl/assignment_algorithms/two_dimensional/kbest.py +6 -8
  13. pytcl/astronomical/__init__.py +108 -96
  14. pytcl/astronomical/ephemerides.py +1 -3
  15. pytcl/astronomical/lambert.py +1 -2
  16. pytcl/astronomical/time_systems.py +1 -2
  17. pytcl/atmosphere/__init__.py +13 -11
  18. pytcl/atmosphere/models.py +2 -4
  19. pytcl/clustering/__init__.py +36 -28
  20. pytcl/clustering/dbscan.py +2 -5
  21. pytcl/clustering/gaussian_mixture.py +2 -6
  22. pytcl/clustering/hierarchical.py +2 -6
  23. pytcl/clustering/kmeans.py +2 -6
  24. pytcl/containers/__init__.py +26 -29
  25. pytcl/containers/cluster_set.py +2 -10
  26. pytcl/containers/covertree.py +2 -8
  27. pytcl/containers/kd_tree.py +2 -6
  28. pytcl/containers/measurement_set.py +2 -9
  29. pytcl/containers/rtree.py +2 -6
  30. pytcl/containers/track_list.py +13 -13
  31. pytcl/containers/vptree.py +2 -7
  32. pytcl/coordinate_systems/__init__.py +74 -69
  33. pytcl/coordinate_systems/conversions/__init__.py +24 -20
  34. pytcl/coordinate_systems/conversions/geodetic.py +2 -4
  35. pytcl/coordinate_systems/conversions/spherical.py +2 -4
  36. pytcl/coordinate_systems/jacobians/__init__.py +12 -10
  37. pytcl/coordinate_systems/jacobians/jacobians.py +1 -2
  38. pytcl/coordinate_systems/projections/__init__.py +21 -23
  39. pytcl/coordinate_systems/projections/projections.py +1 -3
  40. pytcl/coordinate_systems/rotations/__init__.py +22 -20
  41. pytcl/coordinate_systems/rotations/rotations.py +1 -2
  42. pytcl/core/__init__.py +22 -16
  43. pytcl/core/array_utils.py +3 -6
  44. pytcl/core/validation.py +2 -7
  45. pytcl/dynamic_estimation/__init__.py +86 -77
  46. pytcl/dynamic_estimation/imm.py +3 -7
  47. pytcl/dynamic_estimation/information_filter.py +6 -8
  48. pytcl/dynamic_estimation/kalman/__init__.py +48 -40
  49. pytcl/dynamic_estimation/kalman/extended.py +2 -4
  50. pytcl/dynamic_estimation/kalman/linear.py +3 -7
  51. pytcl/dynamic_estimation/kalman/square_root.py +2 -5
  52. pytcl/dynamic_estimation/kalman/unscented.py +3 -8
  53. pytcl/dynamic_estimation/particle_filters/__init__.py +14 -12
  54. pytcl/dynamic_estimation/particle_filters/bootstrap.py +2 -6
  55. pytcl/dynamic_estimation/smoothers.py +3 -8
  56. pytcl/dynamic_models/__init__.py +41 -37
  57. pytcl/dynamic_models/continuous_time/__init__.py +11 -11
  58. pytcl/dynamic_models/continuous_time/dynamics.py +2 -4
  59. pytcl/dynamic_models/discrete_time/__init__.py +13 -11
  60. pytcl/dynamic_models/process_noise/__init__.py +13 -11
  61. pytcl/gravity/__init__.py +65 -55
  62. pytcl/gravity/clenshaw.py +1 -2
  63. pytcl/gravity/egm.py +3 -8
  64. pytcl/gravity/spherical_harmonics.py +1 -2
  65. pytcl/gravity/tides.py +1 -2
  66. pytcl/magnetism/__init__.py +25 -26
  67. pytcl/magnetism/emm.py +1 -4
  68. pytcl/magnetism/igrf.py +6 -5
  69. pytcl/magnetism/wmm.py +1 -2
  70. pytcl/mathematical_functions/__init__.py +87 -69
  71. pytcl/mathematical_functions/basic_matrix/__init__.py +19 -25
  72. pytcl/mathematical_functions/basic_matrix/decompositions.py +2 -5
  73. pytcl/mathematical_functions/basic_matrix/special_matrices.py +1 -2
  74. pytcl/mathematical_functions/combinatorics/__init__.py +14 -18
  75. pytcl/mathematical_functions/combinatorics/combinatorics.py +1 -4
  76. pytcl/mathematical_functions/geometry/__init__.py +15 -15
  77. pytcl/mathematical_functions/geometry/geometry.py +3 -6
  78. pytcl/mathematical_functions/interpolation/__init__.py +12 -10
  79. pytcl/mathematical_functions/interpolation/interpolation.py +2 -7
  80. pytcl/mathematical_functions/numerical_integration/__init__.py +10 -16
  81. pytcl/mathematical_functions/numerical_integration/quadrature.py +2 -6
  82. pytcl/mathematical_functions/signal_processing/__init__.py +30 -42
  83. pytcl/mathematical_functions/signal_processing/detection.py +3 -6
  84. pytcl/mathematical_functions/signal_processing/filters.py +2 -5
  85. pytcl/mathematical_functions/signal_processing/matched_filter.py +3 -6
  86. pytcl/mathematical_functions/special_functions/__init__.py +76 -74
  87. pytcl/mathematical_functions/special_functions/bessel.py +1 -2
  88. pytcl/mathematical_functions/special_functions/debye.py +2 -4
  89. pytcl/mathematical_functions/special_functions/elliptic.py +1 -2
  90. pytcl/mathematical_functions/special_functions/error_functions.py +1 -2
  91. pytcl/mathematical_functions/special_functions/gamma_functions.py +1 -2
  92. pytcl/mathematical_functions/special_functions/hypergeometric.py +1 -2
  93. pytcl/mathematical_functions/special_functions/lambert_w.py +1 -2
  94. pytcl/mathematical_functions/special_functions/marcum_q.py +1 -2
  95. pytcl/mathematical_functions/statistics/__init__.py +31 -27
  96. pytcl/mathematical_functions/statistics/distributions.py +4 -9
  97. pytcl/mathematical_functions/statistics/estimators.py +1 -2
  98. pytcl/mathematical_functions/transforms/__init__.py +51 -45
  99. pytcl/mathematical_functions/transforms/fourier.py +2 -5
  100. pytcl/mathematical_functions/transforms/stft.py +2 -5
  101. pytcl/mathematical_functions/transforms/wavelets.py +2 -7
  102. pytcl/navigation/__init__.py +99 -89
  103. pytcl/navigation/geodesy.py +2 -4
  104. pytcl/navigation/great_circle.py +1 -3
  105. pytcl/navigation/ins.py +5 -11
  106. pytcl/navigation/ins_gnss.py +12 -17
  107. pytcl/navigation/rhumb.py +2 -4
  108. pytcl/performance_evaluation/__init__.py +25 -21
  109. pytcl/performance_evaluation/estimation_metrics.py +1 -3
  110. pytcl/performance_evaluation/track_metrics.py +1 -3
  111. pytcl/plotting/__init__.py +38 -30
  112. pytcl/plotting/coordinates.py +1 -3
  113. pytcl/plotting/ellipses.py +2 -5
  114. pytcl/plotting/metrics.py +1 -2
  115. pytcl/plotting/tracks.py +1 -4
  116. pytcl/static_estimation/__init__.py +41 -37
  117. pytcl/static_estimation/least_squares.py +2 -4
  118. pytcl/static_estimation/maximum_likelihood.py +2 -5
  119. pytcl/static_estimation/robust.py +2 -5
  120. pytcl/terrain/__init__.py +34 -28
  121. pytcl/terrain/dem.py +1 -4
  122. pytcl/terrain/loaders.py +1 -4
  123. pytcl/terrain/visibility.py +1 -2
  124. pytcl/trackers/__init__.py +14 -17
  125. pytcl/trackers/hypothesis.py +1 -6
  126. pytcl/trackers/mht.py +9 -13
  127. pytcl/trackers/multi_target.py +3 -8
  128. pytcl/trackers/single_target.py +2 -5
  129. nrl_tracker-0.22.0.dist-info/RECORD +0 -150
  130. {nrl_tracker-0.22.0.dist-info → nrl_tracker-0.22.1.dist-info}/LICENSE +0 -0
  131. {nrl_tracker-0.22.0.dist-info → nrl_tracker-0.22.1.dist-info}/WHEEL +0 -0
  132. {nrl_tracker-0.22.0.dist-info → nrl_tracker-0.22.1.dist-info}/top_level.txt +0 -0
@@ -9,24 +9,24 @@ This module provides:
9
9
  - Bounding box computation
10
10
  """
11
11
 
12
- from pytcl.mathematical_functions.geometry.geometry import barycentric_coordinates
13
- from pytcl.mathematical_functions.geometry.geometry import bounding_box
14
- from pytcl.mathematical_functions.geometry.geometry import convex_hull
15
- from pytcl.mathematical_functions.geometry.geometry import convex_hull_area
16
- from pytcl.mathematical_functions.geometry.geometry import delaunay_triangulation
17
- from pytcl.mathematical_functions.geometry.geometry import line_intersection
18
- from pytcl.mathematical_functions.geometry.geometry import line_plane_intersection
19
- from pytcl.mathematical_functions.geometry.geometry import minimum_bounding_circle
20
- from pytcl.mathematical_functions.geometry.geometry import oriented_bounding_box
21
- from pytcl.mathematical_functions.geometry.geometry import point_in_polygon
22
- from pytcl.mathematical_functions.geometry.geometry import point_to_line_distance
23
12
  from pytcl.mathematical_functions.geometry.geometry import (
13
+ barycentric_coordinates,
14
+ bounding_box,
15
+ convex_hull,
16
+ convex_hull_area,
17
+ delaunay_triangulation,
18
+ line_intersection,
19
+ line_plane_intersection,
20
+ minimum_bounding_circle,
21
+ oriented_bounding_box,
22
+ point_in_polygon,
23
+ point_to_line_distance,
24
24
  point_to_line_segment_distance,
25
+ points_in_polygon,
26
+ polygon_area,
27
+ polygon_centroid,
28
+ triangle_area,
25
29
  )
26
- from pytcl.mathematical_functions.geometry.geometry import points_in_polygon
27
- from pytcl.mathematical_functions.geometry.geometry import polygon_area
28
- from pytcl.mathematical_functions.geometry.geometry import polygon_centroid
29
- from pytcl.mathematical_functions.geometry.geometry import triangle_area
30
30
 
31
31
  __all__ = [
32
32
  "point_in_polygon",
@@ -5,14 +5,11 @@ This module provides geometric functions for points, lines, planes,
5
5
  polygons, and related operations used in tracking applications.
6
6
  """
7
7
 
8
- from typing import Optional
9
- from typing import Tuple
8
+ from typing import Optional, Tuple
10
9
 
11
10
  import numpy as np
12
- from numpy.typing import ArrayLike
13
- from numpy.typing import NDArray
14
- from scipy.spatial import ConvexHull
15
- from scipy.spatial import Delaunay
11
+ from numpy.typing import ArrayLike, NDArray
12
+ from scipy.spatial import ConvexHull, Delaunay
16
13
 
17
14
 
18
15
  def point_in_polygon(
@@ -9,16 +9,18 @@ This module provides:
9
9
  """
10
10
 
11
11
  from pytcl.mathematical_functions.interpolation.interpolation import akima # noqa: E501
12
- from pytcl.mathematical_functions.interpolation.interpolation import barycentric
13
- from pytcl.mathematical_functions.interpolation.interpolation import cubic_spline
14
- from pytcl.mathematical_functions.interpolation.interpolation import interp1d
15
- from pytcl.mathematical_functions.interpolation.interpolation import interp2d
16
- from pytcl.mathematical_functions.interpolation.interpolation import interp3d
17
- from pytcl.mathematical_functions.interpolation.interpolation import krogh
18
- from pytcl.mathematical_functions.interpolation.interpolation import linear_interp
19
- from pytcl.mathematical_functions.interpolation.interpolation import pchip
20
- from pytcl.mathematical_functions.interpolation.interpolation import rbf_interpolate
21
- from pytcl.mathematical_functions.interpolation.interpolation import spherical_interp
12
+ from pytcl.mathematical_functions.interpolation.interpolation import (
13
+ barycentric,
14
+ cubic_spline,
15
+ interp1d,
16
+ interp2d,
17
+ interp3d,
18
+ krogh,
19
+ linear_interp,
20
+ pchip,
21
+ rbf_interpolate,
22
+ spherical_interp,
23
+ )
22
24
 
23
25
  __all__ = [
24
26
  "interp1d",
@@ -5,15 +5,10 @@ This module provides interpolation functions for 1D, 2D, and 3D data,
5
5
  commonly used in tracking for measurement interpolation and terrain models.
6
6
  """
7
7
 
8
- from typing import Callable
9
- from typing import Literal
10
- from typing import Optional
11
- from typing import Tuple
12
- from typing import Union
8
+ from typing import Callable, Literal, Optional, Tuple, Union
13
9
 
14
10
  import numpy as np
15
- from numpy.typing import ArrayLike
16
- from numpy.typing import NDArray
11
+ from numpy.typing import ArrayLike, NDArray
17
12
  from scipy import interpolate
18
13
 
19
14
 
@@ -9,24 +9,18 @@ This module provides:
9
9
 
10
10
  from pytcl.mathematical_functions.numerical_integration.quadrature import ( # noqa: E501
11
11
  cubature_gauss_hermite,
12
- )
13
- from pytcl.mathematical_functions.numerical_integration.quadrature import dblquad
14
- from pytcl.mathematical_functions.numerical_integration.quadrature import fixed_quad
15
- from pytcl.mathematical_functions.numerical_integration.quadrature import (
12
+ dblquad,
13
+ fixed_quad,
16
14
  gauss_chebyshev,
17
- )
18
- from pytcl.mathematical_functions.numerical_integration.quadrature import gauss_hermite
19
- from pytcl.mathematical_functions.numerical_integration.quadrature import gauss_laguerre
20
- from pytcl.mathematical_functions.numerical_integration.quadrature import gauss_legendre
21
- from pytcl.mathematical_functions.numerical_integration.quadrature import quad
22
- from pytcl.mathematical_functions.numerical_integration.quadrature import romberg
23
- from pytcl.mathematical_functions.numerical_integration.quadrature import simpson
24
- from pytcl.mathematical_functions.numerical_integration.quadrature import (
15
+ gauss_hermite,
16
+ gauss_laguerre,
17
+ gauss_legendre,
18
+ quad,
19
+ romberg,
20
+ simpson,
25
21
  spherical_cubature,
26
- )
27
- from pytcl.mathematical_functions.numerical_integration.quadrature import tplquad
28
- from pytcl.mathematical_functions.numerical_integration.quadrature import trapezoid
29
- from pytcl.mathematical_functions.numerical_integration.quadrature import (
22
+ tplquad,
23
+ trapezoid,
30
24
  unscented_transform_points,
31
25
  )
32
26
 
@@ -5,15 +5,11 @@ This module provides Gaussian quadrature rules and numerical integration
5
5
  functions commonly used in state estimation and filtering.
6
6
  """
7
7
 
8
- from typing import Callable
9
- from typing import Literal
10
- from typing import Optional
11
- from typing import Tuple
8
+ from typing import Callable, Literal, Optional, Tuple
12
9
 
13
10
  import numpy as np
14
11
  import scipy.integrate as integrate
15
- from numpy.typing import ArrayLike
16
- from numpy.typing import NDArray
12
+ from numpy.typing import ArrayLike, NDArray
17
13
 
18
14
 
19
15
  def gauss_legendre(
@@ -8,59 +8,47 @@ radar applications, including:
8
8
  - CFAR (Constant False Alarm Rate) detection algorithms
9
9
  """
10
10
 
11
- from pytcl.mathematical_functions.signal_processing.detection import CFARResult
12
- from pytcl.mathematical_functions.signal_processing.detection import CFARResult2D
13
- from pytcl.mathematical_functions.signal_processing.detection import cfar_2d
14
- from pytcl.mathematical_functions.signal_processing.detection import cfar_ca
15
- from pytcl.mathematical_functions.signal_processing.detection import cfar_go
16
- from pytcl.mathematical_functions.signal_processing.detection import cfar_os
17
- from pytcl.mathematical_functions.signal_processing.detection import cfar_so
18
- from pytcl.mathematical_functions.signal_processing.detection import cluster_detections
19
11
  from pytcl.mathematical_functions.signal_processing.detection import (
12
+ CFARResult,
13
+ CFARResult2D,
14
+ cfar_2d,
15
+ cfar_ca,
16
+ cfar_go,
17
+ cfar_os,
18
+ cfar_so,
19
+ cluster_detections,
20
20
  detection_probability,
21
+ snr_loss,
22
+ threshold_factor,
21
23
  )
22
- from pytcl.mathematical_functions.signal_processing.detection import snr_loss
23
- from pytcl.mathematical_functions.signal_processing.detection import threshold_factor
24
- from pytcl.mathematical_functions.signal_processing.filters import FilterCoefficients
25
- from pytcl.mathematical_functions.signal_processing.filters import FrequencyResponse
26
- from pytcl.mathematical_functions.signal_processing.filters import apply_filter
27
- from pytcl.mathematical_functions.signal_processing.filters import bessel_design
28
- from pytcl.mathematical_functions.signal_processing.filters import butter_design
29
- from pytcl.mathematical_functions.signal_processing.filters import cheby1_design
30
- from pytcl.mathematical_functions.signal_processing.filters import cheby2_design
31
- from pytcl.mathematical_functions.signal_processing.filters import ellip_design
32
- from pytcl.mathematical_functions.signal_processing.filters import filter_order
33
- from pytcl.mathematical_functions.signal_processing.filters import filtfilt
34
- from pytcl.mathematical_functions.signal_processing.filters import fir_design
35
- from pytcl.mathematical_functions.signal_processing.filters import fir_design_remez
36
- from pytcl.mathematical_functions.signal_processing.filters import frequency_response
37
- from pytcl.mathematical_functions.signal_processing.filters import group_delay
38
- from pytcl.mathematical_functions.signal_processing.filters import sos_to_zpk
39
- from pytcl.mathematical_functions.signal_processing.filters import zpk_to_sos
40
- from pytcl.mathematical_functions.signal_processing.matched_filter import (
41
- MatchedFilterResult,
24
+ from pytcl.mathematical_functions.signal_processing.filters import (
25
+ FilterCoefficients,
26
+ FrequencyResponse,
27
+ apply_filter,
28
+ bessel_design,
29
+ butter_design,
30
+ cheby1_design,
31
+ cheby2_design,
32
+ ellip_design,
33
+ filter_order,
34
+ filtfilt,
35
+ fir_design,
36
+ fir_design_remez,
37
+ frequency_response,
38
+ group_delay,
39
+ sos_to_zpk,
40
+ zpk_to_sos,
42
41
  )
43
42
  from pytcl.mathematical_functions.signal_processing.matched_filter import (
43
+ MatchedFilterResult,
44
44
  PulseCompressionResult,
45
- )
46
- from pytcl.mathematical_functions.signal_processing.matched_filter import (
47
45
  ambiguity_function,
48
- )
49
- from pytcl.mathematical_functions.signal_processing.matched_filter import (
50
46
  cross_ambiguity,
51
- )
52
- from pytcl.mathematical_functions.signal_processing.matched_filter import (
53
47
  generate_lfm_chirp,
54
- )
55
- from pytcl.mathematical_functions.signal_processing.matched_filter import (
56
48
  generate_nlfm_chirp,
57
- )
58
- from pytcl.mathematical_functions.signal_processing.matched_filter import matched_filter
59
- from pytcl.mathematical_functions.signal_processing.matched_filter import (
49
+ matched_filter,
60
50
  matched_filter_frequency,
61
- )
62
- from pytcl.mathematical_functions.signal_processing.matched_filter import optimal_filter
63
- from pytcl.mathematical_functions.signal_processing.matched_filter import (
51
+ optimal_filter,
64
52
  pulse_compression,
65
53
  )
66
54
 
@@ -24,14 +24,11 @@ References
24
24
  Systems, 19(4), 608-621.
25
25
  """
26
26
 
27
- from typing import NamedTuple
28
- from typing import Optional
27
+ from typing import NamedTuple, Optional
29
28
 
30
29
  import numpy as np
31
- from numba import njit
32
- from numba import prange
33
- from numpy.typing import ArrayLike
34
- from numpy.typing import NDArray
30
+ from numba import njit, prange
31
+ from numpy.typing import ArrayLike, NDArray
35
32
 
36
33
  # =============================================================================
37
34
  # Result Types
@@ -24,13 +24,10 @@ References
24
24
  Wiley-Interscience.
25
25
  """
26
26
 
27
- from typing import NamedTuple
28
- from typing import Optional
29
- from typing import Union
27
+ from typing import NamedTuple, Optional, Union
30
28
 
31
29
  import numpy as np
32
- from numpy.typing import ArrayLike
33
- from numpy.typing import NDArray
30
+ from numpy.typing import ArrayLike, NDArray
34
31
  from scipy import signal as scipy_signal
35
32
 
36
33
  # =============================================================================
@@ -21,14 +21,11 @@ References
21
21
  IRE Transactions on Information Theory, 6(3), 311-329.
22
22
  """
23
23
 
24
- from typing import NamedTuple
25
- from typing import Optional
24
+ from typing import NamedTuple, Optional
26
25
 
27
26
  import numpy as np
28
- from numba import njit
29
- from numba import prange
30
- from numpy.typing import ArrayLike
31
- from numpy.typing import NDArray
27
+ from numba import njit, prange
28
+ from numpy.typing import ArrayLike, NDArray
32
29
  from scipy import fft as scipy_fft
33
30
  from scipy import signal as scipy_signal
34
31
 
@@ -13,96 +13,98 @@ physics, signal processing, and statistical applications:
13
13
  - Debye functions (thermodynamics)
14
14
  """
15
15
 
16
- from pytcl.mathematical_functions.special_functions.bessel import airy
17
- from pytcl.mathematical_functions.special_functions.bessel import bessel_deriv
18
- from pytcl.mathematical_functions.special_functions.bessel import bessel_ratio
19
- from pytcl.mathematical_functions.special_functions.bessel import bessel_zeros
20
- from pytcl.mathematical_functions.special_functions.bessel import besselh
21
- from pytcl.mathematical_functions.special_functions.bessel import besseli
22
- from pytcl.mathematical_functions.special_functions.bessel import besselj
23
- from pytcl.mathematical_functions.special_functions.bessel import besselk
24
- from pytcl.mathematical_functions.special_functions.bessel import bessely
25
- from pytcl.mathematical_functions.special_functions.bessel import kelvin
26
- from pytcl.mathematical_functions.special_functions.bessel import spherical_in
27
- from pytcl.mathematical_functions.special_functions.bessel import spherical_jn
28
- from pytcl.mathematical_functions.special_functions.bessel import spherical_kn
29
- from pytcl.mathematical_functions.special_functions.bessel import spherical_yn
30
- from pytcl.mathematical_functions.special_functions.bessel import struve_h
31
- from pytcl.mathematical_functions.special_functions.bessel import struve_l
32
- from pytcl.mathematical_functions.special_functions.debye import debye
33
- from pytcl.mathematical_functions.special_functions.debye import debye_1
34
- from pytcl.mathematical_functions.special_functions.debye import debye_2
35
- from pytcl.mathematical_functions.special_functions.debye import debye_3
36
- from pytcl.mathematical_functions.special_functions.debye import debye_4
37
- from pytcl.mathematical_functions.special_functions.debye import debye_entropy
38
- from pytcl.mathematical_functions.special_functions.debye import debye_heat_capacity
16
+ from pytcl.mathematical_functions.special_functions.bessel import (
17
+ airy,
18
+ bessel_deriv,
19
+ bessel_ratio,
20
+ bessel_zeros,
21
+ besselh,
22
+ besseli,
23
+ besselj,
24
+ besselk,
25
+ bessely,
26
+ kelvin,
27
+ spherical_in,
28
+ spherical_jn,
29
+ spherical_kn,
30
+ spherical_yn,
31
+ struve_h,
32
+ struve_l,
33
+ )
34
+ from pytcl.mathematical_functions.special_functions.debye import (
35
+ debye,
36
+ debye_1,
37
+ debye_2,
38
+ debye_3,
39
+ debye_4,
40
+ debye_entropy,
41
+ debye_heat_capacity,
42
+ )
39
43
  from pytcl.mathematical_functions.special_functions.elliptic import ellipe # noqa: E501
40
- from pytcl.mathematical_functions.special_functions.elliptic import ellipeinc
41
- from pytcl.mathematical_functions.special_functions.elliptic import ellipk
42
- from pytcl.mathematical_functions.special_functions.elliptic import ellipkinc
43
- from pytcl.mathematical_functions.special_functions.elliptic import ellipkm1
44
- from pytcl.mathematical_functions.special_functions.elliptic import elliprc
45
- from pytcl.mathematical_functions.special_functions.elliptic import elliprd
46
- from pytcl.mathematical_functions.special_functions.elliptic import elliprf
47
- from pytcl.mathematical_functions.special_functions.elliptic import elliprg
48
- from pytcl.mathematical_functions.special_functions.elliptic import elliprj
44
+ from pytcl.mathematical_functions.special_functions.elliptic import (
45
+ ellipeinc,
46
+ ellipk,
47
+ ellipkinc,
48
+ ellipkm1,
49
+ elliprc,
50
+ elliprd,
51
+ elliprf,
52
+ elliprg,
53
+ elliprj,
54
+ )
49
55
  from pytcl.mathematical_functions.special_functions.error_functions import ( # noqa: E501
50
56
  dawsn,
57
+ erf,
58
+ erfc,
59
+ erfcinv,
60
+ erfcx,
61
+ erfi,
62
+ erfinv,
63
+ fresnel,
64
+ voigt_profile,
65
+ wofz,
51
66
  )
52
- from pytcl.mathematical_functions.special_functions.error_functions import erf
53
- from pytcl.mathematical_functions.special_functions.error_functions import erfc
54
- from pytcl.mathematical_functions.special_functions.error_functions import erfcinv
55
- from pytcl.mathematical_functions.special_functions.error_functions import erfcx
56
- from pytcl.mathematical_functions.special_functions.error_functions import erfi
57
- from pytcl.mathematical_functions.special_functions.error_functions import erfinv
58
- from pytcl.mathematical_functions.special_functions.error_functions import fresnel
59
- from pytcl.mathematical_functions.special_functions.error_functions import voigt_profile
60
- from pytcl.mathematical_functions.special_functions.error_functions import wofz
61
67
  from pytcl.mathematical_functions.special_functions.gamma_functions import ( # noqa: E501
62
68
  beta,
69
+ betainc,
70
+ betaincinv,
71
+ betaln,
72
+ comb,
73
+ digamma,
74
+ factorial,
75
+ factorial2,
76
+ gamma,
77
+ gammainc,
78
+ gammaincc,
79
+ gammaincinv,
80
+ gammaln,
81
+ perm,
82
+ polygamma,
63
83
  )
64
- from pytcl.mathematical_functions.special_functions.gamma_functions import betainc
65
- from pytcl.mathematical_functions.special_functions.gamma_functions import betaincinv
66
- from pytcl.mathematical_functions.special_functions.gamma_functions import betaln
67
- from pytcl.mathematical_functions.special_functions.gamma_functions import comb
68
- from pytcl.mathematical_functions.special_functions.gamma_functions import digamma
69
- from pytcl.mathematical_functions.special_functions.gamma_functions import factorial
70
- from pytcl.mathematical_functions.special_functions.gamma_functions import factorial2
71
- from pytcl.mathematical_functions.special_functions.gamma_functions import gamma
72
- from pytcl.mathematical_functions.special_functions.gamma_functions import gammainc
73
- from pytcl.mathematical_functions.special_functions.gamma_functions import gammaincc
74
- from pytcl.mathematical_functions.special_functions.gamma_functions import gammaincinv
75
- from pytcl.mathematical_functions.special_functions.gamma_functions import gammaln
76
- from pytcl.mathematical_functions.special_functions.gamma_functions import perm
77
- from pytcl.mathematical_functions.special_functions.gamma_functions import polygamma
78
84
  from pytcl.mathematical_functions.special_functions.hypergeometric import (
79
85
  falling_factorial,
80
- )
81
- from pytcl.mathematical_functions.special_functions.hypergeometric import (
82
86
  generalized_hypergeometric,
83
- )
84
- from pytcl.mathematical_functions.special_functions.hypergeometric import hyp0f1
85
- from pytcl.mathematical_functions.special_functions.hypergeometric import hyp1f1
86
- from pytcl.mathematical_functions.special_functions.hypergeometric import (
87
+ hyp0f1,
88
+ hyp1f1,
87
89
  hyp1f1_regularized,
90
+ hyp2f1,
91
+ hyperu,
92
+ pochhammer,
88
93
  )
89
- from pytcl.mathematical_functions.special_functions.hypergeometric import hyp2f1
90
- from pytcl.mathematical_functions.special_functions.hypergeometric import hyperu
91
- from pytcl.mathematical_functions.special_functions.hypergeometric import pochhammer
92
- from pytcl.mathematical_functions.special_functions.lambert_w import lambert_w
93
- from pytcl.mathematical_functions.special_functions.lambert_w import lambert_w_real
94
- from pytcl.mathematical_functions.special_functions.lambert_w import omega_constant
95
94
  from pytcl.mathematical_functions.special_functions.lambert_w import (
95
+ lambert_w,
96
+ lambert_w_real,
97
+ omega_constant,
96
98
  solve_exponential_equation,
99
+ time_delay_equation,
100
+ wright_omega,
97
101
  )
98
- from pytcl.mathematical_functions.special_functions.lambert_w import time_delay_equation
99
- from pytcl.mathematical_functions.special_functions.lambert_w import wright_omega
100
- from pytcl.mathematical_functions.special_functions.marcum_q import log_marcum_q
101
- from pytcl.mathematical_functions.special_functions.marcum_q import marcum_q
102
- from pytcl.mathematical_functions.special_functions.marcum_q import marcum_q1
103
- from pytcl.mathematical_functions.special_functions.marcum_q import marcum_q_inv
104
- from pytcl.mathematical_functions.special_functions.marcum_q import nuttall_q
105
102
  from pytcl.mathematical_functions.special_functions.marcum_q import (
103
+ log_marcum_q,
104
+ marcum_q,
105
+ marcum_q1,
106
+ marcum_q_inv,
107
+ nuttall_q,
106
108
  swerling_detection_probability,
107
109
  )
108
110
 
@@ -9,8 +9,7 @@ from typing import Union
9
9
 
10
10
  import numpy as np
11
11
  import scipy.special as sp
12
- from numpy.typing import ArrayLike
13
- from numpy.typing import NDArray
12
+ from numpy.typing import ArrayLike, NDArray
14
13
 
15
14
 
16
15
  def besselj(
@@ -7,8 +7,7 @@ thermodynamic properties of solids (heat capacity, entropy).
7
7
 
8
8
  import numpy as np
9
9
  import scipy.integrate as integrate
10
- from numpy.typing import ArrayLike
11
- from numpy.typing import NDArray
10
+ from numpy.typing import ArrayLike, NDArray
12
11
 
13
12
 
14
13
  def debye(
@@ -78,8 +77,7 @@ def debye(
78
77
  result[i] = 1.0 - n * xi / (2 * (n + 1))
79
78
  elif xi > 100:
80
79
  # Large x asymptotic
81
- from scipy.special import factorial
82
- from scipy.special import zeta
80
+ from scipy.special import factorial, zeta
83
81
 
84
82
  result[i] = factorial(n) * zeta(n + 1) * n / (xi**n)
85
83
  else:
@@ -7,8 +7,7 @@ applications including orbits, pendulums, and electromagnetic calculations.
7
7
 
8
8
  import numpy as np
9
9
  import scipy.special as sp
10
- from numpy.typing import ArrayLike
11
- from numpy.typing import NDArray
10
+ from numpy.typing import ArrayLike, NDArray
12
11
 
13
12
 
14
13
  def ellipk(m: ArrayLike) -> NDArray[np.floating]:
@@ -7,8 +7,7 @@ in probability theory and statistical analysis.
7
7
 
8
8
  import numpy as np
9
9
  import scipy.special as sp
10
- from numpy.typing import ArrayLike
11
- from numpy.typing import NDArray
10
+ from numpy.typing import ArrayLike, NDArray
12
11
 
13
12
 
14
13
  def erf(x: ArrayLike) -> NDArray[np.floating]:
@@ -7,8 +7,7 @@ functions used in statistics and probability calculations.
7
7
 
8
8
  import numpy as np
9
9
  import scipy.special as sp
10
- from numpy.typing import ArrayLike
11
- from numpy.typing import NDArray
10
+ from numpy.typing import ArrayLike, NDArray
12
11
 
13
12
 
14
13
  def gamma(x: ArrayLike) -> NDArray[np.floating]:
@@ -7,8 +7,7 @@ mathematical physics, probability theory, and special function evaluation.
7
7
 
8
8
  import numpy as np
9
9
  import scipy.special as sp
10
- from numpy.typing import ArrayLike
11
- from numpy.typing import NDArray
10
+ from numpy.typing import ArrayLike, NDArray
12
11
 
13
12
 
14
13
  def hyp0f1(
@@ -7,8 +7,7 @@ delay differential equations, combinatorics, and physics.
7
7
 
8
8
  import numpy as np
9
9
  import scipy.special as sp
10
- from numpy.typing import ArrayLike
11
- from numpy.typing import NDArray
10
+ from numpy.typing import ArrayLike, NDArray
12
11
 
13
12
 
14
13
  def lambert_w(
@@ -7,8 +7,7 @@ analyzing detection probabilities and signal statistics.
7
7
 
8
8
  import numpy as np
9
9
  import scipy.special as sp
10
- from numpy.typing import ArrayLike
11
- from numpy.typing import NDArray
10
+ from numpy.typing import ArrayLike, NDArray
12
11
 
13
12
 
14
13
  def marcum_q(
@@ -8,33 +8,37 @@ This module provides:
8
8
  - Filter consistency metrics (NEES, NIS)
9
9
  """
10
10
 
11
- from pytcl.mathematical_functions.statistics.distributions import Beta
12
- from pytcl.mathematical_functions.statistics.distributions import ChiSquared
13
- from pytcl.mathematical_functions.statistics.distributions import Distribution
14
- from pytcl.mathematical_functions.statistics.distributions import Exponential
15
- from pytcl.mathematical_functions.statistics.distributions import Gamma
16
- from pytcl.mathematical_functions.statistics.distributions import Gaussian
17
- from pytcl.mathematical_functions.statistics.distributions import MultivariateGaussian
18
- from pytcl.mathematical_functions.statistics.distributions import Poisson
19
- from pytcl.mathematical_functions.statistics.distributions import StudentT
20
- from pytcl.mathematical_functions.statistics.distributions import Uniform
21
- from pytcl.mathematical_functions.statistics.distributions import VonMises
22
- from pytcl.mathematical_functions.statistics.distributions import Wishart
23
- from pytcl.mathematical_functions.statistics.estimators import iqr
24
- from pytcl.mathematical_functions.statistics.estimators import kurtosis
25
- from pytcl.mathematical_functions.statistics.estimators import mad
26
- from pytcl.mathematical_functions.statistics.estimators import median
27
- from pytcl.mathematical_functions.statistics.estimators import moment
28
- from pytcl.mathematical_functions.statistics.estimators import nees
29
- from pytcl.mathematical_functions.statistics.estimators import nis
30
- from pytcl.mathematical_functions.statistics.estimators import sample_corr
31
- from pytcl.mathematical_functions.statistics.estimators import sample_cov
32
- from pytcl.mathematical_functions.statistics.estimators import sample_mean
33
- from pytcl.mathematical_functions.statistics.estimators import sample_var
34
- from pytcl.mathematical_functions.statistics.estimators import skewness
35
- from pytcl.mathematical_functions.statistics.estimators import weighted_cov
36
- from pytcl.mathematical_functions.statistics.estimators import weighted_mean
37
- from pytcl.mathematical_functions.statistics.estimators import weighted_var
11
+ from pytcl.mathematical_functions.statistics.distributions import (
12
+ Beta,
13
+ ChiSquared,
14
+ Distribution,
15
+ Exponential,
16
+ Gamma,
17
+ Gaussian,
18
+ MultivariateGaussian,
19
+ Poisson,
20
+ StudentT,
21
+ Uniform,
22
+ VonMises,
23
+ Wishart,
24
+ )
25
+ from pytcl.mathematical_functions.statistics.estimators import (
26
+ iqr,
27
+ kurtosis,
28
+ mad,
29
+ median,
30
+ moment,
31
+ nees,
32
+ nis,
33
+ sample_corr,
34
+ sample_cov,
35
+ sample_mean,
36
+ sample_var,
37
+ skewness,
38
+ weighted_cov,
39
+ weighted_mean,
40
+ weighted_var,
41
+ )
38
42
 
39
43
  __all__ = [
40
44
  # Distributions