public final class CrossGammaParameterSensitivities extends Object implements FxConvertible<CrossGammaParameterSensitivities>, org.joda.beans.ImmutableBean, Serializable
Parameter sensitivity is the sensitivity of a value to the parameters of
parameterized market data objects that are used to determine the value.
The main application is the parameter sensitivities for curves. Thus ParameterizedData
is typically Curve
.
The sensitivity is expressed as a single entry of second order sensitivities for piece of parameterized market data.
The cross-gamma between different ParameterizedData
is not represented.
The sensitivity represents a monetary value in the specified currency.
The order of the list has no specific meaning.
One way of viewing this class is as a Map
from a specific sensitivity key to
DoubleMatrix
sensitivity values. However, instead of being structured as a Map
,
the data is structured as a List
, with the key and value in each entry.
Modifier and Type | Class and Description |
---|---|
static class |
CrossGammaParameterSensitivities.Meta
The meta-bean for
CrossGammaParameterSensitivities . |
Modifier and Type | Method and Description |
---|---|
CrossGammaParameterSensitivities |
combinedWith(CrossGammaParameterSensitivities other)
Combines this parameter sensitivities with another instance.
|
CrossGammaParameterSensitivities |
combinedWith(CrossGammaParameterSensitivity other)
Combines this parameter sensitivities with another instance.
|
CrossGammaParameterSensitivities |
convertedTo(Currency resultCurrency,
FxRateProvider rateProvider)
Converts the sensitivities in this instance to an equivalent in the specified currency.
|
CurrencyParameterSensitivities |
diagonal()
Returns the diagonal part of the sensitivity values.
|
static CrossGammaParameterSensitivities |
empty()
An empty sensitivity instance.
|
boolean |
equals(Object obj) |
boolean |
equalWithTolerance(CrossGammaParameterSensitivities other,
double tolerance)
Checks if this sensitivity equals another within the specified tolerance.
|
Optional<CrossGammaParameterSensitivity> |
findSensitivity(MarketDataName<?> name,
Currency currency)
Finds a single sensitivity instance by name and currency.
|
ImmutableList<CrossGammaParameterSensitivity> |
getSensitivities()
Gets the parameter sensitivities.
|
CrossGammaParameterSensitivity |
getSensitivity(MarketDataName<?> name,
Currency currency)
Gets a single sensitivity instance by name and currency.
|
CrossGammaParameterSensitivity |
getSensitivity(MarketDataName<?> nameFirst,
MarketDataName<?> nameSecond,
Currency currency)
Gets a single sensitivity instance by names and currency.
|
int |
hashCode() |
CrossGammaParameterSensitivities |
mapSensitivities(DoubleUnaryOperator operator)
Returns an instance with the specified operation applied to the sensitivity values.
|
static CrossGammaParameterSensitivities.Meta |
meta()
The meta-bean for
CrossGammaParameterSensitivities . |
CrossGammaParameterSensitivities.Meta |
metaBean() |
CrossGammaParameterSensitivities |
multipliedBy(double factor)
Returns an instance with the sensitivity values multiplied by the specified factor.
|
static CrossGammaParameterSensitivities |
of(CrossGammaParameterSensitivity... sensitivities)
Obtains an instance from an array of sensitivity entries.
|
static CrossGammaParameterSensitivities |
of(CrossGammaParameterSensitivity sensitivity)
Obtains an instance from a single sensitivity entry.
|
static CrossGammaParameterSensitivities |
of(List<? extends CrossGammaParameterSensitivity> sensitivities)
Obtains an instance from a list of sensitivity entries.
|
int |
size()
Gets the number of sensitivity entries.
|
String |
toString() |
MultiCurrencyAmount |
total()
Returns the total of the sensitivity values.
|
CurrencyAmount |
total(Currency resultCurrency,
FxRateProvider rateProvider)
Returns the total of the sensitivity values.
|
public static CrossGammaParameterSensitivities empty()
public static CrossGammaParameterSensitivities of(CrossGammaParameterSensitivity sensitivity)
sensitivity
- the sensitivity entrypublic static CrossGammaParameterSensitivities of(CrossGammaParameterSensitivity... sensitivities)
The order of sensitivities is typically unimportant, however it is retained
and exposed in equals(Object)
.
sensitivities
- the sensitivitiespublic static CrossGammaParameterSensitivities of(List<? extends CrossGammaParameterSensitivity> sensitivities)
The order of sensitivities is typically unimportant, however it is retained
and exposed in equals(Object)
.
sensitivities
- the list of sensitivity entriespublic int size()
public CrossGammaParameterSensitivity getSensitivity(MarketDataName<?> name, Currency currency)
name
- the curve name to findcurrency
- the currency to findIllegalArgumentException
- if the name and currency do not match an entrypublic CrossGammaParameterSensitivity getSensitivity(MarketDataName<?> nameFirst, MarketDataName<?> nameSecond, Currency currency)
This returns the sensitivity of the market data (nameFirst
) delta to another market data (nameSecond
).
The result is sensitive to the order of nameFirst
and nameSecond
.
nameFirst
- the namenameSecond
- the namecurrency
- the currencyIllegalArgumentException
- if the name and currency do not match an entrypublic Optional<CrossGammaParameterSensitivity> findSensitivity(MarketDataName<?> name, Currency currency)
If the sensitivity is not found, optional empty is returned.
name
- the curve name to findcurrency
- the currency to findpublic CrossGammaParameterSensitivities combinedWith(CrossGammaParameterSensitivity other)
This returns a new sensitivity instance with the specified sensitivity added. This instance is immutable and unaffected by this method. The result may contain duplicate parameter sensitivities.
other
- the other parameter sensitivitypublic CrossGammaParameterSensitivities combinedWith(CrossGammaParameterSensitivities other)
This returns a new sensitivity instance with a combined list of parameter sensitivities. This instance is immutable and unaffected by this method. The result may contain duplicate parameter sensitivities.
other
- the other parameter sensitivitiespublic CrossGammaParameterSensitivities convertedTo(Currency resultCurrency, FxRateProvider rateProvider)
Any FX conversion that is required will use rates from the provider.
convertedTo
in interface FxConvertible<CrossGammaParameterSensitivities>
resultCurrency
- the currency of the resultrateProvider
- the provider of FX ratesRuntimeException
- if no FX rate could be foundpublic CurrencyAmount total(Currency resultCurrency, FxRateProvider rateProvider)
The result is the total of all values, as converted to the specified currency. Any FX conversion that is required will use rates from the provider.
resultCurrency
- the currency of the resultrateProvider
- the provider of FX ratesRuntimeException
- if no FX rate could be foundpublic MultiCurrencyAmount total()
The result is the total of all values, in whatever currency they are defined.
public CurrencyParameterSensitivities diagonal()
public CrossGammaParameterSensitivities multipliedBy(double factor)
The result will consist of the same entries, but with each sensitivity value multiplied. This instance is immutable and unaffected by this method.
factor
- the multiplicative factorpublic CrossGammaParameterSensitivities mapSensitivities(DoubleUnaryOperator operator)
The result will consist of the same entries, but with the operator applied to each sensitivity value. This instance is immutable and unaffected by this method.
This is used to apply a mathematical operation to the sensitivity values. For example, the operator could multiply the sensitivities by a constant, or take the inverse.
inverse = base.mapSensitivities(value -> 1 / value);
operator
- the operator to be applied to the sensitivitiespublic boolean equalWithTolerance(CrossGammaParameterSensitivities other, double tolerance)
This returns true if the two instances have the same keys, with arrays of the
same length, where the double
values are equal within the specified tolerance.
other
- the other sensitivitytolerance
- the tolerancepublic static CrossGammaParameterSensitivities.Meta meta()
CrossGammaParameterSensitivities
.public CrossGammaParameterSensitivities.Meta metaBean()
metaBean
in interface org.joda.beans.Bean
public ImmutableList<CrossGammaParameterSensitivity> getSensitivities()
Each entry includes details of the ParameterizedData
it relates to.
Copyright 2009-Present by OpenGamma Inc. and individual contributors
Apache v2 licensed
Additional documentation can be found at strata.opengamma.io.