15   static const int a, 
m, 
q, 
r;
 
   18     if ((Seed=a*(Seed%q)-r*(Seed/q))>0){
return Seed;} 
else {
return Seed+=
m;}}
 
   20   TRnd(
const int& _Seed=1, 
const int& Steps=0){
 
   39    const double& Mean, 
const double& SDev, 
const double& Mn, 
const double& Mx);
 
   46     return 1+(int)floor(log(1.0-
GetUniDev())/log(1.0-Prb));}
 
   49     return pow(1.0-
GetUniDev(), -1.0/(AlphaSlope-1.0));}
 
   52     return Sigma*sqrt(-2*log(1-
GetUniDev()));}
 
   53   double GetWeibull(
const double& K, 
const double& Lambda) { 
 
   55     return Lambda*pow(-log(1-
GetUniDev()), 1.0/K);}
 
   61   void Move(
const int& Steps);
 
   81   void Resize(const 
int& _MxBfL);
 
   82   bool DoFitLen(const 
int& LBfL)
 const {
return BfL+LBfL<=MxBfL;}
 
   85     MxBfL(_MxBfL), BfL(0), Bf(NULL){ 
IAssert(BfL>=0);
 
   86     if (MxBfL>0){Bf=
new char[MxBfL]; 
IAssert(Bf!=NULL);}}
 
   88   TMem(
const void* _Bf, 
const int& _BfL):
 
   89     MxBfL(_BfL), BfL(_BfL), Bf(NULL){ 
IAssert(BfL>=0);
 
   90     if (BfL>0){Bf=
new char[BfL]; 
IAssert(Bf!=NULL); memcpy(Bf, _Bf, BfL);}}
 
   91   static PMem New(
const void* Bf, 
const int& BfL){
return new TMem(Bf, BfL);}
 
   93     MxBfL(Mem.MxBfL), BfL(Mem.BfL), Bf(NULL){
 
   94     if (MxBfL>0){Bf=
new char[MxBfL]; memcpy(Bf, Mem.
Bf, BfL);}}
 
   99   ~TMem(){
if (Bf!=NULL){
delete[] Bf;}}
 
  102     Bf=
new char[MxBfL=BfL]; SIn.
LoadBf(Bf, BfL);}
 
  105   void LoadXml(
const PXmlTok& XmlTok, 
const TStr& Nm);
 
  106   void SaveXml(
TSOut& SOut, 
const TStr& Nm) 
const;
 
  110       if (Bf!=NULL){
delete[] Bf;}
 
  111       MxBfL=Mem.
MxBfL; BfL=Mem.
BfL; Bf=NULL;
 
  112       if (MxBfL>0){Bf=
new char[MxBfL]; memcpy(Bf, Mem.
Bf, BfL);}}
 
  115   TMem& operator+=(
const char& Ch);
 
  120     Assert((0<=ChN)&&(ChN<BfL)); 
return Bf[ChN];}
 
  121   int GetMemUsed()
 const {
return int(2*
sizeof(
int)+
sizeof(
char*)+MxBfL);}
 
  123   void Gen(
const int& _BfL){
 
  124     Clr(); Resize(_BfL); BfL=_BfL;}
 
  126     Clr(
false); Resize(_BfL); BfL=_BfL;
 
  127     if (BfL > 0) memset(Bf, 0, BfL);}
 
  128   void Reserve(
const int& _MxBfL, 
const bool& DoClr = 
true){
 
  129     if (DoClr){ Clr(); } Resize(_MxBfL);}
 
  130   void Del(
const int& BChN, 
const int& EChN);
 
  131   void Clr(
const bool& DoDel=
true){
 
  132     if (DoDel){
if (Bf!=NULL){
delete[] Bf;} MxBfL=0; BfL=0; Bf=NULL;}
 
  134   int Len()
 const {
return BfL;}
 
  137     if ((0<=_BfL)&&(_BfL<=BfL)){BfL=_BfL;}}
 
  138   void Push(
const char& Ch){operator+=(Ch);}
 
  141   bool DoFitStr(
const TStr& Str) 
const;
 
  143   void AddBf(
const void* Bf, 
const int& BfL);
 
  145   TStr GetAsStr(
const char& NewNullCh=
'\0') 
const;
 
  175   int GetBf(
const void* LBf, 
const TSize& LBfL);
 
  194     Mem->operator+=(Ch); 
return Ch;}
 
  195   int PutBf(
const void* LBf, 
const TSize& LBfL);
 
  205   void Resize(
const int& _MxBfL);
 
  207   explicit TChA(
const int& _MxBfL=256){
 
  208     Bf=
new char[(MxBfL=_MxBfL)+1]; Bf[BfL=0]=0;}
 
  210     Bf=
new char[(MxBfL=BfL=int(strlen(CStr)))+1]; strcpy(Bf, CStr);}
 
  211   TChA(
const char* 
CStr, 
const int& StrLen) : MxBfL(StrLen), BfL(StrLen) {
 
  212     Bf=
new char[StrLen+1]; strncpy(Bf, CStr, StrLen); Bf[StrLen]=0;}
 
  214     Bf=
new char[(MxBfL=ChA.
MxBfL)+1]; BfL=ChA.
BfL; strcpy(Bf, ChA.
CStr());}
 
  217     Bf=
new char[(MxBfL=BfL=Mem.
Len())+1]; Bf[
MxBfL]=0;
 
  218     memcpy(
CStr(), Mem(), Mem.
Len());}
 
  221     SIn.
Load(MxBfL); SIn.
Load(BfL); SIn.
Load(Bf, MxBfL, BfL);}
 
  223     SIn.
Load(MxBfL); SIn.
Load(BfL); SIn.
Load(Bf, MxBfL, BfL);}
 
  224   void Save(
TSOut& SOut, 
const bool& SaveCompact=
true)
 const { 
 
  225     SOut.
Save(SaveCompact?BfL:MxBfL); SOut.
Save(BfL); SOut.
Save(Bf, BfL);}
 
  234   bool operator==(
const char& Ch)
 const {
return (BfL==1)&&(Bf[0]==Ch);}
 
  237   bool operator!=(
const char& Ch)
 const {
return !((BfL==1)&&(Bf[0]==Ch));}
 
  245     if (BfL==MxBfL){
Resize(BfL+1);}
 
  246     Bf[
BfL]=Ch; BfL++; Bf[
BfL]=0; 
return *
this;}
 
  248     Assert((0<=ChN)&&(ChN<BfL)); 
return Bf[ChN];}
 
  250     Assert((0<=ChN)&&(ChN<BfL)); 
