Fixed-Size Types and Their Limits
[CORELIB]

Collaboration diagram for Fixed-Size Types and Their Limits:


Classes

class  ncbi_numeric_limits< char >
class  ncbi_numeric_limits< signedchar >
class  ncbi_numeric_limits< unsigned char >
class  ncbi_numeric_limits< signedshort >
class  ncbi_numeric_limits< unsigned short >
class  ncbi_numeric_limits< signedint >
class  ncbi_numeric_limits< unsigned int >
class  ncbi_numeric_limits< signedlong >
class  ncbi_numeric_limits< unsigned long >
class  ncbi_numeric_limits< float >
class  ncbi_numeric_limits< double >

Defines

#define NCBI_NO_THREADS
#define NCBI_RESTRICT
#define NCBI_FORCEINLINE
#define kMin_Char   CHAR_MIN
#define kMax_Char   CHAR_MAX
#define kMin_SChar   SCHAR_MIN
#define kMax_SChar   SCHAR_MAX
#define kMax_UChar   UCHAR_MAX
#define kMin_Short   SHRT_MIN
#define kMax_Short   SHRT_MAX
#define kMax_UShort   USHRT_MAX
#define kMin_Int   INT_MIN
#define kMax_Int   INT_MAX
#define kMax_UInt   UINT_MAX
#define kMin_Float   FLT_MIN;
#define kMax_Float   FLT_MAX;
#define kMin_Double   DBL_MIN;
#define kMax_Double   DBL_MAX;
#define kMin_I1   SCHAR_MIN
#define kMax_I1   SCHAR_MAX
#define kMax_UI1   UCHAR_MAX
#define kMin_I2   SHRT_MIN
#define kMax_I2   SHRT_MAX
#define kMax_UI2   USHRT_MAX
#define kMin_I4   INT_MIN
#define kMax_I4   INT_MAX
#define kMax_UI4   UINT_MAX
#define kMin_I8   NCBI_MIN_I8
#define kMax_I8   NCBI_MAX_I8
#define kMax_UI8   NCBI_MAX_UI8
#define numeric_limits   ncbi_numeric_limits
 Pre-declaration of the "numeric_limits<>" template Forcibly overrides (using preprocessor) the original "numeric_limits<>"!
#define NCBI_NUMERIC_LIMITS(type, alias)
 Auxiliary macro to implement (a limited edition of) the "numeric_limits<>" template.
#define NCBI_NUMERIC_LIMITS_UNSIGNED(type, alias)
#define NCBI_GET_NUMERIC_LIMITS(type)
 Macro to declare specilized get_limits.
#define NCBI_BIG_TYPE   NCBI_INT8_TYPE
#define SIZEOF_NCBI_BIG   8
#define NCBI_CONST_INT8(v)   v
#define NCBI_CONST_UINT8(v)   v

Typedefs

typedef char Char
 Alias for char.
typedef signed char Schar
 Alias for signed char.
typedef unsigned char Uchar
 Alias for unsigned char.
typedef signed char Int1
 Alias for signed char.
typedef unsigned char Uint1
 Alias for unsigned char.
typedef signed short Int2
 Alias for signed short.
typedef unsigned short Uint2
 Alias for unsigned short.
typedef signed int Int4
 Alias for signed int.
typedef unsigned int Uint4
 Alias for unsigned int.
typedef signed NCBI_INT8_TYPE Int8
 Signed 8 byte sized integer.
typedef unsigned NCBI_INT8_TYPE Uint8
 Unsigned 8 byte sized integer.
typedef NCBI_INT8_TYPE Ncbi_BigScalar
 Define large scalar type.
typedef int intptr_t
typedef unsigned int uintptr_t

Functions

template<typename T>
END_NCBI_SCOPE ncbi_numeric_limits<
T > 
get_limits (const T &)
 Generic template to get STD limits by a variable.
EMPTY_TEMPLATE ncbi_numeric_limits<
char > 
get_limits (const char &)
EMPTY_TEMPLATE ncbi_numeric_limits<
signed char > 
get_limits (const signed char &)
EMPTY_TEMPLATE ncbi_numeric_limits<
unsigned char > 
get_limits (const unsigned char &)
EMPTY_TEMPLATE ncbi_numeric_limits<
signed short > 
get_limits (const signed short &)
EMPTY_TEMPLATE ncbi_numeric_limits<
unsigned short > 
get_limits (const unsigned short &)
EMPTY_TEMPLATE ncbi_numeric_limits<
signed int > 
get_limits (const signed int &)
EMPTY_TEMPLATE ncbi_numeric_limits<
unsigned int > 
get_limits (const unsigned int &)
EMPTY_TEMPLATE ncbi_numeric_limits<
signed long > 
get_limits (const signed long &)
EMPTY_TEMPLATE ncbi_numeric_limits<
unsigned long > 
get_limits (const unsigned long &)
EMPTY_TEMPLATE ncbi_numeric_limits<
float > 
get_limits (const float &)
EMPTY_TEMPLATE ncbi_numeric_limits<
double > 
get_limits (const double &)


