/** * Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.strata.math.impl.minimization; import java.util.function.Function; /** * Interface for classes that extends the functionality of {@link Minimizer} by providing a method that takes a gradient function. * @param <F> The type of the function to minimize * @param <G> The type of the gradient function * @param <S> The type of the start position of the minimization */ public interface MinimizerWithGradient<F extends Function<S, ?>, G extends Function<S, ?>, S> extends Minimizer<F, S> { /** * @param function The function to minimize, not null * @param gradient The gradient function, not null * @param startPosition The start position, not null * @return The minimum */ S minimize(F function, G gradient, S startPosition); }