return Bf[ChN];}
 
  251   int GetMemUsed()
 const {
return int(2*
sizeof(
int)+
sizeof(
char*)+
sizeof(
char)*MxBfL);}
 
  261   void Ins(
const int& BChN, 
const char* 
CStr);
 
  262   void Del(
const int& ChN);
 
  268     if ((0<=_BfL)&&(_BfL<=BfL)){Bf[BfL=_BfL]=0;}}
 
  271   void AddCh(
const char& Ch, 
const int& MxLen=-1){
 
  272     if ((MxLen==-1)||(BfL<MxLen)){
operator+=(Ch);}}
 
  273   void AddChTo(
const char& Ch, 
const int& ToChN){
 
  275   void AddBf(
char *NewBf, 
const int& BfS){
 
  276     if ((BfL+BfS+1)>MxBfL){
Resize(BfL+BfS+1);}
 
  277     strncpy(Bf+BfL,NewBf,BfS); BfL+=BfS; Bf[
BfL]=0;}
 
  278   void PutCh(
const int& ChN, 
const char& Ch){
 
  279     Assert((0<=ChN)&&(ChN<BfL)); Bf[ChN]=Ch;}
 
  286   int CountCh(
const char& Ch, 
const int& BChN=0) 
const;
 
  287   int SearchCh(
const char& Ch, 
const int& BChN=0) 
const;
 
  293   bool IsPrefix(
const char* 
CStr, 
const int& BChN=0) 
const;
 
  301   void ChangeCh(
const char& SrcCh, 
const char& DstCh);
 
  306   void Swap(
const int& ChN1, 
const int& ChN2);
 
  339   int GetBf(
const void* LBf, 
const TSize& LBfL);
 
  351   TRStr(){Refs=1; Bf=
new char[0+1]; Bf[0]=0;}
 
  353     IAssert(Len>=0); Refs=0; Bf=
new char[Len+1]; Bf[
Len]=0;}
 
  355     Refs=0; Bf=
new char[strlen(CStr)+1]; strcpy(Bf, CStr);}
 
  357     Refs=0; Bf=
new char[MxLen+1]; strncpy(Bf, CStr, MxLen); Bf[MxLen]=0;}
 
  358   TRStr(
const char* CStr1, 
const char* CStr2){
 
  359     Refs=0; 
int CStr1Len=int(strlen(CStr1)); Bf=
new char[CStr1Len+int(strlen(CStr2))+1];
 
  360     strcpy(Bf, CStr1); strcpy(Bf+CStr1Len, CStr2);}
 
  362     Refs=0; Bf=
new char[1+1]; Bf[0]=Ch; Bf[1]=0;}
 
  363   TRStr(
const char& Ch1, 
const char& Ch2){
 
  364     Refs=0; Bf=
new char[2+1]; Bf[0]=Ch1; Bf[1]=Ch2; Bf[2]=0;}
 
  369     if (IsSmall){Refs=0; SIn.
Load(Bf);}
 
  370     else {Refs=0; 
int BfL; SIn.
Load(BfL); SIn.
Load(Bf, BfL, BfL);}}
 
  372     if (IsSmall){SOut.
Save(Bf);}
 
  373     else {
int BfL=int(strlen(Bf)); SOut.
Save(BfL); SOut.
Save(Bf, BfL);}}
 
  376   int GetMemUsed()
 const {
return int(
sizeof(
int))+int(strlen(Bf));}
 
  383   bool Empty()
 const {
return Bf[0]==0;}
 
  384   int Len()
 const {
return int(strlen(Bf));}
 
  386   void PutCh(
const int& ChN, 
const char& Ch){
 
  387     Assert((0<=ChN)&&(ChN<
Len())); Bf[ChN]=Ch;}
 
  389     Assert((0<=ChN)&&(ChN<
Len())); 
return Bf[ChN];}
 
  397   static int CmpI(
const char* CStr1, 
const char* CStr2);
 
  403     static TRStr NullRStr; 
Assert(NullRStr.
Bf!=NULL); 
return &NullRStr;}
 
  409 template <
class TVal, 
class TSizeTy> 
class TVec;
 
  418   TStr(
const char& Ch1, 
const char& Ch2, 
bool){
 
  433     int SInLen=SIn->
Len(); RStr=
new TRStr(SInLen); RStr->
MkRef();
 
  436   explicit TStr(
TSIn& SIn, 
const bool& IsSmall=
false):
 
  439     *
this=
TStr(SIn, IsSmall);}
 
  440   void Save(
TSOut& SOut, 
const bool& IsSmall=
false)
 const {
 
  441     RStr->
Save(SOut, IsSmall);}
 
  446     if (
this!=&Str){RStr->
UnRef(); RStr=Str.
RStr; RStr->
MkRef();} 
return *
this;}
 
  467     return strcmp(RStr->
CStr(), 
CStr)==0;}
 
  471     return strcmp(RStr->
CStr(), 
CStr)!=0;}
 
  482   void PutCh(
const int& ChN, 
const char& Ch){
 
  521   void InsStr(
const int& BChN, 
const TStr& Str);
 
  523   void DelSubStr(
const int& BChN, 
const int& EChN);
 
  532    const char& SplitCh, 
TStrV& StrV, 
const bool& SkipEmpty=
true) 
const;
 
  534    const TStr& SplitChStr, 
TStrV& StrV, 
const bool& SkipEmpty=
true) 
const;
 
  549   TStr Slice(
int BChN, 
int EChNP1)
 const { 
if(BChN<0){BChN=
Len()+BChN;} 
if(EChNP1<=0){EChNP1=
Len()+EChNP1;} 
return GetSubStr(BChN, EChNP1-1); }
 
  552   int CountCh(
const char& Ch, 
const int& BChN=0) 
const;
 
  553   int SearchCh(
const char& Ch, 
const int& BChN=0) 
const;
 
  558   bool IsPrefix(
const char *Str) 
const;
 
  561   bool IsSuffix(
const char *Str) 
const;
 
  565   int ChangeCh(
const char& SrcCh, 
const char& DstCh, 
const int& BChN=0);
 
  566   int ChangeChAll(
const char& SrcCh, 
const char& DstCh);
 
  575   bool IsBool(
bool& Val) 
const;
 
  578    const bool& Check, 
const int& MnVal, 
const int& MxVal, 
int& Val) 
const;
 
  580   bool IsInt()
 const {
int Val; 
return IsInt(
false, 0, 0, Val);}
 
  583     int Val; 
if (
IsInt(
false, 0, 0, Val)){
return Val;} 
else {
return DfVal;}}
 
  586    const bool& Check, 
const uint& MnVal, 
const uint& MxVal, 
uint& Val) 
const;
 
  591     uint Val; 
if (
IsUInt(
false, 0, 0, Val)){
return Val;} 
else {
return DfVal;}}
 
  594    const bool& Check, 
const int64& MnVal, 
const int64& MxVal, 
int64& Val) 
const;
 
  600     int64 Val; 
if (
IsInt64(
false, 0, 0, Val)){
return Val;} 
else {
return DfVal;}}
 
  609     uint64 Val; 
if (
IsUInt64(
false, 0, 0, Val)){
return Val;} 
else {
return DfVal;}}
 
  611   bool IsHexInt(
const bool& Check, 
const int& MnVal, 
const int& MxVal, 
int& Val) 
const;
 
  617     int Val; 
if (
IsHexInt(
false, 0, 0, Val)){
return Val;} 
else {
return DfVal;}}
 
  625     int64 Val; 
if (
IsHexInt64(
false, 0, 0, Val)){
return Val;} 
else {
return DfVal;}}
 
  627   bool IsFlt(
const bool& Check, 
const double& MnVal, 
const double& MxVal,
 
  628    double& Val, 
const char& DecDelimCh=
'.') 
const;
 
  629   bool IsFlt(
double& Val)
 const {
return IsFlt(
false, 0, 0, Val);}
 
  630   bool IsFlt()
 const {
double Val; 
return IsFlt(
false, 0, 0, Val);}
 
  632     double Val; 
IAssert(
IsFlt(
false, 0, 0, Val)); 
return Val;}
 
  633   double GetFlt(
const double& DfVal)
 const {
 
  634     double Val; 
if (
IsFlt(
false, 0, 0, Val)){
return Val;} 
else {
return DfVal;}}
 
  636   bool IsWord(
const bool& WsPrefixP=
true, 
const bool& FirstUcAllowedP=
true) 
const;
 
  640    const int& StrBChN, 
const TStr& WcStr, 
const int& WcStrBChN, 
TStrV& StarStrV,
 
  641    const char& StarCh=
'*', 
const char& QuestCh=
'?') 
const;
 
  644    const char& StarCh=
'*', 
const char& QuestCh=
'?') 
const;
 
  645   bool IsWcMatch(
const TStr& WcStr, 
const char& StarCh, 
const char& QuestCh) 
const;
 
  686   static TStr Fmt(
const char *FmtStr, ...);
 
  689     char* Bf=
new char[
Len()+1]; strcpy(Bf, 
CStr()); 
return Bf;}
 
  718   int GetBf(
const void* LBf, 
const TSize& LBfL);
 
  738     if (
this!=&DbStr){Str1=DbStr.
Str1; Str2=DbStr.
Str2;} 
return *
this;}
 
  740     return (Str1==DbStr.
Str1)&&(Str2==DbStr.
Str2);}
 
  742     return (Str1<DbStr.
Str1)||((Str1==DbStr.
Str1)&&(Str2<DbStr.
Str2));}
 
  786   void Resize(const 
uint& _MxBfL);
 
  791     Bf = (
char *) malloc(Pool.MxBfL); 
IAssertR(Bf, 
TStr::Fmt(
"Can not resize buffer to %u bytes. [Program failed to allocate more memory. Solution: Get a bigger machine.]", MxBfL).CStr()); memcpy(Bf, Pool.Bf, Pool.BfL); }
 
  792   ~TStrPool() { 
if (Bf) free(Bf); 
else IAssertR(MxBfL == 0, 
TStr::Fmt(
"size: %u, expected size: 0", MxBfL).CStr());  Bf = 0; MxBfL = 0; BfL = 0; }
 
  798   void Save(
TSOut& SOut) 
const;
 
  803   bool Empty()
 const { 
return ! Len(); }
 
  804   char* operator () ()
 const { 
return Bf; }
 
  808   uint AddStr(
const char *Str, 
const uint& Len);
 
  819   void Clr(
bool DoDel = 
false) { BfL = 0; 
if (DoDel && Bf) { free(Bf); Bf = 0; MxBfL = 0; } }
 
  821     if (Offset != 0) 
return strcmp(Bf + Offset, Str); 
else return strcmp(
"", Str); }
 
  823   static int GetPrimHashCd(
const char *CStr);
 
  824   static int GetSecHashCd(
const char *CStr);
 
  826     if (Offset != 0) 
return GetPrimHashCd(Bf + Offset); 
else return GetPrimHashCd(
""); }
 
  828     if (Offset != 0) 
return GetSecHashCd(Bf + Offset); 
else return GetSecHashCd(
""); }
 
  839   void Resize(const ::
TSize& _MxBfL);
 
  845   void Save(
TSOut& SOut) 
const;
 
  856   bool Empty()
 const { 
return (BfL == 0); }
 
  859   void Clr(
bool DoDel = 
false);
 
  861     if (Offset != 0) 
return strcmp(Bf + Offset, Str); 
else return strcmp(
"", Str); }
 
  869 template <
class Base> 
class TNum{
 
  873   TNum(
const Base& _Val) : Val(_Val){}
 
  874   operator Base()
 const { 
return Val; }
 
  928     if (Val>100 * 1000){ 
return GetStr(Val / 1000) + 
"K"; }
 
  929     else if (Val>1000){ 
return GetStr(Val / 1000) + 
"." + GetStr((Val % 1000) / 100) + 
"K"; }
 
  930     else { 
return GetStr(Val); }
 
  933     if (Val>100 * 1000000){ 
return GetStr(Val / 1000000) + 
"M"; }
 
  934     else if (Val>1000000){
 
  935       return GetStr(Val / 1000000) + 
"." + GetStr((Val % 1000000) / 100000) + 
"M";
 
  937     else { 
return GetKiloStr(Val); }
 
  948     memcpy(&Val, Bf, 
sizeof(
int64)); 
 
  951     return *((
int64*)Bf);
 
  978   static const bool Mn;
 
  979   static const bool Mx;
 
  991   TBool(
const bool& _Val): Val(_Val){}
 
  992   operator bool()
 const {
return Val;}
 
 1002     return (Val==
false)&&(Bool.
Val==
true);}
 
 1016     if (Val){
return YStr;} 
else {
return NStr;}}
 
 1020     if (Val){
return "1";} 
else {
return "0";}}
 
 1044   TCh(
const char& _Val): Val(_Val){}
 
 1045   operator char()
 const {
return Val;}
 
 1062     return (Ch==HashCh);}
 
 1064     return (Ch==
' ')||(Ch==
TabCh)||(Ch==CrCh)||(Ch==
LfCh);}
 
 1066     return ((
'A'<=Ch)&&(Ch<=
'Z'))||((
'a'<=Ch)&&(Ch<=
'z'));}
 
 1067   static bool IsNum(
const char& Ch){
return (
'0'<=Ch)&&(Ch<=
'9');}
 
 1070   static bool IsHex(
const char& Ch){
return 
 1071     ((
'0'<=Ch)&&(Ch<=
'9'))||((
'A'<=Ch)&&(Ch<=
'F'))||((
'a'<=Ch)&&(Ch<=
'f'));}
 
 1073     if ((
'0'<=Ch)&&(Ch<=
'9')){
return Ch-
'0';}
 
 1074     else if ((
'A'<=Ch)&&(Ch<=
'F')){
return Ch-
'A'+10;}
 
 1075     else if ((
'a'<=Ch)&&(Ch<=
'f')){
return Ch-
'a'+10;}
 
 1076     else Fail; 
return 0;}
 
 1078     if ((0<=Val)&&(Val<=9)){
return char(
'0'+
char(Val));}
 
 1079     else if ((10<=Val)&&(Val<=15)){
return char(
'A'+
char(Val-10));}
 
 1080     else Fail; 
