mergeron 2025.739439.3__tar.gz → 2025.739439.6__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.

Potentially problematic release.


This version of mergeron might be problematic. Click here for more details.

Files changed (20) hide show
  1. {mergeron-2025.739439.3 → mergeron-2025.739439.6}/PKG-INFO +4 -5
  2. {mergeron-2025.739439.3 → mergeron-2025.739439.6}/pyproject.toml +2 -3
  3. {mergeron-2025.739439.3 → mergeron-2025.739439.6}/src/mergeron/__init__.py +1 -1
  4. {mergeron-2025.739439.3 → mergeron-2025.739439.6}/src/mergeron/core/guidelines_boundary_functions.py +8 -3
  5. {mergeron-2025.739439.3 → mergeron-2025.739439.6}/README.rst +2 -2
  6. {mergeron-2025.739439.3 → mergeron-2025.739439.6}/src/mergeron/core/__init__.py +0 -0
  7. {mergeron-2025.739439.3 → mergeron-2025.739439.6}/src/mergeron/core/empirical_margin_distribution.py +0 -0
  8. {mergeron-2025.739439.3 → mergeron-2025.739439.6}/src/mergeron/core/ftc_merger_investigations_data.py +0 -0
  9. {mergeron-2025.739439.3 → mergeron-2025.739439.6}/src/mergeron/core/guidelines_boundaries.py +0 -0
  10. {mergeron-2025.739439.3 → mergeron-2025.739439.6}/src/mergeron/core/guidelines_boundary_functions_extra.py +0 -0
  11. {mergeron-2025.739439.3 → mergeron-2025.739439.6}/src/mergeron/core/pseudorandom_numbers.py +0 -0
  12. {mergeron-2025.739439.3 → mergeron-2025.739439.6}/src/mergeron/data/__init__.py +0 -0
  13. {mergeron-2025.739439.3 → mergeron-2025.739439.6}/src/mergeron/data/damodaran_margin_data_serialized.zip +0 -0
  14. {mergeron-2025.739439.3 → mergeron-2025.739439.6}/src/mergeron/data/ftc_merger_investigations_data.zip +0 -0
  15. {mergeron-2025.739439.3 → mergeron-2025.739439.6}/src/mergeron/gen/__init__.py +0 -0
  16. {mergeron-2025.739439.3 → mergeron-2025.739439.6}/src/mergeron/gen/data_generation.py +0 -0
  17. {mergeron-2025.739439.3 → mergeron-2025.739439.6}/src/mergeron/gen/data_generation_functions.py +0 -0
  18. {mergeron-2025.739439.3 → mergeron-2025.739439.6}/src/mergeron/gen/enforcement_stats.py +0 -0
  19. {mergeron-2025.739439.3 → mergeron-2025.739439.6}/src/mergeron/gen/upp_tests.py +0 -0
  20. {mergeron-2025.739439.3 → mergeron-2025.739439.6}/src/mergeron/py.typed +0 -0
@@ -1,12 +1,12 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: mergeron
3
- Version: 2025.739439.3
3
+ Version: 2025.739439.6
4
4
  Summary: Python for analyzing merger enforcement policy
5
5
  License: MIT
6
6
  Keywords: merger enforcement policy,merger guidelines,merger screening,enforcement presumptions,concentration standards,diversion ratio,upward pricing pressure,GUPPI
7
7
  Author: Murthy Kambhampaty
8
8
  Author-email: smk@capeconomics.com
9
- Requires-Python: >=3.12,<4.0
9
+ Requires-Python: >=3.13,<4.0
10
10
  Classifier: Development Status :: 4 - Beta
11
11
  Classifier: Environment :: Console
12
12
  Classifier: Intended Audience :: End Users/Desktop
@@ -15,7 +15,6 @@ Classifier: License :: OSI Approved :: MIT License
15
15
  Classifier: Operating System :: OS Independent
16
16
  Classifier: Programming Language :: Python
17
17
  Classifier: Programming Language :: Python :: Implementation :: CPython
18
- Classifier: Programming Language :: Python :: 3.12
19
18
  Classifier: Programming Language :: Python :: 3.13
20
19
  Requires-Dist: aenum (>=3.1.16)
21
20
  Requires-Dist: attrs (>=25.3.0)
@@ -62,10 +61,10 @@ mergeron: Python for analyzing merger enforcement policy
62
61
 
63
62
  .. image:: https://img.shields.io/endpoint?url=https://python-poetry.org/badge/v0.json
64
63
  :target: https://python-poetry.org/
65
- .. image:: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json
66
- :target: https://github.com/astral-sh/ruff/
67
64
  .. image:: https://www.mypy-lang.org/static/mypy_badge.svg
68
65
  :target: https://mypy-lang.org/
