BarycentricRational

class pmrf.models.surrogates.rational.BarycentricRational(support_points: AbstractVariable | Inexact[jaxlib._jax.Array, '...'] = None, weights: AbstractVariable | Inexact[jaxlib._jax.Array, '...'] = None, values: AbstractVariable | Inexact[jaxlib._jax.Array, '...'] = None, *, name: str | None = None, metadata: Any = None, domain: str = 's', z0: Any = 50.0)

Bases: AbstractSingleDomain

(experimental) A highly numerically stable rational model defined by a barycentric expansion: H(s) = [ sum( w_i * f_i / (s - s_i) ) ] / [ sum( w_i / (s - s_i) ) ]

Parameters:
  • support_points (Param) – The complex support points (s_i). Shape: (num_points,)

  • weights (Param) – The barycentric weights (w_i). Shape: (num_points,)

  • values (Param) – The function values at the support points (f_i). Shape: (num_points,) for scalars, or (num_points, N, N) for port matrices.

primary_matrix(freq: Frequency) Array

Retrieve the primary matrix and apply impedance renormalization if necessary.

Parameters:
  • freq (Frequency) – The frequency grid.

  • **kwargs – Additional arguments, specifically z0 for S-parameter renormalization.

Returns:

The domain matrix, renormalized to the requested z0 if applicable.

Return type:

jax.numpy.ndarray

support_points: AbstractVariable | Inexact[jaxlib._jax.Array, '...'] = None

Complex support points

values: AbstractVariable | Inexact[jaxlib._jax.Array, '...'] = None

Function values at support points

weights: AbstractVariable | Inexact[jaxlib._jax.Array, '...'] = None

Barycentric weights