return 0;}
 
 1082     return (
'A'<=Ch)&&(Ch<=
'Z');}
 
 1084     if ((
'a'<=Ch)&&(Ch<=
'z')){
return Ch-
'a'+
'A';} 
else {
return Ch;}}
 
 1150   operator int()
 const {
return Val;}
 
 1174   static int Abs(
const int& Int){
return Int<0?-Int:Int;}
 
 1175   static int Sign(
const int& Int){
return Int<0?-1:(Int>0?1:0);}
 
 1176   static void Swap(
int& Int1, 
int& Int2){
 
 1177     int SwapInt1=Int1; Int1=Int2; Int2=SwapInt1;}
 
 1180   static bool IsOdd(
const int& Int){
return ((Int%2)==1);}
 
 1181   static bool IsEven(
const int& Int){
return ((Int%2)==0);}
 
 1183   static int GetMn(
const int& Int1, 
const int& Int2){
 
 1184     return Int1<Int2?Int1:Int2;}
 
 1185   static int GetMx(
const int& Int1, 
const int& Int2){
 
 1186     return Int1>Int2?Int1:Int2;}
 
 1187   static int GetMn(
const int& Int1, 
const int& Int2, 
const int& Int3){
 
 1189   static int GetMn(
const int& Int1, 
const int& Int2,
 
 1190    const int& Int3, 
const int& Int4){
 
 1192   static int GetMx(
const int& Int1, 
const int& Int2, 
const int& Int3){
 
 1194   static int GetMx(
const int& Int1, 
const int& Int2,
 
 1195    const int& Int3, 
const int& Int4){
 
 1197   static int GetInRng(
const int& Val, 
const int& Mn, 
const int& Mx){
 
 1198     IAssert(Mn<=Mx); 
return Val<Mn?Mn:(Val>Mx?Mx:
Val);}
 
 1204   static TStr GetStr(
const int& Val, 
const char* FmtStr);
 
 1218     char Bf[255]; sprintf(Bf, 
"%X", Val); 
return TStr(Bf);}
 
 1223     if (Val>=100*1000){
return GetStr(Val/1000)+
"K";}
 
 1224     else if (Val>=1000){
return GetStr(Val/1000)+
"."+
GetStr((Val%1000)/100)+
"K";}
 
 1225     else {
return GetStr(Val);}}
 
 1227     if (Val>=100*1000000){
return GetStr(Val/1000000)+
"M";}
 
 1228     else if (Val>=1000000){
 
 1229       return GetStr(Val/1000000)+
"."+
GetStr((Val%1000000)/100000)+
"M";}
 
 1284     char Bf[255]; sprintf(Bf, 
"%u", Val); 
return TStr(Bf);}
 
 1292     if (Val>100*1000){
return GetStr(Val/1000)+
"K";}
 
 1293     else if (Val>1000){
return GetStr(Val/1000)+
"."+
GetStr((Val%1000)/100)+
"K";}
 
 1294     else {
return GetStr(Val);}}
 
 1296     if (Val>100*1000000){
return GetStr(Val/1000000)+
"M";}
 
 1297     else if (Val>1000000){
 
 1298       return GetStr(Val/1000000)+
"."+
GetStr((Val%1000000)/100000)+
"M";}
 
 1302     uint B1=(JavaUInt & 0xFF000000) >> 24;
 
 1303     uint B2=(JavaUInt & 0x00FF0000) >> 16;
 
 1304     uint B3=(JavaUInt & 0x0000FF00) >> 8;
 
 1305     uint B4=(JavaUInt & 0x000000FF) >> 0;
 
 1306     uint CppUInt=(B4<<24)+(B3<<16)+(B2<<8)+(B1<<0);
 
 1309   static bool IsIpStr(
const TStr& IpStr, 
uint& Ip, 
const char& SplitCh = 
'.');
 
 1313   static bool IsIpv6Str(
const TStr& IpStr, 
const char& SplitCh = 
':');
 
 1351     return (
uint)(Val >> 32);}
 
 1353     return (
uint)(Val & 0xffffffff);}
 
 1369     if (Val>100*1000){
return GetStr(Val/1000)+
"K";}
 
 1370     else if (Val>1000){
return GetStr(Val/1000)+
"."+
GetStr((Val%1000)/100)+
"K";}
 
 1371     else {
return GetStr(Val);}}
 
 1373     if (Val>100*1000000){
return GetStr(Val/1000000)+
"M";}
 
 1374     else if (Val>1000000){
 
 1375       return GetStr(Val/1000000)+
"."+
GetStr((Val%1000000)/100000)+
"M";}
 
 1399   TFlt(
const double& _Val): Val(_Val){}
 
 1400   operator double()
 const {
return Val;}
 
 1404     if (IsTxt){
TStr Str(SIn, 
true); Val=Str.
GetFlt(0);} 
else {SIn.
Load(Val);}}
 
 1407     if (IsTxt){
GetStr(Val).
Save(SOut, 
true);} 
else {SOut.
Save(Val);}}
 
 1426     int Expn; 
return int((frexp(Val, &Expn)-0.5)*
double(
TInt::Mx));}
 
 1428     int Expn; frexp(Val, &Expn); 
return Expn;}
 
 1430   static double Abs(
const double& Flt){
return Flt<0?-Flt:Flt;}
 
 1431   static int Sign(
const double& Flt){
return Flt<0?-1:(Flt>0?1:0);}
 
 1432   static int Round(
const double& Flt){
return int(floor(Flt+0.5));}
 
 1434   static bool Eq6(
const double& LFlt, 
const double& RFlt){
 
 1435     return fabs(LFlt-RFlt)<0.000001;}
 
 1437   static double GetMn(
const double& Flt1, 
const double& Flt2){
 
 1438     return Flt1<Flt2?Flt1:Flt2;}
 
 1439   static double GetMn(
const double& Flt1, 
const double& Flt2, 
const double& Flt3){
 
 1441   static double GetMn(
const double& Flt1, 
const double& Flt2, 
const double& Flt3, 
const double& Flt4){
 
 1444   static double GetMx(
const double& Flt1, 
const double& Flt2){
 
 1445     return Flt1>Flt2?Flt1:Flt2;}
 
 1446   static double GetMx(
const double& Flt1, 
const double& Flt2, 
const double Flt3){
 
 1448   static double GetMx(
const double& Flt1, 
const double& Flt2, 
const double Flt3, 
const double& Flt4){
 
 1451   static double GetInRng(
const double& Val, 
const double& Mn, 
const double& Mx){
 
 1452     IAssert(Mn<=Mx); 
return Val<Mn?Mn:(Val>Mx?Mx:
Val);}
 
 1455     return (Mn<=Val)&&(Val<=
Mx);}
 
 1463   static TStr GetStr(
const double& Val, 
const int& Width=-1, 
const int& Prec=-1);
 
 1466   static TStr GetStr(
const double& Val, 
const char* FmtStr);
 
 1470     return GetStr(100*RelVal/FullVal, 
"%3.0f%%");}
 
 1473     if (fabs(Val)>100*1000){
return TStr::Fmt(
"%.0fK", Val/1000);}
 
 1474     else if (fabs(Val)>1000){
return TStr::Fmt(
"%.1fK", Val/1000);}
 
 1477     if (fabs(Val)>100*1000000){
return TStr::Fmt(
"%.0fM", Val/1000000);}
 
 1478     else if (fabs(Val)>1000000){
return TStr::Fmt(
"%.1fM", Val/1000000);}
 
 1481     if (fabs(Val)>100*1000000000.0){
return TStr::Fmt(
"%.0fG", Val/1000000000.0);}
 
 1482     else if (fabs(Val)>1000000000.0){
return TStr::Fmt(
"%.1fG", Val/1000000000.0);}
 
 1530     int Expn; 
return int((frexp(Val, &Expn)-0.5)*
double(
TInt::Mx));}
 
 1532     int Expn; frexp(Val, &Expn); 
return Expn;}
 
 1565   static TStr GetStr(
const ldouble& Val, 
const int& Width=-1, 
const int& Prec=-1);
 
 1580     MnX(), MnY(), MxX(), MxY(){}
 
 1582     MnX(FltRect.MnX), MnY(FltRect.MnY), MxX(FltRect.MxX), MxY(FltRect.MxY){}
 
 1584    const double& _MnX, 
