public static object _CreatePCACurveSimulator(string objectName, object[,] anchorDate, object[,] initialRates, object[,] tenors, object[,] components, object[,] vols, object[,] multiplier, object[,] useRelative, object[,] floorAtZero) { try { Date _anchorDate = XU.GetDate0D(anchorDate, "anchorDate"); Double[] _initialRates = XU.GetDouble1D(initialRates, "initialRates"); Tenor[] _tenors = XU.GetTenor1D(tenors, "tenors"); Double[,] _components = XU.GetDouble2D(components, "components"); Double[] _vols = XU.GetDouble1D(vols, "vols"); Double _multiplier = XU.GetDouble0D(multiplier, "multiplier"); Boolean _useRelative = XU.GetBoolean0D(useRelative, "useRelative"); Boolean _floorAtZero = XU.GetBoolean0D(floorAtZero, "floorAtZero"); Object _result = XLCurves.CreatePCACurveSimulator(_anchorDate, _initialRates, _tenors, _components, _vols, _multiplier, _useRelative, _floorAtZero); return(XU.AddObject(objectName, _result)); } catch (Exception e) { return(XU.Error0D(e)); } }
public static object[,] _PCACurveSimulatorGetRates(object[,] simulator, object[,] simulationDates, object[,] requiredTenors) { try { PCACurveSimulator _simulator = XU.GetObject0D <PCACurveSimulator>(simulator, "simulator"); Date[] _simulationDates = XU.GetDate1D(simulationDates, "simulationDates"); Tenor[] _requiredTenors = XU.GetTenor1D(requiredTenors, "requiredTenors"); Double[,] _result = XLCurves.PCACurveSimulatorGetRates(_simulator, _simulationDates, _requiredTenors); return(XU.ConvertToObjects(_result)); } catch (Exception e) { return(XU.Error2D(e)); } }