/* Ċ Ġ* ĠCopyright Ġ 2 0 1 8 - 2 0 2 1 ĠK Math Ġcontributors . Ċ Ġ* ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe Ġlicense / LICENSE . txt Ġfile . Ċ Ġ*/ Ċ Ċ package Ġspace . k science . k math . samp lers Ċ Ċ import Ġspace . k science . k math . chains . Blocking Double Chain Ċ import Ġspace . k science . k math . chains . map Ċ import Ġspace . k science . k math . stat . Random Generator Ċ Ċ /** Ċ Ġ* ĠS ampling Ġfrom Ġa ĠGaussian Ġdistribution Ġwith Ġgiven Ġmean Ġand Ġstandard Ġdeviation . Ċ Ġ* Ċ Ġ* ĠBased Ġon ĠCommons ĠR NG Ġimplementation . Ċ Ġ* ĠSee Ġ[ https :// commons . apache . org / proper / commons - rng / commons - rng - sampling / apid ocs / org / apache / commons / rng / sampling / distribution / Gaussian Sampler . html ]. Ċ Ġ* Ċ Ġ* Ġ@ property Ġmean Ġthe Ġmean Ġof Ġthe Ġdistribution . Ċ Ġ* Ġ@ property Ġstandard De viation Ġthe Ġvariance Ġof Ġthe Ġdistribution . Ċ Ġ*/ Ċ public Ġclass ĠGaussian Sampler ( ĊĠĠĠ Ġpublic Ġval Ġmean : ĠDouble , ĊĠĠĠ Ġpublic Ġval Ġstandard De viation : ĠDouble , ĊĠĠĠ Ġprivate Ġval Ġnormalized : ĠNormal ized Gaussian Sampler Ġ= ĠBox M ull er Sampler Ċ ) Ġ: ĠBlock ing Double Sampler Ġ{ ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġrequire ( standard De viation Ġ> Ġ 0 . 0 ) Ġ{ Ġ" standard Ġdeviation Ġis Ġnot Ġstrictly Ġpositive : Ġ$ standard De viation " Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġoverride Ġfun Ġsample ( generator : ĠRandom Generator ): ĠBlock ing Double Chain Ġ= Ġnormalized ĊĠĠĠĠĠĠĠ Ġ. sample ( generator ) ĊĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġstandard De viation Ġ* Ġit Ġ+ Ġmean Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ= Ġ" N ($ mean , Ġ$ standard De viation )" ĊĊĠĠĠ Ġpublic Ġcompanion Ġobject Ċ } Ċ