DPC++ Runtime
Runtime libraries for oneAPI Data Parallel C++
stream.hpp File Reference
Include dependency graph for stream.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  cl::sycl::detail::IsSwizzleOp< typename >
 
struct  cl::sycl::detail::IsSwizzleOp< cl::sycl::detail::SwizzleOp< VecT, OperationLeftT, OperationRightT, OperationCurrentT, Indexes... > >
 
class  cl::sycl::__precision_manipulator__
 
class  cl::sycl::__width_manipulator__
 
class  cl::sycl::stream
 A buffered output stream that allows outputting the values of built-in, vector and SYCL types to the console. More...
 
struct  std::hash< cl::sycl::stream >
 

Namespaces

 cl
 We provide new interfaces for matrix muliply in this patch:
 
 cl::sycl
 
 cl::sycl::detail
 
 std
 

Typedefs

using cl::sycl::detail::FmtFlags = unsigned int
 
template<class F , class T = void>
using cl::sycl::detail::EnableIfFP = typename detail::enable_if_t< std::is_same< F, float >::value||std::is_same< F, double >::value||std::is_same< F, half >::value, T >
 
using cl::sycl::detail::GlobalBufAccessorT = accessor< char, 1, cl::sycl::access::mode::read_write, cl::sycl::access::target::global_buffer, cl::sycl::access::placeholder::false_t >
 
using cl::sycl::detail::GlobalBufPtrType = typename detail::DecoratedType< char, GlobalBufAS >::type *
 
using cl::sycl::detail::GlobalOffsetAccessorT = accessor< unsigned, 1, cl::sycl::access::mode::atomic, cl::sycl::access::target::global_buffer, cl::sycl::access::placeholder::false_t >
 
using cl::sycl::detail::GlobalOffsetPtrType = typename detail::DecoratedType< unsigned, GlobalBufAS >::type *
 
template<typename T >
using cl::sycl::detail::EnableIfSwizzleVec = typename detail::enable_if_t< IsSwizzleOp< T >::value, typename IsSwizzleOp< T >::Type >
 

Enumerations

enum  cl::sycl::stream_manipulator {
  cl::sycl::stream_manipulator::dec = 0, cl::sycl::stream_manipulator::hex = 1, cl::sycl::stream_manipulator::oct = 2, cl::sycl::stream_manipulator::noshowbase = 3,
  cl::sycl::stream_manipulator::showbase = 4, cl::sycl::stream_manipulator::noshowpos = 5, cl::sycl::stream_manipulator::showpos = 6, cl::sycl::stream_manipulator::endl = 7,
  cl::sycl::stream_manipulator::flush = 8, cl::sycl::stream_manipulator::fixed = 9, cl::sycl::stream_manipulator::scientific = 10, cl::sycl::stream_manipulator::hexfloat = 11,
  cl::sycl::stream_manipulator::defaultfloat = 12
}
 

Functions

unsigned cl::sycl::detail::GetFlushBufOffset (const GlobalBufAccessorT &GlobalFlushBuf, unsigned WIOffset)
 
void cl::sycl::detail::SetFlushBufOffset (GlobalBufAccessorT &GlobalFlushBuf, unsigned WIOffset, unsigned Offset)
 
void cl::sycl::detail::write (GlobalBufAccessorT &GlobalFlushBuf, size_t FlushBufferSize, unsigned WIOffset, const char *Str, unsigned Len, unsigned Padding=0)
 
void cl::sycl::detail::reverseBuf (char *Buf, unsigned Len)
 
template<typename T >
std::make_unsigned< T >::type cl::sycl::detail::getAbsVal (const T Val, const int Base)
 
char cl::sycl::detail::digitToChar (const int Digit)
 
template<typename T >
detail::enable_if_t< std::is_integral< T >::value, unsigned > cl::sycl::detail::integralToBase (T Val, int Base, char *Digits)
 
template<typename T >
detail::enable_if_t< std::is_integral< T >::value, unsigned > cl::sycl::detail::ScalarToStr (const T &Val, char *Buf, unsigned Flags, int, int Precision=-1)
 
unsigned cl::sycl::detail::append (char *Dst, const char *Src)
 
template<typename T >
detail::enable_if_t< std::is_same< T, float >::value||std::is_same< T, double >::value, unsigned > cl::sycl::detail::checkForInfNan (char *Buf, T Val)
 
template<typename T >
detail::enable_if_t< std::is_same< T, half >::value, unsigned > cl::sycl::detail::checkForInfNan (char *Buf, T Val)
 
template<typename T >
EnableIfFP< T, unsigned > cl::sycl::detail::floatingPointToDecStr (T AbsVal, char *Digits, int Precision, bool IsSci)
 
template<typename T >
EnableIfFP< T, unsigned > cl::sycl::detail::ScalarToStr (const T &Val, char *Buf, unsigned Flags, int, int Precision=-1)
 
