30#define BTL_ALWAYS_INLINE __attribute__((always_inline)) inline
32#define BTL_ALWAYS_INLINE inline
36#define BTL_DONT_INLINE __attribute__((noinline))
38#define BTL_DONT_INLINE
42#define BTL_ASM_COMMENT(X) asm("#" X)
44#define BTL_ASM_COMMENT(X)
50#define BTL_DISABLE_SSE_EXCEPTIONS() { _mm_setcsr(_mm_getcsr() | 0x8040); }
52#define BTL_DISABLE_SSE_EXCEPTIONS()
65 operator const char* ()
const {
return c_str(); }
67 void trim(
bool left =
true,
bool right =
true )
69 int lspaces, rspaces, len = length(),
i;
70 lspaces = rspaces = 0;
73 for (
i=0;
i<len && (at(
i)==
' '||at(
i)==
'\t'||at(
i)==
'\r'||at(
i)==
'\n'); ++lspaces,++
i);
75 if ( right && lspaces < len )
76 for(
i=len-1;
i>=0 && (at(
i)==
' '||at(
i)==
'\t'||at(
i)==
'\r'||at(
i)==
'\n'); rspaces++,
i--);
78 *
this = substr(lspaces, len-lspaces-rspaces);
83 std::vector<BtlString>
ret;
84 unsigned int numSplits = 0;
89 pos = find_first_of(delims, start);
96 ret.push_back( substr(start) );
99 ret.push_back( substr(start, pos - start) );
104 }
while (pos != npos);
110 if(str.size()>this->size())
112 return this->substr(this->
size()-str.size(),str.size()) == str;
116 return this->find(str)<this->
size();
120 if(str.size()>this->size())
122 return this->substr(0,str.size()) == str;
127 std::transform(begin(), end(), begin(),
static_cast<int(*)(
int)
>(::tolower) );
132 std::transform(begin(), end(), begin(),
static_cast<int(*)(
int)
>(::toupper) );
152 std::vector<BtlString> elements = this->
split(
"/\\");
154 filename = elements.back();
156 if (this->at(0)==
'/')
158 for (
unsigned int i=0 ;
i<elements.size() ; ++
i)
159 path += elements[
i] +
"/";
170 _config = getenv (
"BTL_CONFIG");
173 std::vector<BtlString> config =
BtlString(_config).
split(
" \t\n");
174 for (
unsigned int i = 0;
i<config.size();
i++)
176 if (config[
i].beginsWith(
"-a"))
178 if (
i+1==config.size())
180 std::cerr <<
"error processing option: " << config[
i] <<
"\n";
187 else if (config[
i].beginsWith(
"-t"))
189 if (
i+1==config.size())
191 std::cerr <<
"error processing option: " << config[
i] <<
"\n";
198 else if (config[
i].beginsWith(
"--overwrite"))
202 else if (config[
i].beginsWith(
"--nocheck"))
206 else if (config[
i].beginsWith(
"--real"))
240 BtlConfig BtlConfig::Instance
int i
Definition BiCGSTAB_step_by_step.cpp:9
Scalar Scalar int size
Definition benchVecAdd.cpp:17
#define DEFAULT_NB_TRIES
Definition bench_parameter.hh:51
#define BTL_DISABLE_SSE_EXCEPTIONS()
Definition btl.hh:52
#define BTL_DONT_INLINE
Definition btl.hh:38
BtlConfig()
Definition btl.hh:166
static BtlConfig Instance
Definition btl.hh:229
int tries
Definition btl.hh:233
bool overwriteResults
Definition btl.hh:230
bool checkResults
Definition btl.hh:231
bool realclock
Definition btl.hh:232
std::vector< BtlString > m_selectedActionNames
Definition btl.hh:236
static BTL_DONT_INLINE bool skipAction(const std::string &_name)
Definition btl.hh:216
void decomposePathAndFile(BtlString &path, BtlString &filename) const
Definition btl.hh:150
bool beginsWith(const BtlString &str) const
Definition btl.hh:118
BtlString(const BtlString &str)
Definition btl.hh:61
BtlString()
Definition btl.hh:60
BtlString toUpperCase(void)
Definition btl.hh:130
bool endsWith(const BtlString &str) const
Definition btl.hh:108
void trim(bool left=true, bool right=true)
Definition btl.hh:67
std::vector< BtlString > split(const BtlString &delims="\t\n ") const
Definition btl.hh:81
bool contains(const BtlString &str) const
Definition btl.hh:114
BtlString(const std::string &str)
Definition btl.hh:62
BtlString(const char *str)
Definition btl.hh:63
BtlString toLowerCase(void)
Definition btl.hh:125
bool isEquiv(const BtlString &str) const
Definition btl.hh:138
DenseIndex ret
Definition level1_cplx_impl.h:44