@Override protected Object propertyGet(Bean bean, String propertyName, boolean quiet) { switch (propertyName.hashCode()) { case 97440432: // first return ((ObjDoublePair<?>) bean).getFirst(); case -906279820: // second return ((ObjDoublePair<?>) bean).getSecond(); } return super.propertyGet(bean, propertyName, quiet); }
@Override public ObjDoublePair<A> build() { return new ObjDoublePair<>( first, second); }
public void coverage() { ObjDoublePair<String> test = ObjDoublePair.of("1", 1.7d); TestHelper.coverImmutableBean(test); }
for (int i = 0; i < xValues.size(); i++) { ParameterMetadata pm = metadata.getParameterMetadata(i); sorted.put(DoublesPair.of(xValues.get(i), yValues.get(i)), ObjDoublePair.of(pm, zValues.get(i))); sortedX[pos] = entry.getKey().getFirst(); sortedY[pos] = entry.getKey().getSecond(); sortedZ[pos] = entry.getValue().getSecond(); sortedPm[pos] = entry.getValue().getFirst(); pos++;
public void test_equals() { ObjDoublePair<String> a = ObjDoublePair.of("1", 2.0d); ObjDoublePair<String> a2 = ObjDoublePair.of("1", 2.0d); ObjDoublePair<String> b = ObjDoublePair.of("1", 3.0d); ObjDoublePair<String> c = ObjDoublePair.of("2", 2.0d); ObjDoublePair<String> d = ObjDoublePair.of("2", 3.0d); assertEquals(a.equals(a), true); assertEquals(a.equals(b), false); assertEquals(a.equals(c), false); assertEquals(a.equals(d), false); assertEquals(a.equals(a2), true); assertEquals(b.equals(a), false); assertEquals(b.equals(b), true); assertEquals(b.equals(c), false); assertEquals(b.equals(d), false); assertEquals(c.equals(a), false); assertEquals(c.equals(b), false); assertEquals(c.equals(c), true); assertEquals(c.equals(d), false); assertEquals(d.equals(a), false); assertEquals(d.equals(b), false); assertEquals(d.equals(c), false); assertEquals(d.equals(d), true); }
private ObjDoublePair<PointSensitivityBuilder> compositionFactorAndSensitivityCutoff() { OvernightIndexObservation obs = computation.observeOn(lastFixingNonCutoff); if (!nextFixing.isAfter(lastFixingNonCutoff)) { double rate = rates.rate(obs); double compositionFactor = 1.0d; double compositionFactorDerivative = 0.0; for (int i = 0; i < cutoffOffset - 1; i++) { compositionFactor *= 1.0d + accrualFactorCutoff[i] * rate; compositionFactorDerivative += accrualFactorCutoff[i] / (1.0d + accrualFactorCutoff[i] * rate); } compositionFactorDerivative *= compositionFactor; PointSensitivityBuilder rateSensitivity = cutoffOffset <= 1 ? PointSensitivityBuilder.none() : rates.ratePointSensitivity(obs); rateSensitivity = rateSensitivity.multipliedBy(compositionFactorDerivative); return ObjDoublePair.of(rateSensitivity, compositionFactor); } return ObjDoublePair.of(PointSensitivityBuilder.none(), 1.0d); }
private PointSensitivityBuilder calculateRateSensitivity() { double factor = pastCompositionFactor() * valuationCompositionFactor() / accrualFactorTotal; ObjDoublePair<PointSensitivityBuilder> compositionFactorAndSensitivityNonCutoff = compositionFactorAndSensitivityNonCutoff(); ObjDoublePair<PointSensitivityBuilder> compositionFactorAndSensitivityCutoff = compositionFactorAndSensitivityCutoff(); PointSensitivityBuilder combinedPointSensitivity = compositionFactorAndSensitivityNonCutoff.getFirst() .multipliedBy(compositionFactorAndSensitivityCutoff.getSecond() * factor); combinedPointSensitivity = combinedPointSensitivity.combinedWith(compositionFactorAndSensitivityCutoff .getFirst().multipliedBy(compositionFactorAndSensitivityNonCutoff.getSecond() * factor)); return combinedPointSensitivity; }
public void test_compareTo() { ObjDoublePair<String> p12 = ObjDoublePair.of("1", 2d); ObjDoublePair<String> p13 = ObjDoublePair.of("1", 3d); ObjDoublePair<String> p21 = ObjDoublePair.of("2", 1d); assertTrue(p12.compareTo(p12) == 0); assertTrue(p12.compareTo(p13) < 0); assertTrue(p12.compareTo(p21) < 0); assertTrue(p13.compareTo(p12) > 0); assertTrue(p13.compareTo(p13) == 0); assertTrue(p13.compareTo(p21) < 0); assertTrue(p21.compareTo(p12) > 0); assertTrue(p21.compareTo(p13) > 0); assertTrue(p21.compareTo(p21) == 0); }
private ObjDoublePair<PointSensitivityBuilder> compositionFactorAndSensitivityNonCutoff() { if (!nextFixing.isAfter(lastFixingNonCutoff)) { OvernightIndexObservation obs = computation.observeOn(nextFixing); LocalDate startDate = obs.getEffectiveDate(); LocalDate endDate = computation.calculateMaturityFromFixing(lastFixingNonCutoff); double accrualFactor = dayCount.yearFraction(startDate, endDate); double rate = rates.periodRate(obs, endDate); PointSensitivityBuilder rateSensitivity = rates.periodRatePointSensitivity(obs, endDate); rateSensitivity = rateSensitivity.multipliedBy(accrualFactor); return ObjDoublePair.of(rateSensitivity, 1.0d + accrualFactor * rate); } return ObjDoublePair.of(PointSensitivityBuilder.none(), 1.0d); }
/** * Obtains an instance from an {@code Object} and a {@code double}. * * @param <A> the first element type * @param first the first element * @param second the second element * @return a pair formed from the two parameters */ public static <A> ObjDoublePair<A> of(A first, double second) { return new ObjDoublePair<A>(first, second); }
/** * Obtains an instance from a {@code Pair}. * * @param <A> the first element type * @param pair the pair to convert * @return a pair formed by extracting values from the pair */ public static <A> ObjDoublePair<A> ofPair(Pair<A, Double> pair) { ArgChecker.notNull(pair, "pair"); return new ObjDoublePair<A>(pair.getFirst(), pair.getSecond()); }