Define Documentation

#define kMax_Char   CHAR_MAX
 

Definition at line 174 of file ncbi_limits.h.

#define kMax_Double   DBL_MAX;
 

Definition at line 208 of file ncbi_limits.h.

Referenced by SimpleBoundaryExtenderAndShrinker::AddFirstScorer(), BlockBoundaryAlgorithm::AddScorer(), SimpleBoundaryExtenderAndShrinker::AddSecondScorer(), CRunOfDigits::CRunOfDigits(), AMatrix_base::GetExtremalEntries(), SUApp::Init(), and SequenceDisplay::ProximitySort().

#define kMax_Float   FLT_MAX;
 

Definition at line 205 of file ncbi_limits.h.

#define kMax_I1   SCHAR_MAX
 

Definition at line 212 of file ncbi_limits.h.

#define kMax_I2   SHRT_MAX
 

Definition at line 215 of file ncbi_limits.h.

#define kMax_I4   INT_MAX
 

Definition at line 218 of file ncbi_limits.h.

Referenced by BOOST_AUTO_TEST_CASE(), CQueue::GetNextId(), CQueue::GetNextIdBatch(), CNetScheduleHandler::ProcessMsgBatchJob(), CQueue::ReadJobs(), and CQueue::SubmitBatch().

#define kMax_I8   NCBI_MAX_I8
 

Definition at line 221 of file ncbi_limits.h.

Referenced by NStr::StringToInt8(), and sx_GetParentByOverlap().

#define kMax_Int   INT_MAX
 

Definition at line 184 of file ncbi_limits.h.

Referenced by CReadBlastApp::addLoctoSimpleSeq(), CSeq_id::BestRank(), CSeq_id::FastaAARank(), CSeq_id::FastaNARank(), CSpectrumSet::GetDTABody(), GetLabel(), CEUtilsApp::Init(), CAVApp::Init(), CId1FetchApp::Init(), CWinMaskApplication::Init(), SUApp::Init(), CAlignmentRefiner::Init(), CMkIndexApplication::Init(), LoadDataOnly(), NCBITEST_AUTO_INIT(), s_AdjustPipeBufSize(), s_ScoreForDBSource(), CSeq_id::Score(), NStr::StringToInt(), TestForOverlap(), CSemaphore::TryWait(), CWriteDB_IsamIndex::x_AddTraceIds(), CReferenceItem::x_Init(), CAnnot_Collector::x_Initialize(), CAnnot_Collector::x_Initialize0(), CAnnot_Collector::x_SearchTSE2(), and CBlockingQueue< TRequest >::x_WaitForPredicate().

#define kMax_SChar   SCHAR_MAX
 

Definition at line 176 of file ncbi_limits.h.

#define kMax_Short   SHRT_MAX
 

Definition at line 180 of file ncbi_limits.h.

#define kMax_UChar   UCHAR_MAX
 

Definition at line 177 of file ncbi_limits.h.

#define kMax_UI1   UCHAR_MAX
 

Definition at line 213 of file ncbi_limits.h.

#define kMax_UI2   USHRT_MAX
 

Definition at line 216 of file ncbi_limits.h.

Referenced by CCompressionUtil::StoreUI2().

#define kMax_UI4   UINT_MAX
 

Definition at line 219 of file ncbi_limits.h.

Referenced by CSeqMaskerIstatAscii::CSeqMaskerIstatAscii(), CMkIndexApplication::Run(), and CCompressionUtil::StoreUI4().

#define kMax_UI8   NCBI_MAX_UI8
 

Definition at line 222 of file ncbi_limits.h.

Referenced by s_Base256ToNum(), s_DataSizeConvertQual(), and NStr::StringToUInt8().

#define kMax_UInt   UINT_MAX
 

Definition at line 185 of file ncbi_limits.h.

