Mentions légales du service

Skip to content
Snippets Groups Projects
Commit b7488c35 authored by hhakim's avatar hhakim
Browse files

Externalize initialization of Faust PRNGs in a specific module (faust_prng).

parent ca5de711
No related branches found
No related tags found
No related merge requests found
...@@ -73,8 +73,6 @@ namespace Faust ...@@ -73,8 +73,6 @@ namespace Faust
{ {
friend TransformHelper<FPP,Cpu>* vertcat<FPP>(const std::vector<TransformHelper<FPP,Cpu>*>& THs); friend TransformHelper<FPP,Cpu>* vertcat<FPP>(const std::vector<TransformHelper<FPP,Cpu>*>& THs);
static std::default_random_engine generator;
static bool seed_init;
#ifdef FAUST_TORCH #ifdef FAUST_TORCH
std::vector<torch::Tensor> tensor_data; std::vector<torch::Tensor> tensor_data;
...@@ -254,7 +252,6 @@ namespace Faust ...@@ -254,7 +252,6 @@ namespace Faust
TransformHelper<Real<FPP2>, Cpu>* real(); TransformHelper<Real<FPP2>, Cpu>* real();
}; };
} }
#include "faust_TransformHelper.hpp" #include "faust_TransformHelper.hpp"
......
This diff is collapsed.
#include <cstdlib>
#include <iostream>
#include <random>
#include "faust_prng.h"
using namespace std;
namespace Faust
{
unsigned int seed(unsigned seed/*=0*/)
{
static unsigned int seed_ = 0;
if(seed == 0)
return seed_;
else
{
seed_ = seed;
srand(seed_);
default_random_engine gen(seed);
generator(&gen);
}
return seed_;
}
default_random_engine& generator(default_random_engine *gen)
{
static default_random_engine generator;
if(gen)
generator = *gen;
return generator;
}
}
namespace Faust
{
//TODO: a proper class with seed and generator as attributes and static member functions
/**
* This module is for C PRNG initialization in Faust.
*/
/**
* \brief Initializes the C PRNG and C++ default_random_engine with a particular seed or returns the current one.
*
* \param seed: if 0 the current seed is returned (default behaviour) otherwise it is the new seed for the PRNGs.
*/
unsigned int seed(unsigned int seed=0);
/**
* \brief Gets the C++ default_random_engine used in Faust or assigns it if gen is not nullptr.
*/
std::default_random_engine& generator(std::default_random_engine *gen = nullptr);
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment