/* ----------------------------------------------------------------------------
 * This file was automatically generated by SWIG (http://www.swig.org).
 * Version 1.3.29
 *
 * Do not make changes to this file unless you know what you are doing--modify
 * the SWIG interface file instead.
 * ----------------------------------------------------------------------------- */

package org.quantlib;

public class QuantLib {
  public static Matrix transpose(Matrix m) {
    return new Matrix(QuantLibJNI.transpose(Matrix.getCPtr(m)), true);
  }

  public static Matrix outerProduct(Array v1, Array v2) {
    return new Matrix(QuantLibJNI.outerProduct(Array.getCPtr(v1), Array.getCPtr(v2)), true);
  }

  public static Matrix pseudoSqrt(Matrix m, SalvagingAlgorithm.Type a) {
    return new Matrix(QuantLibJNI.pseudoSqrt(Matrix.getCPtr(m), a.swigValue()), true);
  }

  public static int nullInt() {
    return QuantLibJNI.nullInt();
  }

  public static double nullDouble() {
    return QuantLibJNI.nullDouble();
  }

  public static CashFlowVector FixedRateCouponVector(Schedule schedule, BusinessDayConvention paymentAdjustment, DoubleVector nominals, DoubleVector couponRates, DayCounter dayCount, DayCounter firstPeriodDayCount) {
    return new CashFlowVector(QuantLibJNI.FixedRateCouponVector__SWIG_0(Schedule.getCPtr(schedule), paymentAdjustment.swigValue(), DoubleVector.getCPtr(nominals), DoubleVector.getCPtr(couponRates), DayCounter.getCPtr(dayCount), DayCounter.getCPtr(firstPeriodDayCount)), true);
  }

  public static CashFlowVector FixedRateCouponVector(Schedule schedule, BusinessDayConvention paymentAdjustment, DoubleVector nominals, DoubleVector couponRates, DayCounter dayCount) {
    return new CashFlowVector(QuantLibJNI.FixedRateCouponVector__SWIG_1(Schedule.getCPtr(schedule), paymentAdjustment.swigValue(), DoubleVector.getCPtr(nominals), DoubleVector.getCPtr(couponRates), DayCounter.getCPtr(dayCount)), true);
  }

  public static CashFlowVector FloatingRateCouponVector(Schedule schedule, BusinessDayConvention paymentAdjustment, DoubleVector nominals, Xibor index, int fixingDays, DoubleVector spreads) {
    return new CashFlowVector(QuantLibJNI.FloatingRateCouponVector__SWIG_0(Schedule.getCPtr(schedule), paymentAdjustment.swigValue(), DoubleVector.getCPtr(nominals), Xibor.getCPtr(index), fixingDays, DoubleVector.getCPtr(spreads)), true);
  }

  public static CashFlowVector FloatingRateCouponVector(Schedule schedule, BusinessDayConvention paymentAdjustment, DoubleVector nominals, Xibor index, int fixingDays) {
    return new CashFlowVector(QuantLibJNI.FloatingRateCouponVector__SWIG_1(Schedule.getCPtr(schedule), paymentAdjustment.swigValue(), DoubleVector.getCPtr(nominals), Xibor.getCPtr(index), fixingDays), true);
  }

  public static CashFlowVector ParCouponVector(Schedule schedule, BusinessDayConvention paymentAdjustment, DoubleVector nominals, Xibor index, int fixingDays, DoubleVector spreads) {
    return new CashFlowVector(QuantLibJNI.ParCouponVector__SWIG_0(Schedule.getCPtr(schedule), paymentAdjustment.swigValue(), DoubleVector.getCPtr(nominals), Xibor.getCPtr(index), fixingDays, DoubleVector.getCPtr(spreads)), true);
  }

  public static CashFlowVector ParCouponVector(Schedule schedule, BusinessDayConvention paymentAdjustment, DoubleVector nominals, Xibor index, int fixingDays) {
    return new CashFlowVector(QuantLibJNI.ParCouponVector__SWIG_1(Schedule.getCPtr(schedule), paymentAdjustment.swigValue(), DoubleVector.getCPtr(nominals), Xibor.getCPtr(index), fixingDays), true);
  }

  public static CashFlowVector InArrearIndexedCouponVector(Schedule schedule, BusinessDayConvention paymentAdjustment, DoubleVector nominals, Xibor index, int fixingDays, DoubleVector spreads) {
    return new CashFlowVector(QuantLibJNI.InArrearIndexedCouponVector__SWIG_0(Schedule.getCPtr(schedule), paymentAdjustment.swigValue(), DoubleVector.getCPtr(nominals), Xibor.getCPtr(index), fixingDays, DoubleVector.getCPtr(spreads)), true);
  }

  public static CashFlowVector InArrearIndexedCouponVector(Schedule schedule, BusinessDayConvention paymentAdjustment, DoubleVector nominals, Xibor index, int fixingDays) {
    return new CashFlowVector(QuantLibJNI.InArrearIndexedCouponVector__SWIG_1(Schedule.getCPtr(schedule), paymentAdjustment.swigValue(), DoubleVector.getCPtr(nominals), Xibor.getCPtr(index), fixingDays), true);
  }

  public static Matrix getCovariance(Array volatilities, Matrix correlations) {
    return new Matrix(QuantLibJNI.getCovariance(Array.getCPtr(volatilities), Matrix.getCPtr(correlations)), true);
  }

  public static Array SymmetricEigenvalues(Matrix s) {
    return new Array(QuantLibJNI.SymmetricEigenvalues(Matrix.getCPtr(s)), true);
  }

  public static Matrix SymmetricEigenvectors(Matrix s) {
    return new Matrix(QuantLibJNI.SymmetricEigenvectors(Matrix.getCPtr(s)), true);
  }

}