const double& _MnY,
 
 1585    const double& _MxX, 
const double& _MxY):
 
 1586     MnX(_MnX), MnY(_MnY), MxX(_MxX), MxY(_MxY){}
 
 1588     MnX(SIn), MnY(SIn), MxX(SIn), MxY(SIn){}
 
 1595     MnX=FltRect.
MnX; MnY=FltRect.
MnY; MxX=FltRect.
MxX; MxY=FltRect.
MxY;
 
 1613   bool IsXYIn(
const double& X, 
const double& Y)
 const {
 
 1614     return (MnX<=X)&&(X<=
MxX)&&(MnY<=Y)&&(Y<=
MxY);}
 
TSFlt & operator/=(const double &SFlt)
 
TChAIn & operator=(const TChAIn &)
 
int GetPrimHashCd() const 
 
static int CmpI(const char *CStr1, const char *CStr2)
 
bool operator==(const double &Flt) const _CMPWARN
 
static bool IsHex(const char &Ch)
 
bool operator==(const TDbStr &DbStr) const 
 
void Load(TSIn &SIn, const bool &IsSmall=false)
 
static TStr PutFExtIfEmpty(const TStr &FNm, const TStr &FExt)
 
TStr(const char &Ch, bool)
 
TFlt & operator*=(const double &Flt)
 
void Save(TSOut &SOut) const 
 
int SearchCh(const char &Ch, const int &BChN=0) const 
 
static TStr GetHexStr(const int &Val)
 
int GetBf(const void *LBf, const TSize &LBfL)
 
ldouble operator()() const 
 
TMemOut(const PMem &_Mem)
 
virtual int Len() const  =0
 
static TStr GetPrcStr(const double &RelVal, const double &FullVal)
 
TStr GetSubStr(const int &BChN) const 
 
TLFlt & operator=(const TLFlt &LFlt)
 
void Gen(const int &_BfL)
 
static double GetMx(const double &Flt1, const double &Flt2, const double Flt3, const double &Flt4)
 
static PMem New(const PMem &Mem)
 
#define IAssertR(Cond, Reason)
 
static TStr GetSpaceStr(const int &Spaces)
 
void SaveXml(TSOut &SOut, const TStr &Nm) const 
 
TLFlt(const ldouble &_Val)
 
static PSOut New(const TStr &FNm, const bool &Append=false)
 
static uint JavaUIntToCppUInt(const uint &JavaUInt)
 
const char * CStr() const 
 
#define ClassHdTP(TNm, PNm)
 
bool operator==(const char *_CStr) const 
 
void Resize(const int &_MxBfL)
 
static TStr GetHexStr(const TUInt64 &Int)
 
void Save(TSOut &SOut) const 
 
int GetPrimHashCd() const 
 
TStr Right(const int &BChN) const 
 
TNum & operator=(const TNum &Int)
 
bool operator!=(const char *_CStr) const 
 
static TStr GetMegaStr(const int &Val)
 
void Save(TSOut &SOut) const 
 
void SaveMem(const PSOut &SOut) const 
 
static void LoadTxt(const PSIn &SIn, TChA &ChA)
 
bool IsHexInt64(int64 &Val) const 
 
int64 GetUniDevInt64(const int64 &Range=0)
 
void Ins(const int &BChN, const char *CStr)
 
static TStr GetStr(const uint64 &Val)
 
static int GetInRng(const int &Val, const int &Mn, const int &Mx)
 
static TStr GetKiloStr(const uint64 &Val)
 
static bool IsNum(const char &Ch)
 
bool IsPrefix(const char *Str) const 
 
static PSIn New(const TChA &ChA)
 
TStr & operator+=(const char *CStr)
 
static PStrPool Load(TSIn &SIn, bool LoadCompacted=true)
 
static TStr GetStr(const int &Val, const TStr &FmtStr)
 
TSFlt & operator-=(const double &SFlt)
 
TStr(const char &Ch1, const char &Ch2, bool)
 
void SaveXml(TSOut &SOut, const TStr &Nm) const 
 
static TStr GetStrFromIpUInt(const uint &Ip)
 
static int GetMn(const int &Int1, const int &Int2, const int &Int3, const int &Int4)
 
TFltRect & operator=(const TFltRect &FltRect)
 
static PSIn New(const TMem &Mem)
 
int GetPrimHashCd() const 
 
int SearchChBack(const char &Ch, int BChN=-1) const 
 
static TRnd LoadTxt(TILx &Lx)
 
TFlt & operator/=(const double &Flt)
 
void LoadXml(const PXmlTok &XmlTok, const TStr &Nm)
 
void Save(TSOut &SOut) const 
 
bool IsFlt(double &Val) const 
 
static double GetMx(const double &Flt1, const double &Flt2)
 
bool operator!=(const char *CStr) const 
 
TDbStr(const TStr &_Str1, const TStr &_Str2)
 
bool IsXYIn(const double &X, const double &Y) const 
 
TMem & operator=(const TMem &Mem)
 
PSIn GetSIn(const bool &IsCut=true, const int &CutBfL=-1)
 
static TStr GetStr(const double &Val, const TStr &FmtStr)
 
static TStr GetStr(const TUInt64 &Int)
 
static int GetMx(const int &Int1, const int &Int2)
 
TUInt64(const TUInt64 &Int)
 
bool operator==(const TChA &ChA) const 
 
bool operator!=(const double &Flt) const _CMPWARN
 
bool EqI(const TStr &Str) const 
 
bool operator!=(const ldouble &LFlt) const _CMPWARN
 
const char * GetCStr(const uint &Offset) const 
 
TPt< TStrPool64 > PStrPool64
 
static bool IsHashCh(const char &Ch)
 
static char * SaveFrugalInt(char *pDest, int i)
 
TSFlt & operator*=(const double &SFlt)
 
void PutCh(const int &ChN, const char &Ch)
 
static char GetHexCh(const int &Val)
 
void LoadXml(const PXmlTok &XmlTok, const TStr &Nm)
 
static PMem New(const TMem &Mem)
 
void Save(TSOut &SOut) const 
 
void AddCh(const char &Ch, const int &MxLen=-1)
 
int GetUniDevInt(const int &MnVal, const int &MxVal)
 
TVoid & operator=(const TVoid &)
 
static const double EpsHalf
 
bool IsPrefix(const TStr &Str) const 
 
int GetPrimHashCd() const 
 
TFlt & operator=(const double &Flt)
 
static PStrPool New(const uint &_MxBfLen=0, const uint &_GrowBy=16 *1024 *1024)
 
bool IsChIn(const char &Ch) const 
 
static bool IsNum(const double &Val)
 
static void SaveFrugalIntV(TSOut &SOut, const TVec< TInt, int > &IntV)
 
static TStr GetMegaStr(const double &Val)
 
TInt & operator-=(const int &Int)
 
int GetPrimHashCd() const 
 
TRStr(const char *CStr, const int &MxLen)
 
static TStr GetYesNoStr(const bool &Val)
 
TUCh & operator=(const TUCh &UCh)
 
uint64 GetUniDevUInt64(const uint64 &Range=0)
 
void Save(TSOut &SOut) const 
 
int CmpI(const TStr &Str) const 
 
static PSOut New(const PMem &Mem)
 
void DelChAll(const char &Ch)
 
TChA & operator+=(const char &Ch)
 
void SaveXml(TSOut &SOut, const TStr &Nm) const 
 
TUInt64(const uint64 &Int)
 
virtual int GetBf(const void *Bf, const TSize &BfL)=0
 
static int GetHex(const char &Ch)
 
double GetRayleigh(const double &Sigma)
 
static TStr GetNrFMid(const TStr &FMid)
 
TStr GetSubStr(const int &BChN, const int &EChN) const 
 
bool DelStr(const TStr &Str)
 
int GetBf(const void *LBf, const TSize &LBfL)
 
TFlt & operator+=(const double &Flt)
 
TDbStr & operator=(const TDbStr &DbStr)
 
static TStr GetNrFNm(const TStr &FNm)
 
void Save(TSOut &SOut) const 
 
TUInt & operator|=(const TUInt &UInt)
 
int Cmp(uint64 Offset, const char *Str) const 
 
int SearchStr(const TChA &Str, const int &BChN=0) const 
 
static bool IsIpv6Str(const TStr &IpStr, const char &SplitCh= ':')
 
sdouble operator()() const 
 
static double GetMn(const double &Flt1, const double &Flt2, const double &Flt3)
 
bool operator==(const char &Ch) const 
 
bool operator==(const TSFlt &SFlt) const _CMPWARN
 
TStr & operator=(const char &Ch)
 
bool operator==(const TInt &Int) const 
 
int64 GetHexInt64() const 
 
bool IsInt64(int64 &Val) const 
 
static TStr GetKiloStr(const uint &Val)
 
void LoadXml(const PXmlTok &XmlTok, const TStr &Nm)
 
static bool IsIpStr(const TStr &IpStr, uint &Ip, const char &SplitCh= '.')
 
const char * CStr() const 
 
static TStr GetStr(const uint &Val, const TStr &FmtStr)
 
bool operator==(const TRnd &) const 
 
void LoadXml(const PXmlTok &XmlTok, const TStr &Nm)
 
bool operator!=(const int &Int) const 
 
TLFlt & operator+=(const ldouble &LFlt)
 
TLFlt & operator-=(const ldouble &LFlt)
 
static TStr GetStr(const uint &Val)
 
int ChangeChAll(const char &SrcCh, const char &DstCh)
 
double GetXCenter() const 
 
TDbStr(const TDbStr &DbStr)
 
void SaveXml(TSOut &SOut, const TStr &Nm) const 
 
bool IsHexInt(int &Val) const 
 
TBool & operator=(const TBool &Bool)
 
static PSIn New(const PMem &Mem)
 
static double GetMx(const double &Flt1, const double &Flt2, const double Flt3)
 
static bool GetValFromStr(const TStr &Str)
 
static double GetExpDevStep(const int &Seed, const int &Steps)
 
friend TStr operator+(const TStr &LStr, const TStr &RStr)
 
bool operator==(const TCh &Ch) const 
 
bool IsStrIn(const TStr &Str) const 
 
int PutCh(const char &Ch)
 
void SaveXml(TSOut &SOut, const TStr &Nm) const 
 
void Save(TSOut &SOut) const 
 
TInt & operator=(const TInt &Int)
 
int GetPrimHashCd() const 
 
double GetGammaDev(const int &Order)
 
static TStr GetStr(const TUInt &UInt)
 
static TStr GetMegaStr(const uint &Val)
 
TStr GetWcMatch(const TStr &WcStr, const int &StarStrN=0) const 
 
TFltRect(const TFltRect &FltRect)
 
void SplitOnCh(TStr &LStr, const char &SplitCh, TStr &RStr) const 
 
void Save(TSOut &SOut, const bool &IsTxt) const 
 
static const TStr FalseStr
 
int GetPrimHashCd() const 
 
#define ClassTP(TNm, PNm)
 
void SaveXml(TSOut &SOut, const TStr &Nm) const 
 
static int Sign(const int &Int)
 
TSFlt & operator+=(const double &SFlt)
 
static TStr GetMegaStr(const uint64 &Val)
 
bool IsUInt64(uint64 &Val) const 
 
void Clr(bool DoDel=false)
 
void Save(TSOut &SOut) const 
 
bool IsInt(int &Val) const 
 
TAscFlt(const double &Val)
 
void Save(TSOut &SOut) const 
 
static PSIn New(const TStr &FNm)
 
void Trunc(const int &_BfL)
 
void LoadXml(const PXmlTok &XmlTok, const TStr &Nm)
 
static double GetMn(const double &Flt1, const double &Flt2, const double &Flt3, const double &Flt4)
 
void LoadXml(const PXmlTok &XmlTok, const TStr &Nm)
 
TNum & operator=(const TNum &Other)
 
uint64 GetUInt64(const uint64 &DfVal) const 
 
void Push(const char &Ch)
 
static TStr GetKiloStr(const double &Val)
 
TUInt & operator<<=(const int &ShiftBits)
 
int SearchChBack(const char &Ch, int BChN=-1) const 
 
static bool IsWs(const char &Ch)
 
static TStr AddToFMid(const TStr &FNm, const TStr &ExtFMid)
 
double GetWeibull(const double &K, const double &Lambda)
 
int PutBf(const void *LBf, const TSize &LBfL)
 
int GetPrimHashCd() const 
 
int ChangeStrAll(const TStr &SrcStr, const TStr &DstStr, const bool &FromStartP=false)
 
int GetPrimHashCd() const 
 
int GetPrimHashCd() const 
 
TStr GetStr(const TStr &MidStr=TStr()) const 
 
static PStrPool LoadShM(TSIn &SIn)
 
int GetPrimHashCd() const 
 
TStr GetUsFromYuAscii() const 
 
static TStr & GetDChStr(const char &Ch1, const char &Ch2)
 
static int GetMn(const int &Int1, const int &Int2)
 
void Save(TSOut &SOut) const 
 
void Save(TSOut &SOut) const 
 
static TStr GetNrAbsFPath(const TStr &FPath, const TStr &BaseFPath=TStr())
 
bool IsPrefix(const char *CStr, const int &BChN=0) const 
 
bool IsBool(bool &Val) const 
 
TUInt & operator=(const TUInt &UInt)
 
TMem(const void *_Bf, const int &_BfL)
 
void Save(TSOut &SOut, const bool &IsSmall=false) const 
 
unsigned long long uint64
 
void Save(TSOut &SOut) const 
 
TSFlt & operator=(const TSFlt &SFlt)
 
static TStr Get01Str(const bool &Val)
 
bool operator==(const TFlt &Flt) const _CMPWARN
 
TSFlt(const sdouble &_Val)
 
int64 GetHexInt64(const int64 &DfVal) const 
 
int CountCh(const char &Ch, const int &BChN=0) const 
 
static double GetNrmDevStep(const int &Seed, const int &Steps)
 
TStr GetStr(const uint &Offset) const 
 
void SaveTxt(const PSOut &SOut) const 
 
int SearchStr(const TStr &Str, const int &BChN=0) const 
 
bool IsSuffix(const char *Str) const 
 
bool IsWcMatch(const int &StrBChN, const TStr &WcStr, const int &WcStrBChN, TStrV &StarStrV, const char &StarCh='*', const char &QuestCh='?') const 
 
TChA(const int &_MxBfL=256)
 
static PSIn New(const TStr &Str)
 
char GetCh(const int &ChN) const 
 
static TStr GetHexStr(const TInt &Int)
 
TMemIn(const TMem &_Mem, const int &_BfC=0)
 
static bool IsIpStr(const TStr &IpStr, const char &SplitCh= '.')
 
static int GetNum(const char &Ch)
 
static TStr GetStr(const TLFlt &LFlt, const int &Width=-1, const int &Prec=-1)
 
uint GetUniDevUInt(const uint &Range=0)
 
TUInt64 & operator=(const TUInt64 &Int)
 
int GetSecHashCd(const uint &Offset)
 
void LoadXml(const PXmlTok &XmlTok, const TStr &Nm)
 
TStr Mid(const int &BChN, const int &Chs) const 
 
static TRStr * GetNullRStr()
 
static PStrPool New(TSIn &SIn)
 
static void TestFrugalInt()
 
char operator[](const int &ChN) const 
 
char & operator[](const int &ChN)
 
static bool IsOdd(const int &Int)
 
void Save(TSOut &SOut) const 
 
TStr RightOf(const char &SplitCh) const 
 
void Save(TSOut &SOut, const bool &SaveCompact=true) const 
 
void Save(TSOut &SOut) const 
 
TStr & ConvUsFromYuAscii()
 
const char * CStr() const 
 
bool operator==(const char *CStr) const 
 
TChA GetSubStr(const int &BChN, const int &EChN) const 
 
TRStr(const char *CStr1, const char *CStr2)
 
TFlt(TSIn &SIn, const bool &IsTxt)
 
TUInt & operator&=(const TUInt &UInt)
 
bool operator==(const TVoid &) const 
 
static TStr & GetChStr(const char &Ch)
 
static TStr PutFBaseIfEmpty(const TStr &FNm, const TStr &FBase)
 
bool IsWord(const bool &WsPrefixP=true, const bool &FirstUcAllowedP=true) const 
 
static TStr LoadTxt(const TStr &FNm)
 
bool operator<(const int &Int) const 
 
TStr & operator=(const TStr &Str)
 
void Trunc(const int &_BfL)
 
bool operator<(const TCh &Ch) const 
 
bool operator!=(const double &Flt) const _CMPWARN
 
bool operator<(const TUCh &UCh) const 
 
uint GetUInt(const uint &DfVal) const 
 
TNum & operator-=(const TNum &Int)
 
void SaveXml(TSOut &SOut, const TStr &Nm) const 
 
int GetPrimHashCd(const uint &Offset)
 
static PStrPool64 Load(TSIn &SIn, bool LoadCompact=true)
 
static TStr GetNrFPath(const TStr &FPath)
 
void SaveTxt(const TStr &FNm) const 
 
static TStr GetNrFExt(const TStr &FExt)
 
bool operator<(const TChA &ChA) const 
 
static TStr GetStr(const int &Val)
 
TUInt64 & operator-=(const TUInt64 &Int)
 
static TRStr * GetRStr(const char *CStr)
 
static TStr GetGigaStr(const double &Val)
 
TCh & operator=(const TCh &Ch)
 
void SaveBf(const void *Bf, const TSize &BfL)
 
char GetCh(const int &ChN) const 
 
TChA & operator+=(const TMem &Mem)
 
TUInt64(const uint &MsVal, const uint &LsVal)
 
char GetCh(const int &ChN) const 
 
bool operator==(const TLFlt &LFlt) const _CMPWARN
 
bool operator<(const TVoid &) const 
 
char & operator[](const int &ChN) const 
 
void SaveXml(TSOut &SOut, const TStr &Nm) const 
 
TStr(TSIn &SIn, const bool &IsSmall=false)
 
TStr & operator/(const int &N)
 
void DelSubStr(const int &BChN, const int &EChN)
 
void LoadXml(const PXmlTok &XmlTok, const TStr &Nm)
 
int64 GetInt64(const int64 &DfVal) const 
 
char operator[](const int &ChN) const 
 
void LoadXml(const PXmlTok &XmlTok, const TStr &Nm)
 
void Save(const bool &Bool)
 
static uint GetRnd(const uint &Range=0)
 
TDbStr(const TStr &_Str1)
 
TNum & operator=(const Base &_Val)
 
TRnd(const int &_Seed=1, const int &Steps=0)
 
static double Abs(const double &Flt)
 
static double GetUniDevStep(const int &Seed, const int &Steps)
 
static int Round(const double &Flt)
 
bool GetNextLnBf(TChA &LnChA)
 
TStr Left(const int &EChN) const 
 
static TStr PutFBase(const TStr &FNm, const TStr &FBase)
 
double GetPoissonDev(const double &Mean)
 
void SaveXml(TSOut &SOut, const TStr &Nm) const 
 
void SaveXml(TSOut &SOut, const TStr &Nm) const 
 
static void LoadMem(const PSIn &SIn, TMem &Mem)
 
TNum & operator+=(const TNum &Int)
 
void Move(const int &Steps)
 
static PStrPool New(const TStr &fileName)
 
void SaveTxt(TOLx &Lx) const 
 
TUInt & operator=(const uint &_Val)
 
static TStr GetNumFNm(const TStr &FNm, const int &Num)
 
void Save(TSOut &SOut) const 
 
static int Abs(const int &Int)
 
void Save(const TStr &FNm)
 
bool operator<(const TLFlt &LFlt) const 
 
static int GetRnd(const int &Range=0)
 
void PutSeed(const int &_Seed)
 
void PutCh(const int &ChN, const char &Ch)
 
static bool IsAlNum(const char &Ch)
 
static int GetMx(const int &Int1, const int &Int2, const int &Int3, const int &Int4)
 
void Save(TSOut &SOut, const bool &IsSmall) const 
 
TStr LeftOf(const char &SplitCh) const 
 
TInt & operator=(const int &Int)
 
void SplitOnNonAlNum(TStrV &StrV) const 
 
int SearchCh(const char &Ch, const int &BChN=0) const 
 
double GetYCenter() const 
 
static char * LoadFrugalInt(char *pSrc, int &i)
 
uint AddStr(const char *Str)
 
static bool IsValStr(const TStr &Str)
 
double GetBinomialDev(const double &Prb, const int &Trials)
 
void AddBf(char *NewBf, const int &BfS)
 
static double GetMn(const double &Flt1, const double &Flt2)
 
int ChangeCh(const char &SrcCh, const char &DstCh, const int &BChN=0)
 
TStr & operator+=(const TStr &Str)
 
TStr Mid(const int &BChN) const 
 
static TStr GetYNStr(const bool &Val)
 
static bool IsAlpha(const char &Ch)
 
TChA & operator=(const TChA &ChA)
 
TRnd & operator=(const TRnd &Rnd)
 
static PMem New(const int &MxBfL=0)
 
bool IsChIn(const char &Ch) const 
 
static TStr GetMegaStr(const int64 &Val)
 
TStr LeftOfLast(const char &SplitCh) const 
 
static TStr GetStr(const TNum &Int)
 
bool operator<(const TInt &Int) const 
 
static TStr Fmt(const char *FmtStr,...)
 
static TStr MkClone(const TStr &Str)
 
void LoadXml(const PXmlTok &XmlTok, const TStr &Nm)
 
