ComponentMeasures.java

  1. package org.drip.analytics.output;

  2. /*
  3.  * -*- mode: java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
  4.  */

  5. /*!
  6.  * Copyright (C) 2020 Lakshmi Krishnamurthy
  7.  * Copyright (C) 2019 Lakshmi Krishnamurthy
  8.  * Copyright (C) 2018 Lakshmi Krishnamurthy
  9.  * Copyright (C) 2017 Lakshmi Krishnamurthy
  10.  * Copyright (C) 2016 Lakshmi Krishnamurthy
  11.  * Copyright (C) 2015 Lakshmi Krishnamurthy
  12.  * Copyright (C) 2014 Lakshmi Krishnamurthy
  13.  * Copyright (C) 2013 Lakshmi Krishnamurthy
  14.  * Copyright (C) 2012 Lakshmi Krishnamurthy
  15.  * Copyright (C) 2011 Lakshmi Krishnamurthy
  16.  *
  17.  *  This file is part of DROP, an open-source library targeting analytics/risk, transaction cost analytics,
  18.  *      asset liability management analytics, capital, exposure, and margin analytics, valuation adjustment
  19.  *      analytics, and portfolio construction analytics within and across fixed income, credit, commodity,
  20.  *      equity, FX, and structured products. It also includes auxiliary libraries for algorithm support,
  21.  *      numerical analysis, numerical optimization, spline builder, model validation, statistical learning,
  22.  *      and computational support.
  23.  *  
  24.  *      https://lakshmidrip.github.io/DROP/
  25.  *  
  26.  *  DROP is composed of three modules:
  27.  *  
  28.  *  - DROP Product Core - https://lakshmidrip.github.io/DROP-Product-Core/
  29.  *  - DROP Portfolio Core - https://lakshmidrip.github.io/DROP-Portfolio-Core/
  30.  *  - DROP Computational Core - https://lakshmidrip.github.io/DROP-Computational-Core/
  31.  *
  32.  *  DROP Product Core implements libraries for the following:
  33.  *  - Fixed Income Analytics
  34.  *  - Loan Analytics
  35.  *  - Transaction Cost Analytics
  36.  *
  37.  *  DROP Portfolio Core implements libraries for the following:
  38.  *  - Asset Allocation Analytics
  39.  *  - Asset Liability Management Analytics
  40.  *  - Capital Estimation Analytics
  41.  *  - Exposure Analytics
  42.  *  - Margin Analytics
  43.  *  - XVA Analytics
  44.  *
  45.  *  DROP Computational Core implements libraries for the following:
  46.  *  - Algorithm Support
  47.  *  - Computation Support
  48.  *  - Function Analysis
  49.  *  - Model Validation
  50.  *  - Numerical Analysis
  51.  *  - Numerical Optimizer
  52.  *  - Spline Builder
  53.  *  - Statistical Learning
  54.  *
  55.  *  Documentation for DROP is Spread Over:
  56.  *
  57.  *  - Main                     => https://lakshmidrip.github.io/DROP/
  58.  *  - Wiki                     => https://github.com/lakshmiDRIP/DROP/wiki
  59.  *  - GitHub                   => https://github.com/lakshmiDRIP/DROP
  60.  *  - Repo Layout Taxonomy     => https://github.com/lakshmiDRIP/DROP/blob/master/Taxonomy.md
  61.  *  - Javadoc                  => https://lakshmidrip.github.io/DROP/Javadoc/index.html
  62.  *  - Technical Specifications => https://github.com/lakshmiDRIP/DROP/tree/master/Docs/Internal
  63.  *  - Release Versions         => https://lakshmidrip.github.io/DROP/version.html
  64.  *  - Community Credits        => https://lakshmidrip.github.io/DROP/credits.html
  65.  *  - Issues Catalog           => https://github.com/lakshmiDRIP/DROP/issues
  66.  *  - JUnit                    => https://lakshmidrip.github.io/DROP/junit/index.html
  67.  *  - Jacoco                   => https://lakshmidrip.github.io/DROP/jacoco/index.html
  68.  *
  69.  *  Licensed under the Apache License, Version 2.0 (the "License");
  70.  *      you may not use this file except in compliance with the License.
  71.  *  
  72.  *  You may obtain a copy of the License at
  73.  *      http://www.apache.org/licenses/LICENSE-2.0
  74.  *  
  75.  *  Unless required by applicable law or agreed to in writing, software
  76.  *      distributed under the License is distributed on an "AS IS" BASIS,
  77.  *      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  78.  *  
  79.  *  See the License for the specific language governing permissions and
  80.  *      limitations under the License.
  81.  */

  82. /**
  83.  * <i>ComponentMeasures</i> is the place holder for analytical single component output measures, optionally
  84.  * across scenarios. It contains measure maps for the following scenarios:
  85.  *
  86.  *  <br><br>
  87.  *  <ul>
  88.  *      <li>
  89.  *          Unadjusted Base IR/credit curves
  90.  *      </li>
  91.  *      <li>
  92.  *          Flat delta/gamma bump measure maps for IR/credit bump curves
  93.  *      </li>
  94.  *      <li>
  95.  *          Tenor bump double maps for IR/credit curves
  96.  *      </li>
  97.  *      <li>
  98.  *          Flat/recovery bumped measure maps for recovery bumped credit curves
  99.  *      </li>
  100.  *      <li>
  101.  *          Measure Maps generated for Custom Scenarios
  102.  *      </li>
  103.  *      <li>
  104.  *          Accessor Functions for the above fields
  105.  *      </li>
  106.  *      <li>
  107.  *          Serialize into and de-serialize out of byte arrays
  108.  *      </li>
  109.  *  </ul>
  110.  *
  111.  *  <br><br>
  112.  *  <ul>
  113.  *      <li><b>Module </b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/ProductCore.md">Product Core Module</a></li>
  114.  *      <li><b>Library</b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/FixedIncomeAnalyticsLibrary.md">Fixed Income Analytics</a></li>
  115.  *      <li><b>Project</b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/src/main/java/org/drip/analytics/README.md">Date, Cash Flow, and Cash Flow Period Measure Generation Utilities</a></li>
  116.  *      <li><b>Package</b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/src/main/java/org/drip/analytics/output/README.md">Period Product Targeted Valuation Measures</a></li>
  117.  *  </ul>
  118.  *
  119.  * @author Lakshmi Krishnamurthy
  120.  */

  121. public class ComponentMeasures {
  122.     private double _dblCalcTime = java.lang.Double.NaN;
  123.     private org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double> _mapBaseMeasures = null;
  124.     private org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double> _mapFlatIRDeltaMeasures =
  125.         null;
  126.     private org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double> _mapFlatIRGammaMeasures =
  127.         null;
  128.     private org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double> _mapFlatRRDeltaMeasures =
  129.         null;
  130.     private org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double> _mapFlatRRGammaMeasures =
  131.         null;
  132.     private org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double> _mapFlatCreditDeltaMeasures =
  133.         null;
  134.     private org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double> _mapFlatCreditGammaMeasures =
  135.         null;
  136.     private
  137.         org.drip.analytics.support.CaseInsensitiveTreeMap<org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double>>
  138.             _mmTenorIRDeltaMeasures = null;
  139.     private
  140.         org.drip.analytics.support.CaseInsensitiveTreeMap<org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double>>
  141.             _mmTenorIRGammaMeasures = null;
  142.     private
  143.         org.drip.analytics.support.CaseInsensitiveTreeMap<org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double>>
  144.             _mmTenorCreditDeltaMeasures = null;
  145.     private
  146.         org.drip.analytics.support.CaseInsensitiveTreeMap<org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double>>
  147.             _mmTenorCreditGammaMeasures = null;
  148.     private
  149.         org.drip.analytics.support.CaseInsensitiveTreeMap<org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double>>
  150.             _mmTenorRRDeltaMeasures = null;
  151.     private
  152.         org.drip.analytics.support.CaseInsensitiveTreeMap<org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double>>
  153.             _mmTenorRRGammaMeasures = null;
  154.     private
  155.         org.drip.analytics.support.CaseInsensitiveTreeMap<org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double>>
  156.             _mmCustomMeasures = null;

  157.     /**
  158.      * Empty constructor - all members initialized to NaN or null
  159.      */

  160.     public ComponentMeasures()
  161.     {
  162.     }

  163.     /**
  164.      * Retrieve the Calculation Time
  165.      *
  166.      * @return The Calculation Time
  167.      */

  168.     public double calcTime()
  169.     {
  170.         return _dblCalcTime;
  171.     }

  172.     /**
  173.      * Set the Calculation Time
  174.      *
  175.      * @param dblCalcTime The Calculation Time
  176.      *
  177.      * @return TRUE - The Calculation Time Successfully Set
  178.      */

  179.     public boolean setCalcTime (
  180.         final double dblCalcTime)
  181.     {
  182.         if (!org.drip.numerical.common.NumberUtil.IsValid (dblCalcTime)) return false;

  183.         _dblCalcTime = dblCalcTime;
  184.         return true;
  185.     }

  186.     /**
  187.      * Retrieve the Base Measure Map
  188.      *
  189.      * @return The Base Measure Map
  190.      */

  191.     public org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double> baseMeasures()
  192.     {
  193.         return _mapBaseMeasures;
  194.     }

  195.     /**
  196.      * Set the Base Measures Map
  197.      *
  198.      * @param mapBaseMeasures The Base Measures Map
  199.      *
  200.      * @return TRUE - The Base Measures Map Successfully Set
  201.      */

  202.     public boolean setBaseMeasures (
  203.         final org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double> mapBaseMeasures)
  204.     {
  205.         if (null == mapBaseMeasures || 0 == mapBaseMeasures.size()) return false;

  206.         _mapBaseMeasures = mapBaseMeasures;
  207.         return true;
  208.     }

  209.     /**
  210.      * Retrieve the Flat IR Delta Measure Map
  211.      *
  212.      * @return The Flat IR Delta Measure Map
  213.      */

  214.     public org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double> flatIRDeltaMeasures()
  215.     {
  216.         return _mapFlatIRDeltaMeasures;
  217.     }

  218.     /**
  219.      * Set the Flat IR Delta Measures Map
  220.      *
  221.      * @param mapFlatIRDeltaMeasures The Flat IR Delta Measures Map
  222.      *
  223.      * @return TRUE - The Flat IR Delta Measures Map Successfully Set
  224.      */

  225.     public boolean setFlatIRDeltaMeasures (
  226.         final org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double> mapFlatIRDeltaMeasures)
  227.     {
  228.         if (null == mapFlatIRDeltaMeasures || 0 == mapFlatIRDeltaMeasures.size()) return false;

  229.         _mapFlatIRDeltaMeasures = mapFlatIRDeltaMeasures;
  230.         return true;
  231.     }

  232.     /**
  233.      * Retrieve the Flat IR Gamma Measure Map
  234.      *
  235.      * @return The Flat IR Gamma Measure Map
  236.      */

  237.     public org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double> flatIRGammaMeasures()
  238.     {
  239.         return _mapFlatIRGammaMeasures;
  240.     }

  241.     /**
  242.      * Set the Flat IR Gamma Measures Map
  243.      *
  244.      * @param mapFlatIRGammaMeasures The Flat IR Gamma Measures Map
  245.      *
  246.      * @return TRUE - The Flat IR Gamma Measures Map Successfully Set
  247.      */

  248.     public boolean setFlatIRGammaMeasures (
  249.         final org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double> mapFlatIRGammaMeasures)
  250.     {
  251.         if (null == mapFlatIRGammaMeasures || 0 == mapFlatIRGammaMeasures.size()) return false;

  252.         _mapFlatIRGammaMeasures = mapFlatIRGammaMeasures;
  253.         return true;
  254.     }

  255.     /**
  256.      * Retrieve the Flat RR Delta Measure Map
  257.      *
  258.      * @return The Flat RR Delta Measure Map
  259.      */

  260.     public org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double> flatRRDeltaMeasures()
  261.     {
  262.         return _mapFlatRRDeltaMeasures;
  263.     }

  264.     /**
  265.      * Set the Flat RR Delta Measures Map
  266.      *
  267.      * @param mapFlatRRDeltaMeasures The Flat RR Delta Measures Map
  268.      *
  269.      * @return TRUE - The Flat RR Delta Measures Map Successfully Set
  270.      */

  271.     public boolean setFlatRRDeltaMeasures (
  272.         final org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double> mapFlatRRDeltaMeasures)
  273.     {
  274.         if (null == mapFlatRRDeltaMeasures || 0 == mapFlatRRDeltaMeasures.size()) return false;

  275.         _mapFlatRRDeltaMeasures = mapFlatRRDeltaMeasures;
  276.         return true;
  277.     }

  278.     /**
  279.      * Retrieve the Flat RR Gamma Measure Map
  280.      *
  281.      * @return The Flat RR Gamma Measure Map
  282.      */

  283.     public org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double> flatRRGammaMeasures()
  284.     {
  285.         return _mapFlatRRGammaMeasures;
  286.     }

  287.     /**
  288.      * Set the Flat RR Gamma Measures Map
  289.      *
  290.      * @param mapFlatRRGammaMeasures The Flat RR Gamma Measures Map
  291.      *
  292.      * @return TRUE - The Flat RR Gamma Measures Map Successfully Set
  293.      */

  294.     public boolean setFlatRRGammaMeasures (
  295.         final org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double> mapFlatRRGammaMeasures)
  296.     {
  297.         if (null == mapFlatRRGammaMeasures || 0 == mapFlatRRGammaMeasures.size()) return false;

  298.         _mapFlatRRGammaMeasures = mapFlatRRGammaMeasures;
  299.         return true;
  300.     }

  301.     /**
  302.      * Retrieve the Flat Credit Delta Measure Map
  303.      *
  304.      * @return The Flat Credit Delta Measure Map
  305.      */

  306.     public org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double> flatCreditDeltaMeasures()
  307.     {
  308.         return _mapFlatCreditDeltaMeasures;
  309.     }

  310.     /**
  311.      * Set the Flat Credit Delta Measures Map
  312.      *
  313.      * @param mapFlatCreditDeltaMeasures The Flat Credit Delta Measures Map
  314.      *
  315.      * @return TRUE - The Flat Credit Delta Measures Map Successfully Set
  316.      */

  317.     public boolean setFlatCreditDeltaMeasures (
  318.         final org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double> mapFlatCreditDeltaMeasures)
  319.     {
  320.         if (null == mapFlatCreditDeltaMeasures || 0 == mapFlatCreditDeltaMeasures.size()) return false;

  321.         _mapFlatCreditDeltaMeasures = mapFlatCreditDeltaMeasures;
  322.         return true;
  323.     }

  324.     /**
  325.      * Retrieve the Flat Credit Gamma Measure Map
  326.      *
  327.      * @return The Flat Credit Gamma Measure Map
  328.      */

  329.     public org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double> flatCreditGammaMeasures()
  330.     {
  331.         return _mapFlatCreditGammaMeasures;
  332.     }

  333.     /**
  334.      * Set the Flat Credit Gamma Measures Map
  335.      *
  336.      * @param mapFlatCreditGammaMeasures The Flat Credit Gamma Measures Map
  337.      *
  338.      * @return TRUE - The Flat Credit Gamma Measures Map Successfully Set
  339.      */

  340.     public boolean setFlatCreditGammaMeasures (
  341.         final org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double> mapFlatCreditGammaMeasures)
  342.     {
  343.         if (null == mapFlatCreditGammaMeasures || 0 == mapFlatCreditGammaMeasures.size()) return false;

  344.         _mapFlatCreditGammaMeasures = mapFlatCreditGammaMeasures;
  345.         return true;
  346.     }

  347.     /**
  348.      * Retrieve the Tenor IR Delta Double Measure Map
  349.      *
  350.      * @return The Tenor IR Delta Double Measure Map
  351.      */

  352.     public
  353.         org.drip.analytics.support.CaseInsensitiveTreeMap<org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double>>
  354.             tenorIRDeltaMeasures()
  355.     {
  356.         return _mmTenorIRDeltaMeasures;
  357.     }

  358.     /**
  359.      * Set the Tenor IR Delta Double Measures Map
  360.      *
  361.      * @param mmTenorIRDeltaMeasures The Tenor IR Delta Double Measures Map
  362.      *
  363.      * @return TRUE - The Tenor IR Delta Double Measures Map Successfully Set
  364.      */

  365.     public boolean setTenorIRDeltaMeasures (
  366.         final
  367.             org.drip.analytics.support.CaseInsensitiveTreeMap<org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double>>
  368.                 mmTenorIRDeltaMeasures)
  369.     {
  370.         if (null == mmTenorIRDeltaMeasures || 0 == mmTenorIRDeltaMeasures.size()) return false;

  371.         _mmTenorIRDeltaMeasures = mmTenorIRDeltaMeasures;
  372.         return true;
  373.     }

  374.     /**
  375.      * Retrieve the Tenor IR Gamma Double Measure Map
  376.      *
  377.      * @return The Tenor IR Gamma Double Measure Map
  378.      */

  379.     public
  380.         org.drip.analytics.support.CaseInsensitiveTreeMap<org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double>>
  381.             tenorIRGammaMeasures()
  382.     {
  383.         return _mmTenorIRGammaMeasures;
  384.     }

  385.     /**
  386.      * Set the Tenor IR Gamma Double Measures Map
  387.      *
  388.      * @param mmTenorIRGammaMeasures The Tenor IR Gamma Double Measures Map
  389.      *
  390.      * @return TRUE - The Tenor IR Gamma Double Measures Map Successfully Set
  391.      */

  392.     public boolean setTenorIRGammaMeasures (
  393.         final
  394.             org.drip.analytics.support.CaseInsensitiveTreeMap<org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double>>
  395.                 mmTenorIRGammaMeasures)
  396.     {
  397.         if (null == mmTenorIRGammaMeasures || 0 == mmTenorIRGammaMeasures.size()) return false;

  398.         _mmTenorIRGammaMeasures = mmTenorIRGammaMeasures;
  399.         return true;
  400.     }

  401.     /**
  402.      * Retrieve the Tenor Credit Delta Double Measure Map
  403.      *
  404.      * @return The Tenor Credit Delta Double Measure Map
  405.      */

  406.     public
  407.         org.drip.analytics.support.CaseInsensitiveTreeMap<org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double>>
  408.             tenorCreditDeltaMeasures()
  409.     {
  410.         return _mmTenorCreditDeltaMeasures;
  411.     }

  412.     /**
  413.      * Set the Tenor Credit Delta Double Measures Map
  414.      *
  415.      * @param mmTenorCreditDeltaMeasures The Tenor Credit Delta Double Measures Map
  416.      *
  417.      * @return TRUE - The Tenor Credit Delta Double Measures Map Successfully Set
  418.      */

  419.     public boolean setTenorCreditDeltaMeasures (
  420.         final
  421.             org.drip.analytics.support.CaseInsensitiveTreeMap<org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double>>
  422.                 mmTenorCreditDeltaMeasures)
  423.     {
  424.         if (null == mmTenorCreditDeltaMeasures || 0 == mmTenorCreditDeltaMeasures.size()) return false;

  425.         _mmTenorCreditDeltaMeasures = mmTenorCreditDeltaMeasures;
  426.         return true;
  427.     }

  428.     /**
  429.      * Retrieve the Tenor Credit Gamma Double Measure Map
  430.      *
  431.      * @return The Tenor Credit Gamma Double Measure Map
  432.      */

  433.     public
  434.         org.drip.analytics.support.CaseInsensitiveTreeMap<org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double>>
  435.             tenorCreditGammaMeasures()
  436.     {
  437.         return _mmTenorCreditGammaMeasures;
  438.     }

  439.     /**
  440.      * Set the Tenor Credit Gamma Double Measures Map
  441.      *
  442.      * @param mmTenorCreditGammaMeasures The Tenor Credit Gamma Double Measures Map
  443.      *
  444.      * @return TRUE - The Tenor Credit Gamma Double Measures Map Successfully Set
  445.      */

  446.     public boolean setTenorCreditGammaMeasures (
  447.         final
  448.             org.drip.analytics.support.CaseInsensitiveTreeMap<org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double>>
  449.                 mmTenorCreditGammaMeasures)
  450.     {
  451.         if (null == mmTenorCreditGammaMeasures || 0 == mmTenorCreditGammaMeasures.size()) return false;

  452.         _mmTenorCreditGammaMeasures = mmTenorCreditGammaMeasures;
  453.         return true;
  454.     }

  455.     /**
  456.      * Retrieve the Tenor RR Delta Double Measure Map
  457.      *
  458.      * @return The Tenor RR Delta Double Measure Map
  459.      */

  460.     public
  461.         org.drip.analytics.support.CaseInsensitiveTreeMap<org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double>>
  462.             tenorRRDeltaMeasures()
  463.     {
  464.         return _mmTenorRRDeltaMeasures;
  465.     }

  466.     /**
  467.      * Set the Tenor RR Delta Double Measures Map
  468.      *
  469.      * @param mmTenorRRDeltaMeasures The Tenor RR Delta Double Measures Map
  470.      *
  471.      * @return TRUE - The Tenor RR Delta Double Measures Map Successfully Set
  472.      */

  473.     public boolean setTenorRRDeltaMeasures (
  474.         final
  475.             org.drip.analytics.support.CaseInsensitiveTreeMap<org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double>>
  476.                 mmTenorRRDeltaMeasures)
  477.     {
  478.         if (null == mmTenorRRDeltaMeasures || 0 == mmTenorRRDeltaMeasures.size()) return false;

  479.         _mmTenorRRDeltaMeasures = mmTenorRRDeltaMeasures;
  480.         return true;
  481.     }

  482.     /**
  483.      * Retrieve the Tenor RR Gamma Double Measure Map
  484.      *
  485.      * @return The Tenor RR Gamma Double Measure Map
  486.      */

  487.     public
  488.         org.drip.analytics.support.CaseInsensitiveTreeMap<org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double>>
  489.             tenorRRGammaMeasures()
  490.     {
  491.         return _mmTenorRRGammaMeasures;
  492.     }

  493.     /**
  494.      * Set the Tenor RR Gamma Double Measures Map
  495.      *
  496.      * @param mmTenorRRGammaMeasures The Tenor IR Gamma Double Measures Map
  497.      *
  498.      * @return TRUE - The Tenor RR Gamma Double Measures Map Successfully Set
  499.      */

  500.     public boolean setTenorRRGammaMeasures (
  501.         final
  502.             org.drip.analytics.support.CaseInsensitiveTreeMap<org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double>>
  503.                 mmTenorRRGammaMeasures)
  504.     {
  505.         if (null == mmTenorRRGammaMeasures || 0 == mmTenorRRGammaMeasures.size()) return false;

  506.         _mmTenorRRGammaMeasures = mmTenorRRGammaMeasures;
  507.         return true;
  508.     }

  509.     /**
  510.      * Retrieve the Custom Double Measure Map
  511.      *
  512.      * @return The Custom Double Measure Map
  513.      */

  514.     public
  515.         org.drip.analytics.support.CaseInsensitiveTreeMap<org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double>>
  516.             customMeasures()
  517.     {
  518.         return _mmCustomMeasures;
  519.     }

  520.     /**
  521.      * Set the Custom Double Measures Map
  522.      *
  523.      * @param mmCustomMeasures The Custom Double Measures Map
  524.      *
  525.      * @return TRUE - The Custom Double Measures Map Successfully Set
  526.      */

  527.     public boolean setCustomMeasures (
  528.         final
  529.             org.drip.analytics.support.CaseInsensitiveTreeMap<org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.Double>>
  530.                 mmCustomMeasures)
  531.     {
  532.         if (null == mmCustomMeasures || 0 == mmCustomMeasures.size()) return false;

  533.         _mmCustomMeasures = mmCustomMeasures;
  534.         return true;
  535.     }
  536. }