/* Copyright (C) 2016 -2017 Jerry Jin */ #ifndef randomsequencegenerator_h #define randomsequencegenerator_h #include #include #include #include #include "../quantlibnode.hpp" #include using namespace node; using namespace v8; using namespace std; class MersenneTwisterRsgWorker : public Nan::AsyncWorker { public: string mObjectID; long mDimension; long mSeed; string mReturnValue; string mError; MersenneTwisterRsgWorker( Nan::Callback *callback ,string ObjectID ,long Dimension ,long Seed ): Nan::AsyncWorker(callback) ,mObjectID(ObjectID) ,mDimension(Dimension) ,mSeed(Seed) { }; //~MersenneTwisterRsgWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class FaureRsgWorker : public Nan::AsyncWorker { public: string mObjectID; long mDimension; string mReturnValue; string mError; FaureRsgWorker( Nan::Callback *callback ,string ObjectID ,long Dimension ): Nan::AsyncWorker(callback) ,mObjectID(ObjectID) ,mDimension(Dimension) { }; //~FaureRsgWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class HaltonRsgWorker : public Nan::AsyncWorker { public: string mObjectID; long mDimension; long mSeed; string mReturnValue; string mError; HaltonRsgWorker( Nan::Callback *callback ,string ObjectID ,long Dimension ,long Seed ): Nan::AsyncWorker(callback) ,mObjectID(ObjectID) ,mDimension(Dimension) ,mSeed(Seed) { }; //~HaltonRsgWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class SobolRsgWorker : public Nan::AsyncWorker { public: string mObjectID; long mDimension; long mSeed; string mReturnValue; string mError; SobolRsgWorker( Nan::Callback *callback ,string ObjectID ,long Dimension ,long Seed ): Nan::AsyncWorker(callback) ,mObjectID(ObjectID) ,mDimension(Dimension) ,mSeed(Seed) { }; //~SobolRsgWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class VariatesWorker : public Nan::AsyncWorker { public: string mObjectID; long mSamples; std::vector< std::vector > mReturnValue; string mError; VariatesWorker( Nan::Callback *callback ,string ObjectID ,long Samples ): Nan::AsyncWorker(callback) ,mObjectID(ObjectID) ,mSamples(Samples) { }; //~VariatesWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class RandWorker : public Nan::AsyncWorker { public: double mReturnValue; string mError; RandWorker( Nan::Callback *callback ): Nan::AsyncWorker(callback) { }; //~RandWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class RandomizeWorker : public Nan::AsyncWorker { public: long mSeed; string mError; RandomizeWorker( Nan::Callback *callback ,long Seed ): Nan::AsyncWorker(callback) ,mSeed(Seed) { }; //~RandomizeWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; #endif