Files
rdkit/External/GA/util/RandomUtil.cpp
Gareth Jones ec5a172886 R group symmetry (#3565)
* Exploration

* Initial work on GA fro Rgroup Symmetry

* GA for rgroup decomp and fingerprint rgroup symmetry scoring

* Continuing development

* Exploration

* Initial work on GA fro Rgroup Symmetry

* GA for rgroup decomp and fingerprint rgroup symmetry scoring

* Continuing development

* Further development

* Continued tweaks

* Function rename

* Continued tweaks

* Bug fix for variance calculation

* Copyright notices. Remove Eigen dependency. RdKit logging.  Clock fix.

* Changes to fix build failures

* Fixes for Windows dynamic DLL build

* Included GA export.h file

* Fixed RGroupDecomp CMakeLists.txt

* Notebooks working, GGroup labelling bug fixed

* Fix windows build.  More options for example GA program

* More bugs found and tests adjusted

* Fixed Python rgroup test

* Trivial change to trigger CI

* OSX java and windows build fixes

* Windows DLL fix

* Fix segmentation error

* proposed change

* Possible fix for segmentation fault

* CR fixes

* CR fixes

* CR fixes

* Recreates molecules from rgroups where possible

Co-authored-by: greg landrum <greg.landrum@gmail.com>
Co-authored-by: Brian Kelley <fustigator@gmail.com>
2021-01-05 09:27:33 -05:00

44 lines
981 B
C++

//
// Copyright (C) 2020 Gareth Jones, Glysade LLC
//
// @@ All Rights Reserved @@
// This file is part of the RDKit.
// The contents are covered by the terms of the BSD license
// which is included in the file license.txt, found at the root
// of the RDKit source tree.
//
#include "RandomUtil.h"
using std::mt19937;
using std::uniform_real_distribution;
namespace GarethUtil {
// RandomUtil::RandomUtil(uint32_t seed_) :
// realDistribution(0, 1){
// seed(seed_);
//}
RandomUtil::RandomUtil() : realDistribution(0, 1) {}
RandomUtil::~RandomUtil() {}
void RandomUtil::seed(uint32_t seed_) { rng.seed(seed_); }
double RandomUtil::normalRand() { return realDistribution(rng); }
int RandomUtil::randomInt(int bottom, int top) {
int step = rng() % (top - bottom);
return bottom + step;
}
bool RandomUtil::randomBoolean() { return normalRand() < 0.5; }
RandomUtil &RandomUtil::getInstance() {
static RandomUtil rng;
return rng;
}
} // namespace GarethUtil