Xmipp  v3.23.11-Nereus
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
MDRandGenerator Class Reference

#include <metadata_generator.h>

Inheritance diagram for MDRandGenerator:
Inheritance graph
[legend]
Collaboration diagram for MDRandGenerator:
Collaboration graph
[legend]

Public Member Functions

 MDRandGenerator (double op1, double op2, const String &mode, double op3=0.)
 
void fillValue (MetaData &md, size_t objId)
 
- Public Member Functions inherited from MDValueGenerator
virtual ~MDValueGenerator ()
 
void fill (MetaData &md)
 

Protected Member Functions

double getRandValue ()
 

Protected Attributes

double op1
 
double op2
 
double op3
 
RandMode mode
 

Additional Inherited Members

- Public Attributes inherited from MDValueGenerator
MDLabel label
 

Detailed Description

MDGenerator to generate random values on columns

Definition at line 51 of file metadata_generator.h.

Constructor & Destructor Documentation

◆ MDRandGenerator()

MDRandGenerator::MDRandGenerator ( double  op1,
double  op2,
const String mode,
double  op3 = 0. 
)

Definition at line 44 of file metadata_generator.cpp.

44  {
45  static bool randomized = false;
46 
47  if (!randomized)//initialize random seed just once
48  {
50  randomized = true;
51  }
52  this->op1 = op1;
53  this->op2 = op2;
54  this->op3 = op3;
55  if (mode == "uniform")
56  this->mode = GTOR_UNIFORM;
57  else if (mode == "gaussian")
58  this->mode = GTOR_GAUSSIAN;
59  else if (mode == "student")
60  this->mode = GTOR_STUDENT;
61  else
62  REPORT_ERROR(ERR_PARAM_INCORRECT, formatString("Unknown random type '%s'", mode.c_str()));
63 
64 }
Parameter incorrect.
Definition: xmipp_error.h:181
#define REPORT_ERROR(nerr, ErrormMsg)
Definition: xmipp_error.h:211
String formatString(const char *format,...)
unsigned int randomize_random_generator()

Member Function Documentation

◆ fillValue()

void MDRandGenerator::fillValue ( MetaData md,
size_t  objId 
)
virtual

Implements MDValueGenerator.

Definition at line 66 of file metadata_generator.cpp.

66  {
67  double aux = getRandValue();
68  md.setValue(label, aux, objId);
69 }
bool setValue(const MDLabel label, const T &valueIn, size_t id)

◆ getRandValue()

double MDRandGenerator::getRandValue ( )
inlineprotected

Definition at line 30 of file metadata_generator.cpp.

30  {
31  switch (mode)
32  {
33  case GTOR_UNIFORM:
34  return rnd_unif(op1, op2);
35  case GTOR_GAUSSIAN:
36  return rnd_gaus(op1, op2);
37  case GTOR_STUDENT:
38  return rnd_student_t(op3, op1, op2);
39  default:
40  REPORT_ERROR(ERR_ARG_INCORRECT,"Unknown random type");
41  }
42 }
double rnd_student_t(double nu)
#define REPORT_ERROR(nerr, ErrormMsg)
Definition: xmipp_error.h:211
double rnd_unif()
Incorrect argument received.
Definition: xmipp_error.h:113
double rnd_gaus()

Member Data Documentation

◆ mode

RandMode MDRandGenerator::mode
protected

Definition at line 54 of file metadata_generator.h.

◆ op1

double MDRandGenerator::op1
protected

Definition at line 53 of file metadata_generator.h.

◆ op2

double MDRandGenerator::op2
protected

Definition at line 53 of file metadata_generator.h.

◆ op3

double MDRandGenerator::op3
protected

Definition at line 53 of file metadata_generator.h.


The documentation for this class was generated from the following files: