Source code for pyzeta.core.dynamics.function_systems.integral_provider
"""
TODO.
Authors:\n
- Philipp Schuette\n
"""
from abc import ABC, abstractmethod
from typing import Tuple
from pyzeta.core.pyzeta_types.general import tIntegralVec, tWordVec
[docs]
class IntegralProvider(ABC):
"Abstract base realizing the potentials used in weighted zeta functions."
[docs]
@abstractmethod
def getOrbitIntegrals(self, words: tWordVec) -> tIntegralVec:
"""
Calculate an array of 2d grids containing orbit integrals parallel to
a given array of symbolic words.
:param words: array of symbolic words to calculate orbit integrals for
:return: array of orbit integrals on a 2d grid
"""
@property
@abstractmethod
def integralShape(self) -> Tuple[int, int]:
"""
Return the shape of individual orbit integrals as calculated by the
given provider instance. Usually this returns `(n, n)` for square
and `(n, m)` for non-square arrays of integral values.
:return: shape of individual arrays of calculated integrals
"""