xo-umbrella2/xo-process/include/xo/process/LogNormalProcess.hpp
Roland Conybeare 81a8a3dd84 git subrepo clone (merge) git@github.com:Rconybea/xo-process.git xo-process
subrepo:
  subdir:   "xo-process"
  merged:   "ff603471"
upstream:
  origin:   "git@github.com:Rconybea/xo-process.git"
  branch:   "main"
  commit:   "ff603471"
git-subrepo:
  version:  "0.4.9"
  origin:   "???"
  commit:   "???"
2026-06-06 22:17:23 -04:00

33 lines
906 B
C++

/* LogNormalProcess.hpp */
#pragma once
#include "BrownianMotion.hpp"
#include "ExpProcess.hpp"
namespace xo {
namespace process {
/* log-normal process -- i.e. logs follow brownian motion
*/
class LogNormalProcess {
public:
using utc_nanos = xo::time::utc_nanos;
public:
/* log-normal process starting at (t0, x0) */
template<typename RngEngine, typename Seed>
static rp<ExpProcess> make(utc_nanos t0, double x0,
double sdev, Seed const & seed) {
rp<BrownianMotion<RngEngine>> bm
= BrownianMotion<RngEngine>::make(t0, sdev, seed);
return ExpProcess::make(x0 /*scale*/, bm);
} /*make*/
}; /*LogNormalProcess*/
} /*namespace process*/
} /*namespace xo*/
/* end LogNormalProcess.hpp */