00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #pragma once
00014
00015 #ifndef MakeBrownianPath_h__
00016 #define MakeBrownianPath_h__
00017
00018
00019 #include "BrownianPath.h"
00020 #include "Path.h"
00021 #include <memory>
00022 #include <functional>
00023
00024 template <typename my_alg_type>
00025 Path<my_alg_type> MakeBrownianPath()
00026 {
00027 std::tr1::shared_ptr< const BrownianPath<my_alg_type> > p(new BrownianPath<my_alg_type>());
00028 return Path<my_alg_type>(p);
00029 };
00030
00031 template <typename my_alg_type>
00032 Path<my_alg_type> MakeBrownianPath( NormalRandomNumberGenerator & rand, unsigned int d = my_alg_type::myDIM )
00033 {
00034 std::tr1::shared_ptr< const BrownianPath<my_alg_type> > p(new BrownianPath<my_alg_type>(rand,d));
00035 return Path<my_alg_type>(p);
00036 };
00037
00038 #endif // MakeBrownianPath_h__