static bool IsNan(const double &Val)
 
double operator()() const 
 
void Swap(const int &ChN1, const int &ChN2)
 
int GetHexInt(const int &DfVal) const 
 
void LoadXml(const PXmlTok &XmlTok, const TStr &Nm)
 
void SplitOnAllCh(const char &SplitCh, TStrV &StrV, const bool &SkipEmpty=true) const 
 
void LoadBf(const void *Bf, const TSize &BfL)
 
void SaveXml(TSOut &SOut, const TStr &Nm) const 
 
TStr & operator=(const TChA &ChA)
 
static TStr LoadTxt(const PSIn &SIn)
 
static int64 GetFromBufSafe(const char *Bf)
 
const char * operator()() const 
 
double GetFlt(const double &DfVal) const 
 
bool IsSuffix(const char *CStr) const 
 
bool IsUInt(uint &Val) const 
 
TStr & operator=(const char *CStr)
 
TUInt64 & operator*=(const TUInt64 &Int)
 
static char GetUsFromYuAscii(const char &Ch)
 
static bool Intersection(const TFltRect &Rect1, const TFltRect &Rect2)
 
int Cmp(const uint &Offset, const char *Str) const 
 
static PStrPool64 New(::TSize MxBfL=0,::TSize GrowBy=16 *1024 *1024)
 
static TStr GetNrNumFExt(const int &FExtN)
 
static TStr GetStr(const TStr &Str, const TStr &FmtStr)
 
void GenZeros(const int &_BfL)
 
bool operator<(const TStr &Str) const 
 
TRStr(TSIn &SIn, const bool &IsSmall)
 
static TStr GetStr(const bool &Val)
 
TStrIn & operator=(const TStrIn &)
 
TRStr & operator=(const TRStr &)
 
void Reserve(const int &_MxBfL, const bool &DoClr=true)
 
void Push(const char &Ch)
 
static PMem New(const void *Bf, const int &BfL)
 
void SaveXml(TSOut &SOut, const TStr &Nm) const 
 
void AddChTo(const char &Ch, const int &ToChN)
 
static int Sign(const double &Flt)
 
bool operator<(const TBool &Bool) const 
 
static TStr GetStr(const int64 &Val)
 
static TStr GetStr(const TCh &Ch)
 
static double GetInRng(const double &Val, const double &Mn, const double &Mx)
 
static TStr GetKiloStr(const int64 &Val)
 
void SaveXml(TSOut &SOut, const TStr &Nm) const 
 
static void LoadFrugalIntV(TSIn &SIn, TVec< TInt, int > &IntV, bool ClrP=true)
 
bool operator==(const int &Int) const 
 
bool operator==(const TBool &Bool) const 
 
TUInt & operator^=(const TUInt &UInt)
 
bool operator==(const TStr &Str) const 
 
TMem(const int &_MxBfL=0)
 
TUInt & operator>>=(const int &ShiftBits)
 
bool operator==(const double &Flt) const _CMPWARN
 
void LoadXml(const PXmlTok &XmlTok, const TStr &Nm)
 
int GetUniDevInt(const int &Range=0)
 
static TStr PutFExt(const TStr &FNm, const TStr &FExt)
 
TInt & operator+=(const int &Int)
 
void SplitOnStr(const TStr &SplitStr, TStrV &StrV) const 
 
bool GetNextLnBf(TChA &LnChA)
 
void PutCh(const int &ChN, const char &Ch)
 
static TStr GetStr(const ldouble &Val, const int &Width=-1, const int &Prec=-1)
 
void SplitOnWs(TStrV &StrV) const 
 
int GetGeoDev(const double &Prb)
 
bool operator==(const ldouble &LFlt) const _CMPWARN
 
TUInt64 & operator+=(const TUInt64 &Int)
 
static char IsUc(const char &Ch)
 
bool operator!=(const TChA &ChA) const 
 
TFlt & operator=(const TFlt &Flt)
 
static bool Eq6(const double &LFlt, const double &RFlt)
 
int GetPrimHashCd() const 
 
TFltRect(const double &_MnX, const double &_MnY, const double &_MxX, const double &_MxY)
 
void LoadXml(const PXmlTok &XmlTok, const TStr &Nm)
 
int GetBf(const void *LBf, const TSize &LBfL)
 
void SplitOnLastCh(TStr &LStr, const char &SplitCh, TStr &RStr) const 
 
TChA(const char *CStr, const int &StrLen)
 
static TStr GetStr(const uint &Val)
 
static TStr GetStr(const ldouble &Val, const TStr &FmtStr)
 
char * operator()() const 
 
static char GetUc(const char &Ch)
 
TRStr(const char &Ch1, const char &Ch2)
 
TStr Slice(int BChN, int EChNP1) const 
 
bool IsStrIn(const TStr &Str) const 
 
static uint GetUIntFromIpStr(const TStr &IpStr, const char &SplitCh= '.')
 
static void Swap(int &Int1, int &Int2)
 
static TStr GetHexStr(const TNum &Int)
 
static TStr GetStr(const TBool &Bool)
 
uint64 GetMemUsed() const 
 
int GetPrimHashCd() const 
 
bool IsSuffix(const TStr &Str) const 
 
TStr operator()(const int &BChN, const int &EChNP1) const 
 
void SplitOnAllAnyCh(const TStr &SplitChStr, TStrV &StrV, const bool &SkipEmpty=true) const 
 
uint AddStr(const TStr &Str)
 
void InsStr(const int &BChN, const TStr &Str)
 
static TStr GetStr(const TFlt &Flt, const int &Width=-1, const int &Prec=-1)
 
int CountCh(const char &Ch, const int &BChN=0) const 
 
static const TStr TrueStr
 
void LoadXml(const PXmlTok &XmlTok, const TStr &Nm)
 
int GetPrimHashCd() const 
 
static int GetMn(const int &Int1, const int &Int2, const int &Int3)
 
bool operator!=(const char &Ch) const 
 
bool GetNextLnBf(TChA &LnChA)
 
static TStr GetStr(const TInt &Int)
 
bool operator<(const TSFlt &SFlt) const 
 
bool operator==(const TUCh &UCh) const 
 
TStr RightOfLast(const char &SplitCh) const 
 
void Save(TSOut &SOut) const 
 
bool operator<(const TDbStr &DbStr) const 
 
static bool IsAbsFPath(const TStr &FPath)
 
TFlt & operator-=(const double &Flt)
 
static bool IsEven(const int &Int)
 
double GetPowerDev(const double &AlphaSlope)
 
static PMem New(const TStr &Str)
 
int ChangeStr(const TStr &SrcStr, const TStr &DstStr, const int &BChN=0)
 
Vector is a sequence TVal objects representing an array that can change in size. 
 
static void LoadMem(const PSIn &SIn, const PMem &Mem)
 
void ChangeCh(const char &SrcCh, const char &DstCh)
 
void SaveXml(TSOut &SOut, const TStr &Nm) const 
 
static TStr GetKiloStr(const int &Val)
 
void SaveTxt(const PSOut &SOut) const 
 
static TStr GetFNmStr(const TStr &Str, const bool &AlNumOnlyP=true)
 
int GetInt(const int &DfVal) const 
 
void Clr(const bool &DoDel=true)
 
static int GetMx(const int &Int1, const int &Int2, const int &Int3)