Static Public Member Functions | Static Private Member Functions | List of all members
PLMD::Tools Class Reference

Empty class which just contains several (static) tools. More...

#include <Tools.h>

Static Public Member Functions

static std::vector< std::string > getWords (const std::string &line, const char *sep=NULL, int *parlevel=NULL, const char *parenthesis="{")
 Split the line in words using separators. More...
 
static bool getline (FILE *, std::string &line)
 Get a line from the file pointer ifile. More...
 
static bool getParsedLine (IFile &ifile, std::vector< std::string > &line)
 Get a parsed line from the file pointer ifile This function already takes care of joining continued lines and splitting the resulting line into an array of words. More...
 
static bool convert (const std::string &str, double &t)
 Convert a string to a double, reading it. More...
 
static bool convert (const std::string &str, long double &t)
 Convert a string to a long double, reading it. More...
 
static bool convert (const std::string &str, float &t)
 Convert a string to a float, reading it. More...
 
static bool convert (const std::string &str, int &t)
 Convert a string to a int, reading it. More...
 
static bool convert (const std::string &str, long int &t)
 Convert a string to a long int, reading it. More...
 
static bool convert (const std::string &str, unsigned &t)
 Convert a string to an unsigned int, reading it. More...
 
static bool convert (const std::string &str, AtomNumber &t)
 Convert a string to a atom number, reading it. More...
 
static bool convert (const std::string &str, std::string &t)
 Convert a string to a string (i.e. copy) More...
 
template<typename T >
static void convert (T i, std::string &str)
 Convert anything into a string. More...
 
static void trim (std::string &s)
 Remove trailing blanks. More...
 
static void trimComments (std::string &s)
 Remove trailing comments. More...
 
static double pbc (double)
 Apply pbc for a unitary cell. More...
 
static bool getKey (std::vector< std::string > &line, const std::string &key, std::string &s, int rep=-1)
 Retrieve a key from a vector of options. More...
 
template<class T >
static bool parse (std::vector< std::string > &line, const std::string &key, T &val, int rep=-1)
 Find a keyword on the input line, eventually deleting it, and saving its value to val. More...
 
template<class T >
static bool parseVector (std::vector< std::string > &line, const std::string &key, std::vector< T > &val, int rep=-1)
 Find a keyword on the input line, eventually deleting it, and saving its value to a vector. More...
 
static bool parseFlag (std::vector< std::string > &line, const std::string &key, bool &val)
 Find a keyword without arguments on the input line. More...
 
static bool findKeyword (const std::vector< std::string > &line, const std::string &key)
 Find a keyword on the input line, just reporting if it exists or not. More...
 
static void interpretRanges (std::vector< std::string > &)
 Interpret atom ranges. More...
 
template<typename T >
static void removeDuplicates (std::vector< T > &vec)
 Remove duplicates from a vector of type T. More...
 
static void interpretLabel (std::vector< std::string > &s)
 interpret ":" syntax for labels More...
 
static std::vector< std::string > ls (const std::string &)
 list files in a directory More...
 
static void stripLeadingAndTrailingBlanks (std::string &str)
 removes leading and trailing blanks from a string More...
 
static std::string extension (const std::string &)
 Extract the extensions from a file name. More...
 
static double fastpow (double base, int exp)
 Fast int power. More...
 
static bool startWith (const std::string &full, const std::string &start)
 Check if a string full starts with string start. More...
 

Static Private Member Functions

template<class T >
static bool convertToAny (const std::string &str, T &t)
 class to convert a string to a generic type T More...
 
template<class T >
static bool convertToReal (const std::string &str, T &t)
 class to convert a string to a real type T. More...
 

Detailed Description

Empty class which just contains several (static) tools.

Member Function Documentation

◆ convert() [1/9]

bool PLMD::Tools::convert ( const std::string &  str,
double &  t 
)
static

Convert a string to a double, reading it.

◆ convert() [2/9]

bool PLMD::Tools::convert ( const std::string &  str,
long double &  t 
)
static

Convert a string to a long double, reading it.

◆ convert() [3/9]

bool PLMD::Tools::convert ( const std::string &  str,
float &  t 
)
static

Convert a string to a float, reading it.

◆ convert() [4/9]

bool PLMD::Tools::convert ( const std::string &  str,
int &  t 
)
static

Convert a string to a int, reading it.

◆ convert() [5/9]

bool PLMD::Tools::convert ( const std::string &  str,
long int &  t 
)
static

Convert a string to a long int, reading it.

◆ convert() [6/9]

bool PLMD::Tools::convert ( const std::string &  str,
unsigned &  t 
)
static

Convert a string to an unsigned int, reading it.

◆ convert() [7/9]

bool PLMD::Tools::convert ( const std::string &  str,
AtomNumber t 
)
static

