Exemplo n.º 1
0
def test_interpolate_to_keys():
    grid, mid_point = numeric_series()
    interpolated = TimeSeries.interpolate_to_keys(grid, mid_point)
    assert interpolated == mid_point

    assert interpolated._first == mid_point._first
    assert interpolated._last == mid_point._last

    assert interpolated.first == mid_point.first
    assert interpolated.last == mid_point.last

    interpolated = TimeSeries.interpolate_to_keys(mid_point, grid)
    assert interpolated._first == grid.first
    assert interpolated._last == grid.last
    assert interpolated.first == 0.0
    assert interpolated.last == 0.0
Exemplo n.º 2
0
    def wrapped(self, state):
        continuous_gradient = function(self, state)
        gradient_time_series = TimeSeries.from_list(
            continuous_gradient, self.midpoint_grid
        )
        du = TimeSeries.interpolate_to_keys(gradient_time_series, self.time_grid)

        discrete_grad = self.basis.discretize(du.values())

        gradient_norm = (gradient_time_series * du).integrate()
        log.info(f"gradient norm: {gradient_norm}")
        discrete_grad_norm = (
            gradient_time_series
            * TimeSeries.from_list(
                self.basis.extrapolate(discrete_grad), self.time_grid
            )
        ).integrate()
        log.info("discrete gradient norm: {}".format(discrete_grad_norm))
        return discrete_grad