FiniteDifferenceEquityEventProduct.java

package net.finmath.finitedifference.assetderivativevaluation.products;

import net.finmath.finitedifference.assetderivativevaluation.models.FiniteDifferenceEquityModel;

/**
 * Equity finite-difference products with vector-level event conditions.
 *
 * <p>
 * Event times are running times t at which the backward induction first
 * computes the continuation value V(t+,x) and then applies a jump/event rule
 * to obtain V(t-,x).
 * </p>
 *
 * @author Alessandro Gnoatto
 */
public interface FiniteDifferenceEquityEventProduct extends FiniteDifferenceEquityProduct {

	/**
	 * Returns the value.
	 *
	 * @return The value.
	 */
	default double[] getEventTimes() {
		return new double[0];
	}

	/**
	 * Performs the operation.
	 *
	 * @param time The value.
	 * @param valuesAfterEvent The value.
	 * @param model The value.
	 * @return The value.
	 */
	default double[] applyEventCondition(
			final double time,
			final double[] valuesAfterEvent,
			final FiniteDifferenceEquityModel model) {
		return valuesAfterEvent;
	}
}