/*
  Copyright (C) 2016 -2017 Jerry Jin
*/

#include <v8.h>
#include <node.h>
#include <nan.h>

#include "quantlibnode.hpp"

#include <oh/repository.hpp>
#include <oh/enumerations/typefactory.hpp>
#include <oh/enumerations/enumregistry.hpp>
#include <qlo/enumerations/register/register_all.hpp>

using namespace node;
using namespace v8;

NAN_MODULE_INIT(init){

  static ObjectHandler::Repository repository;
  static ObjectHandler::ProcessorFactory processorFactory;
  static ObjectHandler::EnumTypeRegistry enumTypeRegistry;
  static ObjectHandler::EnumClassRegistry enumClassRegistry;
  static ObjectHandler::EnumPairRegistry enumPairRegistry;

  QuantLibAddin::registerEnumerations();

  Nan::SetMethod(target, "AbcdFunction", QuantLibNode::AbcdFunction);
  Nan::SetMethod(target, "AbcdCalibration", QuantLibNode::AbcdCalibration);
  Nan::SetMethod(target, "AbcdFunctionInstantaneousValue", QuantLibNode::AbcdFunctionInstantaneousValue);
  Nan::SetMethod(target, "AbcdFunctionInstantaneousCovariance", QuantLibNode::AbcdFunctionInstantaneousCovariance);
  Nan::SetMethod(target, "AbcdFunctionInstantaneousVariance", QuantLibNode::AbcdFunctionInstantaneousVariance);
  Nan::SetMethod(target, "AbcdFunctionInstantaneousVolatility", QuantLibNode::AbcdFunctionInstantaneousVolatility);
  Nan::SetMethod(target, "AbcdFunctionCovariance", QuantLibNode::AbcdFunctionCovariance);
  Nan::SetMethod(target, "AbcdFunctionVariance", QuantLibNode::AbcdFunctionVariance);
  Nan::SetMethod(target, "AbcdFunctionVolatility", QuantLibNode::AbcdFunctionVolatility);
  Nan::SetMethod(target, "AbcdFunctionShortTermVolatility", QuantLibNode::AbcdFunctionShortTermVolatility);
  Nan::SetMethod(target, "AbcdFunctionLongTermVolatility", QuantLibNode::AbcdFunctionLongTermVolatility);
  Nan::SetMethod(target, "AbcdFunctionMaximumLocation", QuantLibNode::AbcdFunctionMaximumLocation);
  Nan::SetMethod(target, "AbcdFunctionMaximumVolatility", QuantLibNode::AbcdFunctionMaximumVolatility);
  Nan::SetMethod(target, "AbcdFunctionA", QuantLibNode::AbcdFunctionA);
  Nan::SetMethod(target, "AbcdFunctionB", QuantLibNode::AbcdFunctionB);
  Nan::SetMethod(target, "AbcdFunctionC", QuantLibNode::AbcdFunctionC);
  Nan::SetMethod(target, "AbcdFunctionD", QuantLibNode::AbcdFunctionD);
  Nan::SetMethod(target, "AbcdDFunction", QuantLibNode::AbcdDFunction);
  Nan::SetMethod(target, "AbcdCalibrationCompute", QuantLibNode::AbcdCalibrationCompute);
  Nan::SetMethod(target, "AbcdCalibrationK", QuantLibNode::AbcdCalibrationK);
  Nan::SetMethod(target, "AbcdCalibrationError", QuantLibNode::AbcdCalibrationError);
  Nan::SetMethod(target, "AbcdCalibrationMaxError", QuantLibNode::AbcdCalibrationMaxError);
  Nan::SetMethod(target, "AbcdCalibrationEndCriteria", QuantLibNode::AbcdCalibrationEndCriteria);
  Nan::SetMethod(target, "AbcdCalibrationA", QuantLibNode::AbcdCalibrationA);
  Nan::SetMethod(target, "AbcdCalibrationB", QuantLibNode::AbcdCalibrationB);
  Nan::SetMethod(target, "AbcdCalibrationC", QuantLibNode::AbcdCalibrationC);
  Nan::SetMethod(target, "AbcdCalibrationD", QuantLibNode::AbcdCalibrationD);
  Nan::SetMethod(target, "AccountingEngine", QuantLibNode::AccountingEngine);
  Nan::SetMethod(target, "AccountingEngineMultiplePathValues", QuantLibNode::AccountingEngineMultiplePathValues);
  Nan::SetMethod(target, "AlphaFormInverseLinear", QuantLibNode::AlphaFormInverseLinear);
  Nan::SetMethod(target, "AlphaFormLinearHyperbolic", QuantLibNode::AlphaFormLinearHyperbolic);
  Nan::SetMethod(target, "AlphaFormOperator", QuantLibNode::AlphaFormOperator);
  Nan::SetMethod(target, "AlphaFormSetAlpha", QuantLibNode::AlphaFormSetAlpha);
  Nan::SetMethod(target, "AssetSwap", QuantLibNode::AssetSwap);
  Nan::SetMethod(target, "AssetSwap2", QuantLibNode::AssetSwap2);
  Nan::SetMethod(target, "AssetSwapBondLegAnalysis", QuantLibNode::AssetSwapBondLegAnalysis);
  Nan::SetMethod(target, "AssetSwapFloatingLegAnalysis", QuantLibNode::AssetSwapFloatingLegAnalysis);
  Nan::SetMethod(target, "AssetSwapFairSpread", QuantLibNode::AssetSwapFairSpread);
  Nan::SetMethod(target, "AssetSwapFloatingLegBPS", QuantLibNode::AssetSwapFloatingLegBPS);
  Nan::SetMethod(target, "AssetSwapFairCleanPrice", QuantLibNode::AssetSwapFairCleanPrice);
  Nan::SetMethod(target, "AssetSwapFairNonParRepayment", QuantLibNode::AssetSwapFairNonParRepayment);
  Nan::SetMethod(target, "AssetSwapParSwap", QuantLibNode::AssetSwapParSwap);
  Nan::SetMethod(target, "AssetSwapPayBondCoupon", QuantLibNode::AssetSwapPayBondCoupon);
  Nan::SetMethod(target, "GaussianLHPLossmodel", QuantLibNode::GaussianLHPLossmodel);
  Nan::SetMethod(target, "IHGaussPoolLossModel", QuantLibNode::IHGaussPoolLossModel);
  Nan::SetMethod(target, "IHStudentPoolLossModel", QuantLibNode::IHStudentPoolLossModel);
  Nan::SetMethod(target, "GBinomialLossmodel", QuantLibNode::GBinomialLossmodel);
  Nan::SetMethod(target, "TBinomialLossmodel", QuantLibNode::TBinomialLossmodel);
  Nan::SetMethod(target, "BaseCorrelationLossModel", QuantLibNode::BaseCorrelationLossModel);
  Nan::SetMethod(target, "GMCLossModel", QuantLibNode::GMCLossModel);
  Nan::SetMethod(target, "GRandomRRMCLossModel", QuantLibNode::GRandomRRMCLossModel);
  Nan::SetMethod(target, "TMCLossModel", QuantLibNode::TMCLossModel);
  Nan::SetMethod(target, "TRandomRRMCLossModel", QuantLibNode::TRandomRRMCLossModel);
  Nan::SetMethod(target, "GSaddlePointLossmodel", QuantLibNode::GSaddlePointLossmodel);
  Nan::SetMethod(target, "TSaddlePointLossmodel", QuantLibNode::TSaddlePointLossmodel);
  Nan::SetMethod(target, "GRecursiveLossmodel", QuantLibNode::GRecursiveLossmodel);
  Nan::SetMethod(target, "FixedRateBond", QuantLibNode::FixedRateBond);
  Nan::SetMethod(target, "FixedRateBond2", QuantLibNode::FixedRateBond2);
  Nan::SetMethod(target, "FloatingRateBond", QuantLibNode::FloatingRateBond);
  Nan::SetMethod(target, "CmsRateBond", QuantLibNode::CmsRateBond);
  Nan::SetMethod(target, "ZeroCouponBond", QuantLibNode::ZeroCouponBond);
  Nan::SetMethod(target, "Bond", QuantLibNode::Bond);
  Nan::SetMethod(target, "BondSettlementDays", QuantLibNode::BondSettlementDays);
  Nan::SetMethod(target, "BondCalendar", QuantLibNode::BondCalendar);
  Nan::SetMethod(target, "BondNotionals", QuantLibNode::BondNotionals);
  Nan::SetMethod(target, "BondNotional", QuantLibNode::BondNotional);
  Nan::SetMethod(target, "BondMaturityDate", QuantLibNode::BondMaturityDate);
  Nan::SetMethod(target, "BondIssueDate", QuantLibNode::BondIssueDate);
  Nan::SetMethod(target, "BondIsTradable", QuantLibNode::BondIsTradable);
  Nan::SetMethod(target, "BondSettlementDate", QuantLibNode::BondSettlementDate);
  Nan::SetMethod(target, "BondCleanPrice", QuantLibNode::BondCleanPrice);
  Nan::SetMethod(target, "BondDescription", QuantLibNode::BondDescription);
  Nan::SetMethod(target, "BondCurrency", QuantLibNode::BondCurrency);
  Nan::SetMethod(target, "BondRedemptionAmount", QuantLibNode::BondRedemptionAmount);
  Nan::SetMethod(target, "BondRedemptionDate", QuantLibNode::BondRedemptionDate);
  Nan::SetMethod(target, "BondFlowAnalysis", QuantLibNode::BondFlowAnalysis);
  Nan::SetMethod(target, "BondSetCouponPricer", QuantLibNode::BondSetCouponPricer);
  Nan::SetMethod(target, "BondSetCouponPricers", QuantLibNode::BondSetCouponPricers);
  Nan::SetMethod(target, "BondStartDate", QuantLibNode::BondStartDate);
  Nan::SetMethod(target, "BondPreviousCashFlowDate", QuantLibNode::BondPreviousCashFlowDate);
  Nan::SetMethod(target, "BondNextCashFlowDate", QuantLibNode::BondNextCashFlowDate);
  Nan::SetMethod(target, "BondPreviousCashFlowAmount", QuantLibNode::BondPreviousCashFlowAmount);
  Nan::SetMethod(target, "BondNextCashFlowAmount", QuantLibNode::BondNextCashFlowAmount);
  Nan::SetMethod(target, "BondPreviousCouponRate", QuantLibNode::BondPreviousCouponRate);
  Nan::SetMethod(target, "BondNextCouponRate", QuantLibNode::BondNextCouponRate);
  Nan::SetMethod(target, "BondAccrualStartDate", QuantLibNode::BondAccrualStartDate);
  Nan::SetMethod(target, "BondAccrualEndDate", QuantLibNode::BondAccrualEndDate);
  Nan::SetMethod(target, "BondReferencePeriodStart", QuantLibNode::BondReferencePeriodStart);
  Nan::SetMethod(target, "BondReferencePeriodEnd", QuantLibNode::BondReferencePeriodEnd);
  Nan::SetMethod(target, "BondAccrualPeriod", QuantLibNode::BondAccrualPeriod);
  Nan::SetMethod(target, "BondAccrualDays", QuantLibNode::BondAccrualDays);
  Nan::SetMethod(target, "BondAccruedPeriod", QuantLibNode::BondAccruedPeriod);
  Nan::SetMethod(target, "BondAccruedDays", QuantLibNode::BondAccruedDays);
  Nan::SetMethod(target, "BondAccruedAmount", QuantLibNode::BondAccruedAmount);
  Nan::SetMethod(target, "BondCleanPriceFromYieldTermStructure", QuantLibNode::BondCleanPriceFromYieldTermStructure);
  Nan::SetMethod(target, "BondBpsFromYieldTermStructure", QuantLibNode::BondBpsFromYieldTermStructure);
  Nan::SetMethod(target, "BondAtmRateFromYieldTermStructure", QuantLibNode::BondAtmRateFromYieldTermStructure);
  Nan::SetMethod(target, "BondCleanPriceFromYield", QuantLibNode::BondCleanPriceFromYield);
  Nan::SetMethod(target, "BondDirtyPriceFromYield", QuantLibNode::BondDirtyPriceFromYield);
  Nan::SetMethod(target, "BondBpsFromYield", QuantLibNode::BondBpsFromYield);
  Nan::SetMethod(target, "BondYieldFromCleanPrice", QuantLibNode::BondYieldFromCleanPrice);
  Nan::SetMethod(target, "BondDurationFromYield", QuantLibNode::BondDurationFromYield);
  Nan::SetMethod(target, "BondConvexityFromYield", QuantLibNode::BondConvexityFromYield);
  Nan::SetMethod(target, "BondCleanPriceFromZSpread", QuantLibNode::BondCleanPriceFromZSpread);
  Nan::SetMethod(target, "BondZSpreadFromCleanPrice", QuantLibNode::BondZSpreadFromCleanPrice);
  Nan::SetMethod(target, "BondAlive", QuantLibNode::BondAlive);
  Nan::SetMethod(target, "BondMaturityLookup", QuantLibNode::BondMaturityLookup);
  Nan::SetMethod(target, "BondMaturitySort", QuantLibNode::BondMaturitySort);
  Nan::SetMethod(target, "MTBrownianGeneratorFactory", QuantLibNode::MTBrownianGeneratorFactory);
  Nan::SetMethod(target, "CCTEU", QuantLibNode::CCTEU);
  Nan::SetMethod(target, "BTP", QuantLibNode::BTP);
  Nan::SetMethod(target, "BTP2", QuantLibNode::BTP2);
  Nan::SetMethod(target, "RendistatoBasket", QuantLibNode::RendistatoBasket);
  Nan::SetMethod(target, "RendistatoCalculator", QuantLibNode::RendistatoCalculator);
  Nan::SetMethod(target, "RendistatoEquivalentSwapLengthQuote", QuantLibNode::RendistatoEquivalentSwapLengthQuote);
  Nan::SetMethod(target, "RendistatoEquivalentSwapSpreadQuote", QuantLibNode::RendistatoEquivalentSwapSpreadQuote);
  Nan::SetMethod(target, "RendistatoBasketSize", QuantLibNode::RendistatoBasketSize);
  Nan::SetMethod(target, "RendistatoBasketOutstanding", QuantLibNode::RendistatoBasketOutstanding);
  Nan::SetMethod(target, "RendistatoBasketOutstandings", QuantLibNode::RendistatoBasketOutstandings);
  Nan::SetMethod(target, "RendistatoBasketWeights", QuantLibNode::RendistatoBasketWeights);
  Nan::SetMethod(target, "RendistatoCalculatorYield", QuantLibNode::RendistatoCalculatorYield);
  Nan::SetMethod(target, "RendistatoCalculatorDuration", QuantLibNode::RendistatoCalculatorDuration);
  Nan::SetMethod(target, "RendistatoCalculatorYields", QuantLibNode::RendistatoCalculatorYields);
  Nan::SetMethod(target, "RendistatoCalculatorDurations", QuantLibNode::RendistatoCalculatorDurations);
  Nan::SetMethod(target, "RendistatoCalculatorSwapLengths", QuantLibNode::RendistatoCalculatorSwapLengths);
  Nan::SetMethod(target, "RendistatoCalculatorSwapRates", QuantLibNode::RendistatoCalculatorSwapRates);
  Nan::SetMethod(target, "RendistatoCalculatorSwapYields", QuantLibNode::RendistatoCalculatorSwapYields);
  Nan::SetMethod(target, "RendistatoCalculatorSwapDurations", QuantLibNode::RendistatoCalculatorSwapDurations);
  Nan::SetMethod(target, "RendistatoCalculatorEquivalentSwapRate", QuantLibNode::RendistatoCalculatorEquivalentSwapRate);
  Nan::SetMethod(target, "RendistatoCalculatorEquivalentSwapYield", QuantLibNode::RendistatoCalculatorEquivalentSwapYield);
  Nan::SetMethod(target, "RendistatoCalculatorEquivalentSwapDuration", QuantLibNode::RendistatoCalculatorEquivalentSwapDuration);
  Nan::SetMethod(target, "RendistatoCalculatorEquivalentSwapSpread", QuantLibNode::RendistatoCalculatorEquivalentSwapSpread);
  Nan::SetMethod(target, "RendistatoCalculatorEquivalentSwapLength", QuantLibNode::RendistatoCalculatorEquivalentSwapLength);
  Nan::SetMethod(target, "CalendarHolidayList", QuantLibNode::CalendarHolidayList);
  Nan::SetMethod(target, "CalendarName", QuantLibNode::CalendarName);
  Nan::SetMethod(target, "CalendarIsBusinessDay", QuantLibNode::CalendarIsBusinessDay);
  Nan::SetMethod(target, "CalendarIsHoliday", QuantLibNode::CalendarIsHoliday);
  Nan::SetMethod(target, "CalendarIsEndOfMonth", QuantLibNode::CalendarIsEndOfMonth);
  Nan::SetMethod(target, "CalendarEndOfMonth", QuantLibNode::CalendarEndOfMonth);
  Nan::SetMethod(target, "CalendarAddHoliday", QuantLibNode::CalendarAddHoliday);
  Nan::SetMethod(target, "CalendarRemoveHoliday", QuantLibNode::CalendarRemoveHoliday);
  Nan::SetMethod(target, "CalendarAdjust", QuantLibNode::CalendarAdjust);
  Nan::SetMethod(target, "CalendarAdvance", QuantLibNode::CalendarAdvance);
  Nan::SetMethod(target, "CalendarBusinessDaysBetween", QuantLibNode::CalendarBusinessDaysBetween);
  Nan::SetMethod(target, "SwaptionHelper", QuantLibNode::SwaptionHelper);
  Nan::SetMethod(target, "CalibrationHelperSetPricingEngine", QuantLibNode::CalibrationHelperSetPricingEngine);
  Nan::SetMethod(target, "CalibrationHelperImpliedVolatility", QuantLibNode::CalibrationHelperImpliedVolatility);
  Nan::SetMethod(target, "SwaptionHelperModelValue", QuantLibNode::SwaptionHelperModelValue);
  Nan::SetMethod(target, "OneFactorAffineModelCalibrate", QuantLibNode::OneFactorAffineModelCalibrate);
  Nan::SetMethod(target, "ModelG2Calibrate", QuantLibNode::ModelG2Calibrate);
  Nan::SetMethod(target, "CapFloor", QuantLibNode::CapFloor);
  Nan::SetMethod(target, "MakeCapFloor", QuantLibNode::MakeCapFloor);
  Nan::SetMethod(target, "CapFloorType", QuantLibNode::CapFloorType);
  Nan::SetMethod(target, "CapFloorCapRates", QuantLibNode::CapFloorCapRates);
  Nan::SetMethod(target, "CapFloorFloorRates", QuantLibNode::CapFloorFloorRates);
  Nan::SetMethod(target, "CapFloorAtmRate", QuantLibNode::CapFloorAtmRate);
  Nan::SetMethod(target, "CapFloorStartDate", QuantLibNode::CapFloorStartDate);
  Nan::SetMethod(target, "CapFloorMaturityDate", QuantLibNode::CapFloorMaturityDate);
  Nan::SetMethod(target, "CapFloorImpliedVolatility", QuantLibNode::CapFloorImpliedVolatility);
  Nan::SetMethod(target, "CapFloorLegAnalysis", QuantLibNode::CapFloorLegAnalysis);
  Nan::SetMethod(target, "RelinkableHandleOptionletVolatilityStructure", QuantLibNode::RelinkableHandleOptionletVolatilityStructure);
  Nan::SetMethod(target, "ConstantOptionletVolatility", QuantLibNode::ConstantOptionletVolatility);
  Nan::SetMethod(target, "SpreadedOptionletVolatility", QuantLibNode::SpreadedOptionletVolatility);
  Nan::SetMethod(target, "StrippedOptionletAdapter", QuantLibNode::StrippedOptionletAdapter);
  Nan::SetMethod(target, "StrippedOptionlet", QuantLibNode::StrippedOptionlet);
  Nan::SetMethod(target, "OptionletStripper1", QuantLibNode::OptionletStripper1);
  Nan::SetMethod(target, "OptionletStripper2", QuantLibNode::OptionletStripper2);
  Nan::SetMethod(target, "CapFloorTermVolCurve", QuantLibNode::CapFloorTermVolCurve);
  Nan::SetMethod(target, "CapFloorTermVolSurface", QuantLibNode::CapFloorTermVolSurface);
  Nan::SetMethod(target, "OptionletVTSVolatility", QuantLibNode::OptionletVTSVolatility);
  Nan::SetMethod(target, "OptionletVTSVolatility2", QuantLibNode::OptionletVTSVolatility2);
  Nan::SetMethod(target, "OptionletVTSBlackVariance", QuantLibNode::OptionletVTSBlackVariance);
  Nan::SetMethod(target, "OptionletVTSBlackVariance2", QuantLibNode::OptionletVTSBlackVariance2);
  Nan::SetMethod(target, "StrippedOptionletBaseStrikes", QuantLibNode::StrippedOptionletBaseStrikes);
  Nan::SetMethod(target, "StrippedOptionletBaseOptionletVolatilities", QuantLibNode::StrippedOptionletBaseOptionletVolatilities);
  Nan::SetMethod(target, "StrippedOptionletBaseOptionletFixingDates", QuantLibNode::StrippedOptionletBaseOptionletFixingDates);
  Nan::SetMethod(target, "StrippedOptionletBaseOptionletFixingTimes", QuantLibNode::StrippedOptionletBaseOptionletFixingTimes);
  Nan::SetMethod(target, "StrippedOptionletBaseAtmOptionletRates", QuantLibNode::StrippedOptionletBaseAtmOptionletRates);
  Nan::SetMethod(target, "StrippedOptionletBaseDayCounter", QuantLibNode::StrippedOptionletBaseDayCounter);
  Nan::SetMethod(target, "StrippedOptionletBaseCalendar", QuantLibNode::StrippedOptionletBaseCalendar);
  Nan::SetMethod(target, "StrippedOptionletBaseSettlementDays", QuantLibNode::StrippedOptionletBaseSettlementDays);
  Nan::SetMethod(target, "StrippedOptionletBaseBusinessDayConvention", QuantLibNode::StrippedOptionletBaseBusinessDayConvention);
  Nan::SetMethod(target, "OptionletStripperOptionletFixingTenors", QuantLibNode::OptionletStripperOptionletFixingTenors);
  Nan::SetMethod(target, "OptionletStripperOptionletPaymentDates", QuantLibNode::OptionletStripperOptionletPaymentDates);
  Nan::SetMethod(target, "OptionletStripperOptionletAccrualPeriods", QuantLibNode::OptionletStripperOptionletAccrualPeriods);
  Nan::SetMethod(target, "OptionletStripper1CapFloorPrices", QuantLibNode::OptionletStripper1CapFloorPrices);
  Nan::SetMethod(target, "OptionletStripper1CapFloorVolatilities", QuantLibNode::OptionletStripper1CapFloorVolatilities);
  Nan::SetMethod(target, "OptionletStripper1OptionletPrices", QuantLibNode::OptionletStripper1OptionletPrices);
  Nan::SetMethod(target, "OptionletStripper1SwitchStrike", QuantLibNode::OptionletStripper1SwitchStrike);
  Nan::SetMethod(target, "OptionletStripper2SpreadsVol", QuantLibNode::OptionletStripper2SpreadsVol);
  Nan::SetMethod(target, "OptionletStripper2AtmCapFloorPrices", QuantLibNode::OptionletStripper2AtmCapFloorPrices);
  Nan::SetMethod(target, "OptionletStripper2AtmCapFloorStrikes", QuantLibNode::OptionletStripper2AtmCapFloorStrikes);
  Nan::SetMethod(target, "CapFloorTermVTSVolatility", QuantLibNode::CapFloorTermVTSVolatility);
  Nan::SetMethod(target, "CapFloorTermVTSVolatility2", QuantLibNode::CapFloorTermVTSVolatility2);
  Nan::SetMethod(target, "CapFloorTermVolCurveOptionTenors", QuantLibNode::CapFloorTermVolCurveOptionTenors);
  Nan::SetMethod(target, "CapFloorTermVolCurveOptionDates", QuantLibNode::CapFloorTermVolCurveOptionDates);
  Nan::SetMethod(target, "CapFloorTermVolSurfaceOptionTenors", QuantLibNode::CapFloorTermVolSurfaceOptionTenors);
  Nan::SetMethod(target, "CapFloorTermVolSurfaceOptionDates", QuantLibNode::CapFloorTermVolSurfaceOptionDates);
  Nan::SetMethod(target, "CapFloorTermVolSurfaceStrikes", QuantLibNode::CapFloorTermVolSurfaceStrikes);
  Nan::SetMethod(target, "CmsMarket", QuantLibNode::CmsMarket);
  Nan::SetMethod(target, "BrowseCmsMarket", QuantLibNode::BrowseCmsMarket);
  Nan::SetMethod(target, "CmsMarketCalibration", QuantLibNode::CmsMarketCalibration);
  Nan::SetMethod(target, "CmsMarketCalibrationCompute", QuantLibNode::CmsMarketCalibrationCompute);
  Nan::SetMethod(target, "CmsMarketCalibrationError", QuantLibNode::CmsMarketCalibrationError);
  Nan::SetMethod(target, "CmsMarketCalibrationEndCriteria", QuantLibNode::CmsMarketCalibrationEndCriteria);
  Nan::SetMethod(target, "CmsMarketCalibrationElapsed", QuantLibNode::CmsMarketCalibrationElapsed);
  Nan::SetMethod(target, "CmsMarketCalibrationSparseSabrParameters", QuantLibNode::CmsMarketCalibrationSparseSabrParameters);
  Nan::SetMethod(target, "CmsMarketCalibrationDenseSabrParameters", QuantLibNode::CmsMarketCalibrationDenseSabrParameters);
  Nan::SetMethod(target, "SimultaneousCalibrationBrowseCmsMarket", QuantLibNode::SimultaneousCalibrationBrowseCmsMarket);
  Nan::SetMethod(target, "MarketModelLmLinearExponentialCorrelationModel", QuantLibNode::MarketModelLmLinearExponentialCorrelationModel);
  Nan::SetMethod(target, "HistoricalForwardRatesAnalysis", QuantLibNode::HistoricalForwardRatesAnalysis);
  Nan::SetMethod(target, "HistoricalRatesAnalysis", QuantLibNode::HistoricalRatesAnalysis);
  Nan::SetMethod(target, "TimeHomogeneousForwardCorrelation", QuantLibNode::TimeHomogeneousForwardCorrelation);
  Nan::SetMethod(target, "ExponentialForwardCorrelation", QuantLibNode::ExponentialForwardCorrelation);
  Nan::SetMethod(target, "CotSwapFromFwdCorrelation", QuantLibNode::CotSwapFromFwdCorrelation);
  Nan::SetMethod(target, "HistoricalForwardRatesAnalysisSkippedDates", QuantLibNode::HistoricalForwardRatesAnalysisSkippedDates);
  Nan::SetMethod(target, "HistoricalForwardRatesAnalysisSkippedDatesErrorMessage", QuantLibNode::HistoricalForwardRatesAnalysisSkippedDatesErrorMessage);
  Nan::SetMethod(target, "HistoricalForwardRatesAnalysisFailedDates", QuantLibNode::HistoricalForwardRatesAnalysisFailedDates);
  Nan::SetMethod(target, "HistoricalForwardRatesAnalysisFailedDatesErrorMessage", QuantLibNode::HistoricalForwardRatesAnalysisFailedDatesErrorMessage);
  Nan::SetMethod(target, "HistoricalForwardRatesAnalysisFixingPeriods", QuantLibNode::HistoricalForwardRatesAnalysisFixingPeriods);
  Nan::SetMethod(target, "HistoricalRatesAnalysisSkippedDates", QuantLibNode::HistoricalRatesAnalysisSkippedDates);
  Nan::SetMethod(target, "HistoricalRatesAnalysisSkippedDatesErrorMessage", QuantLibNode::HistoricalRatesAnalysisSkippedDatesErrorMessage);
  Nan::SetMethod(target, "PiecewiseConstantCorrelationCorrelation", QuantLibNode::PiecewiseConstantCorrelationCorrelation);
  Nan::SetMethod(target, "PiecewiseConstantCorrelationTimes", QuantLibNode::PiecewiseConstantCorrelationTimes);
  Nan::SetMethod(target, "PiecewiseConstantCorrelationNumberOfRates", QuantLibNode::PiecewiseConstantCorrelationNumberOfRates);
  Nan::SetMethod(target, "ExponentialCorrelations", QuantLibNode::ExponentialCorrelations);
  Nan::SetMethod(target, "FixedRateLeg", QuantLibNode::FixedRateLeg);
  Nan::SetMethod(target, "FixedRateLeg2", QuantLibNode::FixedRateLeg2);
  Nan::SetMethod(target, "IborLeg", QuantLibNode::IborLeg);
  Nan::SetMethod(target, "DigitalIborLeg", QuantLibNode::DigitalIborLeg);
  Nan::SetMethod(target, "CmsLeg", QuantLibNode::CmsLeg);
  Nan::SetMethod(target, "DigitalCmsLeg", QuantLibNode::DigitalCmsLeg);
  Nan::SetMethod(target, "RangeAccrualLeg", QuantLibNode::RangeAccrualLeg);
  Nan::SetMethod(target, "CmsZeroLeg", QuantLibNode::CmsZeroLeg);
  Nan::SetMethod(target, "IborCouponPricer", QuantLibNode::IborCouponPricer);
  Nan::SetMethod(target, "CmsCouponPricer", QuantLibNode::CmsCouponPricer);
  Nan::SetMethod(target, "ConundrumPricerByNumericalIntegration", QuantLibNode::ConundrumPricerByNumericalIntegration);
  Nan::SetMethod(target, "DigitalReplication", QuantLibNode::DigitalReplication);
  Nan::SetMethod(target, "ConundrumPricerByNumericalIntegrationUpperLimit", QuantLibNode::ConundrumPricerByNumericalIntegrationUpperLimit);
  Nan::SetMethod(target, "CreditDefaultSwap", QuantLibNode::CreditDefaultSwap);
  Nan::SetMethod(target, "MidPointCdsEngine", QuantLibNode::MidPointCdsEngine);
  Nan::SetMethod(target, "HazardRateCurve", QuantLibNode::HazardRateCurve);
  Nan::SetMethod(target, "SpreadCdsHelper", QuantLibNode::SpreadCdsHelper);
  Nan::SetMethod(target, "UpfrontCdsHelper", QuantLibNode::UpfrontCdsHelper);
  Nan::SetMethod(target, "PiecewiseHazardRateCurve", QuantLibNode::PiecewiseHazardRateCurve);
  Nan::SetMethod(target, "PiecewiseFlatForwardCurve", QuantLibNode::PiecewiseFlatForwardCurve);
  Nan::SetMethod(target, "RiskyFixedBond", QuantLibNode::RiskyFixedBond);
  Nan::SetMethod(target, "Issuer", QuantLibNode::Issuer);
  Nan::SetMethod(target, "DefaultEvent", QuantLibNode::DefaultEvent);
  Nan::SetMethod(target, "SyntheticCDO", QuantLibNode::SyntheticCDO);
  Nan::SetMethod(target, "MidPointCDOEngine", QuantLibNode::MidPointCDOEngine);
  Nan::SetMethod(target, "NthToDefault", QuantLibNode::NthToDefault);
  Nan::SetMethod(target, "IntegralNtdEngine", QuantLibNode::IntegralNtdEngine);
  Nan::SetMethod(target, "BlackCdsOptionEngine", QuantLibNode::BlackCdsOptionEngine);
  Nan::SetMethod(target, "CDSOption", QuantLibNode::CDSOption);
  Nan::SetMethod(target, "BaseCorrelationTermStructure", QuantLibNode::BaseCorrelationTermStructure);
  Nan::SetMethod(target, "CdsCouponLegNPV", QuantLibNode::CdsCouponLegNPV);
  Nan::SetMethod(target, "CdsDefaultLegNPV", QuantLibNode::CdsDefaultLegNPV);
  Nan::SetMethod(target, "CdsFairSpread", QuantLibNode::CdsFairSpread);
  Nan::SetMethod(target, "CdsFairUpfront", QuantLibNode::CdsFairUpfront);
  Nan::SetMethod(target, "HRDates", QuantLibNode::HRDates);
  Nan::SetMethod(target, "HRates", QuantLibNode::HRates);
  Nan::SetMethod(target, "CdsOptionImpliedVol", QuantLibNode::CdsOptionImpliedVol);
  Nan::SetMethod(target, "BaseCorrelationValue", QuantLibNode::BaseCorrelationValue);
  Nan::SetMethod(target, "CTSMMCapletOriginalCalibration", QuantLibNode::CTSMMCapletOriginalCalibration);
  Nan::SetMethod(target, "CTSMMCapletAlphaFormCalibration", QuantLibNode::CTSMMCapletAlphaFormCalibration);
  Nan::SetMethod(target, "CTSMMCapletMaxHomogeneityCalibration", QuantLibNode::CTSMMCapletMaxHomogeneityCalibration);
  Nan::SetMethod(target, "CTSMMCapletCalibrationCalibrate", QuantLibNode::CTSMMCapletCalibrationCalibrate);
  Nan::SetMethod(target, "CTSMMCapletCalibrationFailures", QuantLibNode::CTSMMCapletCalibrationFailures);
  Nan::SetMethod(target, "CTSMMCapletCalibrationDeformationSize", QuantLibNode::CTSMMCapletCalibrationDeformationSize);
  Nan::SetMethod(target, "CTSMMCapletCalibrationMarketCapletVols", QuantLibNode::CTSMMCapletCalibrationMarketCapletVols);
  Nan::SetMethod(target, "CTSMMCapletCalibrationModelCapletVols", QuantLibNode::CTSMMCapletCalibrationModelCapletVols);
  Nan::SetMethod(target, "CTSMMCapletCalibrationCapletRmsError", QuantLibNode::CTSMMCapletCalibrationCapletRmsError);
  Nan::SetMethod(target, "CTSMMCapletCalibrationCapletMaxError", QuantLibNode::CTSMMCapletCalibrationCapletMaxError);
  Nan::SetMethod(target, "CTSMMCapletCalibrationMarketSwaptionVols", QuantLibNode::CTSMMCapletCalibrationMarketSwaptionVols);
  Nan::SetMethod(target, "CTSMMCapletCalibrationModelSwaptionVols", QuantLibNode::CTSMMCapletCalibrationModelSwaptionVols);
  Nan::SetMethod(target, "CTSMMCapletCalibrationSwaptionRmsError", QuantLibNode::CTSMMCapletCalibrationSwaptionRmsError);
  Nan::SetMethod(target, "CTSMMCapletCalibrationSwaptionMaxError", QuantLibNode::CTSMMCapletCalibrationSwaptionMaxError);
  Nan::SetMethod(target, "CTSMMCapletCalibrationSwapPseudoRoot", QuantLibNode::CTSMMCapletCalibrationSwapPseudoRoot);
  Nan::SetMethod(target, "CTSMMCapletCalibrationTimeDependentCalibratedSwaptionVols", QuantLibNode::CTSMMCapletCalibrationTimeDependentCalibratedSwaptionVols);
  Nan::SetMethod(target, "CTSMMCapletCalibrationTimeDependentUnCalibratedSwaptionVols", QuantLibNode::CTSMMCapletCalibrationTimeDependentUnCalibratedSwaptionVols);
  Nan::SetMethod(target, "CTSMMCapletAlphaFormCalibrationAlpha", QuantLibNode::CTSMMCapletAlphaFormCalibrationAlpha);
  Nan::SetMethod(target, "CMSwapCurveState", QuantLibNode::CMSwapCurveState);
  Nan::SetMethod(target, "CoterminalSwapCurveState", QuantLibNode::CoterminalSwapCurveState);
  Nan::SetMethod(target, "LMMCurveState", QuantLibNode::LMMCurveState);
  Nan::SetMethod(target, "CurveStateRateTimes", QuantLibNode::CurveStateRateTimes);
  Nan::SetMethod(target, "CurveStateRateTaus", QuantLibNode::CurveStateRateTaus);
  Nan::SetMethod(target, "CurveStateForwardRates", QuantLibNode::CurveStateForwardRates);
  Nan::SetMethod(target, "CurveStateCoterminalSwapRates", QuantLibNode::CurveStateCoterminalSwapRates);
  Nan::SetMethod(target, "CurveStateCMSwapRates", QuantLibNode::CurveStateCMSwapRates);
  Nan::SetMethod(target, "CMSwapCurveStateSetOnCMSwapRates", QuantLibNode::CMSwapCurveStateSetOnCMSwapRates);
  Nan::SetMethod(target, "CoterminalSwapCurveStateSetOnCoterminalSwapRates", QuantLibNode::CoterminalSwapCurveStateSetOnCoterminalSwapRates);
  Nan::SetMethod(target, "LMMCurveStateSetOnForwardRates", QuantLibNode::LMMCurveStateSetOnForwardRates);
  Nan::SetMethod(target, "LMMCurveStateSetOnDiscountRatios", QuantLibNode::LMMCurveStateSetOnDiscountRatios);
  Nan::SetMethod(target, "ForwardsFromDiscountRatios", QuantLibNode::ForwardsFromDiscountRatios);
  Nan::SetMethod(target, "CoterminalSwapRatesFromDiscountRatios", QuantLibNode::CoterminalSwapRatesFromDiscountRatios);
  Nan::SetMethod(target, "CoterminalSwapAnnuitiesFromDiscountRatios", QuantLibNode::CoterminalSwapAnnuitiesFromDiscountRatios);
  Nan::SetMethod(target, "ConstantMaturitySwapRatesFromDiscountRatios", QuantLibNode::ConstantMaturitySwapRatesFromDiscountRatios);
  Nan::SetMethod(target, "ConstantMaturitySwapAnnuitiesFromDiscountRatios", QuantLibNode::ConstantMaturitySwapAnnuitiesFromDiscountRatios);
  Nan::SetMethod(target, "PeriodFromFrequency", QuantLibNode::PeriodFromFrequency);
  Nan::SetMethod(target, "FrequencyFromPeriod", QuantLibNode::FrequencyFromPeriod);
  Nan::SetMethod(target, "PeriodLessThan", QuantLibNode::PeriodLessThan);
  Nan::SetMethod(target, "PeriodEquivalent", QuantLibNode::PeriodEquivalent);
  Nan::SetMethod(target, "DateMinDate", QuantLibNode::DateMinDate);
  Nan::SetMethod(target, "DateMaxDate", QuantLibNode::DateMaxDate);
  Nan::SetMethod(target, "DateIsLeap", QuantLibNode::DateIsLeap);
  Nan::SetMethod(target, "DateEndOfMonth", QuantLibNode::DateEndOfMonth);
  Nan::SetMethod(target, "DateIsEndOfMonth", QuantLibNode::DateIsEndOfMonth);
  Nan::SetMethod(target, "DateNextWeekday", QuantLibNode::DateNextWeekday);
  Nan::SetMethod(target, "DateNthWeekday", QuantLibNode::DateNthWeekday);
  Nan::SetMethod(target, "IMMIsIMMdate", QuantLibNode::IMMIsIMMdate);
  Nan::SetMethod(target, "IMMIsIMMcode", QuantLibNode::IMMIsIMMcode);
  Nan::SetMethod(target, "IMMcode", QuantLibNode::IMMcode);
  Nan::SetMethod(target, "IMMNextCode", QuantLibNode::IMMNextCode);
  Nan::SetMethod(target, "IMMNextCodes", QuantLibNode::IMMNextCodes);
  Nan::SetMethod(target, "IMMdate", QuantLibNode::IMMdate);
  Nan::SetMethod(target, "IMMNextDate", QuantLibNode::IMMNextDate);
  Nan::SetMethod(target, "IMMNextDates", QuantLibNode::IMMNextDates);
  Nan::SetMethod(target, "ASXIsASXdate", QuantLibNode::ASXIsASXdate);
  Nan::SetMethod(target, "ASXIsASXcode", QuantLibNode::ASXIsASXcode);
  Nan::SetMethod(target, "ASXcode", QuantLibNode::ASXcode);
  Nan::SetMethod(target, "ASXNextCode", QuantLibNode::ASXNextCode);
  Nan::SetMethod(target, "ASXNextCodes", QuantLibNode::ASXNextCodes);
  Nan::SetMethod(target, "ASXdate", QuantLibNode::ASXdate);
  Nan::SetMethod(target, "ASXNextDate", QuantLibNode::ASXNextDate);
  Nan::SetMethod(target, "ASXNextDates", QuantLibNode::ASXNextDates);
  Nan::SetMethod(target, "ECBKnownDates", QuantLibNode::ECBKnownDates);
  Nan::SetMethod(target, "ECBAddDate", QuantLibNode::ECBAddDate);
  Nan::SetMethod(target, "ECBRemoveDate", QuantLibNode::ECBRemoveDate);
  Nan::SetMethod(target, "ECBdate2", QuantLibNode::ECBdate2);
  Nan::SetMethod(target, "ECBdate", QuantLibNode::ECBdate);
  Nan::SetMethod(target, "ECBcode", QuantLibNode::ECBcode);
  Nan::SetMethod(target, "ECBNextDate", QuantLibNode::ECBNextDate);
  Nan::SetMethod(target, "ECBNextDate2", QuantLibNode::ECBNextDate2);
  Nan::SetMethod(target, "ECBNextDates", QuantLibNode::ECBNextDates);
  Nan::SetMethod(target, "ECBIsECBdate", QuantLibNode::ECBIsECBdate);
  Nan::SetMethod(target, "ECBIsECBcode", QuantLibNode::ECBIsECBcode);
  Nan::SetMethod(target, "ECBNextCode", QuantLibNode::ECBNextCode);
  Nan::SetMethod(target, "ECBNextCode2", QuantLibNode::ECBNextCode2);
  Nan::SetMethod(target, "DayCounterName", QuantLibNode::DayCounterName);
  Nan::SetMethod(target, "DayCounterDayCount", QuantLibNode::DayCounterDayCount);
  Nan::SetMethod(target, "DayCounterYearFraction", QuantLibNode::DayCounterYearFraction);
  Nan::SetMethod(target, "CreditBasket", QuantLibNode::CreditBasket);
  Nan::SetMethod(target, "CreditBasketSetLossModel", QuantLibNode::CreditBasketSetLossModel);
  Nan::SetMethod(target, "CreditBasketSize", QuantLibNode::CreditBasketSize);
  Nan::SetMethod(target, "CreditBasketLiveNotional", QuantLibNode::CreditBasketLiveNotional);
  Nan::SetMethod(target, "CreditBasketLoss", QuantLibNode::CreditBasketLoss);
  Nan::SetMethod(target, "CreditBasketAttachLive", QuantLibNode::CreditBasketAttachLive);
  Nan::SetMethod(target, "CreditBasketDetachLive", QuantLibNode::CreditBasketDetachLive);
  Nan::SetMethod(target, "ExpectedTrancheLoss", QuantLibNode::ExpectedTrancheLoss);
  Nan::SetMethod(target, "CreditBasketPercentile", QuantLibNode::CreditBasketPercentile);
  Nan::SetMethod(target, "CreditBasketESF", QuantLibNode::CreditBasketESF);
  Nan::SetMethod(target, "CreditBasketNthEventP", QuantLibNode::CreditBasketNthEventP);
  Nan::SetMethod(target, "CreditBasketProbLoss", QuantLibNode::CreditBasketProbLoss);
  Nan::SetMethod(target, "CreditBasketSplitLoss", QuantLibNode::CreditBasketSplitLoss);
  Nan::SetMethod(target, "CreditBasketDefaulCorrel", QuantLibNode::CreditBasketDefaulCorrel);
  Nan::SetMethod(target, "RelinkableHandleDefaultProbabilityTermStructure", QuantLibNode::RelinkableHandleDefaultProbabilityTermStructure);
  Nan::SetMethod(target, "FlatHazardRate", QuantLibNode::FlatHazardRate);
  Nan::SetMethod(target, "DefaultTSDefaultProbability", QuantLibNode::DefaultTSDefaultProbability);
  Nan::SetMethod(target, "ProbabilityToHR", QuantLibNode::ProbabilityToHR);
  Nan::SetMethod(target, "LMMDriftCalculator", QuantLibNode::LMMDriftCalculator);
  Nan::SetMethod(target, "LMMNormalDriftCalculator", QuantLibNode::LMMNormalDriftCalculator);
  Nan::SetMethod(target, "CMSMMDriftCalculator", QuantLibNode::CMSMMDriftCalculator);
  Nan::SetMethod(target, "SMMDriftCalculator", QuantLibNode::SMMDriftCalculator);
  Nan::SetMethod(target, "LMMDriftCalculatorComputePlain", QuantLibNode::LMMDriftCalculatorComputePlain);
  Nan::SetMethod(target, "LMMDriftCalculatorComputeReduced", QuantLibNode::LMMDriftCalculatorComputeReduced);
  Nan::SetMethod(target, "LMMDriftCalculatorCompute", QuantLibNode::LMMDriftCalculatorCompute);
  Nan::SetMethod(target, "LMMNormalDriftCalculatorComputePlain", QuantLibNode::LMMNormalDriftCalculatorComputePlain);
  Nan::SetMethod(target, "LMMNormalDriftCalculatorComputeReduced", QuantLibNode::LMMNormalDriftCalculatorComputeReduced);
  Nan::SetMethod(target, "LMMNormalDriftCalculatorCompute", QuantLibNode::LMMNormalDriftCalculatorCompute);
  Nan::SetMethod(target, "CMSMMDriftCalculatorCompute", QuantLibNode::CMSMMDriftCalculatorCompute);
  Nan::SetMethod(target, "SMMDriftCalculatorCompute", QuantLibNode::SMMDriftCalculatorCompute);
  Nan::SetMethod(target, "EvolutionDescription", QuantLibNode::EvolutionDescription);
  Nan::SetMethod(target, "EvolutionDescriptionFromProduct", QuantLibNode::EvolutionDescriptionFromProduct);
  Nan::SetMethod(target, "EvolutionDescriptionRateTimes", QuantLibNode::EvolutionDescriptionRateTimes);
  Nan::SetMethod(target, "EvolutionDescriptionRateTaus", QuantLibNode::EvolutionDescriptionRateTaus);
  Nan::SetMethod(target, "EvolutionDescriptionEvolutionTimes", QuantLibNode::EvolutionDescriptionEvolutionTimes);
  Nan::SetMethod(target, "EvolutionDescriptionFirstAliveRate", QuantLibNode::EvolutionDescriptionFirstAliveRate);
  Nan::SetMethod(target, "EvolutionDescriptionNumberOfRates", QuantLibNode::EvolutionDescriptionNumberOfRates);
  Nan::SetMethod(target, "EvolutionDescriptionNumberOfSteps", QuantLibNode::EvolutionDescriptionNumberOfSteps);
  Nan::SetMethod(target, "TerminalMeasure", QuantLibNode::TerminalMeasure);
  Nan::SetMethod(target, "MoneyMarketMeasure", QuantLibNode::MoneyMarketMeasure);
  Nan::SetMethod(target, "MoneyMarketPlusMeasure", QuantLibNode::MoneyMarketPlusMeasure);
  Nan::SetMethod(target, "IsInTerminalMeasure", QuantLibNode::IsInTerminalMeasure);
  Nan::SetMethod(target, "IsInMoneyMarketMeasure", QuantLibNode::IsInMoneyMarketMeasure);
  Nan::SetMethod(target, "IsInMoneyMarketPlusMeasure", QuantLibNode::IsInMoneyMarketPlusMeasure);
  Nan::SetMethod(target, "AmericanExercise", QuantLibNode::AmericanExercise);
  Nan::SetMethod(target, "EuropeanExercise", QuantLibNode::EuropeanExercise);
  Nan::SetMethod(target, "BermudanExercise", QuantLibNode::BermudanExercise);
  Nan::SetMethod(target, "ExerciseDates", QuantLibNode::ExerciseDates);
  Nan::SetMethod(target, "ExerciseLastDate", QuantLibNode::ExerciseLastDate);
  Nan::SetMethod(target, "FRA", QuantLibNode::FRA);
  Nan::SetMethod(target, "FRAforwardRate", QuantLibNode::FRAforwardRate);
  Nan::SetMethod(target, "FRAforwardValue", QuantLibNode::FRAforwardValue);
  Nan::SetMethod(target, "FRAspotValue", QuantLibNode::FRAspotValue);
  Nan::SetMethod(target, "HandleCurrentLink", QuantLibNode::HandleCurrentLink);
  Nan::SetMethod(target, "HandleEmpty", QuantLibNode::HandleEmpty);
  Nan::SetMethod(target, "RelinkableHandleLinkTo", QuantLibNode::RelinkableHandleLinkTo);
  Nan::SetMethod(target, "IborIndex", QuantLibNode::IborIndex);
  Nan::SetMethod(target, "OvernightIndex", QuantLibNode::OvernightIndex);
  Nan::SetMethod(target, "Euribor", QuantLibNode::Euribor);
  Nan::SetMethod(target, "Euribor365", QuantLibNode::Euribor365);
  Nan::SetMethod(target, "Eonia", QuantLibNode::Eonia);
  Nan::SetMethod(target, "Libor", QuantLibNode::Libor);
  Nan::SetMethod(target, "Sonia", QuantLibNode::Sonia);
  Nan::SetMethod(target, "SwapIndex", QuantLibNode::SwapIndex);
  Nan::SetMethod(target, "EuriborSwap", QuantLibNode::EuriborSwap);
  Nan::SetMethod(target, "LiborSwap", QuantLibNode::LiborSwap);
  Nan::SetMethod(target, "EuriborSwapIsdaFixA", QuantLibNode::EuriborSwapIsdaFixA);
  Nan::SetMethod(target, "BMAIndex", QuantLibNode::BMAIndex);
  Nan::SetMethod(target, "ProxyIbor", QuantLibNode::ProxyIbor);
  Nan::SetMethod(target, "IndexName", QuantLibNode::IndexName);
  Nan::SetMethod(target, "IndexFixingCalendar", QuantLibNode::IndexFixingCalendar);
  Nan::SetMethod(target, "IndexIsValidFixingDate", QuantLibNode::IndexIsValidFixingDate);
  Nan::SetMethod(target, "IndexFixing", QuantLibNode::IndexFixing);
  Nan::SetMethod(target, "IndexAddFixings", QuantLibNode::IndexAddFixings);
  Nan::SetMethod(target, "IndexAddFixings2", QuantLibNode::IndexAddFixings2);
  Nan::SetMethod(target, "IndexClearFixings", QuantLibNode::IndexClearFixings);
  Nan::SetMethod(target, "InterestRateIndexFamilyName", QuantLibNode::InterestRateIndexFamilyName);
  Nan::SetMethod(target, "InterestRateIndexTenor", QuantLibNode::InterestRateIndexTenor);
  Nan::SetMethod(target, "InterestRateIndexFixingDays", QuantLibNode::InterestRateIndexFixingDays);
  Nan::SetMethod(target, "InterestRateIndexCurrency", QuantLibNode::InterestRateIndexCurrency);
  Nan::SetMethod(target, "InterestRateIndexDayCounter", QuantLibNode::InterestRateIndexDayCounter);
  Nan::SetMethod(target, "InterestRateIndexValueDate", QuantLibNode::InterestRateIndexValueDate);
  Nan::SetMethod(target, "InterestRateIndexFixingDate", QuantLibNode::InterestRateIndexFixingDate);
  Nan::SetMethod(target, "InterestRateIndexMaturity", QuantLibNode::InterestRateIndexMaturity);
  Nan::SetMethod(target, "IborIndexBusinessDayConv", QuantLibNode::IborIndexBusinessDayConv);
  Nan::SetMethod(target, "IborIndexEndOfMonth", QuantLibNode::IborIndexEndOfMonth);
  Nan::SetMethod(target, "SwapIndexFixedLegTenor", QuantLibNode::SwapIndexFixedLegTenor);
  Nan::SetMethod(target, "SwapIndexFixedLegBDC", QuantLibNode::SwapIndexFixedLegBDC);
  Nan::SetMethod(target, "InstrumentNPV", QuantLibNode::InstrumentNPV);
  Nan::SetMethod(target, "InstrumentErrorEstimate", QuantLibNode::InstrumentErrorEstimate);
  Nan::SetMethod(target, "InstrumentValuationDate", QuantLibNode::InstrumentValuationDate);
  Nan::SetMethod(target, "InstrumentResults", QuantLibNode::InstrumentResults);
  Nan::SetMethod(target, "InstrumentIsExpired", QuantLibNode::InstrumentIsExpired);
  Nan::SetMethod(target, "InstrumentSetPricingEngine", QuantLibNode::InstrumentSetPricingEngine);
  Nan::SetMethod(target, "Interpolation", QuantLibNode::Interpolation);
  Nan::SetMethod(target, "MixedLinearCubicInterpolation", QuantLibNode::MixedLinearCubicInterpolation);
  Nan::SetMethod(target, "CubicInterpolation", QuantLibNode::CubicInterpolation);
  Nan::SetMethod(target, "AbcdInterpolation", QuantLibNode::AbcdInterpolation);
  Nan::SetMethod(target, "SABRInterpolation", QuantLibNode::SABRInterpolation);
  Nan::SetMethod(target, "Interpolation2D", QuantLibNode::Interpolation2D);
  Nan::SetMethod(target, "ExtrapolatorEnableExtrapolation", QuantLibNode::ExtrapolatorEnableExtrapolation);
  Nan::SetMethod(target, "InterpolationInterpolate", QuantLibNode::InterpolationInterpolate);
  Nan::SetMethod(target, "InterpolationDerivative", QuantLibNode::InterpolationDerivative);
  Nan::SetMethod(target, "InterpolationSecondDerivative", QuantLibNode::InterpolationSecondDerivative);
  Nan::SetMethod(target, "InterpolationPrimitive", QuantLibNode::InterpolationPrimitive);
  Nan::SetMethod(target, "InterpolationIsInRange", QuantLibNode::InterpolationIsInRange);
  Nan::SetMethod(target, "InterpolationXmin", QuantLibNode::InterpolationXmin);
  Nan::SetMethod(target, "InterpolationXmax", QuantLibNode::InterpolationXmax);
  Nan::SetMethod(target, "CubicInterpolationPrimitiveConstants", QuantLibNode::CubicInterpolationPrimitiveConstants);
  Nan::SetMethod(target, "CubicInterpolationACoefficients", QuantLibNode::CubicInterpolationACoefficients);
  Nan::SetMethod(target, "CubicInterpolationBCoefficients", QuantLibNode::CubicInterpolationBCoefficients);
  Nan::SetMethod(target, "CubicInterpolationCCoefficients", QuantLibNode::CubicInterpolationCCoefficients);
  Nan::SetMethod(target, "CubicInterpolationMonotonicityAdjustments", QuantLibNode::CubicInterpolationMonotonicityAdjustments);
  Nan::SetMethod(target, "AbcdInterpolationA", QuantLibNode::AbcdInterpolationA);
  Nan::SetMethod(target, "AbcdInterpolationB", QuantLibNode::AbcdInterpolationB);
  Nan::SetMethod(target, "AbcdInterpolationC", QuantLibNode::AbcdInterpolationC);
  Nan::SetMethod(target, "AbcdInterpolationD", QuantLibNode::AbcdInterpolationD);
  Nan::SetMethod(target, "AbcdInterpolationRmsError", QuantLibNode::AbcdInterpolationRmsError);
  Nan::SetMethod(target, "AbcdInterpolationMaxError", QuantLibNode::AbcdInterpolationMaxError);
  Nan::SetMethod(target, "AbcdInterpolationEndCriteria", QuantLibNode::AbcdInterpolationEndCriteria);
  Nan::SetMethod(target, "SABRInterpolationExpiry", QuantLibNode::SABRInterpolationExpiry);
  Nan::SetMethod(target, "SABRInterpolationForward", QuantLibNode::SABRInterpolationForward);
  Nan::SetMethod(target, "SABRInterpolationAlpha", QuantLibNode::SABRInterpolationAlpha);
  Nan::SetMethod(target, "SABRInterpolationBeta", QuantLibNode::SABRInterpolationBeta);
  Nan::SetMethod(target, "SABRInterpolationNu", QuantLibNode::SABRInterpolationNu);
  Nan::SetMethod(target, "SABRInterpolationRho", QuantLibNode::SABRInterpolationRho);
  Nan::SetMethod(target, "SABRInterpolationRmsError", QuantLibNode::SABRInterpolationRmsError);
  Nan::SetMethod(target, "SABRInterpolationMaxError", QuantLibNode::SABRInterpolationMaxError);
  Nan::SetMethod(target, "SABRInterpolationEndCriteria", QuantLibNode::SABRInterpolationEndCriteria);
  Nan::SetMethod(target, "SABRInterpolationWeights", QuantLibNode::SABRInterpolationWeights);
  Nan::SetMethod(target, "Interpolation2DXmin", QuantLibNode::Interpolation2DXmin);
  Nan::SetMethod(target, "Interpolation2DXmax", QuantLibNode::Interpolation2DXmax);
  Nan::SetMethod(target, "Interpolation2DXvalues", QuantLibNode::Interpolation2DXvalues);
  Nan::SetMethod(target, "Interpolation2DYmin", QuantLibNode::Interpolation2DYmin);
  Nan::SetMethod(target, "Interpolation2DYmax", QuantLibNode::Interpolation2DYmax);
  Nan::SetMethod(target, "Interpolation2DYvalues", QuantLibNode::Interpolation2DYvalues);
  Nan::SetMethod(target, "Interpolation2DzData", QuantLibNode::Interpolation2DzData);
  Nan::SetMethod(target, "Interpolation2DIsInRange", QuantLibNode::Interpolation2DIsInRange);
  Nan::SetMethod(target, "Interpolation2DInterpolate", QuantLibNode::Interpolation2DInterpolate);
  Nan::SetMethod(target, "GaussianDefaultProbLM", QuantLibNode::GaussianDefaultProbLM);
  Nan::SetMethod(target, "TDefaultProbLM", QuantLibNode::TDefaultProbLM);
  Nan::SetMethod(target, "GaussianLMDefaultCorrel", QuantLibNode::GaussianLMDefaultCorrel);
  Nan::SetMethod(target, "GaussianLMAssetCorrel", QuantLibNode::GaussianLMAssetCorrel);
  Nan::SetMethod(target, "GaussianLMProbNHits", QuantLibNode::GaussianLMProbNHits);
  Nan::SetMethod(target, "TLMDefaultCorrel", QuantLibNode::TLMDefaultCorrel);
  Nan::SetMethod(target, "TLMAssetCorrel", QuantLibNode::TLMAssetCorrel);
  Nan::SetMethod(target, "TLMProbNHits", QuantLibNode::TLMProbNHits);
  Nan::SetMethod(target, "Leg", QuantLibNode::Leg);
  Nan::SetMethod(target, "LegFromCapFloor", QuantLibNode::LegFromCapFloor);
  Nan::SetMethod(target, "LegFromSwap", QuantLibNode::LegFromSwap);
  Nan::SetMethod(target, "MultiPhaseLeg", QuantLibNode::MultiPhaseLeg);
  Nan::SetMethod(target, "InterestRate", QuantLibNode::InterestRate);
  Nan::SetMethod(target, "LegFlowAnalysis", QuantLibNode::LegFlowAnalysis);
  Nan::SetMethod(target, "LegSetCouponPricers", QuantLibNode::LegSetCouponPricers);
  Nan::SetMethod(target, "InterestRateRate", QuantLibNode::InterestRateRate);
  Nan::SetMethod(target, "InterestRateDayCounter", QuantLibNode::InterestRateDayCounter);
  Nan::SetMethod(target, "InterestRateCompounding", QuantLibNode::InterestRateCompounding);
  Nan::SetMethod(target, "InterestRateFrequency", QuantLibNode::InterestRateFrequency);
  Nan::SetMethod(target, "InterestRateDiscountFactor", QuantLibNode::InterestRateDiscountFactor);
  Nan::SetMethod(target, "InterestRateCompoundFactor", QuantLibNode::InterestRateCompoundFactor);
  Nan::SetMethod(target, "InterestRateEquivalentRate", QuantLibNode::InterestRateEquivalentRate);
  Nan::SetMethod(target, "LegStartDate", QuantLibNode::LegStartDate);
  Nan::SetMethod(target, "LegMaturityDate", QuantLibNode::LegMaturityDate);
  Nan::SetMethod(target, "LegIsExpired", QuantLibNode::LegIsExpired);
  Nan::SetMethod(target, "LegPreviousCashFlowDate", QuantLibNode::LegPreviousCashFlowDate);
  Nan::SetMethod(target, "LegNextCashFlowDate", QuantLibNode::LegNextCashFlowDate);
  Nan::SetMethod(target, "LegPreviousCashFlowAmount", QuantLibNode::LegPreviousCashFlowAmount);
  Nan::SetMethod(target, "LegNextCashFlowAmount", QuantLibNode::LegNextCashFlowAmount);
  Nan::SetMethod(target, "LegPreviousCouponRate", QuantLibNode::LegPreviousCouponRate);
  Nan::SetMethod(target, "LegNextCouponRate", QuantLibNode::LegNextCouponRate);
  Nan::SetMethod(target, "LegNominal", QuantLibNode::LegNominal);
  Nan::SetMethod(target, "LegAccrualStartDate", QuantLibNode::LegAccrualStartDate);
  Nan::SetMethod(target, "LegAccrualEndDate", QuantLibNode::LegAccrualEndDate);
  Nan::SetMethod(target, "LegReferencePeriodStart", QuantLibNode::LegReferencePeriodStart);
  Nan::SetMethod(target, "LegReferencePeriodEnd", QuantLibNode::LegReferencePeriodEnd);
  Nan::SetMethod(target, "LegAccrualPeriod", QuantLibNode::LegAccrualPeriod);
  Nan::SetMethod(target, "LegAccrualDays", QuantLibNode::LegAccrualDays);
  Nan::SetMethod(target, "LegAccruedPeriod", QuantLibNode::LegAccruedPeriod);
  Nan::SetMethod(target, "LegAccruedDays", QuantLibNode::LegAccruedDays);
  Nan::SetMethod(target, "LegAccruedAmount", QuantLibNode::LegAccruedAmount);
  Nan::SetMethod(target, "LegNPV", QuantLibNode::LegNPV);
  Nan::SetMethod(target, "LegBPS", QuantLibNode::LegBPS);
  Nan::SetMethod(target, "LegAtmRate", QuantLibNode::LegAtmRate);
  Nan::SetMethod(target, "LegNPVFromYield", QuantLibNode::LegNPVFromYield);
  Nan::SetMethod(target, "LegBPSFromYield", QuantLibNode::LegBPSFromYield);
  Nan::SetMethod(target, "LegYield", QuantLibNode::LegYield);
  Nan::SetMethod(target, "LegDuration", QuantLibNode::LegDuration);
  Nan::SetMethod(target, "LegConvexity", QuantLibNode::LegConvexity);
  Nan::SetMethod(target, "LegBasisPointValue", QuantLibNode::LegBasisPointValue);
  Nan::SetMethod(target, "LegYieldValueBasisPoint", QuantLibNode::LegYieldValueBasisPoint);
  Nan::SetMethod(target, "LegNPVFromZSpread", QuantLibNode::LegNPVFromZSpread);
  Nan::SetMethod(target, "LegZSpread", QuantLibNode::LegZSpread);
  Nan::SetMethod(target, "InterestRateImpliedRate", QuantLibNode::InterestRateImpliedRate);
  Nan::SetMethod(target, "ForwardRatePc", QuantLibNode::ForwardRatePc);
  Nan::SetMethod(target, "ForwardRateIpc", QuantLibNode::ForwardRateIpc);
  Nan::SetMethod(target, "ForwardRateNormalPc", QuantLibNode::ForwardRateNormalPc);
  Nan::SetMethod(target, "MarketModelEvolverStartNewPath", QuantLibNode::MarketModelEvolverStartNewPath);
  Nan::SetMethod(target, "MarketModelEvolverAdvanceStep", QuantLibNode::MarketModelEvolverAdvanceStep);
  Nan::SetMethod(target, "MarketModelEvolverCurrentStep", QuantLibNode::MarketModelEvolverCurrentStep);
  Nan::SetMethod(target, "MarketModelEvolverNumeraires", QuantLibNode::MarketModelEvolverNumeraires);
  Nan::SetMethod(target, "FlatVol", QuantLibNode::FlatVol);
  Nan::SetMethod(target, "AbcdVol", QuantLibNode::AbcdVol);
  Nan::SetMethod(target, "PseudoRootFacade", QuantLibNode::PseudoRootFacade);
  Nan::SetMethod(target, "CotSwapToFwdAdapter", QuantLibNode::CotSwapToFwdAdapter);
  Nan::SetMethod(target, "FwdPeriodAdapter", QuantLibNode::FwdPeriodAdapter);
  Nan::SetMethod(target, "FwdToCotSwapAdapter", QuantLibNode::FwdToCotSwapAdapter);
  Nan::SetMethod(target, "FlatVolFactory", QuantLibNode::FlatVolFactory);
  Nan::SetMethod(target, "MarketModelInitialRates", QuantLibNode::MarketModelInitialRates);
  Nan::SetMethod(target, "MarketModelDisplacements", QuantLibNode::MarketModelDisplacements);
  Nan::SetMethod(target, "MarketModelNumberOfRates", QuantLibNode::MarketModelNumberOfRates);
  Nan::SetMethod(target, "MarketModelNumberOfFactors", QuantLibNode::MarketModelNumberOfFactors);
  Nan::SetMethod(target, "MarketModelNumberOfSteps", QuantLibNode::MarketModelNumberOfSteps);
  Nan::SetMethod(target, "MarketModelPseudoRoot", QuantLibNode::MarketModelPseudoRoot);
  Nan::SetMethod(target, "MarketModelCovariance", QuantLibNode::MarketModelCovariance);
  Nan::SetMethod(target, "MarketModelTotalCovariance", QuantLibNode::MarketModelTotalCovariance);
  Nan::SetMethod(target, "MarketModelTimeDependentVolatility", QuantLibNode::MarketModelTimeDependentVolatility);
  Nan::SetMethod(target, "CoterminalSwapForwardJacobian", QuantLibNode::CoterminalSwapForwardJacobian);
  Nan::SetMethod(target, "CoterminalSwapZedMatrix", QuantLibNode::CoterminalSwapZedMatrix);
  Nan::SetMethod(target, "CoinitialSwapForwardJacobian", QuantLibNode::CoinitialSwapForwardJacobian);
  Nan::SetMethod(target, "CoinitialSwapZedMatrix", QuantLibNode::CoinitialSwapZedMatrix);
  Nan::SetMethod(target, "CmSwapForwardJacobian", QuantLibNode::CmSwapForwardJacobian);
  Nan::SetMethod(target, "CmSwapZedMatrix", QuantLibNode::CmSwapZedMatrix);
  Nan::SetMethod(target, "Annuity", QuantLibNode::Annuity);
  Nan::SetMethod(target, "SwapDerivative", QuantLibNode::SwapDerivative);
  Nan::SetMethod(target, "RateVolDifferences", QuantLibNode::RateVolDifferences);
  Nan::SetMethod(target, "RateInstVolDifferences", QuantLibNode::RateInstVolDifferences);
  Nan::SetMethod(target, "SymmetricSchurDecomposition", QuantLibNode::SymmetricSchurDecomposition);
  Nan::SetMethod(target, "CovarianceDecomposition", QuantLibNode::CovarianceDecomposition);
  Nan::SetMethod(target, "SymmetricSchurDecompositionEigenvalues", QuantLibNode::SymmetricSchurDecompositionEigenvalues);
  Nan::SetMethod(target, "SymmetricSchurDecompositionEigenvectors", QuantLibNode::SymmetricSchurDecompositionEigenvectors);
  Nan::SetMethod(target, "CovarianceDecompositionVariances", QuantLibNode::CovarianceDecompositionVariances);
  Nan::SetMethod(target, "CovarianceDecompositionStandardDeviations", QuantLibNode::CovarianceDecompositionStandardDeviations);
  Nan::SetMethod(target, "CovarianceDecompositionCorrelationMatrix", QuantLibNode::CovarianceDecompositionCorrelationMatrix);
  Nan::SetMethod(target, "PrimeNumber", QuantLibNode::PrimeNumber);
  Nan::SetMethod(target, "NormDist", QuantLibNode::NormDist);
  Nan::SetMethod(target, "NormSDist", QuantLibNode::NormSDist);
  Nan::SetMethod(target, "NormInv", QuantLibNode::NormInv);
  Nan::SetMethod(target, "NormSInv", QuantLibNode::NormSInv);
  Nan::SetMethod(target, "CholeskyDecomposition", QuantLibNode::CholeskyDecomposition);
  Nan::SetMethod(target, "PseudoSqrt", QuantLibNode::PseudoSqrt);
  Nan::SetMethod(target, "RankReducedSqrt", QuantLibNode::RankReducedSqrt);
  Nan::SetMethod(target, "GetCovariance", QuantLibNode::GetCovariance);
  Nan::SetMethod(target, "EndCriteria", QuantLibNode::EndCriteria);
  Nan::SetMethod(target, "NoConstraint", QuantLibNode::NoConstraint);
  Nan::SetMethod(target, "Simplex", QuantLibNode::Simplex);
  Nan::SetMethod(target, "LevenbergMarquardt", QuantLibNode::LevenbergMarquardt);
  Nan::SetMethod(target, "ConjugateGradient", QuantLibNode::ConjugateGradient);
  Nan::SetMethod(target, "SteepestDescent", QuantLibNode::SteepestDescent);
  Nan::SetMethod(target, "ArmijoLineSearch", QuantLibNode::ArmijoLineSearch);
  Nan::SetMethod(target, "EndCriteriaMaxIterations", QuantLibNode::EndCriteriaMaxIterations);
  Nan::SetMethod(target, "EndCriteriaMaxStationaryStateIterations", QuantLibNode::EndCriteriaMaxStationaryStateIterations);
  Nan::SetMethod(target, "EndCriteriaFunctionEpsilon", QuantLibNode::EndCriteriaFunctionEpsilon);
  Nan::SetMethod(target, "EndCriteriaGradientNormEpsilon", QuantLibNode::EndCriteriaGradientNormEpsilon);
  Nan::SetMethod(target, "SphereCylinderOptimizerClosest", QuantLibNode::SphereCylinderOptimizerClosest);
  Nan::SetMethod(target, "SecondsToString", QuantLibNode::SecondsToString);
  Nan::SetMethod(target, "BarrierOption", QuantLibNode::BarrierOption);
  Nan::SetMethod(target, "CaAsianOption", QuantLibNode::CaAsianOption);
  Nan::SetMethod(target, "DaAsianOption", QuantLibNode::DaAsianOption);
  Nan::SetMethod(target, "DividendVanillaOption", QuantLibNode::DividendVanillaOption);
  Nan::SetMethod(target, "ForwardVanillaOption", QuantLibNode::ForwardVanillaOption);
  Nan::SetMethod(target, "VanillaOption", QuantLibNode::VanillaOption);
  Nan::SetMethod(target, "EuropeanOption", QuantLibNode::EuropeanOption);
  Nan::SetMethod(target, "QuantoVanillaOption", QuantLibNode::QuantoVanillaOption);
  Nan::SetMethod(target, "QuantoForwardVanillaOption", QuantLibNode::QuantoForwardVanillaOption);
  Nan::SetMethod(target, "Delta", QuantLibNode::Delta);
  Nan::SetMethod(target, "DeltaForward", QuantLibNode::DeltaForward);
  Nan::SetMethod(target, "Elasticity", QuantLibNode::Elasticity);
  Nan::SetMethod(target, "Gamma", QuantLibNode::Gamma);
  Nan::SetMethod(target, "Theta", QuantLibNode::Theta);
  Nan::SetMethod(target, "ThetaPerDay", QuantLibNode::ThetaPerDay);
  Nan::SetMethod(target, "Vega", QuantLibNode::Vega);
  Nan::SetMethod(target, "Rho", QuantLibNode::Rho);
  Nan::SetMethod(target, "DividendRho", QuantLibNode::DividendRho);
  Nan::SetMethod(target, "ItmCashProbability", QuantLibNode::ItmCashProbability);
  Nan::SetMethod(target, "OvernightIndexedSwap", QuantLibNode::OvernightIndexedSwap);
  Nan::SetMethod(target, "MakeOIS", QuantLibNode::MakeOIS);
  Nan::SetMethod(target, "MakeDatedOIS", QuantLibNode::MakeDatedOIS);
  Nan::SetMethod(target, "OvernightIndexedSwapFromOISRateHelper", QuantLibNode::OvernightIndexedSwapFromOISRateHelper);
  Nan::SetMethod(target, "OvernightIndexedSwapFixedLegBPS", QuantLibNode::OvernightIndexedSwapFixedLegBPS);
  Nan::SetMethod(target, "OvernightIndexedSwapFixedLegNPV", QuantLibNode::OvernightIndexedSwapFixedLegNPV);
  Nan::SetMethod(target, "OvernightIndexedSwapFairRate", QuantLibNode::OvernightIndexedSwapFairRate);
  Nan::SetMethod(target, "OvernightIndexedSwapOvernightLegBPS", QuantLibNode::OvernightIndexedSwapOvernightLegBPS);
  Nan::SetMethod(target, "OvernightIndexedSwapOvernightLegNPV", QuantLibNode::OvernightIndexedSwapOvernightLegNPV);
  Nan::SetMethod(target, "OvernightIndexedSwapFairSpread", QuantLibNode::OvernightIndexedSwapFairSpread);
  Nan::SetMethod(target, "OvernightIndexedSwapType", QuantLibNode::OvernightIndexedSwapType);
  Nan::SetMethod(target, "OvernightIndexedSwapNominal", QuantLibNode::OvernightIndexedSwapNominal);
  Nan::SetMethod(target, "OvernightIndexedSwapFixedRate", QuantLibNode::OvernightIndexedSwapFixedRate);
  Nan::SetMethod(target, "OvernightIndexedSwapFixedDayCount", QuantLibNode::OvernightIndexedSwapFixedDayCount);
  Nan::SetMethod(target, "OvernightIndexedSwapSpread", QuantLibNode::OvernightIndexedSwapSpread);
  Nan::SetMethod(target, "OvernightIndexedSwapFixedLegAnalysis", QuantLibNode::OvernightIndexedSwapFixedLegAnalysis);
  Nan::SetMethod(target, "OvernightIndexedSwapOvernightLegAnalysis", QuantLibNode::OvernightIndexedSwapOvernightLegAnalysis);
  Nan::SetMethod(target, "StrikedTypePayoff", QuantLibNode::StrikedTypePayoff);
  Nan::SetMethod(target, "DoubleStickyRatchetPayoff", QuantLibNode::DoubleStickyRatchetPayoff);
  Nan::SetMethod(target, "RatchetPayoff", QuantLibNode::RatchetPayoff);
  Nan::SetMethod(target, "StickyPayoff", QuantLibNode::StickyPayoff);
  Nan::SetMethod(target, "RatchetMaxPayoff", QuantLibNode::RatchetMaxPayoff);
  Nan::SetMethod(target, "RatchetMinPayoff", QuantLibNode::RatchetMinPayoff);
  Nan::SetMethod(target, "StickyMaxPayoff", QuantLibNode::StickyMaxPayoff);
  Nan::SetMethod(target, "StickyMinPayoff", QuantLibNode::StickyMinPayoff);
  Nan::SetMethod(target, "PayoffName", QuantLibNode::PayoffName);
  Nan::SetMethod(target, "PayoffDescription", QuantLibNode::PayoffDescription);
  Nan::SetMethod(target, "PayoffValue", QuantLibNode::PayoffValue);
  Nan::SetMethod(target, "PayoffOptionType", QuantLibNode::PayoffOptionType);
  Nan::SetMethod(target, "PayoffStrike", QuantLibNode::PayoffStrike);
  Nan::SetMethod(target, "PayoffThirdParameter", QuantLibNode::PayoffThirdParameter);
  Nan::SetMethod(target, "PiecewiseYieldCurve", QuantLibNode::PiecewiseYieldCurve);
  Nan::SetMethod(target, "PiecewiseYieldCurveTimes", QuantLibNode::PiecewiseYieldCurveTimes);
  Nan::SetMethod(target, "PiecewiseYieldCurveDates", QuantLibNode::PiecewiseYieldCurveDates);
  Nan::SetMethod(target, "PiecewiseYieldCurveData", QuantLibNode::PiecewiseYieldCurveData);
  Nan::SetMethod(target, "PiecewiseYieldCurveJumpTimes", QuantLibNode::PiecewiseYieldCurveJumpTimes);
  Nan::SetMethod(target, "PiecewiseYieldCurveJumpDates", QuantLibNode::PiecewiseYieldCurveJumpDates);
  Nan::SetMethod(target, "MidEquivalent", QuantLibNode::MidEquivalent);
  Nan::SetMethod(target, "MidSafe", QuantLibNode::MidSafe);
  Nan::SetMethod(target, "BlackCalculator2", QuantLibNode::BlackCalculator2);
  Nan::SetMethod(target, "BlackCalculator", QuantLibNode::BlackCalculator);
  Nan::SetMethod(target, "BlackScholesCalculator2", QuantLibNode::BlackScholesCalculator2);
  Nan::SetMethod(target, "BlackScholesCalculator", QuantLibNode::BlackScholesCalculator);
  Nan::SetMethod(target, "PricingEngine", QuantLibNode::PricingEngine);
  Nan::SetMethod(target, "DiscountingSwapEngine", QuantLibNode::DiscountingSwapEngine);
  Nan::SetMethod(target, "BinomialPricingEngine", QuantLibNode::BinomialPricingEngine);
  Nan::SetMethod(target, "BlackSwaptionEngine", QuantLibNode::BlackSwaptionEngine);
  Nan::SetMethod(target, "BlackSwaptionEngine2", QuantLibNode::BlackSwaptionEngine2);
  Nan::SetMethod(target, "BlackCapFloorEngine", QuantLibNode::BlackCapFloorEngine);
  Nan::SetMethod(target, "BlackCapFloorEngine2", QuantLibNode::BlackCapFloorEngine2);
  Nan::SetMethod(target, "AnalyticCapFloorEngine", QuantLibNode::AnalyticCapFloorEngine);
  Nan::SetMethod(target, "BondEngine", QuantLibNode::BondEngine);
  Nan::SetMethod(target, "JamshidianSwaptionEngine", QuantLibNode::JamshidianSwaptionEngine);
  Nan::SetMethod(target, "TreeSwaptionEngine", QuantLibNode::TreeSwaptionEngine);
  Nan::SetMethod(target, "ModelG2SwaptionEngine", QuantLibNode::ModelG2SwaptionEngine);
  Nan::SetMethod(target, "BlackCalculatorValue", QuantLibNode::BlackCalculatorValue);
  Nan::SetMethod(target, "BlackCalculatorDeltaForward", QuantLibNode::BlackCalculatorDeltaForward);
  Nan::SetMethod(target, "BlackCalculatorDelta", QuantLibNode::BlackCalculatorDelta);
  Nan::SetMethod(target, "BlackCalculatorElasticityForward", QuantLibNode::BlackCalculatorElasticityForward);
  Nan::SetMethod(target, "BlackCalculatorElasticity", QuantLibNode::BlackCalculatorElasticity);
  Nan::SetMethod(target, "BlackCalculatorGammaForward", QuantLibNode::BlackCalculatorGammaForward);
  Nan::SetMethod(target, "BlackCalculatorGamma", QuantLibNode::BlackCalculatorGamma);
  Nan::SetMethod(target, "BlackCalculatorTheta", QuantLibNode::BlackCalculatorTheta);
  Nan::SetMethod(target, "BlackCalculatorThetaPerDay", QuantLibNode::BlackCalculatorThetaPerDay);
  Nan::SetMethod(target, "BlackCalculatorVega", QuantLibNode::BlackCalculatorVega);
  Nan::SetMethod(target, "BlackCalculatorRho", QuantLibNode::BlackCalculatorRho);
  Nan::SetMethod(target, "BlackCalculatorDividendRho", QuantLibNode::BlackCalculatorDividendRho);
  Nan::SetMethod(target, "BlackCalculatorItmCashProbability", QuantLibNode::BlackCalculatorItmCashProbability);
  Nan::SetMethod(target, "BlackCalculatorItmAssetProbability", QuantLibNode::BlackCalculatorItmAssetProbability);
  Nan::SetMethod(target, "BlackCalculatorStrikeSensitivity", QuantLibNode::BlackCalculatorStrikeSensitivity);
  Nan::SetMethod(target, "BlackCalculatorAlpha", QuantLibNode::BlackCalculatorAlpha);
  Nan::SetMethod(target, "BlackCalculatorBeta", QuantLibNode::BlackCalculatorBeta);
  Nan::SetMethod(target, "BlackScholesCalculatorDelta", QuantLibNode::BlackScholesCalculatorDelta);
  Nan::SetMethod(target, "BlackScholesCalculatorElasticity", QuantLibNode::BlackScholesCalculatorElasticity);
  Nan::SetMethod(target, "BlackScholesCalculatorGamma", QuantLibNode::BlackScholesCalculatorGamma);
  Nan::SetMethod(target, "BlackScholesCalculatorTheta", QuantLibNode::BlackScholesCalculatorTheta);
  Nan::SetMethod(target, "BlackScholesCalculatorThetaPerDay", QuantLibNode::BlackScholesCalculatorThetaPerDay);
  Nan::SetMethod(target, "BlackFormula", QuantLibNode::BlackFormula);
  Nan::SetMethod(target, "BlackFormulaCashItmProbability", QuantLibNode::BlackFormulaCashItmProbability);
  Nan::SetMethod(target, "BlackFormulaImpliedStdDevApproximation", QuantLibNode::BlackFormulaImpliedStdDevApproximation);
  Nan::SetMethod(target, "BlackFormulaImpliedStdDev", QuantLibNode::BlackFormulaImpliedStdDev);
  Nan::SetMethod(target, "BlackFormulaStdDevDerivative", QuantLibNode::BlackFormulaStdDevDerivative);
  Nan::SetMethod(target, "BachelierBlackFormula", QuantLibNode::BachelierBlackFormula);
  Nan::SetMethod(target, "BlackFormula2", QuantLibNode::BlackFormula2);
  Nan::SetMethod(target, "BlackFormulaCashItmProbability2", QuantLibNode::BlackFormulaCashItmProbability2);
  Nan::SetMethod(target, "BlackFormulaImpliedStdDevApproximation2", QuantLibNode::BlackFormulaImpliedStdDevApproximation2);
  Nan::SetMethod(target, "BlackFormulaImpliedStdDev2", QuantLibNode::BlackFormulaImpliedStdDev2);
  Nan::SetMethod(target, "BlackFormulaStdDevDerivative2", QuantLibNode::BlackFormulaStdDevDerivative2);
  Nan::SetMethod(target, "BachelierBlackFormula2", QuantLibNode::BachelierBlackFormula2);
  Nan::SetMethod(target, "GeneralizedBlackScholesProcess", QuantLibNode::GeneralizedBlackScholesProcess);
  Nan::SetMethod(target, "MarketModelMultiProductComposite", QuantLibNode::MarketModelMultiProductComposite);
  Nan::SetMethod(target, "MarketModelOneStepForwards", QuantLibNode::MarketModelOneStepForwards);
  Nan::SetMethod(target, "MarketModelMultiStepRatchet", QuantLibNode::MarketModelMultiStepRatchet);
  Nan::SetMethod(target, "MarketModelOneStepOptionlets", QuantLibNode::MarketModelOneStepOptionlets);
  Nan::SetMethod(target, "MarketModelMultiProductCompositeAdd", QuantLibNode::MarketModelMultiProductCompositeAdd);
  Nan::SetMethod(target, "MarketModelMultiProductCompositeFinalize", QuantLibNode::MarketModelMultiProductCompositeFinalize);
  Nan::SetMethod(target, "MarketModelMultiProductSuggestedNumeraires", QuantLibNode::MarketModelMultiProductSuggestedNumeraires);
  Nan::SetMethod(target, "MarketModelMultiProductPossibleCashFlowTimes", QuantLibNode::MarketModelMultiProductPossibleCashFlowTimes);
  Nan::SetMethod(target, "MarketModelMultiProductNumberOfProducts", QuantLibNode::MarketModelMultiProductNumberOfProducts);
  Nan::SetMethod(target, "MarketModelMultiProductMaxNumberOfCashFlowsPerProductPerStep", QuantLibNode::MarketModelMultiProductMaxNumberOfCashFlowsPerProductPerStep);
  Nan::SetMethod(target, "SimpleQuote", QuantLibNode::SimpleQuote);
  Nan::SetMethod(target, "ForwardValueQuote", QuantLibNode::ForwardValueQuote);
  Nan::SetMethod(target, "ForwardSwapQuote", QuantLibNode::ForwardSwapQuote);
  Nan::SetMethod(target, "ImpliedStdDevQuote", QuantLibNode::ImpliedStdDevQuote);
  Nan::SetMethod(target, "EurodollarFuturesImpliedStdDevQuote", QuantLibNode::EurodollarFuturesImpliedStdDevQuote);
  Nan::SetMethod(target, "CompositeQuote", QuantLibNode::CompositeQuote);
  Nan::SetMethod(target, "FuturesConvAdjustmentQuote", QuantLibNode::FuturesConvAdjustmentQuote);
  Nan::SetMethod(target, "LastFixingQuote", QuantLibNode::LastFixingQuote);
  Nan::SetMethod(target, "RelinkableHandleQuote", QuantLibNode::RelinkableHandleQuote);
  Nan::SetMethod(target, "QuoteValue", QuantLibNode::QuoteValue);
  Nan::SetMethod(target, "QuoteIsValid", QuantLibNode::QuoteIsValid);
  Nan::SetMethod(target, "SimpleQuoteReset", QuantLibNode::SimpleQuoteReset);
  Nan::SetMethod(target, "SimpleQuoteSetValue", QuantLibNode::SimpleQuoteSetValue);
  Nan::SetMethod(target, "SimpleQuoteSetTickValue", QuantLibNode::SimpleQuoteSetTickValue);
  Nan::SetMethod(target, "SimpleQuoteTickValue", QuantLibNode::SimpleQuoteTickValue);
  Nan::SetMethod(target, "FuturesConvAdjustmentQuoteVolatility", QuantLibNode::FuturesConvAdjustmentQuoteVolatility);
  Nan::SetMethod(target, "FuturesConvAdjustmentQuoteMeanReversion", QuantLibNode::FuturesConvAdjustmentQuoteMeanReversion);
  Nan::SetMethod(target, "FuturesConvAdjustmentQuoteImmDate", QuantLibNode::FuturesConvAdjustmentQuoteImmDate);
  Nan::SetMethod(target, "FuturesConvAdjustmentQuoteFuturesValue", QuantLibNode::FuturesConvAdjustmentQuoteFuturesValue);
  Nan::SetMethod(target, "LastFixingQuoteReferenceDate", QuantLibNode::LastFixingQuoteReferenceDate);
  Nan::SetMethod(target, "BucketAnalysis", QuantLibNode::BucketAnalysis);
  Nan::SetMethod(target, "BucketAnalysisDelta", QuantLibNode::BucketAnalysisDelta);
  Nan::SetMethod(target, "BucketAnalysisDelta2", QuantLibNode::BucketAnalysisDelta2);
  Nan::SetMethod(target, "MersenneTwisterRsg", QuantLibNode::MersenneTwisterRsg);
  Nan::SetMethod(target, "FaureRsg", QuantLibNode::FaureRsg);
  Nan::SetMethod(target, "HaltonRsg", QuantLibNode::HaltonRsg);
  Nan::SetMethod(target, "SobolRsg", QuantLibNode::SobolRsg);
  Nan::SetMethod(target, "Variates", QuantLibNode::Variates);
  Nan::SetMethod(target, "Rand", QuantLibNode::Rand);
  Nan::SetMethod(target, "Randomize", QuantLibNode::Randomize);
  Nan::SetMethod(target, "RangeAccrualFloatersCoupon", QuantLibNode::RangeAccrualFloatersCoupon);
  Nan::SetMethod(target, "RangeAccrualFloatersCouponFromLeg", QuantLibNode::RangeAccrualFloatersCouponFromLeg);
  Nan::SetMethod(target, "RangeAccrualPricerByBgm", QuantLibNode::RangeAccrualPricerByBgm);
  Nan::SetMethod(target, "RangeAccrualFloatersCouponSetPricer", QuantLibNode::RangeAccrualFloatersCouponSetPricer);
  Nan::SetMethod(target, "RangeAccrualFloatersCouponObservationDates", QuantLibNode::RangeAccrualFloatersCouponObservationDates);
  Nan::SetMethod(target, "RangeAccrualFloatersCouponStarDate", QuantLibNode::RangeAccrualFloatersCouponStarDate);
  Nan::SetMethod(target, "RangeAccrualFloatersCouponEndDate", QuantLibNode::RangeAccrualFloatersCouponEndDate);
  Nan::SetMethod(target, "RangeAccrualFloatersCouponObservationsNo", QuantLibNode::RangeAccrualFloatersCouponObservationsNo);
  Nan::SetMethod(target, "RangeAccrualFloatersPrice", QuantLibNode::RangeAccrualFloatersPrice);
  Nan::SetMethod(target, "SimpleFloaterPrice", QuantLibNode::SimpleFloaterPrice);
  Nan::SetMethod(target, "DepositRateHelper", QuantLibNode::DepositRateHelper);
  Nan::SetMethod(target, "DepositRateHelper2", QuantLibNode::DepositRateHelper2);
  Nan::SetMethod(target, "SwapRateHelper", QuantLibNode::SwapRateHelper);
  Nan::SetMethod(target, "SwapRateHelper2", QuantLibNode::SwapRateHelper2);
  Nan::SetMethod(target, "OISRateHelper", QuantLibNode::OISRateHelper);
  Nan::SetMethod(target, "DatedOISRateHelper", QuantLibNode::DatedOISRateHelper);
  Nan::SetMethod(target, "FraRateHelper", QuantLibNode::FraRateHelper);
  Nan::SetMethod(target, "FraRateHelper2", QuantLibNode::FraRateHelper2);
  Nan::SetMethod(target, "BondHelper", QuantLibNode::BondHelper);
  Nan::SetMethod(target, "FixedRateBondHelper", QuantLibNode::FixedRateBondHelper);
  Nan::SetMethod(target, "FuturesRateHelper", QuantLibNode::FuturesRateHelper);
  Nan::SetMethod(target, "FuturesRateHelper2", QuantLibNode::FuturesRateHelper2);
  Nan::SetMethod(target, "FuturesRateHelper3", QuantLibNode::FuturesRateHelper3);
  Nan::SetMethod(target, "FxSwapRateHelper", QuantLibNode::FxSwapRateHelper);
  Nan::SetMethod(target, "RateHelperEarliestDate", QuantLibNode::RateHelperEarliestDate);
  Nan::SetMethod(target, "RateHelperLatestRelevantDate", QuantLibNode::RateHelperLatestRelevantDate);
  Nan::SetMethod(target, "RateHelperPillarDate", QuantLibNode::RateHelperPillarDate);
  Nan::SetMethod(target, "RateHelperMaturityDate", QuantLibNode::RateHelperMaturityDate);
  Nan::SetMethod(target, "RateHelperQuoteName", QuantLibNode::RateHelperQuoteName);
  Nan::SetMethod(target, "RateHelperQuoteValue", QuantLibNode::RateHelperQuoteValue);
  Nan::SetMethod(target, "RateHelperQuoteIsValid", QuantLibNode::RateHelperQuoteIsValid);
  Nan::SetMethod(target, "RateHelperImpliedQuote", QuantLibNode::RateHelperImpliedQuote);
  Nan::SetMethod(target, "RateHelperQuoteError", QuantLibNode::RateHelperQuoteError);
  Nan::SetMethod(target, "SwapRateHelperSpread", QuantLibNode::SwapRateHelperSpread);
  Nan::SetMethod(target, "SwapRateHelperForwardStart", QuantLibNode::SwapRateHelperForwardStart);
  Nan::SetMethod(target, "FuturesRateHelperConvexityAdjustment", QuantLibNode::FuturesRateHelperConvexityAdjustment);
  Nan::SetMethod(target, "FxSwapRateHelperSpotValue", QuantLibNode::FxSwapRateHelperSpotValue);
  Nan::SetMethod(target, "FxSwapRateHelperTenor", QuantLibNode::FxSwapRateHelperTenor);
  Nan::SetMethod(target, "FxSwapRateHelperFixingDays", QuantLibNode::FxSwapRateHelperFixingDays);
  Nan::SetMethod(target, "FxSwapRateHelperCalendar", QuantLibNode::FxSwapRateHelperCalendar);
  Nan::SetMethod(target, "FxSwapRateHelperBDC", QuantLibNode::FxSwapRateHelperBDC);
  Nan::SetMethod(target, "FxSwapRateHelperEOM", QuantLibNode::FxSwapRateHelperEOM);
  Nan::SetMethod(target, "FxSwapRateHelperIsBaseCurrencyCollateralCurrency", QuantLibNode::FxSwapRateHelperIsBaseCurrencyCollateralCurrency);
  Nan::SetMethod(target, "RateHelperSelection", QuantLibNode::RateHelperSelection);
  Nan::SetMethod(target, "RateHelperRate", QuantLibNode::RateHelperRate);
  Nan::SetMethod(target, "Schedule", QuantLibNode::Schedule);
  Nan::SetMethod(target, "ScheduleFromDateVector", QuantLibNode::ScheduleFromDateVector);
  Nan::SetMethod(target, "ScheduleTruncated", QuantLibNode::ScheduleTruncated);
  Nan::SetMethod(target, "ScheduleSize", QuantLibNode::ScheduleSize);
  Nan::SetMethod(target, "SchedulePreviousDate", QuantLibNode::SchedulePreviousDate);
  Nan::SetMethod(target, "ScheduleNextDate", QuantLibNode::ScheduleNextDate);
  Nan::SetMethod(target, "ScheduleDates", QuantLibNode::ScheduleDates);
  Nan::SetMethod(target, "ScheduleIsRegular", QuantLibNode::ScheduleIsRegular);
  Nan::SetMethod(target, "ScheduleEmpty", QuantLibNode::ScheduleEmpty);
  Nan::SetMethod(target, "ScheduleCalendar", QuantLibNode::ScheduleCalendar);
  Nan::SetMethod(target, "ScheduleStartDate", QuantLibNode::ScheduleStartDate);
  Nan::SetMethod(target, "ScheduleEndDate", QuantLibNode::ScheduleEndDate);
  Nan::SetMethod(target, "ScheduleTenor", QuantLibNode::ScheduleTenor);
  Nan::SetMethod(target, "ScheduleBDC", QuantLibNode::ScheduleBDC);
  Nan::SetMethod(target, "ScheduleTerminationDateBDC", QuantLibNode::ScheduleTerminationDateBDC);
  Nan::SetMethod(target, "ScheduleRule", QuantLibNode::ScheduleRule);
  Nan::SetMethod(target, "ScheduleEndOfMonth", QuantLibNode::ScheduleEndOfMonth);
  Nan::SetMethod(target, "SequenceStatistics", QuantLibNode::SequenceStatistics);
  Nan::SetMethod(target, "SequenceStatistics2", QuantLibNode::SequenceStatistics2);
  Nan::SetMethod(target, "SequenceStatisticsInc", QuantLibNode::SequenceStatisticsInc);
  Nan::SetMethod(target, "SequenceStatisticsInc2", QuantLibNode::SequenceStatisticsInc2);
  Nan::SetMethod(target, "SequenceStatisticsSamples", QuantLibNode::SequenceStatisticsSamples);
  Nan::SetMethod(target, "SequenceStatisticsWeightSum", QuantLibNode::SequenceStatisticsWeightSum);
  Nan::SetMethod(target, "SequenceStatisticsMean", QuantLibNode::SequenceStatisticsMean);
  Nan::SetMethod(target, "SequenceStatisticsVariance", QuantLibNode::SequenceStatisticsVariance);
  Nan::SetMethod(target, "SequenceStatisticsStandardDeviation", QuantLibNode::SequenceStatisticsStandardDeviation);
  Nan::SetMethod(target, "SequenceStatisticsDownsideVariance", QuantLibNode::SequenceStatisticsDownsideVariance);
  Nan::SetMethod(target, "SequenceStatisticsDownsideDeviation", QuantLibNode::SequenceStatisticsDownsideDeviation);
  Nan::SetMethod(target, "SequenceStatisticsSemiVariance", QuantLibNode::SequenceStatisticsSemiVariance);
  Nan::SetMethod(target, "SequenceStatisticsSemiDeviation", QuantLibNode::SequenceStatisticsSemiDeviation);
  Nan::SetMethod(target, "SequenceStatisticsErrorEstimate", QuantLibNode::SequenceStatisticsErrorEstimate);
  Nan::SetMethod(target, "SequenceStatisticsSkewness", QuantLibNode::SequenceStatisticsSkewness);
  Nan::SetMethod(target, "SequenceStatisticsKurtosis", QuantLibNode::SequenceStatisticsKurtosis);
  Nan::SetMethod(target, "SequenceStatisticsMin", QuantLibNode::SequenceStatisticsMin);
  Nan::SetMethod(target, "SequenceStatisticsMax", QuantLibNode::SequenceStatisticsMax);
  Nan::SetMethod(target, "SequenceStatisticsGaussianPercentile", QuantLibNode::SequenceStatisticsGaussianPercentile);
  Nan::SetMethod(target, "SequenceStatisticsPercentile", QuantLibNode::SequenceStatisticsPercentile);
  Nan::SetMethod(target, "SequenceStatisticsGaussianPotentialUpside", QuantLibNode::SequenceStatisticsGaussianPotentialUpside);
  Nan::SetMethod(target, "SequenceStatisticsPotentialUpside", QuantLibNode::SequenceStatisticsPotentialUpside);
  Nan::SetMethod(target, "SequenceStatisticsGaussianValueAtRisk", QuantLibNode::SequenceStatisticsGaussianValueAtRisk);
  Nan::SetMethod(target, "SequenceStatisticsValueAtRisk", QuantLibNode::SequenceStatisticsValueAtRisk);
  Nan::SetMethod(target, "SequenceStatisticsRegret", QuantLibNode::SequenceStatisticsRegret);
  Nan::SetMethod(target, "SequenceStatisticsGaussianShortfall", QuantLibNode::SequenceStatisticsGaussianShortfall);
  Nan::SetMethod(target, "SequenceStatisticsShortfall", QuantLibNode::SequenceStatisticsShortfall);
  Nan::SetMethod(target, "SequenceStatisticsGaussianAverageShortfall", QuantLibNode::SequenceStatisticsGaussianAverageShortfall);
  Nan::SetMethod(target, "SequenceStatisticsAverageShortfall", QuantLibNode::SequenceStatisticsAverageShortfall);
  Nan::SetMethod(target, "SequenceStatisticsSize", QuantLibNode::SequenceStatisticsSize);
  Nan::SetMethod(target, "SequenceStatisticsCovariance", QuantLibNode::SequenceStatisticsCovariance);
  Nan::SetMethod(target, "SequenceStatisticsCorrelation", QuantLibNode::SequenceStatisticsCorrelation);
  Nan::SetMethod(target, "SettingsEvaluationDate", QuantLibNode::SettingsEvaluationDate);
  Nan::SetMethod(target, "SettingsSetEvaluationDate", QuantLibNode::SettingsSetEvaluationDate);
  Nan::SetMethod(target, "SettingsEnforceTodaysHistoricFixings", QuantLibNode::SettingsEnforceTodaysHistoricFixings);
  Nan::SetMethod(target, "SettingsSetEnforceTodaysHistoricFixings", QuantLibNode::SettingsSetEnforceTodaysHistoricFixings);
  Nan::SetMethod(target, "HullWhite", QuantLibNode::HullWhite);
  Nan::SetMethod(target, "Vasicek", QuantLibNode::Vasicek);
  Nan::SetMethod(target, "ModelG2", QuantLibNode::ModelG2);
  Nan::SetMethod(target, "VasicekA", QuantLibNode::VasicekA);
  Nan::SetMethod(target, "VasicekB", QuantLibNode::VasicekB);
  Nan::SetMethod(target, "VasicekLambda", QuantLibNode::VasicekLambda);
  Nan::SetMethod(target, "VasicekSigma", QuantLibNode::VasicekSigma);
  Nan::SetMethod(target, "ModelG2A", QuantLibNode::ModelG2A);
  Nan::SetMethod(target, "ModelG2sigma", QuantLibNode::ModelG2sigma);
  Nan::SetMethod(target, "ModelG2B", QuantLibNode::ModelG2B);
  Nan::SetMethod(target, "ModelG2eta", QuantLibNode::ModelG2eta);
  Nan::SetMethod(target, "ModelG2rho", QuantLibNode::ModelG2rho);
  Nan::SetMethod(target, "FuturesConvexityBias", QuantLibNode::FuturesConvexityBias);
  Nan::SetMethod(target, "FlatSmileSection", QuantLibNode::FlatSmileSection);
  Nan::SetMethod(target, "SabrInterpolatedSmileSection", QuantLibNode::SabrInterpolatedSmileSection);
  Nan::SetMethod(target, "SabrInterpolatedSmileSection1", QuantLibNode::SabrInterpolatedSmileSection1);
  Nan::SetMethod(target, "SabrSmileSection", QuantLibNode::SabrSmileSection);
  Nan::SetMethod(target, "InterpolatedSmileSection", QuantLibNode::InterpolatedSmileSection);
  Nan::SetMethod(target, "SmileSectionFromSabrVolSurface", QuantLibNode::SmileSectionFromSabrVolSurface);
  Nan::SetMethod(target, "SmileSectionVolatility", QuantLibNode::SmileSectionVolatility);
  Nan::SetMethod(target, "SmileSectionVariance", QuantLibNode::SmileSectionVariance);
  Nan::SetMethod(target, "SmileSectionAtmLevel", QuantLibNode::SmileSectionAtmLevel);
  Nan::SetMethod(target, "SmileSectionExerciseDate", QuantLibNode::SmileSectionExerciseDate);
  Nan::SetMethod(target, "SmileSectionDayCounter", QuantLibNode::SmileSectionDayCounter);
  Nan::SetMethod(target, "SabrInterpolatedSmileSectionAlpha", QuantLibNode::SabrInterpolatedSmileSectionAlpha);
  Nan::SetMethod(target, "SabrInterpolatedSmileSectionBeta", QuantLibNode::SabrInterpolatedSmileSectionBeta);
  Nan::SetMethod(target, "SabrInterpolatedSmileSectionNu", QuantLibNode::SabrInterpolatedSmileSectionNu);
  Nan::SetMethod(target, "SabrInterpolatedSmileSectionRho", QuantLibNode::SabrInterpolatedSmileSectionRho);
  Nan::SetMethod(target, "SabrInterpolatedSmileSectionError", QuantLibNode::SabrInterpolatedSmileSectionError);
  Nan::SetMethod(target, "SabrInterpolatedSmileSectionMaxError", QuantLibNode::SabrInterpolatedSmileSectionMaxError);
  Nan::SetMethod(target, "SabrInterpolatedSmileSectionEndCriteria", QuantLibNode::SabrInterpolatedSmileSectionEndCriteria);
  Nan::SetMethod(target, "Statistics", QuantLibNode::Statistics);
  Nan::SetMethod(target, "IncrementalStatistics", QuantLibNode::IncrementalStatistics);
  Nan::SetMethod(target, "StatisticsSamples", QuantLibNode::StatisticsSamples);
  Nan::SetMethod(target, "StatisticsWeightSum", QuantLibNode::StatisticsWeightSum);
  Nan::SetMethod(target, "StatisticsMean", QuantLibNode::StatisticsMean);
  Nan::SetMethod(target, "StatisticsVariance", QuantLibNode::StatisticsVariance);
  Nan::SetMethod(target, "StatisticsStandardDeviation", QuantLibNode::StatisticsStandardDeviation);
  Nan::SetMethod(target, "StatisticsErrorEstimate", QuantLibNode::StatisticsErrorEstimate);
  Nan::SetMethod(target, "StatisticsSkewness", QuantLibNode::StatisticsSkewness);
  Nan::SetMethod(target, "StatisticsKurtosis", QuantLibNode::StatisticsKurtosis);
  Nan::SetMethod(target, "StatisticsMin", QuantLibNode::StatisticsMin);
  Nan::SetMethod(target, "StatisticsMax", QuantLibNode::StatisticsMax);
  Nan::SetMethod(target, "StatisticsPercentile", QuantLibNode::StatisticsPercentile);
  Nan::SetMethod(target, "StatisticsTopPercentile", QuantLibNode::StatisticsTopPercentile);
  Nan::SetMethod(target, "StatisticsGaussianDownsideVariance", QuantLibNode::StatisticsGaussianDownsideVariance);
  Nan::SetMethod(target, "StatisticsGaussianDownsideDeviation", QuantLibNode::StatisticsGaussianDownsideDeviation);
  Nan::SetMethod(target, "StatisticsGaussianRegret", QuantLibNode::StatisticsGaussianRegret);
  Nan::SetMethod(target, "StatisticsGaussianPercentile", QuantLibNode::StatisticsGaussianPercentile);
  Nan::SetMethod(target, "StatisticsGaussianTopPercentile", QuantLibNode::StatisticsGaussianTopPercentile);
  Nan::SetMethod(target, "StatisticsGaussianPotentialUpside", QuantLibNode::StatisticsGaussianPotentialUpside);
  Nan::SetMethod(target, "StatisticsGaussianValueAtRisk", QuantLibNode::StatisticsGaussianValueAtRisk);
  Nan::SetMethod(target, "StatisticsGaussianExpectedShortfall", QuantLibNode::StatisticsGaussianExpectedShortfall);
  Nan::SetMethod(target, "StatisticsGaussianShortfall", QuantLibNode::StatisticsGaussianShortfall);
  Nan::SetMethod(target, "StatisticsGaussianAverageShortfall", QuantLibNode::StatisticsGaussianAverageShortfall);
  Nan::SetMethod(target, "StatisticsSemiVariance", QuantLibNode::StatisticsSemiVariance);
  Nan::SetMethod(target, "StatisticsSemiDeviation", QuantLibNode::StatisticsSemiDeviation);
  Nan::SetMethod(target, "StatisticsDownsideVariance", QuantLibNode::StatisticsDownsideVariance);
  Nan::SetMethod(target, "StatisticsDownsideDeviation", QuantLibNode::StatisticsDownsideDeviation);
  Nan::SetMethod(target, "StatisticsRegret", QuantLibNode::StatisticsRegret);
  Nan::SetMethod(target, "StatisticsPotentialUpside", QuantLibNode::StatisticsPotentialUpside);
  Nan::SetMethod(target, "StatisticsValueAtRisk", QuantLibNode::StatisticsValueAtRisk);
  Nan::SetMethod(target, "StatisticsExpectedShortfall", QuantLibNode::StatisticsExpectedShortfall);
  Nan::SetMethod(target, "StatisticsShortfall", QuantLibNode::StatisticsShortfall);
  Nan::SetMethod(target, "StatisticsAverageShortfall", QuantLibNode::StatisticsAverageShortfall);
  Nan::SetMethod(target, "GaussianDownsideVariance", QuantLibNode::GaussianDownsideVariance);
  Nan::SetMethod(target, "GaussianDownsideDeviation", QuantLibNode::GaussianDownsideDeviation);
  Nan::SetMethod(target, "GaussianRegret", QuantLibNode::GaussianRegret);
  Nan::SetMethod(target, "GaussianPercentile", QuantLibNode::GaussianPercentile);
  Nan::SetMethod(target, "GaussianTopPercentile", QuantLibNode::GaussianTopPercentile);
  Nan::SetMethod(target, "GaussianPotentialUpside", QuantLibNode::GaussianPotentialUpside);
  Nan::SetMethod(target, "GaussianValueAtRisk", QuantLibNode::GaussianValueAtRisk);
  Nan::SetMethod(target, "GaussianExpectedShortfall", QuantLibNode::GaussianExpectedShortfall);
  Nan::SetMethod(target, "GaussianShortfall", QuantLibNode::GaussianShortfall);
  Nan::SetMethod(target, "GaussianAverageShortfall", QuantLibNode::GaussianAverageShortfall);
  Nan::SetMethod(target, "Swap", QuantLibNode::Swap);
  Nan::SetMethod(target, "MakeCms", QuantLibNode::MakeCms);
  Nan::SetMethod(target, "SwapLegBPS", QuantLibNode::SwapLegBPS);
  Nan::SetMethod(target, "SwapLegNPV", QuantLibNode::SwapLegNPV);
  Nan::SetMethod(target, "SwapStartDate", QuantLibNode::SwapStartDate);
  Nan::SetMethod(target, "SwapMaturityDate", QuantLibNode::SwapMaturityDate);
  Nan::SetMethod(target, "SwapLegAnalysis", QuantLibNode::SwapLegAnalysis);
  Nan::SetMethod(target, "Swaption", QuantLibNode::Swaption);
  Nan::SetMethod(target, "MakeSwaption", QuantLibNode::MakeSwaption);
  Nan::SetMethod(target, "SwaptionType", QuantLibNode::SwaptionType);
  Nan::SetMethod(target, "SwaptionSettlementType", QuantLibNode::SwaptionSettlementType);
  Nan::SetMethod(target, "SwaptionImpliedVolatility", QuantLibNode::SwaptionImpliedVolatility);
  Nan::SetMethod(target, "RelinkableHandleSwaptionVolatilityStructure", QuantLibNode::RelinkableHandleSwaptionVolatilityStructure);
  Nan::SetMethod(target, "ConstantSwaptionVolatility", QuantLibNode::ConstantSwaptionVolatility);
  Nan::SetMethod(target, "SpreadedSwaptionVolatility", QuantLibNode::SpreadedSwaptionVolatility);
  Nan::SetMethod(target, "SwaptionVTSMatrix", QuantLibNode::SwaptionVTSMatrix);
  Nan::SetMethod(target, "SwaptionVolCube2", QuantLibNode::SwaptionVolCube2);
  Nan::SetMethod(target, "SwaptionVolCube1", QuantLibNode::SwaptionVolCube1);
  Nan::SetMethod(target, "SmileSectionByCube", QuantLibNode::SmileSectionByCube);
  Nan::SetMethod(target, "SmileSectionByCube2", QuantLibNode::SmileSectionByCube2);
  Nan::SetMethod(target, "SwaptionVTSVolatility", QuantLibNode::SwaptionVTSVolatility);
  Nan::SetMethod(target, "SwaptionVTSVolatility2", QuantLibNode::SwaptionVTSVolatility2);
  Nan::SetMethod(target, "SwaptionVTSBlackVariance", QuantLibNode::SwaptionVTSBlackVariance);
  Nan::SetMethod(target, "SwaptionVTSBlackVariance2", QuantLibNode::SwaptionVTSBlackVariance2);
  Nan::SetMethod(target, "SwaptionVTSMaxSwapTenor", QuantLibNode::SwaptionVTSMaxSwapTenor);
  Nan::SetMethod(target, "SwaptionVTSBusinessDayConvention", QuantLibNode::SwaptionVTSBusinessDayConvention);
  Nan::SetMethod(target, "SwaptionVTSOptionDateFromTenor", QuantLibNode::SwaptionVTSOptionDateFromTenor);
  Nan::SetMethod(target, "SwaptionVTSSwapLength", QuantLibNode::SwaptionVTSSwapLength);
  Nan::SetMethod(target, "SwaptionVTSSwapLength2", QuantLibNode::SwaptionVTSSwapLength2);
  Nan::SetMethod(target, "SwaptionVTSMatrixOptionDates", QuantLibNode::SwaptionVTSMatrixOptionDates);
  Nan::SetMethod(target, "SwaptionVTSMatrixOptionTenors", QuantLibNode::SwaptionVTSMatrixOptionTenors);
  Nan::SetMethod(target, "SwaptionVTSMatrixSwapTenors", QuantLibNode::SwaptionVTSMatrixSwapTenors);
  Nan::SetMethod(target, "SwaptionVTSMatrixLocate", QuantLibNode::SwaptionVTSMatrixLocate);
  Nan::SetMethod(target, "SwaptionVTSatmStrike", QuantLibNode::SwaptionVTSatmStrike);
  Nan::SetMethod(target, "SwaptionVTSatmStrike2", QuantLibNode::SwaptionVTSatmStrike2);
  Nan::SetMethod(target, "SparseSabrParameters", QuantLibNode::SparseSabrParameters);
  Nan::SetMethod(target, "DenseSabrParameters", QuantLibNode::DenseSabrParameters);
  Nan::SetMethod(target, "MarketVolCube", QuantLibNode::MarketVolCube);
  Nan::SetMethod(target, "VolCubeAtmCalibrated", QuantLibNode::VolCubeAtmCalibrated);
  Nan::SetMethod(target, "RelinkableHandleYieldTermStructure", QuantLibNode::RelinkableHandleYieldTermStructure);
  Nan::SetMethod(target, "DiscountCurve", QuantLibNode::DiscountCurve);
  Nan::SetMethod(target, "ZeroCurve", QuantLibNode::ZeroCurve);
  Nan::SetMethod(target, "ForwardCurve", QuantLibNode::ForwardCurve);
  Nan::SetMethod(target, "FlatForward", QuantLibNode::FlatForward);
  Nan::SetMethod(target, "ForwardSpreadedTermStructure", QuantLibNode::ForwardSpreadedTermStructure);
  Nan::SetMethod(target, "ImpliedTermStructure", QuantLibNode::ImpliedTermStructure);
  Nan::SetMethod(target, "InterpolatedYieldCurve", QuantLibNode::InterpolatedYieldCurve);
  Nan::SetMethod(target, "TermStructureDayCounter", QuantLibNode::TermStructureDayCounter);
  Nan::SetMethod(target, "TermStructureMaxDate", QuantLibNode::TermStructureMaxDate);
  Nan::SetMethod(target, "TermStructureReferenceDate", QuantLibNode::TermStructureReferenceDate);
  Nan::SetMethod(target, "TermStructureTimeFromReference", QuantLibNode::TermStructureTimeFromReference);
  Nan::SetMethod(target, "TermStructureCalendar", QuantLibNode::TermStructureCalendar);
  Nan::SetMethod(target, "TermStructureSettlementDays", QuantLibNode::TermStructureSettlementDays);
  Nan::SetMethod(target, "YieldTSDiscount", QuantLibNode::YieldTSDiscount);
  Nan::SetMethod(target, "YieldTSForwardRate", QuantLibNode::YieldTSForwardRate);
  Nan::SetMethod(target, "YieldTSForwardRate2", QuantLibNode::YieldTSForwardRate2);
  Nan::SetMethod(target, "YieldTSZeroRate", QuantLibNode::YieldTSZeroRate);
  Nan::SetMethod(target, "InterpolatedYieldCurveTimes", QuantLibNode::InterpolatedYieldCurveTimes);
  Nan::SetMethod(target, "InterpolatedYieldCurveDates", QuantLibNode::InterpolatedYieldCurveDates);
  Nan::SetMethod(target, "InterpolatedYieldCurveData", QuantLibNode::InterpolatedYieldCurveData);
  Nan::SetMethod(target, "InterpolatedYieldCurveJumpTimes", QuantLibNode::InterpolatedYieldCurveJumpTimes);
  Nan::SetMethod(target, "InterpolatedYieldCurveJumpDates", QuantLibNode::InterpolatedYieldCurveJumpDates);
  Nan::SetMethod(target, "TimeSeries", QuantLibNode::TimeSeries);
  Nan::SetMethod(target, "TimeSeriesFromIndex", QuantLibNode::TimeSeriesFromIndex);
  Nan::SetMethod(target, "TimeSeriesFirstDate", QuantLibNode::TimeSeriesFirstDate);
  Nan::SetMethod(target, "TimeSeriesLastDate", QuantLibNode::TimeSeriesLastDate);
  Nan::SetMethod(target, "TimeSeriesSize", QuantLibNode::TimeSeriesSize);
  Nan::SetMethod(target, "TimeSeriesEmpty", QuantLibNode::TimeSeriesEmpty);
  Nan::SetMethod(target, "TimeSeriesDates", QuantLibNode::TimeSeriesDates);
  Nan::SetMethod(target, "TimeSeriesValues", QuantLibNode::TimeSeriesValues);
  Nan::SetMethod(target, "TimeSeriesValue", QuantLibNode::TimeSeriesValue);
  Nan::SetMethod(target, "xlVersion", QuantLibNode::xlVersion);
  Nan::SetMethod(target, "AddinVersion", QuantLibNode::AddinVersion);
  Nan::SetMethod(target, "Version", QuantLibNode::Version);
  Nan::SetMethod(target, "FunctionCount", QuantLibNode::FunctionCount);
  Nan::SetMethod(target, "VanillaSwap", QuantLibNode::VanillaSwap);
  Nan::SetMethod(target, "MakeVanillaSwap", QuantLibNode::MakeVanillaSwap);
  Nan::SetMethod(target, "MakeIMMSwap", QuantLibNode::MakeIMMSwap);
  Nan::SetMethod(target, "VanillaSwapFromSwapIndex", QuantLibNode::VanillaSwapFromSwapIndex);
  Nan::SetMethod(target, "VanillaSwapFromSwapRateHelper", QuantLibNode::VanillaSwapFromSwapRateHelper);
  Nan::SetMethod(target, "VanillaSwapFixedLegBPS", QuantLibNode::VanillaSwapFixedLegBPS);
  Nan::SetMethod(target, "VanillaSwapFixedLegNPV", QuantLibNode::VanillaSwapFixedLegNPV);
  Nan::SetMethod(target, "VanillaSwapFairRate", QuantLibNode::VanillaSwapFairRate);
  Nan::SetMethod(target, "VanillaSwapFloatingLegBPS", QuantLibNode::VanillaSwapFloatingLegBPS);
  Nan::SetMethod(target, "VanillaSwapFloatingLegNPV", QuantLibNode::VanillaSwapFloatingLegNPV);
  Nan::SetMethod(target, "VanillaSwapFairSpread", QuantLibNode::VanillaSwapFairSpread);
  Nan::SetMethod(target, "VanillaSwapType", QuantLibNode::VanillaSwapType);
  Nan::SetMethod(target, "VanillaSwapNominal", QuantLibNode::VanillaSwapNominal);
  Nan::SetMethod(target, "VanillaSwapFixedRate", QuantLibNode::VanillaSwapFixedRate);
  Nan::SetMethod(target, "VanillaSwapFixedDayCount", QuantLibNode::VanillaSwapFixedDayCount);
  Nan::SetMethod(target, "VanillaSwapSpread", QuantLibNode::VanillaSwapSpread);
  Nan::SetMethod(target, "VanillaSwapFloatingDayCount", QuantLibNode::VanillaSwapFloatingDayCount);
  Nan::SetMethod(target, "VanillaSwapPaymentConvention", QuantLibNode::VanillaSwapPaymentConvention);
  Nan::SetMethod(target, "VanillaSwapFixedLegAnalysis", QuantLibNode::VanillaSwapFixedLegAnalysis);
  Nan::SetMethod(target, "VanillaSwapFloatingLegAnalysis", QuantLibNode::VanillaSwapFloatingLegAnalysis);
  Nan::SetMethod(target, "BlackConstantVol", QuantLibNode::BlackConstantVol);
  Nan::SetMethod(target, "BlackVarianceSurface", QuantLibNode::BlackVarianceSurface);
  Nan::SetMethod(target, "AbcdAtmVolCurve", QuantLibNode::AbcdAtmVolCurve);
  Nan::SetMethod(target, "SabrVolSurface", QuantLibNode::SabrVolSurface);
  Nan::SetMethod(target, "VolatilityTermStructureBusinessDayConvention", QuantLibNode::VolatilityTermStructureBusinessDayConvention);
  Nan::SetMethod(target, "VolatilityTermStructureOptionDateFromTenor", QuantLibNode::VolatilityTermStructureOptionDateFromTenor);
  Nan::SetMethod(target, "VolatilityTermStructureMinStrike", QuantLibNode::VolatilityTermStructureMinStrike);
  Nan::SetMethod(target, "VolatilityTermStructureMaxStrike", QuantLibNode::VolatilityTermStructureMaxStrike);
  Nan::SetMethod(target, "BlackAtmVolCurveAtmVol", QuantLibNode::BlackAtmVolCurveAtmVol);
  Nan::SetMethod(target, "BlackAtmVolCurveAtmVol2", QuantLibNode::BlackAtmVolCurveAtmVol2);
  Nan::SetMethod(target, "BlackAtmVolCurveAtmVol3", QuantLibNode::BlackAtmVolCurveAtmVol3);
  Nan::SetMethod(target, "BlackAtmVolCurveAtmVariance", QuantLibNode::BlackAtmVolCurveAtmVariance);
  Nan::SetMethod(target, "BlackAtmVolCurveAtmVariance2", QuantLibNode::BlackAtmVolCurveAtmVariance2);
  Nan::SetMethod(target, "BlackAtmVolCurveAtmVariance3", QuantLibNode::BlackAtmVolCurveAtmVariance3);
  Nan::SetMethod(target, "BlackVolTermStructureBlackVol", QuantLibNode::BlackVolTermStructureBlackVol);
  Nan::SetMethod(target, "BlackVolTermStructureBlackVariance", QuantLibNode::BlackVolTermStructureBlackVariance);
  Nan::SetMethod(target, "BlackVolTermStructureBlackForwardVol", QuantLibNode::BlackVolTermStructureBlackForwardVol);
  Nan::SetMethod(target, "BlackVolTermStructureBlackForwardVariance", QuantLibNode::BlackVolTermStructureBlackForwardVariance);
  Nan::SetMethod(target, "AbcdAtmVolCurveOptionTenors", QuantLibNode::AbcdAtmVolCurveOptionTenors);
  Nan::SetMethod(target, "AbcdAtmVolCurveOptionTenorsInInterpolation", QuantLibNode::AbcdAtmVolCurveOptionTenorsInInterpolation);
  Nan::SetMethod(target, "AbcdAtmVolCurveOptionDates", QuantLibNode::AbcdAtmVolCurveOptionDates);
  Nan::SetMethod(target, "AbcdAtmVolCurveOptionTimes", QuantLibNode::AbcdAtmVolCurveOptionTimes);
  Nan::SetMethod(target, "AbcdAtmVolCurveRmsError", QuantLibNode::AbcdAtmVolCurveRmsError);
  Nan::SetMethod(target, "AbcdAtmVolCurveMaxError", QuantLibNode::AbcdAtmVolCurveMaxError);
  Nan::SetMethod(target, "AbcdAtmVolCurveA", QuantLibNode::AbcdAtmVolCurveA);
  Nan::SetMethod(target, "AbcdAtmVolCurveB", QuantLibNode::AbcdAtmVolCurveB);
  Nan::SetMethod(target, "AbcdAtmVolCurveC", QuantLibNode::AbcdAtmVolCurveC);
  Nan::SetMethod(target, "AbcdAtmVolCurveD", QuantLibNode::AbcdAtmVolCurveD);
  Nan::SetMethod(target, "AbcdAtmVolCurveKatOptionTenors", QuantLibNode::AbcdAtmVolCurveKatOptionTenors);
  Nan::SetMethod(target, "AbcdAtmVolCurveK", QuantLibNode::AbcdAtmVolCurveK);
  Nan::SetMethod(target, "VolatilitySpreads", QuantLibNode::VolatilitySpreads);
  Nan::SetMethod(target, "VolatilitySpreads2", QuantLibNode::VolatilitySpreads2);
  Nan::SetMethod(target, "AtmCurve", QuantLibNode::AtmCurve);
  Nan::SetMethod(target, "SabrVolatility", QuantLibNode::SabrVolatility);
  Nan::SetMethod(target, "PiecewiseConstantAbcdVariance", QuantLibNode::PiecewiseConstantAbcdVariance);
  Nan::SetMethod(target, "MarketModelLmExtLinearExponentialVolModel", QuantLibNode::MarketModelLmExtLinearExponentialVolModel);
  Nan::SetMethod(target, "PiecewiseConstantVarianceVariances", QuantLibNode::PiecewiseConstantVarianceVariances);
  Nan::SetMethod(target, "PiecewiseConstantVarianceVolatilities", QuantLibNode::PiecewiseConstantVarianceVolatilities);
  Nan::SetMethod(target, "PiecewiseConstantVarianceRateTimes", QuantLibNode::PiecewiseConstantVarianceRateTimes);
  Nan::SetMethod(target, "PiecewiseConstantVarianceVariance", QuantLibNode::PiecewiseConstantVarianceVariance);
  Nan::SetMethod(target, "PiecewiseConstantVarianceVolatility", QuantLibNode::PiecewiseConstantVarianceVolatility);
  Nan::SetMethod(target, "PiecewiseConstantVarianceTotalVariance", QuantLibNode::PiecewiseConstantVarianceTotalVariance);
  Nan::SetMethod(target, "PiecewiseConstantVarianceTotalVolatility", QuantLibNode::PiecewiseConstantVarianceTotalVolatility);

  Nan::SetMethod(target, "PiecewiseYieldCurveMixedInterpolation", QuantLibNode::PiecewiseYieldCurveMixedInterpolation);
  Nan::SetMethod(target, "BachelierCapFloorEngine", QuantLibNode::BachelierCapFloorEngine);
  Nan::SetMethod(target, "BachelierCapFloorEngine2", QuantLibNode::BachelierCapFloorEngine2);
  Nan::SetMethod(target, "BachelierBlackFormulaImpliedVol", QuantLibNode::BachelierBlackFormulaImpliedVol);

  Nan::SetMethod(target, "DeleteObject", QuantLibNode::DeleteObject);
  Nan::SetMethod(target, "DeleteObjects", QuantLibNode::DeleteObjects);
  Nan::SetMethod(target, "DeleteAllObjects", QuantLibNode::DeleteAllObjects);
  Nan::SetMethod(target, "ListObjectIDs", QuantLibNode::ListObjectIDs);
  Nan::SetMethod(target, "ObjectPropertyNames", QuantLibNode::ObjectPropertyNames);

}

NODE_MODULE(quantlib, init)
