/* ----------------------------------------------------------------------------
 * This file was automatically generated by SWIG (http://www.swig.org).
 * Version 3.0.12
 *
 * This file is not intended to be easily readable and contains a number of
 * coding conventions designed to improve portability and efficiency. Do not make
 * changes to this file unless you know what you are doing--modify the SWIG
 * interface file instead.
 * ----------------------------------------------------------------------------- */

#ifndef SWIG_NQuantLibc_WRAP_H_
#define SWIG_NQuantLibc_WRAP_H_

class SwigDirector_UnaryFunctionDelegate : public UnaryFunctionDelegate, public Swig::Director {

public:
    SwigDirector_UnaryFunctionDelegate();
    virtual ~SwigDirector_UnaryFunctionDelegate();
    virtual Real value(Real x) const;

    typedef double (SWIGSTDCALL* SWIG_Callback0_t)(double);
    void swig_connect_director(SWIG_Callback0_t callbackvalue);

private:
    SWIG_Callback0_t swig_callbackvalue;
    void swig_init_callbacks();
};

class SwigDirector_CostFunctionDelegate : public CostFunctionDelegate, public Swig::Director {

public:
    SwigDirector_CostFunctionDelegate();
    virtual ~SwigDirector_CostFunctionDelegate();
    virtual Real value(Array const &x) const;
    virtual Array values(Array const &x) const;

    typedef double (SWIGSTDCALL* SWIG_Callback0_t)(void *);
    typedef void * (SWIGSTDCALL* SWIG_Callback1_t)(void *);
    void swig_connect_director(SWIG_Callback0_t callbackvalue, SWIG_Callback1_t callbackvalues);

private:
    SWIG_Callback0_t swig_callbackvalue;
    SWIG_Callback1_t swig_callbackvalues;
    void swig_init_callbacks();
};


#endif