Referenced by CSeqMap::BeginResolved(), CSeqVector_CI::CanGetRange(), CZipCompression::CompressBuffer(), CBZip2Compression::CompressBuffer(), RowScorer::ComputeScore(), CZipCompression::DecompressBuffer(), CBZip2Compression::DecompressBuffer(), CSeqMap::End(), CSeqMap::EndResolved(), CSplign::SAlignedCompartment::GetBox(), CBDB_Cache::GetNextBlobId(), SNetScheduleAPIImpl::GetServerParams(), CPkl2hdf5Application::Init(), CMzXML2hdf5Application::Init(), CHdf2mzXMLApplication::Init(), CFixMsHdf5Application::Init(), CBMARefinerCycle::IsConverged(), SequenceViewerWidget_SequenceArea::MoveRubberband(), CArgs::operator[](), CSemaphore::Post(), CZipDecompressor::Process(), CZipCompressor::Process(), CBZip2Decompressor::Process(), CBZip2Compressor::Process(), CServer::Run(), CNSSubmitRemoteJobApp::Run(), CHitFilter< THit >::s_GetSpan(), CSplicedAligner32::ScoreFromTranscript(), CSplicedAligner16::ScoreFromTranscript(), CNWAligner::ScoreFromTranscript(), CTimeout::Set(), SAnnotSelector::SetMaxSize(), NStr::StringToUInt(), ValidateFrozenBlockPositions(), CArgDescriptions::x_CreateArg(), CSplign::x_FinalizeAlignedCompartment(), CSeqVector::x_GetPacked2naSeqData(), CSeqVector::x_GetPacked4naSeqData(), CSeqVector::x_GetPacked8SeqData(), CSeqVector_CI::x_InitSeg(), CAnnot_Collector::x_NoMoreObjects(), and CMergeVolumes::x_ResetMinKey().

#define kMax_UShort   USHRT_MAX
 

Definition at line 181 of file ncbi_limits.h.

#define kMin_Char   CHAR_MIN
 

Definition at line 173 of file ncbi_limits.h.

#define kMin_Double   DBL_MIN;
 

Definition at line 207 of file ncbi_limits.h.

Referenced by AMatrix_base::GetExtremalEntries().

#define kMin_Float   FLT_MIN;
 

Definition at line 204 of file ncbi_limits.h.

Referenced by BlockMultipleAlignment::OptimizeBlock().

#define kMin_I1   SCHAR_MIN
 

Definition at line 211 of file ncbi_limits.h.

#define kMin_I2   SHRT_MIN
 

Definition at line 214 of file ncbi_limits.h.

#define kMin_I4   INT_MIN
 

Definition at line 217 of file ncbi_limits.h.

#define kMin_I8   NCBI_MIN_I8
 

Definition at line 220 of file ncbi_limits.h.

#define kMin_Int   INT_MIN
 

Definition at line 183 of file ncbi_limits.h.

Referenced by PercentOfWeightOverThresholdColumnScorer::ColumnScore(), GetLocalID(), PSSMWrapper::GetPSSMScore(), BMAUtils::GetSmallestValueInPssm(), AlignmentUtility::ScoreRowByPSSM(), NStr::StringToInt(), CMMAligner::x_FindBestJ(), and CMMAligner::x_Run().

#define kMin_SChar   SCHAR_MIN
 

Definition at line 175 of file ncbi_limits.h.

#define kMin_Short   SHRT_MIN
 

Definition at line 179 of file ncbi_limits.h.

#define NCBI_BIG_TYPE   NCBI_INT8_TYPE
 

Definition at line 118 of file ncbitype.h.

#define NCBI_CONST_INT8  )     v
 

Definition at line 186 of file ncbitype.h.

#define NCBI_CONST_UINT8  )     v
 

Definition at line 187 of file ncbitype.h.

#define NCBI_FORCEINLINE
 

Definition at line 90 of file ncbiconf_impl.h.

#define NCBI_GET_NUMERIC_LIMITS type   ) 
 

Value:

EMPTY_TEMPLATE \
    inline numeric_limits<type> get_limits(const type&) \
        { return numeric_limits<type>(); }
Macro to declare specilized get_limits.

Definition at line 178 of file ncbi_limits.hpp.

#define NCBI_NO_THREADS
 

Definition at line 65 of file ncbiconf_impl.h.

#define NCBI_NUMERIC_LIMITS type,
alias   ) 
 

Value:

template <> \
  class numeric_limits<type> \
  { \
  public: \
      static inline type min() THROWS_NONE { return kMin_##alias; } \
      static inline type max() THROWS_NONE { return kMax_##alias; } \
  }
Auxiliary macro to implement (a limited edition of) the "numeric_limits<>" template.

Definition at line 93 of file ncbi_limits.hpp.

#define NCBI_NUMERIC_LIMITS_UNSIGNED type,
alias   ) 
 

Value:

template <> \
  class numeric_limits<type> \
  { \
  public: \
      static inline type min() THROWS_NONE { return 0; } \
      static inline type max() THROWS_NONE { return kMax_##alias; } \
  }

Definition at line 102 of file ncbi_limits.hpp.

#define NCBI_RESTRICT
 

Definition at line 83 of file ncbiconf_impl.h.

#define numeric_limits   ncbi_numeric_limits
 

Pre-declaration of the "numeric_limits<>" template Forcibly overrides (using preprocessor) the original "numeric_limits<>"!

Definition at line 84 of file ncbi_limits.hpp.

#define SIZEOF_NCBI_BIG   8
 

Definition at line 119 of file ncbitype.h.


Typedef Documentation

typedef char Char
 

Alias for char.

Definition at line 79 of file ncbitype.h.

typedef signed char Int1
 

Alias for signed char.

Definition at line 82 of file ncbitype.h.

typedef signed short Int2
 

Alias for signed short.

Definition at line 84 of file ncbitype.h.

typedef signed int Int4
 

Alias for signed int.

Definition at line 86 of file ncbitype.h.

typedef signed NCBI_INT8_TYPE Int8
 

Signed 8 byte sized integer.

Definition at line 109 of file ncbitype.h.

typedef int intptr_t
 

Definition at line 150 of file ncbitype.h.

typedef NCBI_INT8_TYPE Ncbi_BigScalar
 

Define large scalar type.

This is platform dependent. It could be an Int8, long double, double or void*.

Definition at line 145 of file ncbitype.h.

typedef signed char Schar
 

Alias for signed char.

Definition at line 80 of file ncbitype.h.

typedef unsigned char Uchar
 

Alias for unsigned char.

Definition at line 81 of file ncbitype.h.

typedef unsigned char Uint1
 

Alias for unsigned char.

Definition at line 83 of file ncbitype.h.

typedef unsigned short Uint2
 

Alias for unsigned short.

Definition at line 85 of file ncbitype.h.

typedef unsigned int Uint4
 

Alias for unsigned int.

Definition at line 87 of file ncbitype.h.

typedef unsigned NCBI_INT8_TYPE Uint8
 

Unsigned 8 byte sized integer.

Definition at line 112 of file ncbitype.h.

typedef unsigned int uintptr_t
 

Definition at line 162 of file ncbitype.h.


Function Documentation

EMPTY_TEMPLATE ncbi_numeric_limits< double > get_limits const double &   )  [inline]
 

Definition at line 197 of file ncbi_limits.hpp.

EMPTY_TEMPLATE ncbi_numeric_limits< float > get_limits const float &   )  [inline]
 

Definition at line 196 of file ncbi_limits.hpp.

EMPTY_TEMPLATE ncbi_numeric_limits< unsigned long > get_limits const unsigned long &   )  [inline]
 

Definition at line 194 of file ncbi_limits.hpp.

EMPTY_TEMPLATE ncbi_numeric_limits< signed long > get_limits const signed long &   )  [inline]
 

Definition at line 193 of file ncbi_limits.hpp.

EMPTY_TEMPLATE ncbi_numeric_limits< unsigned int > get_limits const unsigned int &   )  [inline]
 

Definition at line 191 of file ncbi_limits.hpp.

EMPTY_TEMPLATE ncbi_numeric_limits< signed int > get_limits const signed int &   )  [inline]
 

Definition at line 190 of file ncbi_limits.hpp.

EMPTY_TEMPLATE ncbi_numeric_limits< unsigned short > get_limits const unsigned short &   )  [inline]
 

Definition at line 188 of file ncbi_limits.hpp.

EMPTY_TEMPLATE ncbi_numeric_limits< signed short > get_limits const signed short &   )  [inline]
 

Definition at line 187 of file ncbi_limits.hpp.

EMPTY_TEMPLATE ncbi_numeric_limits< unsigned char > get_limits const unsigned char &   )  [inline]
 

Definition at line 185 of file ncbi_limits.hpp.

EMPTY_TEMPLATE ncbi_numeric_limits< signed char > get_limits const signed char &   )  [inline]
 

Definition at line 184 of file ncbi_limits.hpp.

EMPTY_TEMPLATE ncbi_numeric_limits< char > get_limits const char &   )  [inline]
 

Definition at line 183 of file ncbi_limits.hpp.

template<typename T>
END_NCBI_SCOPE ncbi_numeric_limits<T> get_limits const T &   )  [inline]
 

Generic template to get STD limits by a variable.

Typical use:

     int a = 10;

Note:
Causes a compile-time failure if used instead of the specialized implementations.

Definition at line 171 of file ncbi_limits.hpp.

Referenced by CMemoryFile::Extend(), and CMemoryFileMap::Map().


Generated on Wed Dec 9 08:13:30 2009 for NCBI C++ ToolKit by  doxygen 1.4.6
Modified on Wed Dec 09 08:20:18 2009 by modify_doxy.py rev. 173732