66
+ .. image:: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json
67
+ :target: https://github.com/astral-sh/ruff/
69
68
  .. image:: https://img.shields.io/badge/code%20style-black-000000
70
69
  :target: https://github.com/psf/black/
71
70
  .. image:: https://img.shields.io/badge/License-MIT-yellow
@@ -15,8 +15,8 @@ keywords = [
15
15
  "upward pricing pressure",
16
16
  "GUPPI",
17
17
  ]
18
- version = "2025.739439.3"
19
- requires-python = ">=3.12,<4.0"
18
+ version = "2025.739439.6"
19
+ requires-python = ">=3.13,<4.0"
20
20
 
21
21
  # Classifiers list: https://pypi.org/classifiers/
22
22
  classifiers = [
@@ -28,7 +28,6 @@ classifiers = [
28
28
  "Operating System :: OS Independent",
29
29
  "Programming Language :: Python",
30
30
  "Programming Language :: Python :: Implementation :: CPython",
31
- "Programming Language :: Python :: 3.12",
32
31
  "Programming Language :: Python :: 3.13",
33
32
  ]
34
33
 
@@ -15,7 +15,7 @@ from ruamel import yaml
15
15
 
16
16
  _PKG_NAME: str = Path(__file__).parent.name
17
17
 
18
- VERSION = "2025.739439.3"
18
+ VERSION = "2025.739439.6"
19
19
 
20
20
  __version__ = VERSION
21
21
 
@@ -2,6 +2,7 @@
2
2
 
3
3
  import decimal
4
4
  from collections.abc import Callable
5
+ from math import fma
5
6
  from types import ModuleType
6
7
  from typing import Literal, TypedDict
7
8
 
@@ -695,7 +696,7 @@ def lerp[LerpT: (float, MPFloat, ArrayDouble, ArrayBIGINT)](
695
696
  _x1: LerpT, _x2: LerpT, _r: float | MPFloat = 0.25, /
696
697
  ) -> LerpT:
697
698
  R"""
698
- From the function of the same name in the C++ standard [#]_.
699
+ From the function of the same name in the C++ standard [#]_. Also, [#]_.
699
700
 
700
701
  Constructs the weighted average, :math:`w_1 x_1 + w_2 x_2`, where
701
702
  :math:`w_1 = 1 - r` and :math:`w_2 = r`.
@@ -710,7 +711,7 @@ def lerp[LerpT: (float, MPFloat, ArrayDouble, ArrayBIGINT)](
710
711
  Returns
711
712
  -------
712
713
  The linear interpolation, or weighted average,
713
- :math:`x_1 + r \cdot (x_1 - x_2) \equiv (1 - r) \cdot x_1 + r \cdot x_2`.
714
+ :math:`x_1 + r \cdot (x_2 - x_1) \equiv (1 - r) \cdot x_1 + r \cdot x_2`.
714
715
 
715
716
  Raises
716
717
  ------
@@ -722,6 +723,10 @@ def lerp[LerpT: (float, MPFloat, ArrayDouble, ArrayBIGINT)](
722
723
 
723
724
  .. [#] C++ Reference, https://en.cppreference.com/w/cpp/numeric/lerp
724
725
 
726
+ .. [#] Harris, Mark (2015). "GPU Pro Tip: Lerp faster in C++". nvidia.com (Jun 10, 2015). Online at:
727
+ https://developer.nvidia.com/blog/lerp-faster-cuda/
728
+
729
+
725
730
  """
726
731
  if not 0 <= _r <= 1:
727
732
  raise ValueError("Specified interpolation weight must lie in [0, 1].")
@@ -730,7 +735,7 @@ def lerp[LerpT: (float, MPFloat, ArrayDouble, ArrayBIGINT)](
730
735
  elif _r == 1:
731
736
  return _x2
732
737
  else:
733
- return _r * _x2 + (1 - _r) * _x1
738
+ return fma(_x2, _r, fma(_x1, -_r, _x1))
734
739
 
735
740
 
736
741
  def round_cust(
@@ -22,10 +22,10 @@ mergeron: Python for analyzing merger enforcement policy
22
22
 
23
23
  .. image:: https://img.shields.io/endpoint?url=https://python-poetry.org/badge/v0.json
24
24
  :target: https://python-poetry.org/
25
- .. image:: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json
26
- :target: https://github.com/astral-sh/ruff/
27
25
  .. image:: https://www.mypy-lang.org/static/mypy_badge.svg
28
26
  :target: https://mypy-lang.org/
27
+ .. image:: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json
28
+ :target: https://github.com/astral-sh/ruff/
29
29
  .. image:: https://img.shields.io/badge/code%20style-black-000000
30
30
  :target: https://github.com/psf/black/
31
31
  .. image:: https://img.shields.io/badge/License-MIT-yellow