template<typename T >
detail::enable_if_t< std::is_integral< T >::value > cl::sycl::detail::writeIntegral (GlobalBufAccessorT &GlobalFlushBuf, size_t FlushBufferSize, unsigned WIOffset, unsigned Flags, int Width, const T &Val)
 
template<typename T >
EnableIfFP< Tcl::sycl::detail::writeFloatingPoint (GlobalBufAccessorT &GlobalFlushBuf, size_t FlushBufferSize, unsigned WIOffset, unsigned Flags, int Width, int Precision, const T &Val)
 
bool cl::sycl::detail::updateOffset (GlobalOffsetAccessorT &GlobalOffset, GlobalBufAccessorT &GlobalBuf, unsigned Size, unsigned &Cur)
 
void cl::sycl::detail::flushBuffer (GlobalOffsetAccessorT &GlobalOffset, GlobalBufAccessorT &GlobalBuf, GlobalBufAccessorT &GlobalFlushBuf, unsigned WIOffset)
 
template<typename T , int VecLength>
detail::enable_if_t<(VecLength==1), unsigned > cl::sycl::detail::VecToStr (const vec< T, VecLength > &Vec, char *VecStr, unsigned Flags, int Width, int Precision)
 
template<typename T , int VecLength>
detail::enable_if_t<(VecLength==2||VecLength==4||VecLength==8||VecLength==16), unsigned > cl::sycl::detail::VecToStr (const vec< T, VecLength > &Vec, char *VecStr, unsigned Flags, int Width, int Precision)
 
template<typename T , int VecLength>
detail::enable_if_t<(VecLength==3), unsigned > cl::sycl::detail::VecToStr (const vec< T, VecLength > &Vec, char *VecStr, unsigned Flags, int Width, int Precision)
 
template<typename T , int VecLength>
void cl::sycl::detail::writeVec (GlobalBufAccessorT &GlobalFlushBuf, size_t FlushBufferSize, unsigned WIOffset, unsigned Flags, int Width, int Precision, const vec< T, VecLength > &Vec)
 
template<int ArrayLength>
unsigned cl::sycl::detail::ArrayToStr (char *Buf, const array< ArrayLength > &Arr)
 
template<int ArrayLength>
void cl::sycl::detail::writeArray (GlobalBufAccessorT &GlobalFlushBuf, size_t FlushBufferSize, unsigned WIOffset, const array< ArrayLength > &Arr)
 
template<int Dimensions>
void cl::sycl::detail::writeItem (GlobalBufAccessorT &GlobalFlushBuf, size_t FlushBufferSize, unsigned WIOffset, const item< Dimensions > &Item)
 
template<int Dimensions>
void cl::sycl::detail::writeNDRange (GlobalBufAccessorT &GlobalFlushBuf, size_t FlushBufferSize, unsigned WIOffset, const nd_range< Dimensions > &ND_Range)
 
template<int Dimensions>
void cl::sycl::detail::writeNDItem (GlobalBufAccessorT &GlobalFlushBuf, size_t FlushBufferSize, unsigned WIOffset, const nd_item< Dimensions > &ND_Item)
 
template<int Dimensions>
void cl::sycl::detail::writeGroup (GlobalBufAccessorT &GlobalFlushBuf, size_t FlushBufferSize, unsigned WIOffset, const group< Dimensions > &Group)
 
template<int Dimensions>
unsigned cl::sycl::detail::ItemToStr (char *Buf, const item< Dimensions, false > &Item)
 
template<int Dimensions>
void cl::sycl::detail::writeHItem (GlobalBufAccessorT &GlobalFlushBuf, size_t FlushBufferSize, unsigned WIOffset, const h_item< Dimensions > &HItem)
 
__precision_manipulator__ cl::sycl::setprecision (int Precision)
 
__width_manipulator__ cl::sycl::setw (int Width)
 
const stream & cl::sycl::operator<< (const stream &Out, const char C)
 
const stream & cl::sycl::operator<< (const stream &Out, const char *Str)
 
const stream & cl::sycl::operator<< (const stream &Out, const bool &RHS)
 
template<typename ValueType >
detail::enable_if_t< std::is_integral< ValueType >::value, const stream & > cl::sycl::operator<< (const stream &Out, const ValueType &RHS)
 
const stream & cl::sycl::operator<< (const stream &Out, const float &RHS)
 
const stream & cl::sycl::operator<< (const stream &Out, const double &RHS)
 
const stream & cl::sycl::operator<< (const stream &Out, const half &RHS)
 
template<typename ElementType , access::address_space Space>
const stream & cl::sycl::operator<< (const stream &Out, const multi_ptr< ElementType, Space > &RHS)
 
