mirror of
https://github.com/rdkit/rdkit.git
synced 2026-06-03 21:44:30 +08:00
* 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>
60 lines
1.2 KiB
C++
60 lines
1.2 KiB
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.
|
|
//
|
|
|
|
#ifndef UTILS_H_
|
|
#define UTILS_H_
|
|
|
|
#include <cstdint>
|
|
#include <random>
|
|
#include "export.h"
|
|
|
|
namespace GarethUtil {
|
|
|
|
/*
|
|
* Singleton class to hold a random number generator
|
|
*
|
|
*/
|
|
class GA_EXPORT RandomUtil {
|
|
public:
|
|
RandomUtil(const RandomUtil &rhs) = delete;
|
|
RandomUtil &operator=(const RandomUtil &rhs) = delete;
|
|
RandomUtil(RandomUtil &&rhs) = delete;
|
|
RandomUtil &operator=(RandomUtil &&rhs) = delete;
|
|
|
|
/*
|
|
* return a random number between 0 and 1
|
|
*/
|
|
double normalRand();
|
|
|
|
/*
|
|
* return a random integer between top and bottom
|
|
*/
|
|
int randomInt(int bottom, int top);
|
|
|
|
bool randomBoolean();
|
|
|
|
void seed(uint32_t seed);
|
|
|
|
/**
|
|
* Get singleton
|
|
*/
|
|
static RandomUtil &getInstance();
|
|
|
|
private:
|
|
RandomUtil();
|
|
virtual ~RandomUtil();
|
|
|
|
std::mt19937 rng;
|
|
std::uniform_real_distribution<double> realDistribution;
|
|
};
|
|
|
|
} // namespace GarethUtil
|
|
#endif /* UTILS_H_ */
|