Convert a string to a atom number, reading it.

◆ convert() [8/9]

bool PLMD::Tools::convert ( const std::string &  str,
std::string &  t 
)
static

Convert a string to a string (i.e. copy)

◆ convert() [9/9]

template<typename T >
void PLMD::Tools::convert ( i,
std::string &  str 
)
static

Convert anything into a string.

◆ convertToAny()

template<class T >
bool PLMD::Tools::convertToAny ( const std::string &  str,
T &  t 
)
staticprivate

class to convert a string to a generic type T

◆ convertToReal()

template<class T >
bool PLMD::Tools::convertToReal ( const std::string &  str,
T &  t 
)
staticprivate

class to convert a string to a real type T.

T should be either float, double, or long double

◆ extension()

std::string PLMD::Tools::extension ( const std::string &  s)
static

Extract the extensions from a file name.

E.g.: extension("pippo.xyz")="xyz". It only returns extensions with a length between 1 and 4 E.g.: extension("pippo.12345")="" whereas extenion("pippo.1234")="1234"; It is also smart enough to detect "/", so that extension("pippo/.t")="" whereas extension("pippo/a.t")="t"

◆ fastpow()

double PLMD::Tools::fastpow ( double  base,
int  exp 
)
inlinestatic

Fast int power.

◆ findKeyword()

bool PLMD::Tools::findKeyword ( const std::vector< std::string > &  line,
const std::string &  key 
)
static

Find a keyword on the input line, just reporting if it exists or not.

◆ getKey()

bool PLMD::Tools::getKey ( std::vector< std::string > &  line,
const std::string &  key,
std::string &  s,
int  rep = -1 
)
static

Retrieve a key from a vector of options.

It finds a key starting with "key=" or equal to "key" and copy the part after the = on s. E.g.: line.push_back("aa=xx"); getKey(line,"aa",s); will set s="xx"

◆ getline()

bool PLMD::Tools::getline ( FILE *  fp,
std::string &  line 
)
static

Get a line from the file pointer ifile.

◆ getParsedLine()

bool PLMD::Tools::getParsedLine ( IFile ifile,
std::vector< std::string > &  line 
)
static

Get a parsed line from the file pointer ifile This function already takes care of joining continued lines and splitting the resulting line into an array of words.

◆ getWords()

vector< string > PLMD::Tools::getWords ( const std::string &  line,
const char *  sep = NULL,
int *  parlevel = NULL,
const char *  parenthesis = "{" 
)
static

Split the line in words using separators.

It also take into account parenthesis. Outer parenthesis found are removed from output, and the text between them is considered as a single word. Only the outer parenthesis are processed, to allow nesting them. parlevel, if not NULL, is increased or decreased according to the number of opened/closed parenthesis

◆ interpretLabel()

void PLMD::Tools::interpretLabel ( std::vector< std::string > &  s)
static

interpret ":" syntax for labels

◆ interpretRanges()

void PLMD::Tools::interpretRanges ( std::vector< std::string > &  s)
static

Interpret atom ranges.

◆ ls()

vector< string > PLMD::Tools::ls ( const std::string &  d)
static

list files in a directory

◆ parse()

template<class T >
bool PLMD::Tools::parse ( std::vector< std::string > &  line,
const std::string &  key,
T &  val,
int  rep = -1 
)
static

Find a keyword on the input line, eventually deleting it, and saving its value to val.

◆ parseFlag()

bool PLMD::Tools::parseFlag ( std::vector< std::string > &  line,
const std::string &  key,
bool &  val 
)
inlinestatic

Find a keyword without arguments on the input line.

◆ parseVector()

template<class T >
bool PLMD::Tools::parseVector ( std::vector< std::string > &  line,
const std::string &  key,
std::vector< T > &  val,
int  rep = -1 
)
static

Find a keyword on the input line, eventually deleting it, and saving its value to a vector.

◆ pbc()

double PLMD::Tools::pbc ( double  x)
inlinestatic

Apply pbc for a unitary cell.

beware: this brings any number into a pbc that ranges from -0.5 to 0.5

◆ removeDuplicates()

template<typename T >
void PLMD::Tools::removeDuplicates ( std::vector< T > &  vec)
static

Remove duplicates from a vector of type T.

◆ startWith()

bool PLMD::Tools::startWith ( const std::string &  full,
const std::string &  start 
)
static

Check if a string full starts with string start.

Same as full.find(start)==0

◆ stripLeadingAndTrailingBlanks()

void PLMD::Tools::stripLeadingAndTrailingBlanks ( std::string &  str)
static

removes leading and trailing blanks from a string

◆ trim()

void PLMD::Tools::trim ( std::string &  s)
static

Remove trailing blanks.

◆ trimComments()

void PLMD::Tools::trimComments ( std::string &  s)
static

Remove trailing comments.


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