Documentation of CSL
Data Structures | Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Attributes
csl::LibraryGenerator Class Reference

Data Structures

struct  DiagonalizationData
 
struct  file
 

Public Types

enum  Compiler { gcc, clang }
 

Public Member Functions

 LibraryGenerator (std::string const &t_name, std::string const &t_path=".")
 
std::string getName () const
 
std::string getPath () const
 
std::set< std::string > const & getIPath () const
 
std::set< std::string > & getIPath ()
 
std::set< std::string > const & getLPath () const
 
std::set< std::string > & getLPath ()
 
LibDependency getDependencies () const
 
std::shared_ptr< LibraryGroupgetGroup (std::string_view name) const
 
bool hasGlobalFile () const
 
bool hasUniqueParamStruct () const
 
void cleanExistingSources () const
 
void setClangCompiler ()
 
void setGccCompiler ()
 
void setName (std::string const &t_name)
 
void setUniqueParamStruct (bool t_par)
 
void setPath (std::string const &t_path)
 
void setIPath (std::vector< std::string > const &t_path)
 
void setLPath (std::vector< std::string > const &t_path)
 
void addIPath (std::string const &t_path)
 
void addLPath (std::string const &t_path)
 
void addDependency (LibDependency const &dep)
 
void addInclude (std::string const &include, bool global=false)
 
void importHeader (std::string const &filePath, std::string const &fileName)
 
void importSource (std::string const &filePath, std::string const &fileName)
 
void addLibrary (std::string const &library)
 
void addTensor (Expr const &tensor) const
 
void addGroup (std::string const &groupName, bool complexReturn=true)
 
LibFunctionaddFunction (std::string const &nameFunction, Expr expression, std::string const &nameGroup="G")
 
void addMassExpression (std::string const &mass)
 
void addDiagonalization (std::vector< std::string > const &mixing, std::vector< std::string > const &masses, std::vector< std::string > const &expressions, std::vector< std::string > const &dependencies, bool squaredMass)
 
void print () const
 
void setupDirectory () const
 
void printHeader () const
 
void printGlobal () const
 
void printSource () const
 
void printCallable () const
 
void printTest () const
 
void printDiagonalizationFacility (std::ostream &header, std::ostream &source) const
 
void printMassExpressionsFacility (std::ostream &header, std::ostream &source) const
 
void printMakefile () const
 
void printPythonDir () const
 
void build (unsigned int nJobs=1) const
 
void buildCppLib (unsigned int nJobs) const
 

Static Public Member Functions

static std::string toUpper (std::string const &name)
 
static std::string regularName (std::string_view name)
 
static std::string indent (short nIndent=1)
 
static bool isQuadruplePrecision ()
 
static void setQuadruplePrecision (bool quadruple)
 

Static Public Attributes

static int nDigits
 
static std::string realType = "double"
 
static std::string complexType = "std::complex<double>"
 
static std::string realUsing = "real_t"
 
static std::string complexUsing = "complex_t"
 
static std::string tensorUsing = "csl::LibraryTensor"
 
static std::string indexType = "int"
 
static short nSpaceIndent = 4
 
static const Expr imaginary = csl::constant_s("_i_")
 
static std::string incDir = "include"
 
static std::string srcDir = "src"
 
static std::string objDir = "obj"
 
static std::string binDir = "bin"
 
static std::string libDir = "lib"
 
static std::string scriptDir = "script"
 
static std::string scriptObjDir = "script/obj"
 

Protected Attributes

std::string name
 
Compiler compiler
 
std::string path
 
std::set< std::string > IPath
 
std::set< std::string > LPath
 
LibDependency dependencies
 
std::vector< csl::Tensortensors
 
std::vector< std::shared_ptr< LibraryGroup > > groups
 
std::vector< DiagonalizationDatadiagData
 
std::vector< std::string > massExpressions
 
bool uniqueParamStruct
 

Field Documentation

◆ nDigits

int csl::LibraryGenerator::nDigits
inlinestatic
Initial value:
= std::numeric_limits<double>
::max_digits10 - 2

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