"""Phase functions."""
__all__ = ["phase_HalleyMarcus"]
import numpy as np
from scipy.interpolate import splrep, splev
_Phi = splrep(
np.arange(181),
np.array(
[
1.0000e00,
9.5960e-01,
9.2170e-01,
8.8590e-01,
8.5220e-01,
8.2050e-01,
7.9060e-01,
7.6240e-01,
7.3580e-01,
7.1070e-01,
6.8710e-01,
6.6470e-01,
6.4360e-01,
6.2370e-01,
6.0490e-01,
5.8720e-01,
5.7040e-01,
5.5460e-01,
5.3960e-01,
5.2550e-01,
5.1220e-01,
4.9960e-01,
4.8770e-01,
4.7650e-01,
4.6590e-01,
4.5590e-01,
4.4650e-01,
4.3770e-01,
4.2930e-01,
4.2150e-01,
4.1420e-01,
4.0730e-01,
4.0090e-01,
3.9490e-01,
3.8930e-01,
3.8400e-01,
3.7920e-01,
3.7470e-01,
3.7060e-01,
3.6680e-01,
3.6340e-01,
3.6030e-01,
3.5750e-01,
3.5400e-01,
3.5090e-01,
3.4820e-01,
3.4580e-01,
3.4380e-01,
3.4210e-01,
3.4070e-01,
3.3970e-01,
3.3890e-01,
3.3850e-01,
3.3830e-01,
3.3850e-01,
3.3890e-01,
3.3960e-01,
3.4050e-01,
3.4180e-01,
3.4320e-01,
3.4500e-01,
3.4700e-01,
3.4930e-01,
3.5180e-01,
3.5460e-01,
3.5760e-01,
3.6090e-01,
3.6450e-01,
3.6830e-01,
3.7240e-01,
3.7680e-01,
3.8150e-01,
3.8650e-01,
3.9170e-01,
3.9730e-01,
4.0320e-01,
4.0940e-01,
4.1590e-01,
4.2280e-01,
4.3000e-01,
4.3760e-01,
4.4560e-01,
4.5400e-01,
4.6270e-01,
4.7200e-01,
4.8160e-01,
4.9180e-01,
5.0240e-01,
5.1360e-01,
5.2530e-01,
5.3750e-01,
5.5040e-01,
5.6380e-01,
5.7800e-01,
5.9280e-01,
6.0840e-01,
6.2470e-01,
6.4190e-01,
6.5990e-01,
6.7880e-01,
6.9870e-01,
7.1960e-01,
7.4160e-01,
7.6480e-01,
7.8920e-01,
8.1490e-01,
8.4200e-01,
8.7060e-01,
9.0080e-01,
9.3270e-01,
9.6640e-01,
1.0021e00,
1.0399e00,
1.0799e00,
1.1223e00,
1.1673e00,
1.2151e00,
1.2659e00,
1.3200e00,
1.3776e00,
1.4389e00,
1.5045e00,
1.5744e00,
1.6493e00,
1.7294e00,
1.8153e00,
1.9075e00,
2.0066e00,
2.1132e00,
2.2281e00,
2.3521e00,
2.4861e00,
2.6312e00,
2.7884e00,
2.9592e00,
3.1450e00,
3.3474e00,
3.5685e00,
3.8104e00,
4.0755e00,
4.3669e00,
4.6877e00,
5.0418e00,
5.4336e00,
5.8682e00,
6.3518e00,
6.8912e00,
7.4948e00,
8.1724e00,
8.9355e00,
9.7981e00,
1.0777e01,
1.1891e01,
1.3166e01,
1.4631e01,
1.6322e01,
1.8283e01,
2.0570e01,
2.3252e01,
2.6418e01,
3.0177e01,
3.4672e01,
4.0086e01,
4.6659e01,
5.4704e01,
6.4637e01,
7.7015e01,
9.2587e01,
1.1237e02,
1.3775e02,
1.7060e02,
2.1348e02,
2.6973e02,
3.4359e02,
4.3989e02,
5.6292e02,
7.1363e02,
8.8448e02,
1.0533e03,
1.1822e03,
1.2312e03,
]
),
)
[docs]
def phase_HalleyMarcus(phase):
"""Halley-Marcus composite dust phase function.
Parameters
----------
phase : float or array
Phase angle.
Returns
-------
phi : float or array
Phase function evaluated at ``phase``.
"""
return splev(phase, _Phi)