template<typename T >
const stream & cl::sycl::operator<< (const stream &Out, const T *RHS)
 
const stream & cl::sycl::operator<< (const stream &Out, const __precision_manipulator__ &RHS)
 
const stream & cl::sycl::operator<< (const stream &Out, const __width_manipulator__ &RHS)
 
const stream & cl::sycl::operator<< (const stream &Out, const stream_manipulator RHS)
 
template<typename T , int VectorLength>
const stream & cl::sycl::operator<< (const stream &Out, const vec< T, VectorLength > &RHS)
 
template<int Dimensions>
const stream & cl::sycl::operator<< (const stream &Out, const id< Dimensions > &RHS)
 
template<int Dimensions>
const stream & cl::sycl::operator<< (const stream &Out, const range< Dimensions > &RHS)
 
template<int Dimensions>
const stream & cl::sycl::operator<< (const stream &Out, const item< Dimensions > &RHS)
 
template<int Dimensions>
const stream & cl::sycl::operator<< (const stream &Out, const nd_range< Dimensions > &RHS)
 
template<int Dimensions>
const stream & cl::sycl::operator<< (const stream &Out, const nd_item< Dimensions > &RHS)
 
template<int Dimensions>
const stream & cl::sycl::operator<< (const stream &Out, const group< Dimensions > &RHS)
 
template<int Dimensions>
const stream & cl::sycl::operator<< (const stream &Out, const h_item< Dimensions > &RHS)
 
template<typename T , typename RT = detail::EnableIfSwizzleVec<T>>
const stream & cl::sycl::operator<< (const stream &Out, const T &RHS)
 

Variables

static constexpr FmtFlags cl::sycl::detail::Dec = 0x0001
 
static constexpr FmtFlags cl::sycl::detail::Hex = 0x0002
 
static constexpr FmtFlags cl::sycl::detail::Oct = 0x0004
 
static constexpr FmtFlags cl::sycl::detail::ShowBase = 0x0008
 
static constexpr FmtFlags cl::sycl::detail::ShowPos = 0x0010
 
static constexpr FmtFlags cl::sycl::detail::Fixed = 0x0020
 
static constexpr FmtFlags cl::sycl::detail::Scientific = 0x0040
 
static constexpr FmtFlags cl::sycl::detail::BaseField = Dec | Hex | Oct
 
static constexpr FmtFlags cl::sycl::detail::FloatField = Scientific | Fixed
 
constexpr size_t cl::sycl::detail::MAX_FLOATING_POINT_DIGITS = 24
 
constexpr size_t cl::sycl::detail::MAX_INTEGRAL_DIGITS = 23
 
constexpr const charcl::sycl::detail::VEC_ELEMENT_DELIMITER = ", "
 
constexpr char cl::sycl::detail::VEC_OPEN_BRACE = '{'
 
constexpr char cl::sycl::detail::VEC_CLOSE_BRACE = '}'
 
constexpr size_t cl::sycl::detail::MAX_DIMENSIONS = 3
 
constexpr size_t cl::sycl::detail::MAX_ARRAY_SIZE
 
constexpr unsigned cl::sycl::detail::FLUSH_BUF_OFFSET_SIZE = 2
 
constexpr static access::address_space cl::sycl::detail::GlobalBufAS
 
constexpr static int cl::sycl::detail::GlobalBufDim = 1
 
constexpr static access::address_space cl::sycl::detail::GlobalOffsetAS
 
constexpr static int cl::sycl::detail::GlobalOffsetDim = 1
 
constexpr size_t cl::sycl::detail::MAX_ITEM_SIZE = 2 * MAX_ARRAY_SIZE + 20
 
constexpr stream_manipulator cl::sycl::dec = stream_manipulator::dec
 
constexpr stream_manipulator cl::sycl::hex = stream_manipulator::hex
 
constexpr stream_manipulator cl::sycl::oct = stream_manipulator::oct
 
constexpr stream_manipulator cl::sycl::noshowbase = stream_manipulator::noshowbase
 
constexpr stream_manipulator cl::sycl::showbase = stream_manipulator::showbase
 
constexpr stream_manipulator cl::sycl::noshowpos = stream_manipulator::noshowpos
 
constexpr stream_manipulator cl::sycl::showpos = stream_manipulator::showpos
 
constexpr stream_manipulator cl::sycl::endl = stream_manipulator::endl
 
constexpr stream_manipulator cl::sycl::flush = stream_manipulator::flush
 
constexpr stream_manipulator cl::sycl::fixed = stream_manipulator::fixed
 
constexpr stream_manipulator cl::sycl::scientific = stream_manipulator::scientific
 
constexpr stream_manipulator cl::sycl::hexfloat = stream_manipulator::hexfloat
 
constexpr stream_manipulator cl::sycl::defaultfloat = stream_manipulator::defaultfloat