Changeset 26619


Ignore:
Timestamp:
11/12/21 10:36:18 (3 years ago)
Author:
bulthuis
Message:

CGH: add student-t distribution to pseudo-random generator

Location:
issm/trunk-jpl/src/c/shared/Random
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/shared/Random/randomgenerator.cpp

    r26616 r26619  
    189189  /*}}}*/
    190190
     191  /* Student-t distribution */
     192
     193  student_t_distribution::student_t_distribution(){/*{{{*/
     194      k  = 1;
     195      return;
     196  }
     197  /*}}}*/
     198
     199  student_t_distribution::student_t_distribution(unsigned int dof){/*{{{*/
     200      k   = dof;
     201      return;
     202  }
     203  /*}}}*/
     204
     205  student_t_distribution::~student_t_distribution(){}
     206
     207  double student_t_distribution::generator(rnd::linear_congruential_engine random_engine){/*{{{*/
     208
     209      rnd::normal_distribution  normal_distribution;
     210      rnd::chi_squared_distribution     chi_squared_distribution(k);
     211
     212      return normal_distribution.generator(random_engine)/sqrt(chi_squared_distribution.generator(random_engine)/k);
     213
     214  }
     215  /*}}}*/
     216
    191217}
  • issm/trunk-jpl/src/c/shared/Random/randomgenerator.h

    r26616 r26619  
    120120  };
    121121
     122  class student_t_distribution
     123  {
     124
     125    private:
     126      unsigned int k;
     127
     128    public:
     129
     130      /*constructors, destructors: */
     131      student_t_distribution();
     132      student_t_distribution(unsigned int k);
     133      ~student_t_distribution();
     134
     135      double generator(rnd::linear_congruential_engine random_engine);
     136
     137  };
     138
    122139
    123140}
Note: See TracChangeset for help on using the changeset viewer.