<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=edge"><![endif]-->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="generator" content="Asciidoctor 1.5.5">
<meta name="author" content="Khronos OpenCL Working Group">
<title>The OpenCL&#8482; C++ 1.0 Specification</title>
<style>
/*! normalize.css v2.1.2 | MIT License | git.io/normalize */
/* ========================================================================== HTML5 display definitions ========================================================================== */
/** Correct `block` display not defined in IE 8/9. */
article, aside, details, figcaption, figure, footer, header, hgroup, main, nav, section, summary { display: block; }

/** Correct `inline-block` display not defined in IE 8/9. */
audio, canvas, video { display: inline-block; }

/** Prevent modern browsers from displaying `audio` without controls. Remove excess height in iOS 5 devices. */
audio:not([controls]) { display: none; height: 0; }

/** Address `[hidden]` styling not present in IE 8/9. Hide the `template` element in IE, Safari, and Firefox < 22. */
[hidden], template { display: none; }

script { display: none !important; }

/* ========================================================================== Base ========================================================================== */
/** 1. Set default font family to sans-serif. 2. Prevent iOS text size adjust after orientation change, without disabling user zoom. */
html { font-family: sans-serif; /* 1 */ -ms-text-size-adjust: 100%; /* 2 */ -webkit-text-size-adjust: 100%; /* 2 */ }

/** Remove default margin. */
body { margin: 0; }

/* ========================================================================== Links ========================================================================== */
/** Remove the gray background color from active links in IE 10. */
a { background: transparent; }

/** Address `outline` inconsistency between Chrome and other browsers. */
a:focus { outline: thin dotted; }

/** Improve readability when focused and also mouse hovered in all browsers. */
a:active, a:hover { outline: 0; }

/* ========================================================================== Typography ========================================================================== */
/** Address variable `h1` font-size and margin within `section` and `article` contexts in Firefox 4+, Safari 5, and Chrome. */
h1 { font-size: 2em; margin: 0.67em 0; }

/** Address styling not present in IE 8/9, Safari 5, and Chrome. */
abbr[title] { border-bottom: 1px dotted; }

/** Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome. */
b, strong { font-weight: bold; }

/** Address styling not present in Safari 5 and Chrome. */
dfn { font-style: italic; }

/** Address differences between Firefox and other browsers. */
hr { -moz-box-sizing: content-box; box-sizing: content-box; height: 0; }

/** Address styling not present in IE 8/9. */
mark { background: #ff0; color: #000; }

/** Correct font family set oddly in Safari 5 and Chrome. */
code, kbd, pre, samp { font-family: monospace, serif; font-size: 1em; }

/** Improve readability of pre-formatted text in all browsers. */
pre { white-space: pre-wrap; }

/** Set consistent quote types. */
q { quotes: "\201C" "\201D" "\2018" "\2019"; }

/** Address inconsistent and variable font size in all browsers. */
small { font-size: 80%; }

/** Prevent `sub` and `sup` affecting `line-height` in all browsers. */
sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; }

sup { top: -0.5em; }

sub { bottom: -0.25em; }

/* ========================================================================== Embedded content ========================================================================== */
/** Remove border when inside `a` element in IE 8/9. */
img { border: 0; }

/** Correct overflow displayed oddly in IE 9. */
svg:not(:root) { overflow: hidden; }

/* ========================================================================== Figures ========================================================================== */
/** Address margin not present in IE 8/9 and Safari 5. */
figure { margin: 0; }

/* ========================================================================== Forms ========================================================================== */
/** Define consistent border, margin, and padding. */
fieldset { border: 1px solid #c0c0c0; margin: 0 2px; padding: 0.35em 0.625em 0.75em; }

/** 1. Correct `color` not being inherited in IE 8/9. 2. Remove padding so people aren't caught out if they zero out fieldsets. */
legend { border: 0; /* 1 */ padding: 0; /* 2 */ }

/** 1. Correct font family not being inherited in all browsers. 2. Correct font size not being inherited in all browsers. 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome. */
button, input, select, textarea { font-family: inherit; /* 1 */ font-size: 100%; /* 2 */ margin: 0; /* 3 */ }

/** Address Firefox 4+ setting `line-height` on `input` using `!important` in the UA stylesheet. */
button, input { line-height: normal; }

/** Address inconsistent `text-transform` inheritance for `button` and `select`. All other form control elements do not inherit `text-transform` values. Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+. Correct `select` style inheritance in Firefox 4+ and Opera. */
button, select { text-transform: none; }

/** 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` and `video` controls. 2. Correct inability to style clickable `input` types in iOS. 3. Improve usability and consistency of cursor style between image-type `input` and others. */
button, html input[type="button"], input[type="reset"], input[type="submit"] { -webkit-appearance: button; /* 2 */ cursor: pointer; /* 3 */ }

/** Re-set default cursor for disabled elements. */
button[disabled], html input[disabled] { cursor: default; }

/** 1. Address box sizing set to `content-box` in IE 8/9. 2. Remove excess padding in IE 8/9. */
input[type="checkbox"], input[type="radio"] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ }

/** 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome. 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome (include `-moz` to future-proof). */
input[type="search"] { -webkit-appearance: textfield; /* 1 */ -moz-box-sizing: content-box; -webkit-box-sizing: content-box; /* 2 */ box-sizing: content-box; }

/** Remove inner padding and search cancel button in Safari 5 and Chrome on OS X. */
input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; }

/** Remove inner padding and border in Firefox 4+. */
button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; }

/** 1. Remove default vertical scrollbar in IE 8/9. 2. Improve readability and alignment in all browsers. */
textarea { overflow: auto; /* 1 */ vertical-align: top; /* 2 */ }

/* ========================================================================== Tables ========================================================================== */
/** Remove most spacing between table cells. */
table { border-collapse: collapse; border-spacing: 0; }

meta.foundation-mq-small { font-family: "only screen and (min-width: 768px)"; width: 768px; }

meta.foundation-mq-medium { font-family: "only screen and (min-width:1280px)"; width: 1280px; }

meta.foundation-mq-large { font-family: "only screen and (min-width:1440px)"; width: 1440px; }

*, *:before, *:after { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; }

html, body { font-size: 100%; }

body { background: white; color: #222222; padding: 0; margin: 0; font-family: "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif; font-weight: normal; font-style: normal; line-height: 1; position: relative; cursor: auto; }

a:hover { cursor: pointer; }

img, object, embed { max-width: 100%; height: auto; }

object, embed { height: 100%; }

img { -ms-interpolation-mode: bicubic; }

#map_canvas img, #map_canvas embed, #map_canvas object, .map_canvas img, .map_canvas embed, .map_canvas object { max-width: none !important; }

.left { float: left !important; }

.right { float: right !important; }

.text-left { text-align: left !important; }

.text-right { text-align: right !important; }

.text-center { text-align: center !important; }

.text-justify { text-align: justify !important; }

.hide { display: none; }

.antialiased { -webkit-font-smoothing: antialiased; }

img { display: inline-block; vertical-align: middle; }

textarea { height: auto; min-height: 50px; }

select { width: 100%; }

object, svg { display: inline-block; vertical-align: middle; }

.center { margin-left: auto; margin-right: auto; }

.spread { width: 100%; }

p.lead, .paragraph.lead > p, #preamble > .sectionbody > .paragraph:first-of-type p { font-size: 1.21875em; line-height: 1.6; }

.subheader, .admonitionblock td.content > .title, .audioblock > .title, .exampleblock > .title, .imageblock > .title, .listingblock > .title, .literalblock > .title, .stemblock > .title, .openblock > .title, .paragraph > .title, .quoteblock > .title, table.tableblock > .title, .verseblock > .title, .videoblock > .title, .dlist > .title, .olist > .title, .ulist > .title, .qlist > .title, .hdlist > .title { line-height: 1.4; color: black; font-weight: 300; margin-top: 0.2em; margin-bottom: 0.5em; }

/* Typography resets */
div, dl, dt, dd, ul, ol, li, h1, h2, h3, #toctitle, .sidebarblock > .content > .title, h4, h5, h6, pre, form, p, blockquote, th, td { margin: 0; padding: 0; direction: ltr; }

/* Default Link Styles */
a { color: #0068b0; text-decoration: none; line-height: inherit; }
a:hover, a:focus { color: #333333; }
a img { border: none; }

/* Default paragraph styles */
p { font-family: Noto, sans-serif; font-weight: normal; font-size: 1em; line-height: 1.6; margin-bottom: 0.75em; text-rendering: optimizeLegibility; }
p aside { font-size: 0.875em; line-height: 1.35; font-style: italic; }

/* Default header styles */
h1, h2, h3, #toctitle, .sidebarblock > .content > .title, h4, h5, h6 { font-family: Noto, sans-serif; font-weight: normal; font-style: normal; color: black; text-rendering: optimizeLegibility; margin-top: 0.5em; margin-bottom: 0.5em; line-height: 1.2125em; }
h1 small, h2 small, h3 small, #toctitle small, .sidebarblock > .content > .title small, h4 small, h5 small, h6 small { font-size: 60%; color: #4d4d4d; line-height: 0; }

h1 { font-size: 2.125em; }

h2 { font-size: 1.6875em; }

h3, #toctitle, .sidebarblock > .content > .title { font-size: 1.375em; }

h4 { font-size: 1.125em; }

h5 { font-size: 1.125em; }

h6 { font-size: 1em; }

hr { border: solid #dddddd; border-width: 1px 0 0; clear: both; margin: 1.25em 0 1.1875em; height: 0; }

/* Helpful Typography Defaults */
em, i { font-style: italic; line-height: inherit; }

strong, b { font-weight: bold; line-height: inherit; }

small { font-size: 60%; line-height: inherit; }

code { font-family: Consolas, "Liberation Mono", Courier, monospace; font-weight: normal; color: #264357; }

/* Lists */
ul, ol, dl { font-size: 1em; line-height: 1.6; margin-bottom: 0.75em; list-style-position: outside; font-family: Noto, sans-serif; }

ul, ol { margin-left: 1.5em; }
ul.no-bullet, ol.no-bullet { margin-left: 1.5em; }

/* Unordered Lists */
ul li ul, ul li ol { margin-left: 1.25em; margin-bottom: 0; font-size: 1em; /* Override nested font-size change */ }
ul.square li ul, ul.circle li ul, ul.disc li ul { list-style: inherit; }
ul.square { list-style-type: square; }
ul.circle { list-style-type: circle; }
ul.disc { list-style-type: disc; }
ul.no-bullet { list-style: none; }

/* Ordered Lists */
ol li ul, ol li ol { margin-left: 1.25em; margin-bottom: 0; }

/* Definition Lists */
dl dt { margin-bottom: 0.3em; font-weight: bold; }
dl dd { margin-bottom: 0.75em; }

/* Abbreviations */
abbr, acronym { text-transform: uppercase; font-size: 90%; color: black; border-bottom: 1px dotted #dddddd; cursor: help; }

abbr { text-transform: none; }

/* Blockquotes */
blockquote { margin: 0 0 0.75em; padding: 0.5625em 1.25em 0 1.1875em; border-left: 1px solid #dddddd; }
blockquote cite { display: block; font-size: 0.8125em; color: #5e93b8; }
blockquote cite:before { content: "\2014 \0020"; }
blockquote cite a, blockquote cite a:visited { color: #5e93b8; }

blockquote, blockquote p { line-height: 1.6; color: #333333; }

/* Microformats */
.vcard { display: inline-block; margin: 0 0 1.25em 0; border: 1px solid #dddddd; padding: 0.625em 0.75em; }
.vcard li { margin: 0; display: block; }
.vcard .fn { font-weight: bold; font-size: 0.9375em; }

.vevent .summary { font-weight: bold; }
.vevent abbr { cursor: auto; text-decoration: none; font-weight: bold; border: none; padding: 0 0.0625em; }

@media only screen and (min-width: 768px) { h1, h2, h3, #toctitle, .sidebarblock > .content > .title, h4, h5, h6 { line-height: 1.4; }
  h1 { font-size: 2.75em; }
  h2 { font-size: 2.3125em; }
  h3, #toctitle, .sidebarblock > .content > .title { font-size: 1.6875em; }
  h4 { font-size: 1.4375em; } }
/* Tables */
table { background: white; margin-bottom: 1.25em; border: solid 1px #d8d8ce; }
table thead, table tfoot { background: -webkit-linear-gradient(top, #add386, #90b66a); font-weight: bold; }
table thead tr th, table thead tr td, table tfoot tr th, table tfoot tr td { padding: 0.5em 0.625em 0.625em; font-size: inherit; color: white; text-align: left; }
table tr th, table tr td { padding: 0.5625em 0.625em; font-size: inherit; color: #6d6e71; }
table tr.even, table tr.alt, table tr:nth-of-type(even) { background: #edf2f2; }
table thead tr th, table tfoot tr th, table tbody tr td, table tr td, table tfoot tr td { display: table-cell; line-height: 1.4; }

body { -moz-osx-font-smoothing: grayscale; -webkit-font-smoothing: antialiased; tab-size: 4; }

h1, h2, h3, #toctitle, .sidebarblock > .content > .title, h4, h5, h6 { line-height: 1.4; }

a:hover, a:focus { text-decoration: underline; }

.clearfix:before, .clearfix:after, .float-group:before, .float-group:after { content: " "; display: table; }
.clearfix:after, .float-group:after { clear: both; }

*:not(pre) > code { font-size: inherit; font-style: normal !important; letter-spacing: 0; padding: 0; background-color: white; -webkit-border-radius: 0; border-radius: 0; line-height: inherit; word-wrap: break-word; }
*:not(pre) > code.nobreak { word-wrap: normal; }
*:not(pre) > code.nowrap { white-space: nowrap; }

pre, pre > code { line-height: 1.6; color: #264357; font-family: Consolas, "Liberation Mono", Courier, monospace; font-weight: normal; }

em em { font-style: normal; }

strong strong { font-weight: normal; }

.keyseq { color: #333333; }

kbd { font-family: Consolas, "Liberation Mono", Courier, monospace; display: inline-block; color: black; font-size: 0.65em; line-height: 1.45; background-color: #f7f7f7; border: 1px solid #ccc; -webkit-border-radius: 3px; border-radius: 3px; -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), 0 0 0 0.1em white inset; box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), 0 0 0 0.1em white inset; margin: 0 0.15em; padding: 0.2em 0.5em; vertical-align: middle; position: relative; top: -0.1em; white-space: nowrap; }

.keyseq kbd:first-child { margin-left: 0; }

.keyseq kbd:last-child { margin-right: 0; }

.menuseq, .menuref { color: #000; }

.menuseq b:not(.caret), .menuref { font-weight: inherit; }

.menuseq { word-spacing: -0.02em; }
.menuseq b.caret { font-size: 1.25em; line-height: 0.8; }
.menuseq i.caret { font-weight: bold; text-align: center; width: 0.45em; }

b.button:before, b.button:after { position: relative; top: -1px; font-weight: normal; }

b.button:before { content: "["; padding: 0 3px 0 2px; }

b.button:after { content: "]"; padding: 0 2px 0 3px; }

#header, #content, #footnotes, #footer { width: 100%; margin-left: auto; margin-right: auto; margin-top: 0; margin-bottom: 0; max-width: 62.5em; *zoom: 1; position: relative; padding-left: 1.5em; padding-right: 1.5em; }
#header:before, #header:after, #content:before, #content:after, #footnotes:before, #footnotes:after, #footer:before, #footer:after { content: " "; display: table; }
#header:after, #content:after, #footnotes:after, #footer:after { clear: both; }

#content { margin-top: 1.25em; }

#content:before { content: none; }

#header > h1:first-child { color: black; margin-top: 2.25rem; margin-bottom: 0; }
#header > h1:first-child + #toc { margin-top: 8px; border-top: 1px solid #dddddd; }
#header > h1:only-child, body.toc2 #header > h1:nth-last-child(2) { border-bottom: 1px solid #dddddd; padding-bottom: 8px; }
#header .details { border-bottom: 1px solid #dddddd; line-height: 1.45; padding-top: 0.25em; padding-bottom: 0.25em; padding-left: 0.25em; color: #5e93b8; display: -ms-flexbox; display: -webkit-flex; display: flex; -ms-flex-flow: row wrap; -webkit-flex-flow: row wrap; flex-flow: row wrap; }
#header .details span:first-child { margin-left: -0.125em; }
#header .details span.email a { color: #333333; }
#header .details br { display: none; }
#header .details br + span:before { content: "\00a0\2013\00a0"; }
#header .details br + span.author:before { content: "\00a0\22c5\00a0"; color: #333333; }
#header .details br + span#revremark:before { content: "\00a0|\00a0"; }
#header #revnumber { text-transform: capitalize; }
#header #revnumber:after { content: "\00a0"; }

#content > h1:first-child:not([class]) { color: black; border-bottom: 1px solid #dddddd; padding-bottom: 8px; margin-top: 0; padding-top: 1rem; margin-bottom: 1.25rem; }

#toc { border-bottom: 0 solid #dddddd; padding-bottom: 0.5em; }
#toc > ul { margin-left: 0.125em; }
#toc ul.sectlevel0 > li > a { font-style: italic; }
#toc ul.sectlevel0 ul.sectlevel1 { margin: 0.5em 0; }
#toc ul { font-family: Noto, sans-serif; list-style-type: none; }
#toc li { line-height: 1.3334; margin-top: 0.3334em; }
#toc a { text-decoration: none; }
#toc a:active { text-decoration: underline; }

#toctitle { color: black; font-size: 1.2em; }

@media only screen and (min-width: 768px) { #toctitle { font-size: 1.375em; }
  body.toc2 { padding-left: 15em; padding-right: 0; }
  #toc.toc2 { margin-top: 0 !important; background-color: white; position: fixed; width: 15em; left: 0; top: 0; border-right: 1px solid #dddddd; border-top-width: 0 !important; border-bottom-width: 0 !important; z-index: 1000; padding: 1.25em 1em; height: 100%; overflow: auto; }
  #toc.toc2 #toctitle { margin-top: 0; margin-bottom: 0.8rem; font-size: 1.2em; }
  #toc.toc2 > ul { font-size: 0.9em; margin-bottom: 0; }
  #toc.toc2 ul ul { margin-left: 0; padding-left: 1em; }
  #toc.toc2 ul.sectlevel0 ul.sectlevel1 { padding-left: 0; margin-top: 0.5em; margin-bottom: 0.5em; }
  body.toc2.toc-right { padding-left: 0; padding-right: 15em; }
  body.toc2.toc-right #toc.toc2 { border-right-width: 0; border-left: 1px solid #dddddd; left: auto; right: 0; } }
@media only screen and (min-width: 1280px) { body.toc2 { padding-left: 20em; padding-right: 0; }
  #toc.toc2 { width: 20em; }
  #toc.toc2 #toctitle { font-size: 1.375em; }
  #toc.toc2 > ul { font-size: 0.95em; }
  #toc.toc2 ul ul { padding-left: 1.25em; }
  body.toc2.toc-right { padding-left: 0; padding-right: 20em; } }
#content #toc { border-style: solid; border-width: 1px; border-color: #e6e6e6; margin-bottom: 1.25em; padding: 1.25em; background: white; -webkit-border-radius: 0; border-radius: 0; }
#content #toc > :first-child { margin-top: 0; }
#content #toc > :last-child { margin-bottom: 0; }

#footer { max-width: 100%; background-color: none; padding: 1.25em; }

#footer-text { color: black; line-height: 1.44; }

#content { margin-bottom: 0.625em; }

.sect1 { padding-bottom: 0.625em; }

@media only screen and (min-width: 768px) { #content { margin-bottom: 1.25em; }
  .sect1 { padding-bottom: 1.25em; } }
.sect1:last-child { padding-bottom: 0; }

.sect1 + .sect1 { border-top: 0 solid #dddddd; }

#content h1 > a.anchor, h2 > a.anchor, h3 > a.anchor, #toctitle > a.anchor, .sidebarblock > .content > .title > a.anchor, h4 > a.anchor, h5 > a.anchor, h6 > a.anchor { position: absolute; z-index: 1001; width: 1.5ex; margin-left: -1.5ex; display: block; text-decoration: none !important; visibility: hidden; text-align: center; font-weight: normal; }
#content h1 > a.anchor:before, h2 > a.anchor:before, h3 > a.anchor:before, #toctitle > a.anchor:before, .sidebarblock > .content > .title > a.anchor:before, h4 > a.anchor:before, h5 > a.anchor:before, h6 > a.anchor:before { content: "\00A7"; font-size: 0.85em; display: block; padding-top: 0.1em; }
#content h1:hover > a.anchor, #content h1 > a.anchor:hover, h2:hover > a.anchor, h2 > a.anchor:hover, h3:hover > a.anchor, #toctitle:hover > a.anchor, .sidebarblock > .content > .title:hover > a.anchor, h3 > a.anchor:hover, #toctitle > a.anchor:hover, .sidebarblock > .content > .title > a.anchor:hover, h4:hover > a.anchor, h4 > a.anchor:hover, h5:hover > a.anchor, h5 > a.anchor:hover, h6:hover > a.anchor, h6 > a.anchor:hover { visibility: visible; }
#content h1 > a.link, h2 > a.link, h3 > a.link, #toctitle > a.link, .sidebarblock > .content > .title > a.link, h4 > a.link, h5 > a.link, h6 > a.link { color: black; text-decoration: none; }
#content h1 > a.link:hover, h2 > a.link:hover, h3 > a.link:hover, #toctitle > a.link:hover, .sidebarblock > .content > .title > a.link:hover, h4 > a.link:hover, h5 > a.link:hover, h6 > a.link:hover { color: black; }

.audioblock, .imageblock, .literalblock, .listingblock, .stemblock, .videoblock { margin-bottom: 1.25em; }

.admonitionblock td.content > .title, .audioblock > .title, .exampleblock > .title, .imageblock > .title, .listingblock > .title, .literalblock > .title, .stemblock > .title, .openblock > .title, .paragraph > .title, .quoteblock > .title, table.tableblock > .title, .verseblock > .title, .videoblock > .title, .dlist > .title, .olist > .title, .ulist > .title, .qlist > .title, .hdlist > .title { text-rendering: optimizeLegibility; text-align: left; }

table.tableblock > caption.title { white-space: nowrap; overflow: visible; max-width: 0; }

.paragraph.lead > p, #preamble > .sectionbody > .paragraph:first-of-type p { color: black; }

table.tableblock #preamble > .sectionbody > .paragraph:first-of-type p { font-size: inherit; }

.admonitionblock > table { border-collapse: separate; border: 0; background: none; width: 100%; }
.admonitionblock > table td.icon { text-align: center; width: 80px; }
.admonitionblock > table td.icon img { max-width: initial; }
.admonitionblock > table td.icon .title { font-weight: bold; font-family: Noto, sans-serif; text-transform: uppercase; }
.admonitionblock > table td.content { padding-left: 1.125em; padding-right: 1.25em; border-left: 1px solid #dddddd; color: #5e93b8; }
.admonitionblock > table td.content > :last-child > :last-child { margin-bottom: 0; }

.exampleblock > .content { border-style: solid; border-width: 1px; border-color: #e6e6e6; margin-bottom: 1.25em; padding: 1.25em; background: white; -webkit-border-radius: 0; border-radius: 0; }
.exampleblock > .content > :first-child { margin-top: 0; }
.exampleblock > .content > :last-child { margin-bottom: 0; }

.sidebarblock { border-style: solid; border-width: 1px; border-color: #e6e6e6; margin-bottom: 1.25em; padding: 1.25em; background: white; -webkit-border-radius: 0; border-radius: 0; }
.sidebarblock > :first-child { margin-top: 0; }
.sidebarblock > :last-child { margin-bottom: 0; }
.sidebarblock > .content > .title { color: black; margin-top: 0; }

.exampleblock > .content > :last-child > :last-child, .exampleblock > .content .olist > ol > li:last-child > :last-child, .exampleblock > .content .ulist > ul > li:last-child > :last-child, .exampleblock > .content .qlist > ol > li:last-child > :last-child, .sidebarblock > .content > :last-child > :last-child, .sidebarblock > .content .olist > ol > li:last-child > :last-child, .sidebarblock > .content .ulist > ul > li:last-child > :last-child, .sidebarblock > .content .qlist > ol > li:last-child > :last-child { margin-bottom: 0; }

.literalblock pre, .listingblock pre:not(.highlight), .listingblock pre[class="highlight"], .listingblock pre[class^="highlight "], .listingblock pre.CodeRay, .listingblock pre.prettyprint { background: #eeeeee; }
.sidebarblock .literalblock pre, .sidebarblock .listingblock pre:not(.highlight), .sidebarblock .listingblock pre[class="highlight"], .sidebarblock .listingblock pre[class^="highlight "], .sidebarblock .listingblock pre.CodeRay, .sidebarblock .listingblock pre.prettyprint { background: #f2f1f1; }

.literalblock pre, .literalblock pre[class], .listingblock pre, .listingblock pre[class] { border: 1px hidden #666666; -webkit-border-radius: 0; border-radius: 0; word-wrap: break-word; padding: 1.25em 1.5625em 1.125em 1.5625em; font-size: 0.8125em; }
.literalblock pre.nowrap, .literalblock pre[class].nowrap, .listingblock pre.nowrap, .listingblock pre[class].nowrap { overflow-x: auto; white-space: pre; word-wrap: normal; }
@media only screen and (min-width: 768px) { .literalblock pre, .literalblock pre[class], .listingblock pre, .listingblock pre[class] { font-size: 0.90625em; } }
@media only screen and (min-width: 1280px) { .literalblock pre, .literalblock pre[class], .listingblock pre, .listingblock pre[class] { font-size: 1em; } }

.literalblock.output pre { color: #eeeeee; background-color: #264357; }

.listingblock pre.highlightjs { padding: 0; }
.listingblock pre.highlightjs > code { padding: 1.25em 1.5625em 1.125em 1.5625em; -webkit-border-radius: 0; border-radius: 0; }

.listingblock > .content { position: relative; }

.listingblock code[data-lang]:before { display: none; content: attr(data-lang); position: absolute; font-size: 0.75em; top: 0.425rem; right: 0.5rem; line-height: 1; text-transform: uppercase; color: #999; }

.listingblock:hover code[data-lang]:before { display: block; }

.listingblock.terminal pre .command:before { content: attr(data-prompt); padding-right: 0.5em; color: #999; }

.listingblock.terminal pre .command:not([data-prompt]):before { content: "$"; }

table.pyhltable { border-collapse: separate; border: 0; margin-bottom: 0; background: none; }

table.pyhltable td { vertical-align: top; padding-top: 0; padding-bottom: 0; line-height: 1.6; }

table.pyhltable td.code { padding-left: .75em; padding-right: 0; }

pre.pygments .lineno, table.pyhltable td:not(.code) { color: #999; padding-left: 0; padding-right: .5em; border-right: 1px solid #dddddd; }

pre.pygments .lineno { display: inline-block; margin-right: .25em; }

table.pyhltable .linenodiv { background: none !important; padding-right: 0 !important; }

.quoteblock { margin: 0 1em 0.75em 1.5em; display: table; }
.quoteblock > .title { margin-left: -1.5em; margin-bottom: 0.75em; }
.quoteblock blockquote, .quoteblock blockquote p { color: #333333; font-size: 1.15rem; line-height: 1.75; word-spacing: 0.1em; letter-spacing: 0; font-style: italic; text-align: justify; }
.quoteblock blockquote { margin: 0; padding: 0; border: 0; }
.quoteblock blockquote:before { content: "\201c"; float: left; font-size: 2.75em; font-weight: bold; line-height: 0.6em; margin-left: -0.6em; color: black; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); }
.quoteblock blockquote > .paragraph:last-child p { margin-bottom: 0; }
.quoteblock .attribution { margin-top: 0.5em; margin-right: 0.5ex; text-align: right; }
.quoteblock .quoteblock { margin-left: 0; margin-right: 0; padding: 0.5em 0; border-left: 3px solid #5e93b8; }
.quoteblock .quoteblock blockquote { padding: 0 0 0 0.75em; }
.quoteblock .quoteblock blockquote:before { display: none; }

.verseblock { margin: 0 1em 0.75em 1em; }
.verseblock pre { font-family: "Open Sans", "DejaVu Sans", sans; font-size: 1.15rem; color: #333333; font-weight: 300; text-rendering: optimizeLegibility; }
.verseblock pre strong { font-weight: 400; }
.verseblock .attribution { margin-top: 1.25rem; margin-left: 0.5ex; }

.quoteblock .attribution, .verseblock .attribution { font-size: 0.8125em; line-height: 1.45; font-style: italic; }
.quoteblock .attribution br, .verseblock .attribution br { display: none; }
.quoteblock .attribution cite, .verseblock .attribution cite { display: block; letter-spacing: -0.025em; color: #5e93b8; }

.quoteblock.abstract { margin: 0 0 0.75em 0; display: block; }
.quoteblock.abstract blockquote, .quoteblock.abstract blockquote p { text-align: left; word-spacing: 0; }
.quoteblock.abstract blockquote:before, .quoteblock.abstract blockquote p:first-of-type:before { display: none; }

table.tableblock { max-width: 100%; border-collapse: separate; }
table.tableblock td > .paragraph:last-child p > p:last-child, table.tableblock th > p:last-child, table.tableblock td > p:last-child { margin-bottom: 0; }

table.tableblock, th.tableblock, td.tableblock { border: 0 solid #d8d8ce; }

table.grid-all > thead > tr > .tableblock, table.grid-all > tbody > tr > .tableblock { border-width: 0 1px 1px 0; }

table.grid-all > tfoot > tr > .tableblock { border-width: 1px 1px 0 0; }

table.grid-cols > * > tr > .tableblock { border-width: 0 1px 0 0; }

table.grid-rows > thead > tr > .tableblock, table.grid-rows > tbody > tr > .tableblock { border-width: 0 0 1px 0; }

table.grid-rows > tfoot > tr > .tableblock { border-width: 1px 0 0 0; }

table.grid-all > * > tr > .tableblock:last-child, table.grid-cols > * > tr > .tableblock:last-child { border-right-width: 0; }

table.grid-all > tbody > tr:last-child > .tableblock, table.grid-all > thead:last-child > tr > .tableblock, table.grid-rows > tbody > tr:last-child > .tableblock, table.grid-rows > thead:last-child > tr > .tableblock { border-bottom-width: 0; }

table.frame-all { border-width: 1px; }

table.frame-sides { border-width: 0 1px; }

table.frame-topbot { border-width: 1px 0; }

th.halign-left, td.halign-left { text-align: left; }

th.halign-right, td.halign-right { text-align: right; }

th.halign-center, td.halign-center { text-align: center; }

th.valign-top, td.valign-top { vertical-align: top; }

th.valign-bottom, td.valign-bottom { vertical-align: bottom; }

th.valign-middle, td.valign-middle { vertical-align: middle; }

table thead th, table tfoot th { font-weight: bold; }

tbody tr th { display: table-cell; line-height: 1.4; background: -webkit-linear-gradient(top, #add386, #90b66a); }

tbody tr th, tbody tr th p, tfoot tr th, tfoot tr th p { color: white; font-weight: bold; }

p.tableblock > code:only-child { background: none; padding: 0; }

p.tableblock { font-size: 1em; }

td > div.verse { white-space: pre; }

ol { margin-left: 1.75em; }

ul li ol { margin-left: 1.5em; }

dl dd { margin-left: 1.125em; }

dl dd:last-child, dl dd:last-child > :last-child { margin-bottom: 0; }

ol > li p, ul > li p, ul dd, ol dd, .olist .olist, .ulist .ulist, .ulist .olist, .olist .ulist { margin-bottom: 0.375em; }

ul.checklist, ul.none, ol.none, ul.no-bullet, ol.no-bullet, ol.unnumbered, ul.unstyled, ol.unstyled { list-style-type: none; }

ul.no-bullet, ol.no-bullet, ol.unnumbered { margin-left: 0.625em; }

ul.unstyled, ol.unstyled { margin-left: 0; }

ul.checklist { margin-left: 0.625em; }

ul.checklist li > p:first-child > .fa-square-o:first-child, ul.checklist li > p:first-child > .fa-check-square-o:first-child { width: 1.25em; font-size: 0.8em; position: relative; bottom: 0.125em; }

ul.checklist li > p:first-child > input[type="checkbox"]:first-child { margin-right: 0.25em; }

ul.inline { display: -ms-flexbox; display: -webkit-box; display: flex; -ms-flex-flow: row wrap; -webkit-flex-flow: row wrap; flex-flow: row wrap; list-style: none; margin: 0 0 0.375em -0.75em; }

ul.inline > li { margin-left: 0.75em; }

.unstyled dl dt { font-weight: normal; font-style: normal; }

ol.arabic { list-style-type: decimal; }

ol.decimal { list-style-type: decimal-leading-zero; }

ol.loweralpha { list-style-type: lower-alpha; }

ol.upperalpha { list-style-type: upper-alpha; }

ol.lowerroman { list-style-type: lower-roman; }

ol.upperroman { list-style-type: upper-roman; }

ol.lowergreek { list-style-type: lower-greek; }

.hdlist > table, .colist > table { border: 0; background: none; }
.hdlist > table > tbody > tr, .colist > table > tbody > tr { background: none; }

td.hdlist1, td.hdlist2 { vertical-align: top; padding: 0 0.625em; }

td.hdlist1 { font-weight: bold; padding-bottom: 0.75em; }

.literalblock + .colist, .listingblock + .colist { margin-top: -0.5em; }

.colist > table tr > td:first-of-type { padding: 0.4em 0.75em 0 0.75em; line-height: 1; vertical-align: top; }
.colist > table tr > td:first-of-type img { max-width: initial; }
.colist > table tr > td:last-of-type { padding: 0.25em 0; }

.thumb, .th { line-height: 0; display: inline-block; border: solid 4px white; -webkit-box-shadow: 0 0 0 1px #dddddd; box-shadow: 0 0 0 1px #dddddd; }

.imageblock.left, .imageblock[style*="float: left"] { margin: 0.25em 0.625em 1.25em 0; }
.imageblock.right, .imageblock[style*="float: right"] { margin: 0.25em 0 1.25em 0.625em; }
.imageblock > .title { margin-bottom: 0; }
.imageblock.thumb, .imageblock.th { border-width: 6px; }
.imageblock.thumb > .title, .imageblock.th > .title { padding: 0 0.125em; }

.image.left, .image.right { margin-top: 0.25em; margin-bottom: 0.25em; display: inline-block; line-height: 0; }
.image.left { margin-right: 0.625em; }
.image.right { margin-left: 0.625em; }

a.image { text-decoration: none; display: inline-block; }
a.image object { pointer-events: none; }

sup.footnote, sup.footnoteref { font-size: 0.875em; position: static; vertical-align: super; }
sup.footnote a, sup.footnoteref a { text-decoration: none; }
sup.footnote a:active, sup.footnoteref a:active { text-decoration: underline; }

#footnotes { padding-top: 0.75em; padding-bottom: 0.75em; margin-bottom: 0.625em; }
#footnotes hr { width: 20%; min-width: 6.25em; margin: -0.25em 0 0.75em 0; border-width: 1px 0 0 0; }
#footnotes .footnote { padding: 0 0.375em 0 0.225em; line-height: 1.3334; font-size: 0.875em; margin-left: 1.2em; margin-bottom: 0.2em; }
#footnotes .footnote a:first-of-type { font-weight: bold; text-decoration: none; margin-left: -1.05em; }
#footnotes .footnote:last-of-type { margin-bottom: 0; }
#content #footnotes { margin-top: -0.625em; margin-bottom: 0; padding: 0.75em 0; }

.gist .file-data > table { border: 0; background: #fff; width: 100%; margin-bottom: 0; }
.gist .file-data > table td.line-data { width: 99%; }

div.unbreakable { page-break-inside: avoid; }

.big { font-size: larger; }

.small { font-size: smaller; }

.underline { text-decoration: underline; }

.overline { text-decoration: overline; }

.line-through { text-decoration: line-through; }

.aqua { color: #00bfbf; }

.aqua-background { background-color: #00fafa; }

.black { color: black; }

.black-background { background-color: black; }

.blue { color: #0000bf; }

.blue-background { background-color: #0000fa; }

.fuchsia { color: #bf00bf; }

.fuchsia-background { background-color: #fa00fa; }

.gray { color: #606060; }

.gray-background { background-color: #7d7d7d; }

.green { color: #006000; }

.green-background { background-color: #007d00; }

.lime { color: #00bf00; }

.lime-background { background-color: #00fa00; }

.maroon { color: #600000; }

.maroon-background { background-color: #7d0000; }

.navy { color: #000060; }

.navy-background { background-color: #00007d; }

.olive { color: #606000; }

.olive-background { background-color: #7d7d00; }

.purple { color: #600060; }

.purple-background { background-color: #7d007d; }

.red { color: #bf0000; }

.red-background { background-color: #fa0000; }

.silver { color: #909090; }

.silver-background { background-color: #bcbcbc; }

.teal { color: #006060; }

.teal-background { background-color: #007d7d; }

.white { color: #bfbfbf; }

.white-background { background-color: #fafafa; }

.yellow { color: #bfbf00; }

.yellow-background { background-color: #fafa00; }

span.icon > .fa { cursor: default; }
a span.icon > .fa { cursor: inherit; }

.admonitionblock td.icon [class^="fa icon-"] { font-size: 2.5em; text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5); cursor: default; }
.admonitionblock td.icon .icon-note:before { content: "\f05a"; color: #29475c; }
.admonitionblock td.icon .icon-tip:before { content: "\f0eb"; text-shadow: 1px 1px 2px rgba(155, 155, 0, 0.8); color: #111; }
.admonitionblock td.icon .icon-warning:before { content: "\f071"; color: #bf6900; }
.admonitionblock td.icon .icon-caution:before { content: "\f06d"; color: #bf3400; }
.admonitionblock td.icon .icon-important:before { content: "\f06a"; color: #bf0000; }

.conum[data-value] { display: inline-block; color: #fff !important; background-color: black; -webkit-border-radius: 100px; border-radius: 100px; text-align: center; font-size: 0.75em; width: 1.67em; height: 1.67em; line-height: 1.67em; font-family: "Open Sans", "DejaVu Sans", sans-serif; font-style: normal; font-weight: bold; }
.conum[data-value] * { color: #fff !important; }
.conum[data-value] + b { display: none; }
.conum[data-value]:after { content: attr(data-value); }
pre .conum[data-value] { position: relative; top: -0.125em; }

b.conum * { color: inherit !important; }

.conum:not([data-value]):empty { display: none; }

h1, h2, h3, #toctitle, .sidebarblock > .content > .title, h4, h5, h6 { border-bottom: 1px solid #dddddd; }

.sect1 { padding-bottom: 0; }

#toctitle { color: #00406F; font-weight: normal; margin-top: 1.5em; }

.sidebarblock { border-color: #aaa; }

code { -webkit-border-radius: 4px; border-radius: 4px; }

p.tableblock.header { color: #6d6e71; }

.literalblock pre, .listingblock pre { background: #eeeeee; }

</style>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.6.3/css/font-awesome.min.css">
<style>
/* Stylesheet for CodeRay to match GitHub theme | MIT License | http://foundation.zurb.com */
/*pre.CodeRay {background-color:#f7f7f8;}*/
.CodeRay .line-numbers{border-right:1px solid #d8d8d8;padding:0 0.5em 0 .25em}
.CodeRay span.line-numbers{display:inline-block;margin-right:.5em;color:rgba(0,0,0,.3)}
.CodeRay .line-numbers strong{color:rgba(0,0,0,.4)}
table.CodeRay{border-collapse:separate;border-spacing:0;margin-bottom:0;border:0;background:none}
table.CodeRay td{vertical-align: top;line-height:1.45}
table.CodeRay td.line-numbers{text-align:right}
table.CodeRay td.line-numbers>pre{padding:0;color:rgba(0,0,0,.3)}
table.CodeRay td.code{padding:0 0 0 .5em}
table.CodeRay td.code>pre{padding:0}
.CodeRay .debug{color:#fff !important;background:#000080 !important}
.CodeRay .annotation{color:#007}
.CodeRay .attribute-name{color:#000080}
.CodeRay .attribute-value{color:#700}
.CodeRay .binary{color:#509}
.CodeRay .comment{color:#998;font-style:italic}
.CodeRay .char{color:#04d}
.CodeRay .char .content{color:#04d}
.CodeRay .char .delimiter{color:#039}
.CodeRay .class{color:#458;font-weight:bold}
.CodeRay .complex{color:#a08}
.CodeRay .constant,.CodeRay .predefined-constant{color:#008080}
.CodeRay .color{color:#099}
.CodeRay .class-variable{color:#369}
.CodeRay .decorator{color:#b0b}
.CodeRay .definition{color:#099}
.CodeRay .delimiter{color:#000}
.CodeRay .doc{color:#970}
.CodeRay .doctype{color:#34b}
.CodeRay .doc-string{color:#d42}
.CodeRay .escape{color:#666}
.CodeRay .entity{color:#800}
.CodeRay .error{color:#808}
.CodeRay .exception{color:inherit}
.CodeRay .filename{color:#099}
.CodeRay .function{color:#900;font-weight:bold}
.CodeRay .global-variable{color:#008080}
.CodeRay .hex{color:#058}
.CodeRay .integer,.CodeRay .float{color:#099}
.CodeRay .include{color:#555}
.CodeRay .inline{color:#000}
.CodeRay .inline .inline{background:#ccc}
.CodeRay .inline .inline .inline{background:#bbb}
.CodeRay .inline .inline-delimiter{color:#d14}
.CodeRay .inline-delimiter{color:#d14}
.CodeRay .important{color:#555;font-weight:bold}
.CodeRay .interpreted{color:#b2b}
.CodeRay .instance-variable{color:#008080}
.CodeRay .label{color:#970}
.CodeRay .local-variable{color:#963}
.CodeRay .octal{color:#40e}
.CodeRay .predefined{color:#369}
.CodeRay .preprocessor{color:#579}
.CodeRay .pseudo-class{color:#555}
.CodeRay .directive{font-weight:bold}
.CodeRay .type{font-weight:bold}
.CodeRay .predefined-type{color:inherit}
.CodeRay .reserved,.CodeRay .keyword {color:#000;font-weight:bold}
.CodeRay .key{color:#808}
.CodeRay .key .delimiter{color:#606}
.CodeRay .key .char{color:#80f}
.CodeRay .value{color:#088}
.CodeRay .regexp .delimiter{color:#808}
.CodeRay .regexp .content{color:#808}
.CodeRay .regexp .modifier{color:#808}
.CodeRay .regexp .char{color:#d14}
.CodeRay .regexp .function{color:#404;font-weight:bold}
.CodeRay .string{color:#d20}
.CodeRay .string .string .string{background:#ffd0d0}
.CodeRay .string .content{color:#d14}
.CodeRay .string .char{color:#d14}
.CodeRay .string .delimiter{color:#d14}
.CodeRay .shell{color:#d14}
.CodeRay .shell .delimiter{color:#d14}
.CodeRay .symbol{color:#990073}
.CodeRay .symbol .content{color:#a60}
.CodeRay .symbol .delimiter{color:#630}
.CodeRay .tag{color:#008080}
.CodeRay .tag-special{color:#d70}
.CodeRay .variable{color:#036}
.CodeRay .insert{background:#afa}
.CodeRay .delete{background:#faa}
.CodeRay .change{color:#aaf;background:#007}
.CodeRay .head{color:#f8f;background:#505}
.CodeRay .insert .insert{color:#080}
.CodeRay .delete .delete{color:#800}
.CodeRay .change .change{color:#66f}
.CodeRay .head .head{color:#f4f}
</style>
<link rel="stylesheet" href="../katex/katex.min.css">
<script src="../katex/katex.min.js"></script>
<script src="../katex/contrib/auto-render.min.js"></script>
    <!-- Use KaTeX to render math once document is loaded, see
         https://github.com/Khan/KaTeX/tree/master/contrib/auto-render -->
<script>
    document.addEventListener("DOMContentLoaded", function () {
        renderMathInElement(
            document.body,
            {
                delimiters: [
                    { left: "$$", right: "$$", display: true},
                    { left: "\\[", right: "\\]", display: true},
                    { left: "$", right: "$", display: false},
                    { left: "\\(", right: "\\)", display: false}
                ]
            }
        );
    });
</script></head>
<body class="book toc2 toc-left" style="max-width: 100;">
<div id="header">
<h1>The OpenCL<sup>&#8482;</sup> C++ 1.0 Specification</h1>
<div class="details">
<span id="author" class="author">Khronos OpenCL Working Group</span><br>
<span id="revnumber">version 2.2-8,</span>
<span id="revdate">Mon, 08 Oct 2018 16:50:47 +0000</span>
<br><span id="revremark">from git branch: master commit: b3cab22fcff5d8c17869907c983e259ddd7ce788</span>
</div>
<div id="toc" class="toc2">
<div id="toctitle">Table of Contents</div>
<ul class="sectlevel1">
<li><a href="#generic-type-name-notation">1. Generic Type Name Notation</a></li>
<li><a href="#openclcpp-programming-language">2. OpenCL C++ Programming Language</a>
<ul class="sectlevel2">
<li><a href="#supported-builtin-data-types">2.1. Supported Built-in Data Types</a></li>
<li><a href="#keywords">2.2. Keywords</a></li>
<li><a href="#implicit-type-conversions">2.3. Implicit Type Conversions</a></li>
<li><a href="#expressions">2.4. Expressions</a></li>
<li><a href="#address-spaces">2.5. Address Spaces</a></li>
<li><a href="#kernel-functions">2.6. Kernel Functions</a></li>
<li><a href="#preprocessor-directives-and-macros">2.7. Preprocessor Directives and Macros</a></li>
<li><a href="#attribute-qualifiers">2.8. Attribute Qualifiers</a></li>
<li><a href="#opencl_cxx_restrictions">2.9. Restrictions</a></li>
</ul>
</li>
<li><a href="#opencl-c-standard-library">3. OpenCL C++ Standard Library</a>
<ul class="sectlevel2">
<li><a href="#opencl-definitions">3.1. OpenCL Definitions</a></li>
<li><a href="#conversions-library">3.2. Conversions Library</a></li>
<li><a href="#reinterpreting-data-library">3.3. Reinterpreting Data Library</a></li>
<li><a href="#address-spaces-library">3.4. Address Spaces Library</a></li>
<li><a href="#specialization-constants-library">3.5. Specialization Constants Library</a></li>
<li><a href="#half-wrapper-library">3.6. Half Wrapper Library</a></li>
<li><a href="#vector-wrapper-library">3.7. Vector Wrapper Library</a></li>
<li><a href="#range-library">3.8. Range Library</a></li>
<li><a href="#vector-utilities-library">3.9. Vector Utilities Library</a></li>
<li><a href="#marker-types">3.10. Marker Types</a></li>
<li><a href="#images-and-samplers-library">3.11. Images and Samplers Library</a></li>
<li><a href="#pipes-library">3.12. Pipes Library</a></li>
<li><a href="#device-enqueue-library">3.13. Device Enqueue Library</a></li>
<li><a href="#work-item-functions">3.14. Work-Item Functions</a></li>
<li><a href="#work-group-functions">3.15. Work-group Functions</a></li>
<li><a href="#synchronization-functions">3.16. Synchronization Functions</a></li>
<li><a href="#common-functions">3.17. Common Functions</a></li>
<li><a href="#geometric-functions">3.18. Geometric Functions</a></li>
<li><a href="#math-functions">3.19. Math Functions</a></li>
<li><a href="#integer-functions">3.20. Integer Functions</a></li>
<li><a href="#relational-functions">3.21. Relational Functions</a></li>
<li><a href="#vector-data-load-and-store-functions">3.22. Vector Data Load and Store Functions</a></li>
<li><a href="#printf">3.23. printf</a></li>
<li><a href="#atomic-operations-library">3.24. Atomic Operations Library</a></li>
<li><a href="#array-library">3.25. Array Library</a></li>
<li><a href="#limits-library">3.26. Limits Library</a></li>
<li><a href="#math-constants-library">3.27. Math Constants Library</a></li>
<li><a href="#tuple-library">3.28. Tuple Library</a></li>
<li><a href="#type-traits-library">3.29. Type Traits Library</a></li>
<li><a href="#iterator-library">3.30. Iterator Library</a></li>
<li><a href="#general-utilities-library">3.31. General Utilities Library</a></li>
</ul>
</li>
<li><a href="#opencl-numerical-compliance">4. OpenCL Numerical Compliance</a>
<ul class="sectlevel2">
<li><a href="#rounding-modes-1">4.1. Rounding Modes</a></li>
<li><a href="#inf-nan-and-denormalized-numbers">4.2. INF, NaN and Denormalized Numbers</a></li>
<li><a href="#floating-point-exceptions">4.3. Floating-Point Exceptions</a></li>
<li><a href="#relative-error-as-ulps">4.4. Relative Error as ULPs</a></li>
<li><a href="#edge-case-behavior">4.5. Edge Case Behavior</a></li>
</ul>
</li>
<li><a href="#image-addressing-and-filtering">5. Image Addressing and Filtering</a>
<ul class="sectlevel2">
<li><a href="#image-coordinates">5.1. Image Coordinates</a></li>
<li><a href="#addressing-and-filter-modes">5.2. Addressing and Filter Modes</a></li>
<li><a href="#conversion-rules">5.3. Conversion Rules</a></li>
<li><a href="#selecting-an-image-from-an-image-array">5.4. Selecting an Image from an Image Array</a></li>
</ul>
</li>
<li><a href="#compiler_options">6. Compiler options</a>
<ul class="sectlevel2">
<li><a href="#preprocessor_options">6.1. Preprocessor options</a></li>
<li><a href="#options-controlling_the-opencl_c_version">6.2. Options Controlling the OpenCL C++ version</a></li>
<li><a href="#fp16_and_fp64_options">6.3. Double and half-precision floating-point options</a></li>
<li><a href="#other_options">6.4. Other options</a></li>
</ul>
</li>
</ul>
</div>
</div>
<div id="content">
<div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>Copyright 2008-2018 The Khronos Group.</p>
</div>
<div class="paragraph">
<p>This specification is protected by copyright laws and contains material proprietary
to the Khronos Group, Inc. Except as described by these terms, it or any components
may not be reproduced, republished, distributed, transmitted, displayed, broadcast
or otherwise exploited in any manner without the express prior written permission
of Khronos Group.</p>
</div>
<div class="paragraph">
<p>Khronos Group grants a conditional copyright license to use and reproduce the
unmodified specification for any purpose, without fee or royalty, EXCEPT no licenses
to any patent, trademark or other intellectual property rights are granted under
these terms. Parties desiring to implement the specification and make use of
Khronos trademarks in relation to that implementation, and receive reciprocal patent
license protection under the Khronos IP Policy must become Adopters and confirm the
implementation as conformant under the process defined by Khronos for this
specification; see <a href="https://www.khronos.org/adopters" class="bare">https://www.khronos.org/adopters</a>.</p>
</div>
<div class="paragraph">
<p>Khronos Group makes no, and expressly disclaims any, representations or warranties,
express or implied, regarding this specification, including, without limitation:
merchantability, fitness for a particular purpose, non-infringement of any
intellectual property, correctness, accuracy, completeness, timeliness, and
reliability. Under no circumstances will the Khronos Group, or any of its Promoters,
Contributors or Members, or their respective partners, officers, directors,
employees, agents or representatives be liable for any damages, whether direct,
indirect, special or consequential damages for lost revenues, lost profits, or
otherwise, arising from or in connection with these materials.</p>
</div>
<div class="paragraph">
<p>Vulkan is a registered trademark and Khronos, OpenXR, SPIR, SPIR-V, SYCL, WebGL,
WebCL, OpenVX, OpenVG, EGL, COLLADA, glTF, NNEF, OpenKODE, OpenKCAM, StreamInput,
OpenWF, OpenSL ES, OpenMAX, OpenMAX AL, OpenMAX IL, OpenMAX DL, OpenML and DevU are
trademarks of the Khronos Group Inc. ASTC is a trademark of ARM Holdings PLC,
OpenCL is a trademark of Apple Inc. and OpenGL and OpenML are registered trademarks
and the OpenGL ES and OpenGL SC logos are trademarks of Silicon Graphics
International used under license by Khronos. All other product names, trademarks,
and/or company names are used solely for identification and belong to their
respective owners.</p>
</div>
<div style="page-break-after: always;"></div>
<h2 id="acknowledgements" class="float">Acknowledgements</h2>
<div class="paragraph">
<p>The OpenCL C++ specification is the result of the contributions of many people, representing a cross section of the desktop, hand-held, and embedded computer industry.
Following is a partial list of the contributors, including the company that they represented at the time of their contribution:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Eric Berdahl, Adobe</p>
</li>
<li>
<p>Aaftab Munshi, Apple</p>
</li>
<li>
<p>Brian Sumner, AMD</p>
</li>
<li>
<p>Andrew Richards, Codeplay</p>
</li>
<li>
<p>Maria Rovatsou, Codeplay</p>
</li>
<li>
<p>Adam Stański, Intel</p>
</li>
<li>
<p>Alexey Bader, Intel</p>
</li>
<li>
<p>Allen Hux, Intel</p>
</li>
<li>
<p>Bartosz Sochacki, Intel</p>
</li>
<li>
<p>Ben Ashbaugh, Intel</p>
</li>
<li>
<p>Kevin Stevens, Intel</p>
</li>
<li>
<p>Łukasz Dudziak, Intel</p>
</li>
<li>
<p>Łukasz Towarek, Intel</p>
</li>
<li>
<p>Marcin Walkowiak, Intel</p>
</li>
<li>
<p>Michael Kinsner, Intel</p>
</li>
<li>
<p>Raun Krisch, Intel</p>
</li>
<li>
<p>Tomasz Fiechowski, Intel</p>
</li>
<li>
<p>Kedar Patil, NVIDIA</p>
</li>
<li>
<p>Yuan Lin, NVIDIA</p>
</li>
<li>
<p>Alex Bourd, Qualcomm</p>
</li>
<li>
<p>Lee Howes, Qualcomm</p>
</li>
<li>
<p>Anton Gorenko, StreamComputing</p>
</li>
<li>
<p>Jakub Szuppe, StreamComputing</p>
</li>
<li>
<p>James Price, University of Bristol</p>
</li>
<li>
<p>Paul Preney, University of Windsor</p>
</li>
<li>
<p>Ronan Keryell, Xilinx</p>
</li>
<li>
<p>AJ Guillon, YetiWare Inc.</p>
</li>
</ul>
</div>
<div style="page-break-after: always;"></div>
</div>
</div>
<div class="sect1">
<h2 id="generic-type-name-notation">1. Generic Type Name Notation</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The generic type names are used when some entity has multiple overloads which differ only by argument(s).
They can map to one or more built-in data types.
The tables below describe these mappings in details.</p>
</div>
<div class="paragraph">
<p>Assuming that <code>gentype</code> maps to built-in types: <code>float</code>, <code>int</code> and <code>uint</code>, when coming across definition:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype function(gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>reader should understand that such function has in fact three overloads:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>float function(float x);
int function(int x);
uint function(uint x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Note that if a function signature has multiple usages of <code>gentype</code> they all should map to the same type.
Following this rule such overloads are then invalid:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>float function(int x);
uint function(float x);
// etc.</code></pre>
</div>
</div>
<div class="paragraph">
<p>If a function is meant to have such overloads, respective gentypes in its signature should be postfixed with numbers to indicate they represent different types.
Declaration like this:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>cl::common_type_t&lt;gentype1, gentype2&gt; greater(gentype1 x, gentype2 y);</code></pre>
</div>
</div>
<div class="paragraph">
<p>would match following overloads:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>cl::common_type_t&lt;float, float&gt; greater(float x, float y);
cl::common_type_t&lt;float, int&gt; greater(float x, int y);
cl::common_type_t&lt;float, uint&gt; greater(float x, uint y);
cl::common_type_t&lt;int, float&gt; greater(int x, float y);

// etc.</code></pre>
</div>
</div>
<table class="tableblock frame-all grid-all spread">
<caption class="title">Table 1. generic types</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>generic type</strong></th>
<th class="tableblock halign-left valign-top"><strong>corresponding built-in types</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>typen</code></p></td>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p>scalar and all vector types of type</p>
</div>
<div class="paragraph">
<p>Example:</p>
</div>
<div class="exampleblock">
<div class="content">
<div class="paragraph">
<p><code>floatn</code> matches: <code>float</code>, <code>float2</code>, <code>float3</code>, <code>float4</code>, <code>float8</code> and <code>float16</code><br>
<code>floatn</code> doesn&#8217;t match: <code>half</code>, <code>int2</code></p>
</div>
</div>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>gentype</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">unspecified in global context, should be defined whenever used</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>sgentype</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">subset of scalar types from types matched by <code>gentype</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>ugentype</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">subset of unsigned integer types from types matched by <code>gentype</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>gentypeh</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>half</code>, <code>half2</code>, <code>half3</code>, <code>half4</code>, <code>half8</code> or <code>half16</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>gentypef</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>float</code>, <code>float2</code>, <code>float3</code>, <code>float4</code>, <code>float8</code> or <code>float16</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>gentyped</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>double</code>, <code>double2</code>, <code>double3</code>, <code>double4</code>, <code>double8</code> or <code>double16</code></p></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="sect1">
<h2 id="openclcpp-programming-language">2. OpenCL C++ Programming Language</h2>
<div class="sectionbody">
<div class="paragraph">
<p>This section describes the OpenCL C++ programming language used to create kernels that are executed on OpenCL device(s).
The OpenCL C++ programming language is based on the ISO/IEC JTC1 SC22 WG21 N 3690 language specification (a.k.a. C++14 specification) with specific restrictions (see the <a href="#opencl_cxx_restrictions"><em>OpenCL C++ restrictions</em></a> section).
Please refer to this specification for a detailed description of the language grammar.
This section describes restrictions to the C++14 specification supported in OpenCL C++.</p>
</div>
<div class="sect2">
<h3 id="supported-builtin-data-types">2.1. Supported Built-in Data Types</h3>
<div class="paragraph">
<p>The following data types are supported.</p>
</div>
<div class="sect3">
<h4 id="builtin-scalar-data-types">2.1.1. Built-in Scalar Data Types</h4>
<table id="device_builtin_scalar_data_types" class="tableblock frame-all grid-all spread">
<caption class="title">Table 2. Device Built-in scalar data types</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Type</strong></th>
<th class="tableblock halign-left valign-top"><strong>Description</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>bool</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A data type which is either <code>true</code> or <code>false</code>. (<em>See section 2.14.6 lex.bool and section 3.9.1 basic.fundamental of the C++14 Specification.</em>)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>char</code>, <code>signed char</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A signed two&#8217;s complement 8-bit integer.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>unsigned char</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">An unsigned 8-bit integer.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>short</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A signed two&#8217;s complement 16-bit integer.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>unsigned short</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">An unsigned 16-bit integer.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>int</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A signed two&#8217;s complement 32-bit integer.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>unsigned int</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">An unsigned 32-bit integer.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>long</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A signed two&#8217;s complement 64-bit integer.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>unsigned long</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">An unsigned 64-bit integer.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>float</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A 32-bit floating-point.
  The float data type must conform to the IEEE 754 single precision storage format.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>double</code> <a id="ftnref2"></a> <a href="#ftn2">[2]</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A 64-bit floating-point.
  The double data type must conform to the IEEE 754 double precision storage format.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>half</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A 16-bit floating-point.
  The half data type must conform to the IEEE 754-2008 half precision storage format.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>void</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The <code>void</code> type comprises an empty set of values; it is an incomplete type that cannot be completed.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>Most built-in scalar data types are also declared as appropriate types in the OpenCL API (and header files) that can be used by an application.
The following table describes the built-in scalar data type in the OpenCL C++ programming language and the corresponding data type available to the application:</p>
</div>
<table id="host_scalar_builtin_data_types" class="tableblock frame-all grid-all spread">
<caption class="title">Table 3. Host Scalar Built-in Data Types</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Type in OpenCL Language</strong></th>
<th class="tableblock halign-left valign-top"><strong>API type for application</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>bool</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">n/a, i.e., there is no corresponding <code>cl_bool</code> type.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>char</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>cl_char</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>unsigned char</code>, <code>uchar</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>cl_uchar</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>short</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>cl_short</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>unsigned short</code>, <code>ushort</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>cl_ushort</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>int</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>cl_int</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>unsigned int</code>, <code>uint</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>cl_uint</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>long</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>cl_long</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>unsigned long</code>, <code>ulong</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>cl_ulong</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>float</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>cl_float</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>double</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>cl_double</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>half</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>cl_half</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>void</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>void</code></p></td>
</tr>
</tbody>
</table>
<div class="sect4">
<h5 id="builtin-half-data-type">Built-in Half Data Type</h5>
<div class="paragraph">
<p>The <code>half</code> data type must be IEEE 754-2008 compliant.
<code>half</code> numbers have 1 sign bit, 5 exponent bits, and 10 mantissa bits.
The interpretation of the sign, exponent and mantissa is analogous to IEEE 754 floating-point numbers.</p>
</div>
<div class="paragraph">
<p>The exponent bias is 15.
The <code>half</code> data type must represent finite and normal numbers, denormalized numbers, infinities and NaN.
Denormalized numbers for the <code>half</code> data type which may be generated when converting a <code>float</code> to a <code>half</code> using <code>vstore_half</code> and converting a <code>half</code> to a <code>float</code> using <code>vload_half</code> cannot be flushed to zero.</p>
</div>
<div class="paragraph">
<p>Conversions from <code>float</code> to <code>half</code> correctly round the mantissa to 11 bits of precision.</p>
</div>
<div class="paragraph">
<p>Conversions from <code>half</code> to <code>float</code> are lossless; all <code>half</code> numbers are exactly representable as <code>float</code> values.</p>
</div>
<div class="paragraph">
<p>The <code>half</code> data type can only be used to declare a pointer to a buffer that contains <code>half</code> values.
All other operations are not allowed if the <strong>cl_khr_fp16</strong> extension is not supported.</p>
</div>
<div class="paragraph">
<p>A few valid examples are given below:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#include &lt;opencl_def&gt;
#include &lt;opencl_memory&gt;
#include &lt;opencl_vector_load_store&gt;

float bar(half *a) {
  return cl::vload_half&lt; 1 &gt;(0, a);
}

kernel void foo(cl::global_ptr&lt;half&gt; pg) { //ok: a global pointer
                                           // passed from the host
    int offset = 1;

    half *ptr = pg.get() + offset; //ok: half pointer arithmetic
    float b = bar(ptr);

    if(b &lt; *ptr) { //not allowed: it is only supported if cl_khr_fp16
                   // extension is enabled
      //...
    }
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>half</code> scalar data type is required to be supported as a data storage format.
Vector data load and store functions (described in the <a href="#vector-data-load-and-store-functions"><em>Vector Data Load and Store Functions</em></a> section) must be supported.</p>
</div>
</div>
<div class="sect4">
<h5 id="cl_khr_fp16-extension"><strong>cl_khr_fp16</strong> extension</h5>
<div class="paragraph">
<p>This extension adds support for <code>half</code> scalar and vector types as built-in types that can be used for arithmetic operations, conversions etc.
An application that wants to use <code>half</code> and <code>halfn</code> types will need to specify the <code>-cl-fp16-enable</code> compiler option (see the <a href="#fp16_and_fp64_options"><em>Double and half-precision floating-point options</em></a> section).</p>
</div>
<div class="paragraph">
<p>The OpenCL compiler accepts an h and H suffix on floating point literals, indicating the literal is typed as a <code>half</code></p>
</div>
<div class="paragraph">
<p>A few valid examples:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#include &lt;opencl_def&gt;
#include &lt;opencl_memory&gt;

half bar(half a) {
    half b = a;
    b += 10.0h; //ok: cl_khr_fp16 extension is enabled. All arithmetic
                // operations on half built-in type are available

    return b;
}

kernel void foo(cl::global_ptr&lt;half&gt; pg) {
    int offset = 1;

    half *ptr = pg.get() + offset;
    half b = bar(*ptr);

    if(b &lt; *ptr) { //ok: cl_khr_fp16 extension is enabled.
                   // All comparison operations are available
      //...
    }
}</code></pre>
</div>
</div>
</div>
<div class="sect4">
<h5 id="hexadecimal-floating-point-literals">Hexadecimal floating point literals</h5>
<div class="paragraph">
<p>Hexadecimal floating point literals are supported in OpenCL C++.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>float f = 0x1.fffffep127f
double d = 0x1.fffffffffffffp1023;
half h = 0x1.ffcp15h;</code></pre>
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="builtin-vector-data-types">2.1.2. Built-in Vector Data Types</h4>
<div class="sect4">
<h5 id="supported-vector-data-types">Supported Vector Data Types</h5>
<div class="paragraph">
<p>The <code>bool</code>, <code>char</code>, <code>unsigned char</code>, <code>short</code>, <code>unsigned short</code>, <code>int</code>, <code>unsigned int</code>, <code>long</code>, <code>unsigned long</code>, <code>half</code>, <code>float</code> and <code>double</code> vector data types are supported.
The vector data type is defined with the type name i.e. <code>bool</code>, <code>char</code>, <code>uchar</code>, <code>short</code>, <code>ushort</code>, <code>int</code>, <code>uint</code>, <code>long</code>, <code>ulong</code>, <code>half</code>, <code>float</code> or <code>double</code> followed by a literal value <em>n</em> that defines the number of elements in the vector.
Supported values of <em>n</em> are 2, 3, 4, 8, and 16 for all vector data types.</p>
</div>
<table id="device_builtin_vector_data_types" class="tableblock frame-all grid-all spread">
<caption class="title">Table 4. Device Built-in Vector Data Types</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Type</strong></th>
<th class="tableblock halign-left valign-top"><strong>Description</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>bool<em>n</em></code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A vector of <em>n</em> boolean values.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>char<em>n</em></code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A vector of <em>n</em> 8-bit signed two&#8217;s complement integer values.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>uchar<em>n</em></code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A vector of <em>n</em> 8-bit unsigned integer values.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>short<em>n</em></code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">vector of <em>n</em> 16-bit signed two&#8217;s complement integer values.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>ushort<em>n</em></code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A vector of <em>n</em> 16-bit unsigned integer values.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>int<em>n</em></code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A vector of <em>n</em> 32-bit signed two&#8217;s complement integer values.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>uint<em>n</em></code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A vector of <em>n</em> 32-bit unsigned integer values.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>long<em>n</em></code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A vector of <em>n</em> 64-bit signed two&#8217;s complement integer values.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>ulong<em>n</em></code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A vector of <em>n</em> 64-bit unsigned integer values.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>half<em>n</em></code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A vector of <em>n</em> 16-bit floating-point values.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>float<em>n</em></code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A vector of <em>n</em> 32-bit floating-point values.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>double<em>n</em></code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A vector of <em>n</em> 64-bit floating-point values.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>The built-in vector data types are also declared as appropriate types in the OpenCL API (and header files) that can be used by an application.
The following table describes the built-in vector data type in the OpenCL C++ programming language and the corresponding data type available to the application:</p>
</div>
<table id="host_builtin_vector_data_types" class="tableblock frame-all grid-all spread">
<caption class="title">Table 5. Host Built-in Vector Data Types</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Type in OpenCL Language</strong></th>
<th class="tableblock halign-left valign-top"><strong>API type for application</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>bool<em>n</em></code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">n/a, i.e., there is no corresponding <code>cl_bool<em>n</em></code> type.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>char<em>n</em></code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>cl_char<em>n</em></code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>uchar<em>n</em></code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>cl_uchar<em>n</em></code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>short<em>n</em></code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>cl_short<em>n</em></code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>ushort<em>n</em></code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>cl_ushort<em>n</em></code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>int<em>n</em></code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>cl_int<em>n</em></code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>uint<em>n</em></code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>cl_uint<em>n</em></code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>long<em>n</em></code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>cl_long<em>n</em></code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>ulong<em>n</em></code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>cl_ulong<em>n</em></code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>half<em>n</em></code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>cl_half<em>n</em></code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>float<em>n</em></code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>cl_float<em>n</em></code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>double<em>n</em></code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>cl_double<em>n</em></code></p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>The <code>half<em>n</em></code> vector data type is required to be supported as a data storage format.
Vector data load and store functions (described in the <a href="#vector-data-load-and-store-functions"><em>Vector Data Load and Store Functions</em></a> section) must be supported.</p>
</div>
<div class="paragraph">
<p>Support for the <code>double<em>n</em></code> vector data type is optional.</p>
</div>
</div>
<div class="sect4">
<h5 id="vector-changes-to-cpp14-standard">Vector Changes to C++14 standard</h5>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Vector types are classified as fundamental (<em>[ISO/IEC 14882:2014: basic.fundamental, ch. 3.9.1]</em>) and literal types</p>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
A vector type behave similarly to a trivially destructible class with all data members of literal type and all of its constructors defined as constexpr constructors
</td>
</tr>
</table>
</div>
</li>
<li>
<p>Abbreviating vector type as Tn, T is called the component type of a vector.
The numerical value n specifies number of components in a vector.
<a href="#device_builtin_vector_data_types">Device built-in vector data types</a> table specifies supported vector types.</p>
<div class="paragraph">
<p>A vector type which component type is <em>integral type</em> is called <em>integral vector type</em>.
A vector type which component is <em>floating-point type</em> is called <em>floating-point vector type</em>.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>float8 a; // component type: float, number of components: 8
uint16 b; // component type: uint, number of components: 16</code></pre>
</div>
</div>
</li>
<li>
<p>An <em>integral vector type</em> can be used as type of value of non-type template-parameter.
The change is introduced by following changes in C++ specification:</p>
<div class="openblock">
<div class="content">
<div class="ulist">
<ul>
<li>
<p><em>[ISO/IEC 14882:2014: temp.param, ch. 14.1 (4, 4.1)]</em> Template parameters: A non-type template-parameter shall have one of the following (optionally cv-qualified) types:</p>
<div class="ulist">
<ul>
<li>
<p>integral, integral vector or enumeration type,</p>
</li>
<li>
<p>integral, integral vector or enumeration type,</p>
</li>
<li>
<p>[ &#8230;&#8203; ]</p>
</li>
</ul>
</div>
</li>
<li>
<p><em>[ISO/IEC 14882:2014: temp.param, ch. 14.1 (7)]</em> Template parameters: A non-type <em>template-parameter</em> shall not be declared to have floating point, floating-point vector, class, or void type.</p>
</li>
<li>
<p><em>[ISO/IEC 14882:2014: temp.type, ch. 14.4 (1, 1.3)]</em> Type equivalence: Two <em>template-ids</em> refer to the same class, function, or variable if</p>
<div class="ulist">
<ul>
<li>
<p>[ &#8230;&#8203; ]</p>
</li>
<li>
<p>their corresponding non-type template arguments of integral, integral vector or enumeration type have identical values and</p>
</li>
<li>
<p>[ &#8230;&#8203; ]</p>
</li>
</ul>
</div>
</li>
<li>
<p><em>[ISO/IEC 14882:2014: temp.res, ch. 14.6 (8, 8.3, 8.3.1)]</em> Name resolution: [&#8230;&#8203;] If the interpretation of such a construct in the hypothetical instantiation is different from the interpretation of the corresponding construct</p>
<div class="ulist">
<ul>
<li>
<p>integral, integral vector or enumeration type, in any actual instantiation of the template, the program is ill-formed; no diagnostic is required.
This can happen in situations including the following:</p>
</li>
<li>
<p>[ &#8230;&#8203; ]</p>
</li>
<li>
<p>constant expression evaluation (5.20) within the template instantiation uses</p>
<div class="ulist">
<ul>
<li>
<p>the value of a const object of integral, integral vector or unscoped enumeration type or</p>
</li>
<li>
<p>[ &#8230;&#8203; ]</p>
</li>
</ul>
</div>
</li>
<li>
<p>[ &#8230;&#8203; ]</p>
</li>
</ul>
</div>
</li>
</ul>
</div>
</div>
</div>
</li>
</ol>
</div>
</div>
<div class="sect4">
<h5 id="vector-component-access">Vector Component Access</h5>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>The components of vector type can be accessed using swizzle expression.
The syntax of a swizzle expression is similar to syntax used in class member access expression <em>[ISO/IEC 14882:2014: expr.ref, ch. 5.2.5]</em>:
The swizzle expression is a postfix expression formed with a postfix expression followed by a dot <code>.</code> or an arrow <code>-&gt;</code> and then followed by an <em>vector-swizzle-selector</em>. The postfix expression before the dot or arrow is evaluated. The result of that evaluation, together with the <em>vector-swizzle-selector</em>, determines the result of the entire postfix expression.</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>float4 v1 = float4(1.0f, 2.0f, 3.0f, 4.0f);
float4 *pv1 = &amp;v1;

float2 v2 = v1.xz; // v1.xz is a swizzle expression
float3 v3 = pv1-&gt;s321; // pv1-&gt;s321 is a swizzle expression
                       // equivalent to (*pv1).s321
(*pv1).rgb = float3(0.0f, 0.5f, 1.0f); // (*pv1).rgb is a swizzle expression
pv1-&gt;lo.hi = 0.0f; // pv1-&gt;lo and pv1-&gt;lo.hi are swizzle
                   // expressions</code></pre>
</div>
</div>
</li>
<li>
<p>For the first option (dot) the first expression shall have vector type or be a swizzle expression which results in vector-swizzle of vector type.
For the second option (arrow) the first expression shall have pointer to vector type.
The expression <code>E1-&gt;E2</code> is converted to the equivalent form <code>(*(E1)).E2</code>; the remainder of <a href="#vector-component-access">Vector Component Access</a> will address only the first option (dot).</p>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
<code>(*(E1))</code> is lvalue. In either case, the <em>vector-swizzle-selector</em> shall name a vector component selection of a swizzle.
</td>
</tr>
</table>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>uint8 v1 = uint8(10, 11, 12, 13, 14, 15, 16, 17);

uint4 v2 = v1.s7301; // correct
uint3 v3 = (&amp;v1)-&gt;s246; // correct
uint4 v4 = v1-&gt;s0123; // ill-formed: v1 is not a pointer to
                      //             vector type

uint8 *pv1 = &amp;v1;

uint2 v5 = pv1-&gt;S13; // correct
uint2 v6 = (*pv1).s0745.even; // correct
uint4 v7 = pv1.odd; // ill-formed: pv1 is not vector or
                    // vector-swizzle</code></pre>
</div>
</div>
</li>
<li>
<p>Abbreviating <em>postfix-expression.vector-swizzle-selector</em> as <code>E1.E2</code>, <code>E1</code> is called the vector expression.
The type and value category of <code>E1.E2</code> are determined as follows.
In the remainder of <a href="#vector-component-access">Vector Component Access</a>, <em>cq</em> represents either <code>const</code> or the absence of <code>const</code> and <em>vq</em> represents either <code>volatile</code> or the absence of <code>volatile</code>.
cv represents an arbitrary set of cv-qualifiers, as defined in <em>[ISO/IEC 14882:2014: basic.type.qualifier, ch. 3.9.3]</em> .</p>
</li>
<li>
<p><em>vector-swizzle-selector</em> is subset of <em>identifier</em> with following syntax:</p>
<div class="openblock">
<div class="content">
<div class="paragraph">
<p>
<em>vector-swizzle-selector</em>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><em>vector-swizzle-xyzw-selector</em>:</p>
<div class="ulist">
<ul>
<li>
<p><em>vector-swizzle-xyzw-selector-value</em></p>
</li>
<li>
<p><em>vector-swizzle-xyzw-selector vector-swizzle-xyzw-selector-value</em></p>
</li>
</ul>
</div>
</li>
<li>
<p><em>vector-swizzle-rgba-selector</em>:</p>
<div class="ulist">
<ul>
<li>
<p><em>vector-swizzle-rgba-selector-value</em></p>
</li>
<li>
<p><em>vector-swizzle-rgba-selector vector-swizzle-rgba-selector-value</em></p>
</li>
</ul>
</div>
</li>
<li>
<p><em>vector-swizzle-special-selector</em>:</p>
<div class="ulist">
<ul>
<li>
<p><code>hi</code></p>
</li>
<li>
<p><code>lo</code></p>
</li>
<li>
<p><code>even</code></p>
</li>
<li>
<p><code>odd</code></p>
</li>
</ul>
</div>
</li>
<li>
<p><em>vector-swizzle-num-selector</em>:</p>
<div class="ulist">
<ul>
<li>
<p><code>s</code> <em>vector-swizzle-num-selector-values</em></p>
</li>
<li>
<p><code>S</code> <em>vector-swizzle-num-selector-values</em></p>
</li>
</ul>
</div>
</li>
</ul>
</div>
</div>
</div>
<div class="openblock">
<div class="content">
<div class="paragraph">
<p>
<em>vector-swizzle-num-selector-values</em>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><em>vector-swizzle-num-selector-value</em></p>
</li>
<li>
<p><em>vector-swizzle-num-selector-values vector-swizzle-num-selector-value</em></p>
</li>
</ul>
</div>
</div>
</div>
<div class="paragraph">
<p>
<em>vector-swizzle-xyzw-selector-value</em>: one of <code>x y z w</code></p>
</div>
<div class="paragraph">
<p>
<em>vector-swizzle-rgba-selector-value</em>: one of <code>r g b a</code></p>
</div>
<div class="paragraph">
<p>
<em>vector-swizzle-num-selector-value</em>: one of <code>0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F</code></p>
</div>
<div class="openblock">
<div class="content">
<div class="paragraph">
<p>
with following restrictions:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><em>vector-swizzle-selector</em> in a form of <em>vector-swizzle-special-selector</em> shall only be used with vector expression with at least 2 components.</p>
</li>
<li>
<p><em>vector-swizzle-selector</em> shall not select components beyond those available in vector expression.</p>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
<a href="#selector_values_and_their_corresponding_components_in_swizzle">Selector values and their corresponding components in swizzle</a> table describes relation between selector value and components.
</td>
</tr>
</table>
</div>
</li>
<li>
<p><em>vector-swizzle-selector</em> shall have swizzle size of 1, 2, 3, 4, 8 or 16.</p>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
Result from the swizzle expression shall be either of scalar or of valid vector type.
</td>
</tr>
</table>
</div>
</li>
</ul>
</div>
</div>
</div>
<div class="paragraph">
<p>
If <em>vector-swizzle-selector</em> does not meet requirements, the swizzle expression is ill-formed.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>int2 v2;
int3 v3;
int4 v4;
int8 v8;
int16 v16;

v4.xyz = int3(1, 2, 3); // correct: xyz selector
v4.baS01 = v8.lo; // ill-formed: baS01 is mix of rgba
                  // and numerical selectors
v3.rx = int2(20, 7); // ill-formed: mix of rgba and
                     // xyzw selectors

int v2c1 = v2.z; // correct: xyzw selector
int v3c1 = v3.b; // correct: rgba selector
int2 v4c1 = v4.ww; // correct: xyzw selector
int3 v8c1 = v8.xyz; // ill-formed: xyzw and rgba selectors
                    // are not allowed on vector expressions
                    // with more than 4 components
int2 v8c2 = v8.hi.xyz; // correct: xyzw selector on vector
                       // expression v8.hi (vector-swizzle
                       // of int4 type)

int2 v3c2 = v3.odd; // correct: special selector
int2 v3c2 = v3.x.even; // ill-formed: #1 vector expression
                       // is invalid (vector swizzle of
                       // scalar type)
                       // #2 special selector cannot be
                       // used with less than 2 components

v3.x = 1; // correct: xyzw selector
v3.w = 2; // ill-formed: there is no "w" component in int3
v2.gb = v4.hi; // ill-formed: there is no "b" component in int2
v8.S7890 = v4; // ill-formed: int8 allows numerical selector
               // in range 0-7

auto v16c1 = v16.s012; // correct: numerical selector
auto v16c2 = v16.s467899; // ill-formed: swizzle expression
                          // has not allowed size
                          // (there is no int6 type)

int16 vv1 = int16(v16.S98aabb01, v2, v2.gr, v3.xxxx); // correct
int16 vv2 = int16(v16.S98aabb0123, v2.gr, v3.xxxx);
                           // ill-formed:
                           // although it sums up to 16
                           // components the
                           // S98aabb0123 selector has invalid
                           // swizzle size (there is no int10)</code></pre>
</div>
</div>
</li>
<li>
<p><em>vector-swizzle-selector</em>, in a form of <em>vector-swizzle-xyzw-selector</em>, <em>vector-swizzle-rgba-selector</em> or <em>vector-swizzle-num-selector</em> can specify multiple values.
Each value selects single component.
Values in a selector can be repeated and specified in any order.
A number of values in a selector including repeated values is called the swizzle size.</p>
<table id="selector_values_and_their_corresponding_components_in_swizzle" class="tableblock frame-all grid-all spread">
<caption class="title">Table 6. Selector values and their corresponding components in swizzle</caption>
<colgroup>
<col style="width: 25%;">
<col style="width: 25%;">
<col style="width: 25%;">
<col style="width: 25%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Selector</strong></th>
<th class="tableblock halign-left valign-top"><strong>Selector value</strong></th>
<th class="tableblock halign-left valign-top"><strong>Selected component</strong></th>
<th class="tableblock halign-left valign-top"><strong>Required number of components in vector expression</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>vector-swizzle-xyzw-selector</em></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>x</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">1<sup>st</sup></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">2, 3 or 4</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>vector-swizzle-xyzw-selector</em></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>y</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">2<sup>nd</sup></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">2, 3 or 4</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>vector-swizzle-xyzw-selector</em></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>z</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">3<sup>rd</sup></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">3 or 4</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>vector-swizzle-xyzw-selector</em></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>w</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">4<sup>th</sup></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">4</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>vector-swizzle-rgba-selector</em></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>r</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">1<sup>st</sup></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">2, 3 or 4</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>vector-swizzle-rgba-selector</em></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>g</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">2<sup>nd</sup></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">2, 3 or 4</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>vector-swizzle-rgba-selector</em></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>b</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">3<sup>rd</sup></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">3 or 4</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>vector-swizzle-rgba-selector</em></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>a</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">4<sup>th</sup></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">4</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>vector-swizzle-num-selector</em></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>0</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">1<sup>st</sup></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">2, 3, 4, 8 or 16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>vector-swizzle-num-selector</em></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>1</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">2<sup>nd</sup></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">2, 3, 4, 8 or 16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>vector-swizzle-num-selector</em></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>2</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">3<sup>rd</sup></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">3, 4, 8 or 16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>vector-swizzle-num-selector</em></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>3</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">4<sup>th</sup></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">4, 8 or 16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>vector-swizzle-num-selector</em></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>4</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">5<sup>th</sup></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">8 or 16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>vector-swizzle-num-selector</em></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>5</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">6<sup>th</sup></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">8 or 16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>vector-swizzle-num-selector</em></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>6</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">7<sup>th</sup></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">8 or 16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>vector-swizzle-num-selector</em></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>7</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">8<sup>th</sup></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">8 or 16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>vector-swizzle-num-selector</em></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>8</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">9<sup>th</sup></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>vector-swizzle-num-selector</em></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>9</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">10<sup>th</sup></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>vector-swizzle-num-selector</em></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>a</code> or <code>A</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">11<sup>th</sup></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>vector-swizzle-num-selector</em></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>b</code> or <code>B</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">12<sup>th</sup></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>vector-swizzle-num-selector</em></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>c</code> or <code>C</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">13<sup>th</sup></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>vector-swizzle-num-selector</em></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>d</code> or <code>D</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">14<sup>th</sup></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>vector-swizzle-num-selector</em></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>e</code> or <code>E</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">15<sup>th</sup></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>vector-swizzle-num-selector</em></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>f</code> or <code>F</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">16<sup>th</sup></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">16</p></td>
</tr>
</tbody>
</table>
</li>
<li>
<p><em>vector-swizzle-selector</em> in a form of <em>vector-swizzle-special-selector</em> shall select:</p>
<div class="openblock">
<div class="content">
<div class="ulist">
<ul>
<li>
<p>if number of components in vector expression is 3, the same components as if number of components of the vector expression was 4 and the 4-th component was undefined.</p>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
If 4-th component is read, the returned value is undefined; all writes to 4-th component shall be discarded.
</td>
</tr>
</table>
</div>
</li>
<li>
<p>otherwise, half of components of <em>vector expression</em> with</p>
<div class="ulist">
<ul>
<li>
<p><code>hi</code> - highest numerical selector values in ascending order (higher half of the vector)</p>
</li>
<li>
<p><code>lo</code> - lowest numerical selector values in ascending order (lower half of the vector)</p>
</li>
<li>
<p><code>even</code> - even numerical selector values in ascending order</p>
</li>
<li>
<p><code>odd</code> - odd numerical selector values in ascending order</p>
</li>
</ul>
</div>
</li>
</ul>
</div>
</div>
</div>
<div class="paragraph">
<p>The following <a href="#special_selector_values">Special selector values</a> table describes special selector values and their numerical equivalents.</p>
</div>
<table id="special_selector_values" class="tableblock frame-all grid-all spread">
<caption class="title">Table 7. Special selector values</caption>
<colgroup>
<col style="width: 25%;">
<col style="width: 25%;">
<col style="width: 25%;">
<col style="width: 25%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Number of components in vector expression</strong></th>
<th class="tableblock halign-left valign-top"><strong>Selector value</strong></th>
<th class="tableblock halign-left valign-top"><strong>Equivalent numerical selector</strong></th>
<th class="tableblock halign-left valign-top"><strong>Number of components in result vector swizzle (swizzle size)</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">2</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>hi</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>s1</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">1</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">3</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>hi</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>s2?</code> <a href="#ftn3">[3]</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">2</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">4</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>hi</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>s23</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">2</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">8</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>hi</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>s4567</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">4</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">16</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>hi</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>s89abcdef</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">8</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">2</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>lo</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>s0</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">1</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">3</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>lo</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>s01</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">2</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">4</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>lo</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>s01</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">2</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">8</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>lo</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>s0123</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">4</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">16</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>lo</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>s01234567</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">8</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">2</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>even</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>s0</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">1</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">3</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>even</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>s02</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">2</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">4</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>even</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>s02</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">2</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">8</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>even</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>s0246</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">4</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">16</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>even</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>s02468ace</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">8</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">2</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>odd</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>s1</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">1</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">3</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>odd</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>s1?</code> <a href="#ftn3">[3]</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">2</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">4</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>odd</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>s13</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">2</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">8</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>odd</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>s1357</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">4</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">16</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>odd</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>s13579bdf</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">8</p></td>
</tr>
</tbody>
</table>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>float8 v = float8(1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f);

auto vv1 = v.hi;   // vv1 = float4(5, 6, 7, 8)
auto vv2 = v.lo;  // vv2 = float4(1, 2, 3, 4)
auto vv3 = v.even; // equivalent of v.s0246; vv3 = float4(1, 3, 5, 7)
auto vv4 = v.odd;  // equivalent of v.s1357; vv4 = float4(2, 4, 6, 8)

auto vv5 = v.odd.even; // vv5 = float2(2, 6)

int3 sv = int3(10, 20, 30);

// ? means undefined value
auto svv1 = sv.hi;  // svv1 = int2(30, ?)
auto svv2 = sv.odd; // svv2 = int2(20, ?)

sv.hi = int2(-123, 456); // write to 4-th channel in sv is discarded;
                         // equivalent of sv.s2 = int2(-123, 456).s0</code></pre>
</div>
</div>
</li>
<li>
<p>The value of a swizzle expression <code>E1.E2</code> is <em>vector-swizzle</em>.
The expression designates group of components of the object designated by expression <code>E1</code>.
Selector <code>E2</code> specifies which components are designated, how many times and in which order.</p>
<div class="paragraph">
<p>Assuming that in the type of a vector expression <code>E1</code> is <code>cv Tn</code> where <code>T</code> denotes type of components and <code>n</code> their number in vector type, the resulting <em>vector-swizzle</em> shall have:</p>
</div>
<div class="openblock">
<div class="content">
<div class="ulist">
<ul>
<li>
<p>scalar type <code>cv T</code> if it is result of a swizzle expression with swizzle size of one or</p>
</li>
<li>
<p>vector type <code>cv Tm</code> if it is result of a swizzle expression with swizzle size of two or more.</p>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
<code>m</code> is a swizzle size.
</td>
</tr>
</table>
</div>
</li>
</ul>
</div>
</div>
</div>
<div class="paragraph">
<p>If <code>E1</code> is an lvalue, then <code>E1.E2</code> is an lvalue; if <code>E1</code> is an xvalue, then <code>E1.E2</code> is an xvalue; otherwise, it is a prvalue.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>long2 v;
const long2  pv = &amp;v;

auto vc1 = pv-&gt;x; // pv-&gt;x is lvalue vector-swizzle of
                  // scalar type: const long
auto vc2 = pv-&gt;rg; // pv-&gt;rg is lvalue vector-swizzle of
                   // vector type: const long2

auto  vc3 = uchar4(1).xxy; // uchar4(1).xxy is prvalue
                           // vector-swizzle
                           // of vector type: uchar3

v.x = long2(1, 2); // ill-formed: cannot assign prvalue of long2
                   // to lvalue vector-swizzle of
                   // scalar type: long - types do not
                   // match</code></pre>
</div>
</div>
</li>
<li>
<p>A <em>vector-swizzle</em> with vector type <code>T</code> shall have the same number of components as number of components of <code>T</code>.
Each component of the vector-swizzle refers to component from <code>E1</code> designated by corresponding value specified in selector <code>E2</code>, assuming that <code>E1.E2</code> is swizzle expression used to create the <em>vector-swizzle</em>.</p>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
First component refers to component from <code>E1</code> selected by first value in selector <code>E2</code>, second - by second value and so on.
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>A <em>vector-swizzle</em> with scalar type <code>T</code> shall behave as value of <code>T</code> and refer to component from <code>E1</code> designated by <code>E2</code>'s value, assuming <code>E1.E2</code> is swizzle expression used to create the <em>vector-swizzle</em>.</p>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
It is similar to reference bounded to value of selected component from <code>E1</code>.
</td>
</tr>
</table>
</div>
</li>
<li>
<p>A <em>vector-swizzle</em> shall have scalar or vector type.
The address-of operator <code>&amp;</code> shall not be applied to <em>vector-swizzle</em>, so there are no pointers to <em>vector-swizzles</em>.
A non-const reference shall not be bound to <em>vector-swizzle</em>.</p>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
If the initializer for a reference of type <code>const T&amp;</code> is lvalue that refers to vector-swizzle, the reference is bound to a temporary initialized to hold the value of the vector-swizzle; the reference is not bound to the vector-swizzle directly.
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>There is no declarator for <em>vector-swizzle</em>.</p>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
Any variable, member or type declaration shall not involve vector-swizzle; vector-swizzle cannot be stored.
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>An <em>alignment-specifier</em> shall not be applied to <em>vector-swizzle</em>.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>float4 v;

auto pv1 = &amp;v; // correct: pv1 points to v
auto pv2 = &amp;v.xy; // ill-formed: address-of operator &amp; is not
                  // allowed on vector-swizzle

const auto &amp;rv1 = v.xx; // correct: refers to temporary value of
                        // float2 type initialized with
                        // value of vector-swizzle
float2 &amp;rv2 = v.xy; // ill-formed: binding to non-const reference
                    // is not allowed</code></pre>
</div>
</div>
</li>
<li>
<p>A result <em>vector-swizzle</em> from swizzle expression <code>E1.E2</code> is modifiable if:</p>
<div class="openblock">
<div class="content">
<div class="ulist">
<ul>
<li>
<p>Vector expression <code>E1</code> is modifiable lvalue and</p>
</li>
<li>
<p>Each component selected by <em>vector-swizzle-selector</em> <code>E2</code> is selected at most once.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="paragraph">
<p>Expression which modifies unmodifiable <em>vector-swizzle</em> is ill-formed.</p>
</div>
<div class="paragraph">
<p>Changes applied to modifiable <em>vector-swizzle</em> are applied to components of <code>E1</code> referred by the <em>vector-swizzle</em> or by its components.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>char4 v;
const char4  cv;

v.yx = char2(33, 45); // correct
v.zzwx = cv; // ill-formed: v.zzwx is not modifiable
             // (repeated components)
cv.zxy = char3(1); // ill-formed: cv.zxy is not modifiable
                   // (cv is const)</code></pre>
</div>
</div>
</li>
<li>
<p>A prvalue for <em>vector-swizzle</em> of <code>T</code> type can be converted to a prvalue of <code>T</code> type.</p>
<div class="paragraph">
<p>This conversion is called <em>swizzle-to-vector</em> conversion.
<em>swizzle-to-vector</em> conversion shall be applied if necessary in all contexts where lvalue-to-rvalue conversions are allowed.</p>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
swizzle-to-vector conversion shall be applied after lvalue-to-rvalue conversions and before any arithmetic conversions.
</td>
</tr>
</table>
</div>
</li>
<li>
<p>A glvalue <em>vector-swizzle</em> of scalar or vector type <code>T</code> can be used in all expressions where glvalue of type <code>T</code> can be used except those which do not meet requirements and restrictions for <em>vector-swizzle</em>.</p>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
For example the address-of operator <code>&amp;</code> and binding to non-const reference are one of them.
</td>
</tr>
</table>
</div>
</li>
<li>
<p>A swizzle expression <code>E1.E2</code> where <code>E2</code> selects all components of vector expression <code>E1</code> in order of their numerical selector values is called identity swizzle.</p>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
Components selected in <code>E2</code> are not repeated.
</td>
</tr>
</table>
</div>
</li>
<li>
<p>Additional changes to C++ specification:</p>
<div class="ulist">
<ul>
<li>
<p><em>[ISO/IEC 14882:2014: expr.static.cast, ch. 5.2.9 (3)]</em> static_cast: If value is not a bit-field or a <em>vector-swizzle</em>, [&#8230;&#8203;]; if value is a <em>vector-swizzle</em>, the <em>lvalue-to-rvalue</em> conversion and <em>swizzle-to-vector</em> conversion are applied to the <em>vector-swizzle</em> and the resulting prvalue is used as the expression of the <code>static_cast</code> for the remainder of this section; otherwise, [&#8230;&#8203;]</p>
</li>
<li>
<p><em>[ISO/IEC 14882:2014: expr.unary.op, ch. 5.3.1 (5)]</em> Unary operators: [&#8230;&#8203;] The operand of <code>&amp;</code> shall not be a bit-field or a <em>vector-swizzle</em>.</p>
</li>
<li>
<p><em>[ISO/IEC 14882:2014: expr.pre.incr, ch. 5.3.2 (1)]</em> Increment and decrement: The result is the updated operand; it is an lvalue, and it is a bit-field or a <em>vector-swizzle</em> if the operand is respectively a bit-field or a <em>vector-swizzle</em>.</p>
</li>
<li>
<p><em>[ISO/IEC 14882:2014: expr.sizeof, ch. 5.3.3 (2)]</em> Sizeof: [&#8230;&#8203;] When applied to a <em>vector-swizzle</em> which has type <code>T</code>, the result is the same as result from <code>sizeof(T)</code>.</p>
</li>
<li>
<p><em>[ISO/IEC 14882:2014: expr.cond, ch. 5.16 (2.1)]</em> Conditional operator: - [&#8230;&#8203;] The conditional-expression is a bit-field or a <em>vector-swizzle</em> if that operand is respectively a bit-field or a <em>vector-swizzle</em>.</p>
</li>
<li>
<p><em>[ISO/IEC 14882:2014: expr.cond, ch. 5.16 (4)]</em> Conditional operator: If the second and third operands are glvalues of the same value category and have the same type, the result is of that type and value category and it is a bit-field if the second or the third operand is a bit-field, or if both are bit-fields.
The result is also a <em>vector-swizzle</em> if the second or the third operand is a <em>vector-swizzle</em>, or if both are <em>vector-swizzles</em>.</p>
</li>
</ul>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
An operand is converted to vector-swizzle if required by applying identity swizzle expression to it.
</td>
</tr>
</table>
</div>
<div class="ulist">
<ul>
<li>
<p><em>[ISO/IEC 14882:2014: expr.ass, ch. 5.18 (1)]</em> Assignment and compound assignment operators: The result in all cases is a bit-field or a <em>vector-swizzle</em> if the left operand is respectively a bit-field or a <em>vector-swizzle</em>.</p>
</li>
<li>
<p><em>[ISO/IEC 14882:2014: expr.comma, ch. 5.19 (1)]</em> Comma operator: The type and value of the result are the type and value of the right operand; the result is of the same value category as its right operand, and is a bit-field if its right operand is a glvalue and a bit-field, and is a <em>vector-swizzle</em> its right operand is a glvalue and a <em>vector-swizzle</em>.</p>
</li>
<li>
<p><em>[ISO/IEC 14882:2014: dcl.type.simple, ch. 7.1.6.2 (4, 4.1)]</em> Simple type specifiers: For an expression e, the type denoted by decltype(e) is defined as follows:</p>
<div class="ulist">
<ul>
<li>
<p>if e is an unparenthesized id-expression or an unparenthesized class member access (5.2.5) or unparenthesized swizzle expression, <code>decltype(e)</code> is the type of the entity named by e. If there is no such entity, or if e names a set of overloaded functions, the program is ill-formed.</p>
</li>
</ul>
</div>
</li>
</ul>
</div>
</li>
</ol>
</div>
</div>
<div class="sect4">
<h5 id="vector-constructors">Vector Constructors</h5>
<div class="paragraph">
<p>Vector constructors are defined to initialize a vector data type from a list of scalar or vectors.
The forms of the constructors that are available is the set of possible argument lists for which all arguments have the same element type as the result vector, and the total number of elements is equal to the number of elements in the result vector.
In addition, a form with a single scalar of the same type as the element type of the vector is available.</p>
</div>
<div class="paragraph">
<p>For example, the following forms are available for <code>float4</code>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>float4( float, float, float, float )
float4( float2, float, float )
float4( float, float2, float )
float4( float, float, float2 )
float4( float2, float2 )
float4( float3, float )
float4( float, float3 )
float4( float )

float4{ float, float, float, float }
float4{ float2, float, float }
float4{ float, float2, float }
float4{ float, float, float2 }
float4{ float2, float2 }
float4{ float3, float }
float4{ float, float3 }
float4{ float }</code></pre>
</div>
</div>
<div class="paragraph">
<p>Operands are evaluated by standard rules for function evaluation, except that implicit scalar-to-vector conversion shall not occur.
The order in which the operands are evaluated is undefined.
The operands are assigned to their respective positions in the result vector as they appear in memory order.
That is, the first element of the first operand is assigned to result.x, the second element of the first operand (or the first element of the second operand if the first operand was a scalar) is assigned to result.y, etc.
In the case of the form that has a single scalar operand, the operand is replicated across all lanes of the vector.</p>
</div>
<div class="paragraph">
<p>Examples:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>float4 f = float4(1.0f, 2.0f, 3.0f, 4.0f);

uint4  u = uint4(1); // u will be (1, 1, 1, 1).

float4 f = float4(float2(1.0f, 2.0f),
                  float2(3.0f, 4.0f));

float4 f = float4(1.0f, float2(2.0f, 3.0f), 4.0f);

float4 f = float4(1.0f, 2.0f); // error

int4 i = (int4)(1, 2, 3, 4); // warning, vector literals (from OpenCL C) are
                             // not part of OpenCL C++,
                             // this expression will be evaluated to (int4)4,
                             // and i will be (4, 4, 4, 4)</code></pre>
</div>
</div>
</div>
<div class="sect4">
<h5 id="vector-types-and-usual-arithmetic-conversions">Vector Types and Usual Arithmetic Conversions</h5>
<div class="paragraph">
<p>Many operators that expect operands of arithmetic type cause conversions and yield result types in a similar way.
The purpose is to determine a common real type for the operands and result.
For the specified operands, each operand is converted, without change of type domain, to a type whose corresponding real type is the common real type.
For this purpose, all vector types shall be considered to have higher conversion ranks than scalars.
Unless explicitly stated otherwise, the common real type is also the corresponding real type of the result, whose type domain is the type domain of the operands if they are the same, and complex otherwise.
This pattern is called the usual arithmetic conversions.
If the operands are of more than one vector type, then an error shall occur.
Implicit conversions between vector types are not permitted, per the <a href="#implicit-type-conversions"><em>Implicit Type Conversions</em></a> section.</p>
</div>
<div class="paragraph">
<p>Otherwise, if there is only a single vector type, and all other operands are scalar types, the scalar types are converted to the type of the vector element, then widened into a new vector containing the same number of elements as the vector, by duplication of the scalar value across the width of the new vector.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="alignment-of-types">2.1.3. Alignment of Types</h4>
<div class="paragraph">
<p>A data item declared to be a data type in memory is always aligned to the size of the data type in bytes.
For example, a <code>float4</code> variable will be aligned to a 16-byte boundary, a <code>char2</code> variable will be aligned to a 2-byte boundary.</p>
</div>
<div class="paragraph">
<p>For 3-component vector data types, the size of the data type is <code>4 * sizeof(component)</code>.
This means that a 3-component vector data type will be aligned to a <code>4 * sizeof(component)</code> boundary.
The <code>vload3</code> and <code>vstore3</code> built-in functions can be used to read and write, respectively, 3-component vector data types from an array of packed scalar data type.</p>
</div>
<div class="paragraph">
<p>A built-in data type that is not a power of two bytes in size must be aligned to the next larger power of two.
This rule applies to built-in types only, not structs or unions.</p>
</div>
<div class="paragraph">
<p>The OpenCL C++ compiler is responsible for aligning data items to the appropriate alignment as required by the data type.
For arguments to a kernel function declared to be a pointer to a data type, the OpenCL compiler can assume that the pointee is always appropriately aligned as required by the data type.
The behavior of an unaligned load or store is undefined, except for the <code>vload<em>n</em></code>, <code>vload_half<em>n</em></code>, <code>vstore<em>n</em></code>, and <code>vstore_half<em>n</em></code> functions defined in the <a href="#vector-data-load-and-store-functions"><em>Vector Data Load and Store Functions</em></a> section.
The vector load functions can read a vector from an address aligned to the element type of the vector.
The vector store functions can write a vector to an address aligned to the element type of the vector.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="keywords">2.2. Keywords</h3>
<div class="paragraph">
<p>The following names are reserved for use as keywords in OpenCL C++ and shall not be used otherwise.</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Names reserved as keywords by C++14.</p>
</li>
<li>
<p>OpenCL C++ data types defined in <a href="#device_builtin_scalar_data_types">Device built-in scalar data types</a> and <a href="#device_builtin_vector_data_types">Device built-in vector data types</a> tables.</p>
</li>
<li>
<p>Function qualifiers: <code>__kernel</code> and <code>kernel</code>.</p>
</li>
<li>
<p>Access qualifiers: <code>__read_only</code>, <code>read_only</code>, <code>\__write_only</code>, <code>write_only</code>, <code>__read_write</code> and <code>read_write</code>.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="implicit-type-conversions">2.3. Implicit Type Conversions</h3>
<div class="paragraph">
<p>Implicit conversions between scalar built-in types defined in <a href="#device_builtin_scalar_data_types">Device built-in scalar data types</a> table (except <code>void</code>) are supported.
When an implicit conversion is done, it is not just a re-interpretation of the expression&#8217;s value, but a conversion of that value to an equivalent value in the new type.
For example, the integer value 5 will be converted to the floating-point value 5.0.</p>
</div>
<div class="paragraph">
<p>Implicit conversions from a scalar type to a vector type are allowed.
In this case, the scalar may be subject to the usual arithmetic conversion to the element type used by the vector.
The scalar type is then widened to the vector.
If conversion from a scalar type to the element type used by the vector result in truncation or precision loss, the program is ill-formed, with the exception that:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>if scalar value is prvalue of literal type and the value is representable as the element type, the conversion should take place without error (warnings may be generated in this case).</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Implicit conversions between built-in vector data types are disallowed.
Explicit conversions described in the <a href="#conversions-library"><em>Conversions Library</em></a> section must be used instead.</p>
</div>
<div class="paragraph">
<p>Implicit conversions for pointer types follow the rules described in the C++14 specification.</p>
</div>
</div>
<div class="sect2">
<h3 id="expressions">2.4. Expressions</h3>
<div class="paragraph">
<p>All expressions behave as described in <em>[ISO/IEC 14882:2014: expr, ch. 5]</em> with the the restrictions described in the <a href="#opencl_cxx_restrictions"><em>OpenCL C++ Restrictions</em></a> section and the following changes:</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>All built-in operators have their vector counterparts.</p>
</li>
<li>
<p>All built-in vector operations, apart from conditional operator, are performed component-wise.</p>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
Conditional operator logical-or-expression cannot be of vector type.
</td>
</tr>
</table>
</div>
</li>
<li>
<p>Built in operators taking two vectors require that vectors have the same number of components, otherwise expression is ill-formed.</p>
</li>
<li>
<p>Vector swizzle operations meet extra requirements and restrictions described in the <a href="#vector-component-access"><em>Vector Component Access</em></a> section.</p>
</li>
<li>
<p>Implicit and explicit casts between vector types are not legal.
The conversion between vector types can be done only using <code>convert_cast</code> from the <a href="#conversions-library"><em>Conversions Library</em></a> section.</p>
<div class="paragraph">
<p>Examples:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>int4   i;
uint4  u = (uint4) i; // not allowed

float4 f;
int4   i = static_cast&lt;int4&gt;(f); // not allowed

float4 f;
int8   i = (int8) f; // not allowed</code></pre>
</div>
</div>
</li>
<li>
<p>Implicit and explicit casts from scalar to vector types are supported.</p>
</li>
<li>
<p>All built-in arithmetic operators return result of the same built-in type (integer or floating-point) as the type of the operands, after operand type conversion.
After conversion, the following cases are valid:</p>
<div class="olist loweralpha">
<ol class="loweralpha" type="a">
<li>
<p>The two operands are scalars.  In this case, the operation is applied, resulting in a scalar.</p>
</li>
<li>
<p>One operand is a scalar, and the other is a vector.
In this case, the scalar may be subject to the usual arithmetic conversion to the element type used by the vector operand.
The scalar type is then widened to a vector that has the same number of components as the vector operand.
The operation is done component-wise resulting in the same size vector.</p>
</li>
<li>
<p>The two operands are vectors of the same type.
In this case, the operation is done component-wise resulting in the same size vector.</p>
</li>
</ol>
</div>
</li>
<li>
<p>The built-in relational and equality operators equal (<code>==</code>), not equal (<code>!=</code>), greater than (<code>&gt;</code>), greater than or equal (<code>&gt;=</code>), less than (<code>&lt;</code>), and less than or equal (<code>&lt;=</code>) operate on scalar and vector types.
All relational and equality operators result in a boolean (scalar or vector) type.
After operand type conversion, the following cases are valid:</p>
<div class="olist loweralpha">
<ol class="loweralpha" type="a">
<li>
<p>The two operands are scalars.
In this case, the operation is applied, resulting in a boolean scalar.</p>
</li>
<li>
<p>One operand is a scalar, and the other is a vector.
In this case, the scalar may be subject to the usual arithmetic conversion to the element type used by the vector operand.
The scalar type is then widened to a vector that has the same number of components as the vector operand.
The operation is done component-wise resulting in the same size boolean vector.</p>
</li>
<li>
<p>The two operands are vectors of the same type.
In this case, the operation is done component-wise resulting in the same size boolean vector.</p>
</li>
</ol>
</div>
</li>
<li>
<p>The built-in bitwise operators and (<code>&amp;</code>), or (<code>|</code>), exclusive or (<code>^</code>), not (<code>~</code>) operate on all scalar and vector built-in types except the built-in scalar and vector float types.
For vector built-in types, the operators are applied component-wise.
If one operand is a scalar and the other is a vector, the scalar may be subject to the usual arithmetic conversion to the element type used by the vector operand.
The scalar type is then widened to a vector that has the same number of components as the vector operand.
The operation is done component-wise resulting in the same size vector.</p>
</li>
<li>
<p>The built-in logical operators and (<code>&amp;&amp;</code>), or (<code>||</code>) operate on all scalar and vector built-in types.
For scalar built-in types the logical operator and (<code>&amp;&amp;</code>) will only evaluate the right hand operand if the left hand operand compares unequal to <code>false</code>.
For scalar built-in types the logical operator or (<code>||</code>) will only evaluate the right hand operand if the left hand operand compares equal to <code>false</code>.
For built-in vector types, both operands are evaluated and the operators are applied component-wise.
If one operand is a scalar and the other is a vector, the scalar may be subject to the usual arithmetic conversion to the element type used by the vector operand.
The scalar type is then widened to a vector that has the same number of components as the vector operand.
The operation is done component-wise resulting in the same size vector.</p>
<div class="paragraph">
<p>The result is a scalar or vector boolean.</p>
</div>
</li>
<li>
<p>The built-in logical unary operator not (<code>!</code>) operates on all scalar and vector built-in types.
For built-in vector types, the operators are applied component-wise.</p>
<div class="paragraph">
<p>The result is a scalar or vector boolean.</p>
</div>
</li>
<li>
<p>The built-in conditional operator (<code>?:</code>) described in <em>[ISO/IEC 14882:2014: expr, ch. 5.2]</em> operates on three expressions (<code>exp1 ? exp2 : exp3</code>).
This operator evaluates the first expression <code>exp1</code>, which must be a scalar boolean result.
If the result is <em>true</em> it selects to evaluate the second expression, otherwise it selects to evaluate the third expression.
The second and third expressions can be any type, as long their types match, or there is a conversion in the <a href="#implicit-type-conversions"><em>Implicit Type Conversions</em></a> section that can be applied to one of the expressions to make their types match, or one is a vector and the other is a scalar and the scalar may be subject to the usual arithmetic conversion to the element type used by the vector operand and widened to the same type as the vector type.</p>
<div class="paragraph">
<p>This resulting matching type is the type of the entire expression.</p>
</div>
</li>
<li>
<p>The built-in shift operators are supported for built-in vector types except the built-in scalar and vector float types.
For built-in vector types, the operators are applied component-wise.
For the right-shift (<code>&gt;&gt;</code>), left-shift (<code>&lt;&lt;</code>) operators, the rightmost operand must be a scalar if the first operand is a scalar, and the rightmost operand can be a vector or scalar if the first operand is a vector.
The result of <code>E1 &lt;&lt; E2</code> is <code>E1</code> left-shifted by <code>log2(N)</code> least significant bits in <code>E2</code> viewed as an unsigned integer value, where <code>N</code> is the number of bits used to represent the data type of <code>E1</code> after integer promotion, if <code>E1</code> is a scalar, or the number of bits used to represent the type of <code>E1</code> elements, if <code>E1</code> is a vector.
The vacated bits are filled with zeros.
The result of <code>E1 &gt;&gt; E2</code> is <code>E1</code> right-shifted by <code>log2(N)</code> least significant bits in <code>E2</code> viewed as an unsigned integer value, where <code>N</code> is the number of bits used to represent the data type of <code>E1</code> after integer promotion, if <code>E1</code> is a scalar, or the number of bits used to represent the type of <code>E1</code> elements, if <code>E1</code> is a vector.</p>
<div class="paragraph">
<p>If <code>E1</code> has an unsigned type or if <code>E1</code> has a signed type and a nonnegative value, the vacated bits are filled with zeros.</p>
</div>
<div class="paragraph">
<p>If <code>E1</code> has a signed type and a negative value, the vacated bits are filled with ones.</p>
</div>
</li>
</ol>
</div>
</div>
<div class="sect2">
<h3 id="address-spaces">2.5. Address Spaces</h3>
<div class="paragraph">
<p>The OpenCL C++ kernel language doesn&#8217;t introduce any explicit named address spaces, but they are implemented as part of the standard library described in the <a href="#address-spaces-library"><em>Address Spaces Library</em></a> section.
There are 4 types of memory supported by all OpenCL devices: global, local, private and constant.
The developers should be aware of them and know their limitations.</p>
</div>
<div class="sect3">
<h4 id="implicit-storage-classes">2.5.1. Implicit Storage Classes</h4>
<div class="paragraph">
<p>The OpenCL C++ compiler can deduce an address space based on the scope where an object is declared:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>If a variable is declared in program scope, with <code>static</code> or <code>extern</code> specifier and the standard library storage class (see the <a href="#address-spaces-library"><em>Address Spaces Library</em></a> section) is not used, the variable is allocated in the global memory of a device.</p>
</li>
<li>
<p>If a variable is declared in function scope, without <code>static</code> specifier and the standard library storage class (see the <a href="#address-spaces-library"><em>Address Spaces Library</em></a> section) is not used, the variable is allocated in the private memory of a device.</p>
</li>
</ul>
</div>
</div>
<div class="sect3">
<h4 id="memory-pools">2.5.2. Memory Pools</h4>
<div class="sect4">
<h5 id="global">Global</h5>
<div class="paragraph">
<p>The variables are allocated from the global memory pool if they meet the criteria described in the <a href="#implicit-storage-classes"><em>Implicit Storage Classes</em></a> section for the implicit global storage class or they are declared using explicit global storage class from the standard library (see the <a href="#global-class"><em>global class</em></a> section).</p>
</div>
<div class="paragraph">
<p>The global memory objects can be:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Passed by pointer or reference to a kernel from the host.
In such case the host manages their visibility, lifetime and a type of allocation.</p>
</li>
<li>
<p>Declared in the program source (<code>static</code>, <code>extern</code> and program scope global variables).
In such case they are:</p>
<div class="ulist">
<ul>
<li>
<p>the coarse-grained SVM allocations that can be usable by multiple kernels on the same device safely</p>
</li>
<li>
<p>not shared across devices</p>
</li>
<li>
<p>not accessible from the host</p>
</li>
<li>
<p>their lifetime is the same as a program</p>
</li>
</ul>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>The non-trivial constructors and destructors are supported with limitations described in the <a href="#memory-initialization"><em>Memory initialization</em></a> section.</p>
</div>
<div class="paragraph">
<p>The constructors of objects in global memory are executed before the first kernel execution in the program.
The destructors executed at program release time.</p>
</div>
<div class="paragraph">
<p>The additional restrictions may apply if the explicit global storage class is used.
Please refer to the <a href="#restrictions-2"><em>Restrictions</em></a> section for more details.</p>
</div>
</div>
<div class="sect4">
<h5 id="local">Local</h5>
<div class="paragraph">
<p>The local variables can be only allocated in a program using the explicit local storage class from the standard library (see the <a href="#local-class"><em>local class</em></a> section).
This type of memory is allocated for each work-group executing the kernel and exist only for the lifetime of the work-group executing the kernel.</p>
</div>
<div class="paragraph">
<p>The non-trivial constructors and destructors are supported with limitations described in the <a href="#memory-initialization"><em>Memory initialization</em></a> section.</p>
</div>
<div class="paragraph">
<p>The constructors of objects in local memory are executed by one work-item before the kernel body execution.
The destructors are executed by one work-item after the kernel body execution.</p>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
initialization of local variables can cause performance degradation.
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>The additional restrictions may apply if the explicit local storage class is used.
Please refer to the <a href="#restrictions-2"><em>Restrictions</em></a> section for more details.</p>
</div>
</div>
<div class="sect4">
<h5 id="private">Private</h5>
<div class="paragraph">
<p>The variables are allocated from the private memory pool if they meet the criteria described in <a href="#implicit-storage-classes">Implicit Storage Classes</a> for the implicit private storage class or they were declared using explicit private storage class from the standard library (see the <a href="#priv-class"><em>priv class</em></a> section).</p>
</div>
<div class="paragraph">
<p>The non-trivial constructors and destructors are supported.</p>
</div>
<div class="paragraph">
<p>The additional restrictions may apply if the explicit priv storage class is used.
Please refer to the <a href="#restrictions-2"><em>Restrictions</em></a> section for more details.</p>
</div>
</div>
<div class="sect4">
<h5 id="constant">Constant</h5>
<div class="paragraph">
<p>The constant variables can be only allocated in a program using the explicit constant storage class from the standard library (see the <a href="#constant-class"><em>constant class</em></a> section).
The variables declared using the <code>constant&lt;T&gt;</code> class refer to memory objects allocated from the global memory pool and which are accessed inside a kernel(s) as read-only variables.
These read-only variables can be accessed by all (global) work-items of the kernel during its execution.</p>
</div>
<div class="paragraph">
<p>The constant objects must be constructible at compile time, they cannot have any user defined constructors, destructors, methods and operators.
Otherwise behavior is undefined.</p>
</div>
<div class="paragraph">
<p>The additional restrictions may apply if the explicit constant storage class is used.
Please refer to the <a href="#restrictions-2"><em>Restrictions</em></a> section for more details.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="pointers-and-references">2.5.3. Pointers and references</h4>
<div class="paragraph">
<p>All C++ pointers and references point to an object in the unnamed/generic address space if the explicit address space pointer classes are not used.
The explicit address space pointer classes are implemented as a part of the standard library and they are described in the <a href="#explicit-address-space-pointer-classes"><em>Explicit address space pointer classes</em></a> section.</p>
</div>
</div>
<div class="sect3">
<h4 id="memory-initialization">2.5.4. Memory initialization</h4>
<table class="tableblock frame-all grid-all spread">
<caption class="title">Table 8. Supported memory initializers</caption>
<colgroup>
<col style="width: 13%;">
<col style="width: 12%;">
<col style="width: 25%;">
<col style="width: 25%;">
<col style="width: 25%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Storage memory (address space)</strong></th>
<th class="tableblock halign-left valign-top"><strong>Scope type</strong></th>
<th class="tableblock halign-left valign-top" colspan="3"><strong>Initialization type</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">uninitialized (no constructor or trivial default constructor)
</p><p class="tableblock">  <strong>AND</strong>
</p><p class="tableblock">  trivial destructor</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">initialized by constant expression
</p><p class="tableblock">  <strong>AND</strong>
</p><p class="tableblock">  trivial destructor</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">custom initializer
</p><p class="tableblock">  <strong>OR</strong>
</p><p class="tableblock">  custom destructor</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top" rowspan="4"><p class="tableblock">local</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">program</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">supported (not zero-pre-init)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">not supported</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">not supported</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">kernel</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">supported
</p><p class="tableblock">  Variables are not zero-pre-initialized.
</p><p class="tableblock">  Optional zero-pre-initialization possible using switch: -cl-zero-init-local-mem-vars</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">supported
</p><p class="tableblock">  Variables are not zero-pre-initialized.
</p><p class="tableblock">  Materialize temporary expressions are not supported.
</p><p class="tableblock">  Optional zero-pre-initialization possible using switch: -cl-zero-init-local-mem-vars</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">supported
</p><p class="tableblock">  Variables are not zero-pre-initialized.
</p><p class="tableblock">  Materialize temporary expressions are not supported.
</p><p class="tableblock">  Optional zero-pre-initialization possible using switch: -cl-zero-init-local-mem-vars</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">local (non-kernel)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">not supported</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">not supported</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">not supported</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">class (static data member)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">supported
</p><p class="tableblock">  Variables are not zero-pre-initialized.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">not supported</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">not supported</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top" rowspan="3"><p class="tableblock">global</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">program</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">supported
</p><p class="tableblock">  Variables are zero-pre-initialized.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">supported
</p><p class="tableblock">  Variables are zero or constexpr-pre-initialized.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">supported</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">kernel / local</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">supported
</p><p class="tableblock">  Variables are zero-pre-initialized.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">supported
</p><p class="tableblock">  Variables are zero or constexpr-pre-initialized.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">not supported</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">class (static data member)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">supported
</p><p class="tableblock">  Variables are zero-pre-initialized.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">supported
</p><p class="tableblock">  Variables are zero or constexpr-pre-initialized.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">not supported</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">constant</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">(any)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">supported
</p><p class="tableblock">  Variables are zero-pre-initialized.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">supported
</p><p class="tableblock">  Variables are zero or constexpr-pre-initialized.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">not supported</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">private</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">(any)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">supported</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">supported</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">supported</p></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="sect2">
<h3 id="kernel-functions">2.6. Kernel Functions</h3>
<div class="sect3">
<h4 id="function-qualifiers">2.6.1. Function Qualifiers</h4>
<div class="paragraph">
<p>The <code>kernel</code> (or <code>__kernel</code>) qualifier declares a function to be a kernel that can be executed by an application on an OpenCL device(s).
The following rules apply to functions that are declared with this qualifier:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>It can be executed on the device only.</p>
</li>
<li>
<p>It can be enqueued by the host or on the device.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The <code>kernel</code> and <code>__kernel</code> names are reserved for use as functions qualifiers and shall not be used otherwise.</p>
</div>
</div>
<div class="sect3">
<h4 id="restrictions">2.6.2. Restrictions</h4>
<div class="sect4">
<h5 id="kernel-function-restrictions">Kernel Function Restrictions</h5>
<div class="ulist">
<ul>
<li>
<p>Kernel functions are implicitly declared as <code>extern "C"</code>.</p>
</li>
<li>
<p>Kernel functions cannot be overloaded.</p>
</li>
<li>
<p>Kernel functions cannot be template functions.</p>
</li>
<li>
<p>Kernel functions cannot be called by other kernel functions.</p>
</li>
<li>
<p>Kernel functions cannot have parameters specified with default values.</p>
</li>
<li>
<p>Kernel functions must have the return type <code>void</code>.</p>
</li>
<li>
<p>Kernel functions cannot be called <code>main</code>.</p>
</li>
</ul>
</div>
</div>
<div class="sect4">
<h5 id="kernel-parameter-restrictions">Kernel Parameter Restrictions</h5>
<div class="paragraph">
<p>The OpenCL host compiler and the OpenCL C++ kernel language device compiler can have different requirements for i.e. type sizes, data packing and alignment, etc., therefore the kernel parameters must meet the following requirements:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Types passed by pointer or reference must be standard layout types.</p>
</li>
<li>
<p>Types passed by value must be POD types.</p>
</li>
<li>
<p>Types cannot be declared with the built-in <code>bool</code> scalar type, vector type or a class that contain <code>bool</code> scalar or vector type fields.</p>
</li>
<li>
<p>Types cannot be structures or classes with bit field members.</p>
</li>
<li>
<p>Marker types must be passed by value (see the <a href="#marker-types"><em>Marker Types</em></a> section).</p>
</li>
<li>
<p><code>global</code>, <code>constant</code>, and <code>local</code> storage classes can be passed only by reference or pointer. More details in the <a href="#explicit-address-space-storage-classes"><em>Explicit address space storage classes</em></a> section.</p>
</li>
<li>
<p>Pointers and references must point to one of the following address spaces: global, local or constant.</p>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="preprocessor-directives-and-macros">2.7. Preprocessor Directives and Macros</h3>
<div class="paragraph">
<p>The preprocessing directives defined by the C++14  specification (<em>section 16</em>) are supported.</p>
</div>
<div class="paragraph">
<p>The <code>#pragma</code> directive is described as:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#pragma pp-tokensopt new-line</code></pre>
</div>
</div>
<div class="paragraph">
<p>A <code>#pragma</code> directive where the preprocessing token <code>OPENCL</code> (used instead of <code>STDC</code>) does not immediately follow pragma in the directive (prior to any macro replacement) causes the implementation to behave in an implementation-defined manner.
The behavior might cause translation to fail or cause the translator or the resulting program to behave in a non-conforming manner.
Any such pragma that is not recognized by the implementation is ignored.
If the preprocessing token <code>OPENCL</code> does immediately follow pragma in the directive (prior to any macro replacement), then no macro replacement is performed on the directive, and the directive shall have one of the following forms whose meanings are described elsewhere:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#pragma OPENCL FP_CONTRACT on-off-switch // on-off-switch: one of ON OFF DEFAULT

#pragma OPENCL EXTENSION extensionname : behavior
#pragma OPENCL EXTENSION all : behavior</code></pre>
</div>
</div>
<div class="paragraph">
<p>The following predefined macro names are available.</p>
</div>
<div class="paragraph">
<p><code>__FILE__</code> The presumed name of the current source file (a character string literal).</p>
</div>
<div class="paragraph">
<p><code>__LINE__</code> The presumed line number (within the current source file) of the current source line (an integer constant).</p>
</div>
<div class="paragraph">
<p><code>__OPENCL_CPP_VERSION__</code> substitutes an integer reflecting the OpenCL C++ version specified when compiling the OpenCL C++ program.
The version of OpenCL C++ described in this document will have <code>__OPENCL_CPP_VERSION__</code> substitute the integer <code>100</code>.</p>
</div>
<div class="paragraph">
<p>The macro names defined by the C++14 specification in <em>section 16</em> but not currently supported by OpenCL are reserved for future use.</p>
</div>
<div class="paragraph">
<p>The predefined identifier <code>__func__</code> is available.</p>
</div>
</div>
<div class="sect2">
<h3 id="attribute-qualifiers">2.8. Attribute Qualifiers</h3>
<div class="paragraph">
<p>The <code>[[ ]]</code> attribute qualifier syntax allows additional attributes to be attached to types, variables, kernel functions, kernel parameters, or loops.</p>
</div>
<div class="paragraph">
<p>Some attributes change the semantics of the program and are required for program correctness.
Other attributes are optional hints that may be ignored without affecting program correctness.
Nevertheless, frontend compilers that compile to an intermediate representation are required to faithfully pass optional attribute hints with an intermediate representation to device compilers for further processing.</p>
</div>
<div class="sect3">
<h4 id="optional-type-attributes">2.8.1. Optional Type Attributes</h4>
<div class="paragraph">
<p><code>[[ ]]</code> attribute syntax can be used to specify special attributes of enum, class and union types when you define such types.
Two attributes are currently defined for types: <code>aligned</code>, and <code>packed</code>.</p>
</div>
<div class="paragraph">
<p>You may specify type attributes in an enum, class or union type declaration or definition, or for other types in a typedef declaration.</p>
</div>
<div class="paragraph">
<p>For an enum, class or union type, you may specify attributes either between the enum, class or union tag and the name of the type, or just past the closing curly brace of the definition.
The former syntax is preferred.</p>
</div>
<div class="sect4">
<h5 id="claligned-alignment">cl::aligned (alignment)</h5>
<div class="paragraph">
<p>This attribute specifies a minimum alignment (in bytes) for variables of the specified type.
For example, the declarations:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>struct S { short f[3]; } [[cl::aligned(8)]];
typedef int more_aligned_int [[cl::aligned(8)]];</code></pre>
</div>
</div>
<div class="paragraph">
<p>force the compiler to insure (as far as it can) that each variable whose type is struct S or <code>more_aligned_int</code> will be allocated and aligned <em>at least</em> on a 8-byte boundary.</p>
</div>
<div class="paragraph">
<p>Note that the alignment of any given struct or union type is required by the C++ standard to be at least a perfect multiple of the lowest common multiple of the alignments of all of the members of the struct or union in question and must also be a power of two.
This means that you <em>can</em> effectively adjust the alignment of a class or union type by attaching an aligned attribute to any one of the members of such a type, but the notation illustrated in the example above is a more obvious, intuitive, and readable way to request the compiler to adjust the alignment of an entire class or union type.</p>
</div>
<div class="paragraph">
<p>As in the preceding example, you can explicitly specify the alignment (in bytes) that you wish the compiler to use for a given class or union type.
Alternatively, you can leave out the alignment factor and just ask the compiler to align a type to the maximum useful alignment for the target machine you are compiling for.
For example, you could write:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>struct S { short f[3]; } [[cl::aligned]];</code></pre>
</div>
</div>
<div class="paragraph">
<p>Whenever you leave out the alignment factor in an aligned attribute specification, the compiler automatically sets the alignment for the type to the largest alignment which is ever used for any data type on the target machine you are compiling for.
In the example above, the size of each short is 2 bytes, and therefore the size of the entire struct S type is 6 bytes.
The smallest power of two which is greater than or equal to that is 8, so the compiler sets the alignment for the entire struct S type to 8 bytes.</p>
</div>
<div class="paragraph">
<p>Note that the effectiveness of aligned attributes may be limited by inherent limitations of the OpenCL device and compiler.
For some devices, the OpenCL compiler may only be able to arrange for variables to be aligned up to a certain maximum alignment.
If the OpenCL compiler is only able to align variables up to a maximum of 8 byte alignment, then specifying <code>aligned(16)</code> will still only provide you with 8 byte alignment.
See your platform-specific documentation for further information.</p>
</div>
<div class="paragraph">
<p>The aligned attribute can only increase the alignment; but you can decrease it by specifying packed as well.
See below.</p>
</div>
</div>
<div class="sect4">
<h5 id="clpacked">cl::packed</h5>
<div class="paragraph">
<p>This attribute, attached to class or union type definition, specifies that each member of the structure or union is placed to minimize the memory required.
When attached to an enum definition, it indicates that the smallest integral type should be used.</p>
</div>
<div class="paragraph">
<p>Specifying this attribute for class and union types is equivalent to specifying the packed attribute on each of the structure or union members.</p>
</div>
<div class="paragraph">
<p>In the following example struct my_packed_struct&#8217;s members are packed closely together, but the internal layout of its s member is not packed.
To do that, struct <code>my_unpacked_struct</code> would need to be packed, too.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>struct my_unpacked_struct
{
  char c;
  int i;
};

struct [[cl::packed]] my_packed_struct
{
  char c;
  int  i;
  struct my_unpacked_struct s;
};</code></pre>
</div>
</div>
<div class="paragraph">
<p>You may only specify this attribute on the definition of an enum, class or union, not on a typedef which does not also define the enumerated type, structure or union.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="optional-variable-attributes">2.8.2. Optional Variable Attributes</h4>
<div class="paragraph">
<p>[[ ]] syntax allows you to specify special attributes of variables or structure fields.
The following attribute qualifiers are currently defined:</p>
</div>
<div class="sect4">
<h5 id="claligned">cl::aligned</h5>
<div class="paragraph">
<p>This attribute specifies a minimum alignment for the variable or class field, measured in bytes.
For example, the declaration:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>int x [[cl::aligned(16)]] = 0;</code></pre>
</div>
</div>
<div class="paragraph">
<p>causes the compiler to allocate the global variable <code>x</code> on a 16-byte boundary.
The alignment value specified must be a power of two.</p>
</div>
<div class="paragraph">
<p>You can also specify the alignment of structure fields.
For example, to create double-word aligned int pair, you could write:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>struct foo { int x[2] [[cl::aligned(8)]]; };</code></pre>
</div>
</div>
<div class="paragraph">
<p>This is an alternative to creating a union with a double member that forces the union to be double-word aligned.</p>
</div>
<div class="paragraph">
<p>As in the preceding examples, you can explicitly specify the alignment (in bytes) that you wish the compiler to use for a given variable or structure field.
Alternatively, you can leave out the alignment factor and just ask the compiler to align a variable or field to the maximum useful alignment for the target machine you are compiling for.
For example, you could write:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>short array[3] [[cl::aligned]];</code></pre>
</div>
</div>
<div class="paragraph">
<p>Whenever you leave out the alignment factor in an aligned attribute specification, the OpenCL compiler automatically sets the alignment for the declared variable or field to the largest alignment which is ever used for any data type on the target device you are compiling for.</p>
</div>
<div class="paragraph">
<p>When used on a class, or class member, the aligned attribute can only increase the alignment; in order to decrease it, the packed attribute must be specified as well.
When used as part of a typedef, the aligned attribute can both increase and decrease alignment, and specifying the packed attribute will generate a warning.</p>
</div>
<div class="paragraph">
<p>Note that the effectiveness of aligned attributes may be limited by inherent limitations of the OpenCL device and compiler.
For some devices, the OpenCL compiler may only be able to arrange for variables to be aligned up to a certain maximum alignment.
If the OpenCL
compiler is only able to align variables up to a maximum of 8 byte alignment, then specifying <code>aligned(16)</code> will still only provide you with 8 byte alignment.
See your platform-specific documentation for further information.</p>
</div>
</div>
<div class="sect4">
<h5 id="clpacked-1">cl::packed</h5>
<div class="paragraph">
<p>The <code>packed</code> attribute specifies that a variable or class field should have the smallest possible alignment - one byte for a variable, unless you specify a larger value with the aligned attribute.</p>
</div>
<div class="paragraph">
<p>Here is a structure in which the field <code>x</code> is packed, so that it immediately follows a:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>struct foo
{
  char a;
  int x[2] [[cl::packed]];
};</code></pre>
</div>
</div>
<div class="paragraph">
<p>An attribute list placed at the beginning of a user-defined type applies to the variable of that type and not the type, while attributes following the type body apply to the type.</p>
</div>
<div class="paragraph">
<p>For example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>/* a has alignment of 128 */
[[cl::aligned(128)]] struct A { int i; } a;

/* b has alignment of 16 */
[[cl::aligned(16)]] struct B { double d; } [[cl::aligned(32)]] b;

struct A a1; /* a1 has alignment of 4 */

struct B b1; /* b1 has alignment of 32 */</code></pre>
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="optional-kernel-function-attributes">2.8.3. Optional Kernel Function Attributes</h4>
<div class="paragraph">
<p>The kernel qualifier can be used with the <code>[[ ]]</code> attribute syntax to declare additional information about the kernel function.
The kernel function attributes must appear immediately before the kernel function to be affected.</p>
</div>
<div class="paragraph">
<p>The following attributes are supported:</p>
</div>
<div class="sect4">
<h5 id="clwork_group_size_hint">cl::work_group_size_hint</h5>
<div class="paragraph">
<p>The optional <code>[[cl::work_group_size_hint(X, Y, Z)]]</code> is a hint to the compiler and is intended to specify the work-group size that may be used i.e. value most likely to be specified by the <code>local_work_size</code> argument to <code>clEnqueueNDRangeKernel</code>.
For example the <code>[[cl::work_group_size_hint(1, 1, 1)]]</code> is a hint to the compiler that the kernel will most likely be executed with a work-group size of 1.</p>
</div>
<div class="paragraph">
<p>The specialization constants (see the <a href="#specialization-constants-library"><em>Specialization Constants</em></a> section) can be used as arguments of <code>cl::work_group_size_hint</code> attribute.</p>
</div>
</div>
<div class="sect4">
<h5 id="clrequired_work_group_size">cl::required_work_group_size</h5>
<div class="paragraph">
<p>The optional <code>[[cl::required_work_group_size(X, Y, Z)]]</code> is the work-group size that must be used as the <code>local_work_size</code> argument to <code>clEnqueueNDRangeKernel</code>.
This allows the compiler to optimize the generated code appropriately for this kernel.</p>
</div>
<div class="paragraph">
<p>If <code>Z</code> is one, the <code>work_dim</code> argument to <code>clEnqueueNDRangeKernel</code> can be 2 or 3.
If <code>Y</code> and <code>Z</code> are one, the <code>work_dim</code> argument to <code>clEnqueueNDRangeKernel</code> can be 1, 2 or 3.</p>
</div>
<div class="paragraph">
<p>The specialization constants (see the <a href="#specialization-constants-library"><em>Specialization Constants</em></a> section) can be used as arguments of <code>cl::required_work_group_size(X, Y, Z)</code> attribute.</p>
</div>
</div>
<div class="sect4">
<h5 id="clrequired_num_sub_groups">cl::required_num_sub_groups</h5>
<div class="paragraph">
<p>The optional <code>[[cl::required_num_sub_groups(X)]]</code> is the number of sub-groups that must be generated by a kernel launch.
To ensure that this number is created the queries mapping number of sub-groups to local size may be used.
This allows the compiler to optimize the kernel based on the sub-group count and in addition allows the API to enforce correctness of kernel use to the user when concurrency of sub-groups is a requirement.</p>
</div>
<div class="paragraph">
<p>The specialization constants (see the <a href="#specialization-constants-library"><em>Specialization Constants</em></a> section) can be used as argument of <code>cl::required_num_sub_groups</code> attribute.</p>
</div>
</div>
<div class="sect4">
<h5 id="clvec_type_hint">cl::vec_type_hint</h5>
<div class="paragraph">
<p>The optional <code>[[cl::vec_type_hint(&lt;type&gt;)]]</code> is a hint to the compiler and is intended to be a representation of the computational <em>width</em> of the kernel, and should serve as the basis for calculating processor bandwidth utilization when the compiler is looking to autovectorize the code.
In the <code>[[cl::vec_type_hint(&lt;type&gt;)]]</code> qualifier <code>&lt;type&gt;</code> is one of the built-in vector types listed in <a href="#device_builtin_vector_data_types">Device built-in vector data types</a> table or the constituent scalar element types.
If <code>cl::vec_type_hint(&lt;type&gt;)</code> is not specified, the kernel is assumed to have the <code>[[cl::vec_type_hint(int)]]</code> qualifier.</p>
</div>
<div class="paragraph">
<p>For example, where the developer specified a width of <code>float4</code>, the compiler should assume that the computation usually uses up to 4 lanes of a float vector, and would decide to merge work-items or possibly even separate one work-item into many threads to better match the hardware capabilities.
A conforming implementation is not required to autovectorize code, but shall support the hint.
A compiler may autovectorize, even if no hint is provided.
If an implementation merges N work-items into one thread, it is responsible for correctly handling cases where the number of global or local work-items in any dimension modulo N is not zero.</p>
</div>
<div class="paragraph">
<p>Examples:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>// autovectorize assuming float4 as the
// basic computation width
[[cl::vec_type_hint(float4)]] kernel
void foo(cl::global_ptr&lt;float4&gt; p) { ... }

// autovectorize assuming double as the
// basic computation width
[[cl::vec_type_hint(double)]] kernel
void foo(cl::global_ptr&lt;float4&gt; p) { ... }

// autovectorize assuming int (default)
// as the basic computation width
kernel void foo(cl::global_ptr&lt;float4&gt; p) { ... }</code></pre>
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="optional-kernel-parameter-attributes">2.8.4. Optional Kernel Parameter Attributes</h4>
<div class="paragraph">
<p>The kernel parameter can be used with the <code>[[ ]]</code> attribute syntax to declare additional information about an argument passed to the kernel.
The kernel parameter attributes must appear immediately before or after the kernel parameter declaration to be affected.</p>
</div>
<div class="paragraph">
<p>The following attributes are supported:</p>
</div>
<div class="sect4">
<h5 id="clmax_size">cl::max_size</h5>
<div class="paragraph">
<p>This attribute can be provided with a kernel argument of type <code>constant_ptr&lt;T&gt;</code>, <code>constant&lt;T&gt;*</code>, <code>constant&lt;T&gt;&amp;</code>, <code>local_ptr&lt;T&gt;</code>, <code>local&lt;T&gt;*</code>, <code>local&lt;T&gt;&amp;</code>.
The value of the attribute specifies the maximum size in bytes of the corresponding memory object.
This size cannot exceed the limits supported by the device:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE</code> for the kernel arguments in constant memory</p>
</li>
<li>
<p><code>CL_DEVICE_LOCAL_MEM_SIZE</code> for the kernel arguments in local memory</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The specialization constants (see the <a href="#specialization-constants-library"><em>Specialization Constants</em></a> section) can be used as argument of <code>cl::max_size</code> attribute.</p>
</div>
<div class="paragraph">
<p>Examples:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#include &lt;opencl_memory&gt;

kernel void foo([[cl::max_size(65536)]] cl::constant_ptr&lt;int&gt; arg) {
  //...
}</code></pre>
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="optional-loop-attributes">2.8.5. Optional Loop Attributes</h4>
<div class="sect4">
<h5 id="_cl_unroll_hint">cl::unroll_hint</h5>
<div class="paragraph">
<p>The <code><a id="cl::unroll_hint"></a></code> and <code>[[cl::unroll_hint(n)]]</code> attribute qualifiers can be used to specify that a loop (<code>for</code>, <code>while</code> and <code>do</code> loops) can be unrolled.
This attribute qualifier can be used to specify full unrolling or partial unrolling by a specified amount.
This is a compiler hint and the compiler may ignore this directive.</p>
</div>
<div class="paragraph">
<p><code>n</code> is the loop unrolling factor and must be a positive integral compile time constant expression.
An unroll factor of 1 disables unrolling.
If <code>n</code> is not specified, the compiler determines the unrolling factor for the loop.</p>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
The <code>[[cl::unroll_hint(n)]]</code> attribute qualifier must appear immediately before the loop to be affected.
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>Examples:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>[[cl::unroll_hint(2)]]
while (*s != 0)
    *p++ = *s++;</code></pre>
</div>
</div>
<div class="paragraph">
<p>This tells the compiler to unroll the above while loop by a factor of 2.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>[[cl::unroll_hint]]
for (int i=0; i&lt;2; i++) {
   //...
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>In the example above, the compiler will determine how much to unroll the loop.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>[[cl::unroll_hint(1)]]
for (int i=0; i&lt;32; i++) {
  //...
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>The above is an example where the loop should not be unrolled.</p>
</div>
<div class="paragraph">
<p>Below are some examples of invalid usage of <code>[[cl::unroll_hint(n)]]</code>.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>[[cl::unroll_hint(-1)]]
while (/* ... */) {
  //...
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>The above example is an invalid usage of the loop unroll factor as the loop unroll factor is negative.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>[[cl::unroll_hint]]
if(/* ... */) {
  //...
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>The above example is invalid because the <code>unroll_hint</code> attribute qualifier is used on a non-loop construct.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>kernel void my_kernel(/* ... */) {
  int x;
  [[cl::unroll_hint(x)]]
  for (int i=0; i&lt;x; i++) {
    //...
  }
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>The above example is invalid because the loop unroll factor is not a compile-time constant expression.</p>
</div>
</div>
<div class="sect4">
<h5 id="clivdep">cl::ivdep</h5>
<div class="paragraph">
<p>The <code>[[cl::ivdep]]</code> (ignore vector dependencies) attribute qualifier is a hint to the compiler and may appear in loops to indicate that the compiler may assume there are no memory dependencies across loop iterations in order to autovectorize consecutive iterations of the loop.
This attribute qualifier may appear in one of the following
forms:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>[[cl::ivdep]]
[[cl::ivdep(len)]]</code></pre>
</div>
</div>
<div class="paragraph">
<p>If the parameter <code>len</code> is specified, it is used to specify the maximum number of consecutive iterations without loop-carried dependencies.
<code>len</code> is a lower bound on the distance of any loop-carried dependence, and it applies to arbitrary alignment.
For example, any 4 consecutive iterations can be vectorized with <code>cl::ivdep(4)</code>.
The <code>len</code> parameter must be a positive integer.
The final decision whether to autovectorize the complete loop may be subject to other compiler heuristics as well as flags e.g., <em>-cl-fast-relaxed-math</em> to ignore non-associated operations.</p>
</div>
<div class="paragraph">
<p>Examples:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>[[cl::ivdep]]
for (int i=0; i&lt;N; i++) {
    C[i+offset] = A[i+offset] * B[i+offset];
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>In the example above, assuming that <code>A</code> and <code>B</code> are not restricted pointers, it is unknown if <code>C</code> aliases <code>A</code> or <code>B</code>.
Placing the <code>[[cl::ivdep]]</code> attribute before the loop lets the compiler assume there are no memory dependencies across the loop iterations.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>[[cl::ivdep(8)]]
for (int i=0; i&lt;N; i++) {
    A[i+K] = A[i] * B[i];
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>In the example above, buffer <code>A</code> is read from and written to in the loop iterations.
In each iteration, the read and write to <code>A</code> are to different indices.
In this case it is not safe to vectorize the loop to a vector length greater than <code>K</code>, so the <code>len</code> parameter is specified with a value that is known to be not greater than any value that <code>K</code> may take during the execution of loop.
In this example we are guaranteed (by <code>len</code>) that <code>K</code> will always be greater than or equal to 8.</p>
</div>
<div class="paragraph">
<p>Below is an example of invalid usage of <code>[[cl::ivdep]]</code>.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>[[cl::ivdep(-1)]]
for (int i=0; i&lt;N; i++) {
    C[i+offset] = A[i+offset] * B[i+offset];
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>The above example is an invalid usage of the attribute qualifier as <code>len</code> is negative.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="extending-attribute-qualifiers">2.8.6. Extending Attribute Qualifiers</h4>
<div class="paragraph">
<p>The attribute syntax can be extended for standard language extensions and vendor specific extensions.
Any extensions should follow the naming conventions outlined in the introduction to <em>section 9</em> in the OpenCL 2.2 Extension Specification.</p>
</div>
<div class="paragraph">
<p>Attributes are intended as useful hints to the compiler.
It is our intention that a particular implementation of OpenCL be free to ignore all attributes and the resulting executable binary will produce the same result.
This does not preclude an implementation from making use of the additional information provided by attributes and performing optimizations or other transformations as it sees fit.
In this case it is the programmer&#8217;s responsibility to guarantee that the information provided is in some sense correct.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="opencl_cxx_restrictions">2.9. Restrictions</h3>
<div class="paragraph">
<p>The following C++14 features are not supported by OpenCL C++:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>the <code>dynamic_cast</code> operator (<em>ISO C++ Section 5.2.7</em>)</p>
</li>
<li>
<p>type identification (<em>ISO C++ Section 5.2.8</em>)</p>
</li>
<li>
<p>recursive function calls (<em>ISO C++ Section 5.2.2, item 9</em>) unless they are a compile-time constant expression</p>
</li>
<li>
<p>non-placement <code>new</code> and <code>delete</code> operators (<em>ISO C++ Sections 5.3.4 and 5.3.5</em>)</p>
</li>
<li>
<p><code>register</code> and <code>thread_local</code> storage qualifiers (<em>ISO C++ Section 7.1.1</em>)</p>
</li>
<li>
<p>virtual function qualifier (<em>ISO C++ Section 7.1.2</em>)</p>
</li>
<li>
<p>function pointers (<em>ISO C++ Sections 8.3.5 and 8.5.3</em>) unless they are a compile-time  constant expression</p>
</li>
<li>
<p>virtual functions and abstract classes (<em>ISO C++ Sections 10.3 and 10.4</em>)</p>
</li>
<li>
<p>exception handling (<em>ISO C++ Section 15</em>)</p>
</li>
<li>
<p>the C++ standard library (<em>ISO C++ Sections 17 &#8230;&#8203; 30</em>)</p>
</li>
<li>
<p>no implicit lambda to function pointer conversion (<em>ISO C++ Section 5.1.2, item 6</em>)</p>
</li>
<li>
<p>variadic functions (<em>ISO C99 Section 7.15, Variable arguments &lt;stdarg.h&gt;</em>)</p>
</li>
<li>
<p>and, like C++, OpenCL C++ does not support variable length arrays (<em>ISO C99, Section 6.7.5</em>)</p>
</li>
<li>
<p>whether irreducible control flow is legal is implementation defined.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>To avoid potential confusion with the above, please note the following features <em>are</em> supported in OpenCL C++:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>All variadic templates (<em>ISO C++ Section 14.5.3</em>) including variadic function templates are supported.</p>
</li>
<li>
<p>Virtual inheritance (<em>ISO C++ Section 10.1, item 4</em>) is supported.</p>
</li>
</ul>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
This page refers to <em>ISO C99</em> instead of <em>ISO C11</em> since the <em>ISO C++14</em> document refers to <em>ISO C99</em> in <em>ISO C++ Section 1.2 and Annex C</em>.
</td>
</tr>
</table>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="opencl-c-standard-library">3. OpenCL C++ Standard Library</h2>
<div class="sectionbody">
<div class="paragraph">
<p>OpenCL C++ does not support the C++14 standard library, but instead implements its own standard library.
No OpenCL types and functions are auto-included.</p>
</div>
<div class="sect2">
<h3 id="opencl-definitions">3.1. OpenCL Definitions</h3>
<div class="paragraph">
<p>Header <em>&lt;opencl_def&gt;</em> defines OpenCL scalar, vector types and macros.
<code>cl_</code>* types are guaranteed to have exactly the same size as their host counterparts defined in <em>cl_platform.h</em> file.</p>
</div>
<div class="sect3">
<h4 id="header-opencl_def-synopsis">3.1.1. Header &lt;opencl_def&gt; Synopsis</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#define __OPENCL_CPP_VERSION__ 100

typedef __SIZE_TYPE__     size_t;
typedef __PTRDIFF_TYPE__  ptrdiff_t;
typedef decltype(nullptr) nullptr_t;
#define NULL              nullptr

typedef __INT8_TYPE__     int8_t     [[cl::aligned(1)]];
typedef __UINT8_TYPE__    uint8_t    [[cl::aligned(1)]];
typedef __INT16_TYPE__    int16_t    [[cl::aligned(2)]];
typedef __UINT16_TYPE__   uint16_t   [[cl::aligned(2)]];
typedef __INT32_TYPE__    int32_t    [[cl::aligned(4)]];
typedef __UINT32_TYPE__   uint32_t   [[cl::aligned(4)]];
typedef __INT64_TYPE__    int64_t    [[cl::aligned(8)]];
typedef __UINT64_TYPE__   uint64_t   [[cl::aligned(8)]];

#if   __INTPTR_WIDTH__ == 32
typedef int32_t           intptr_t;
typedef uint32_t          uintptr_t;
#elif __INTPTR_WIDTH__ == 64
typedef int64_t           intptr_t;
typedef uint64_t          uintptr_t;
#endif

namespace cl
{
using ::intptr_t;
using ::uintptr_t;
using ::ptrdiff_t;
using ::nullptr_t;
using ::size_t;
}

typedef int8_t            cl_char;
typedef uint8_t           cl_uchar;
typedef int16_t           cl_short
typedef uint16_t          cl_ushort;
typedef int32_t           cl_int;
typedef uint32_t          cl_uint;
typedef int64_t           cl_long;
typedef uint64_t          cl_ulong;

#ifdef cl_khr_fp16
typedef half              cl_half   [[aligned(2)]];
#endif
typedef float             cl_float  [[aligned(4)]];
#ifdef cl_khr_fp64
typedef double            cl_double [[aligned(8)]];
#endif

typedef implementation-defined bool2;
typedef implementation-defined bool3;
typedef implementation-defined bool4;
typedef implementation-defined bool8;
typedef implementation-defined bool16;
typedef implementation-defined char2;
typedef implementation-defined char3;
typedef implementation-defined char4;
typedef implementation-defined char8;
typedef implementation-defined char16;
typedef implementation-defined uchar2;
typedef implementation-defined uchar3;
typedef implementation-defined uchar4;
typedef implementation-defined uchar8;
typedef implementation-defined uchar16;
typedef implementation-defined short2;
typedef implementation-defined short3;
typedef implementation-defined short4;
typedef implementation-defined short8;
typedef implementation-defined short16;
typedef implementation-defined ushort2;
typedef implementation-defined ushort3;
typedef implementation-defined ushort4;
typedef implementation-defined ushort8;
typedef implementation-defined ushort16;
typedef implementation-defined int2;
typedef implementation-defined int3;
typedef implementation-defined int4;
typedef implementation-defined int8;
typedef implementation-defined int16;
typedef implementation-defined uint2;
typedef implementation-defined uint3;
typedef implementation-defined uint4;
typedef implementation-defined uint8;
typedef implementation-defined uint16;
typedef implementation-defined long2;
typedef implementation-defined long3;
typedef implementation-defined long4;
typedef implementation-defined long8;
typedef implementation-defined long16;
typedef implementation-defined ulong2;
typedef implementation-defined ulong3;
typedef implementation-defined ulong4;
typedef implementation-defined ulong8;
typedef implementation-defined ulong16;
typedef implementation-defined float2;
typedef implementation-defined float3;
typedef implementation-defined float4;
typedef implementation-defined float8;
typedef implementation-defined float16;
#ifdef cl_khr_fp16
typedef implementation-defined half2;
typedef implementation-defined half3;
typedef implementation-defined half4;
typedef implementation-defined half8;
typedef implementation-defined half16;
#endif
#ifdef cl_khr_fp64
typedef implementation-defined double2;
typedef implementation-defined double3;
typedef implementation-defined double4;
typedef implementation-defined double8;
typedef implementation-defined double16;
#endif

typedef bool2    cl_bool2;
typedef bool3    cl_bool3;
typedef bool4    cl_bool4;
typedef bool8    cl_bool8;
typedef bool16   cl_bool16;
typedef char2    cl_char2;
typedef char3    cl_char3;
typedef char4    cl_char4;
typedef char8    cl_char8;
typedef char16   cl_char16;
typedef uchar2   cl_uchar2;
typedef uchar3   cl_uchar3;
typedef uchar4   cl_uchar4;
typedef uchar8   cl_uchar8;
typedef uchar16  cl_uchar16;
typedef short2   cl_short2;
typedef short3   cl_short3;
typedef short4   cl_short4;
typedef short8   cl_short8;
typedef short16  cl_short16;
typedef ushort2  cl_ushort2;
typedef ushort3  cl_ushort3;
typedef ushort4  cl_ushort4;
typedef ushort8  cl_ushort8;
typedef ushort16 cl_ushort16;
typedef int2     cl_int2;
typedef int3     cl_int3;
typedef int4     cl_int4;
typedef int8     cl_int8;
typedef int16    cl_int16;
typedef uint2    cl_uint2;
typedef uint3    cl_uint3;
typedef uint4    cl_uint4;
typedef uint8    cl_uint8;
typedef uint16   cl_uint16;
typedef long2    cl_long2;
typedef long3    cl_long3;
typedef long4    cl_long4;
typedef long8    cl_long8;
typedef long16   cl_long16;
typedef ulong2   cl_ulong2;
typedef ulong3   cl_ulong3;
typedef ulong4   cl_ulong4;
typedef ulong8   cl_ulong8;
typedef ulong16  cl_ulong16;
typedef float2   cl_float2;
typedef float3   cl_float3;
typedef float4   cl_float4;
typedef float8   cl_float8;
typedef float16  cl_float16;
#ifdef cl_khr_fp16
typedef half2    cl_half2;
typedef half3    cl_half3;
typedef half4    cl_half4;
typedef half8    cl_half8;
typedef half16   cl_half16;
#endif
#ifdef cl_khr_fp64
typedef double2  cl_double2;
typedef double3  cl_double3;
typedef double4  cl_double4;
typedef double8  cl_double8;
typedef double16 cl_double16;
#endif</code></pre>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="conversions-library">3.2. Conversions Library</h3>
<div class="paragraph">
<p>This section describes the explicit conversion cast functions.
These functions provide a full set of type conversions between supported scalar and vector data types (see the <a href="#builtin-scalar-data-types"><em>Built-in Scalar Data Types</em></a> and the <a href="#builtin-vector-data-types"><em>Built-in Vector Data Types</em></a> sections) except for the following types: <code>size_t</code>, <code>ptrdiff_t</code>, <code>intptr_t</code>, <code>uintptr_t</code>, and <code>void</code>.</p>
</div>
<div class="paragraph">
<p>The behavior of the conversion may be modified by one or two optional modifiers that specify saturation for out-of-range inputs and rounding behavior.</p>
</div>
<div class="paragraph">
<p>The <code>convert_cast</code> type conversion operator that specifies a rounding mode and saturation is also provided.</p>
</div>
<div class="sect3">
<h4 id="header-opencl_convert-synopsis">3.2.1. Header &lt;opencl_convert&gt; Synopsis</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>namespace cl
{
enum class rounding_mode { rte, rtz, rtp, rtn };
enum class saturate { off, on };

template &lt;class T, class U&gt;
T convert_cast(U const&amp; arg);
template &lt;class T&gt;
T convert_cast(T const&amp; arg);

template &lt;class T, rounding_mode rmode, class U&gt;
T convert_cast(U const&amp; arg);
template &lt;class T, rounding_mode rmode&gt;
T convert_cast(T const&amp; arg);

template &lt;class T, saturate smode, class U&gt;
T convert_cast(U const&amp; arg);
template &lt;class T, saturate smode&gt;
T convert_cast(T const&amp; arg);

template &lt;class T, rounding_mode rmode, saturate smode, class U&gt;
T convert_cast(U const&amp; arg);
template &lt;class T, rounding_mode rmode, saturate smode&gt;
T convert_cast(T const&amp; arg);

}</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="data-types">3.2.2. Data Types</h4>
<div class="paragraph">
<p>Conversions are available for the following scalar types: <code>bool</code>, <code>char</code>, <code>uchar</code>, <code>short</code>, <code>ushort</code>, <code>int</code>, <code>uint</code>, <code>long</code>, <code>ulong</code>, <code>half</code> <a id="ftnref4"></a> <a href="#ftn4">[4]</a>, <code>float</code>, <code>double</code>, and built-in vector types derived therefrom.
The operand and result type must have the same number of elements.
The operand and result type may be the same type in which case the conversion has no effect on the type or value of an expression.</p>
</div>
<div class="paragraph">
<p>Conversions between integer types follow the conversion rules specified in the C++14 specification except for out-of-range behavior and saturated conversions which are described in the <a href="#out-of-range-behavior-and-saturated-conversions"><em>Out-of-Range Behavior and Saturated Conversions</em></a> section below.</p>
</div>
</div>
<div class="sect3">
<h4 id="rounding-modes">3.2.3. Rounding Modes</h4>
<div class="paragraph">
<p>Conversions to and from floating-point type shall conform to IEEE-754 rounding rules.
Conversions may have an optional rounding mode specified as described in the table belows.</p>
</div>
<table class="tableblock frame-all grid-all spread">
<caption class="title">Table 9. Rounding Modes</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Rounding Mode</strong></th>
<th class="tableblock halign-left valign-top"><strong>Description</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>rte</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Round to nearest even</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>rtz</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Round toward zero</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>rtp</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Round toward positive infinity</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>rtn</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Round toward negative infinity</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>If a rounding mode is not specified, conversions to integer type use the <code>rtz</code> (round toward zero) rounding mode and conversions to floating-point type <a id="ftnref5"></a> <a href="#ftn5">[5]</a> uses the <code>rte</code> rounding mode.</p>
</div>
</div>
<div class="sect3">
<h4 id="out-of-range-behavior-and-saturated-conversions">3.2.4. Out-of-Range Behavior and Saturated Conversions</h4>
<div class="paragraph">
<p>When the conversion operand is either greater than the greatest representable destination value or less than the least representable destination value, it is said to be out-of-range.
The result of out-of-range conversion is determined by the conversion rules specified by the C++14 specification in <em>chapter 4.9</em>.
When converting from a floating-point type to integer type, the behavior is implementation-defined.</p>
</div>
<div class="paragraph">
<p>Conversions to integer type may opt to convert using the optional saturation mode.
When in saturated mode, values that are outside the representable range shall clamp to the nearest representable value in the destination format.
(NaN should be converted to 0).</p>
</div>
<div class="paragraph">
<p>Conversions to floating-point type shall conform to IEEE-754 rounding rules. The <code>convert_cast</code> operator with a saturate argument may not be used for conversions to floating-point formats.</p>
</div>
</div>
<div class="sect3">
<h4 id="examples-1">3.2.5. Examples</h4>
<div class="sect4">
<h5 id="example-1-1">Example 1</h5>
<div class="paragraph">
<p>Examples of casting between two vector types with saturation.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#include &lt;opencl_convert&gt;
using namespace cl;

kernel void Foo() {
short4 s;
       // negative values clamped to 0
       ushort4 u = convert_cast&lt;ushort4,saturate::on&gt;(s);

// values &gt; CHAR_MAX converted to CHAR_MAX
       // values &lt; CHAR_MIN converted to CHAR_MIN
       char4 c = convert_cast&lt;char4, saturate::on&gt;(s);
}</code></pre>
</div>
</div>
</div>
<div class="sect4">
<h5 id="example-2-1">Example 2</h5>
<div class="paragraph">
<p>Examples of casting from float to integer vector type with saturation and rounding mode specified.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#include &lt;opencl_convert&gt;
using namespace cl;

kernel void Foo() {
       float4  f;

       // values implementation defined for
       // f &gt; INT_MAX, f &lt; INT_MIN or NaN
       int4    i1 = convert_cast&lt;int4&gt;(f);

       // values &gt; INT_MAX clamp to INT_MAX, values &lt; INT_MIN clamp
       // to INT_MIN. NaN should produce 0.
       // The rtz rounding mode is used to produce the integer
       // values.
       int4    i2 = convert_cast&lt;int4,saturate::on&gt;(f);

       // similar to convert_cast&lt;int4&gt;, except that floating-point
       // values are rounded to the nearest integer instead of
       // truncated
       int4    i3 = convert_cast&lt;int4, rounding_mode::rte&gt;(f);

       // similar to convert_cast&lt;int4, saturate::on&gt;, except that
       // floating-point values are rounded to the nearest integer
       // instead of truncated
       int4    i4 = convert_cast&lt;int4, rounding_mode::rte,
       saturate::on&gt;(f);
}</code></pre>
</div>
</div>
</div>
<div class="sect4">
<h5 id="example-3">Example 3</h5>
<div class="paragraph">
<p>Examples of casting from integer to float vector type.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#include &lt;opencl_convert&gt;
using namespace cl;

kernel void Foo() {
       int4    i;

       // convert ints to floats using the default rounding mode.
       float4  f1 = convert_cast&lt;float4&gt;(i);

       // convert ints to floats. integer values that cannot
       // be exactly represented as floats should round up to the
       // next representable float.
       float4  f2 = convert_cast&lt;float4, rounding_mode::rtp&gt;(i);
}</code></pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="reinterpreting-data-library">3.3. Reinterpreting Data Library</h3>
<div class="paragraph">
<p>It is frequently necessary to reinterpret bits in a data type as another data type in OpenCL C++.
This is typically required when direct access to the bits in a floating-point type is needed, for example to mask off the sign bit or make use of the result of a vector relational operator on floating-point data.</p>
</div>
<div class="sect3">
<h4 id="header-opencl_reinterpret-synopsis">3.3.1. Header &lt;opencl_reinterpret&gt; Synopsis</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>namespace cl
{
template &lt;class T, class U&gt;
T as_type(U const&amp; arg);

}</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="reinterpreting-types">3.3.2. Reinterpreting Types</h4>
<div class="paragraph">
<p>All data types described in <a href="#device_builtin_scalar_data_types">Device built-in scalar data types</a> and <a href="#device_builtin_vector_data_types">Device built-in vector data types</a> tables (except <code>bool</code> and <code>void</code>) may be also reinterpreted as another data type of the same size using the <code>as_type()</code> <a id="ftnref6"></a> <a href="#ftn6">[6]</a> function for scalar and vector data types.
When the operand and result type contain the same number of elements, the bits in the operand shall be returned directly without modification as the new type.
The usual type promotion for function arguments shall not be performed.</p>
</div>
<div class="paragraph">
<p>For example, <code>as_type&lt;float&gt;(0x3f800000)</code> returns <code>1.0f</code>, which is the value that the bit pattern <code>0x3f800000</code> has if viewed as an IEEE-754 single precision value.</p>
</div>
<div class="paragraph">
<p>When the operand and result type contain a different number of elements, the result shall be implementation-defined except if the operand is a 4-component vector and the result is a 3-component vector.
In this case, the bits in the operand shall be returned directly without modification as the new type.
That is, a conforming implementation shall explicitly define a behavior, but two conforming implementations need not have the same behavior when the number of elements in the result and operand types does not match.
The implementation may define the result to contain all, some or none of the original bits in whatever order it chooses.
It is an error to use the <code>as_type&lt;T&gt;</code> operator to reinterpret data to a type of a different number of bytes.</p>
</div>
</div>
<div class="sect3">
<h4 id="examples-2">3.3.3. Examples</h4>
<div class="sect4">
<h5 id="example-1-2">Example 1</h5>
<div class="paragraph">
<p>Examples of reinterpreting data types using <code>as_type&lt;&gt;</code> function.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#include &lt;opencl_reinterpret&gt;
using namespace cl;

kernel void Foo() {
       float f = 1.0f;
       uint u = as_type&lt;uint&gt;(f);      // Legal. Contains:  0x3f800000

       float4 f = float4(1.0f, 2.0f, 3.0f, 4.0f);
       // Legal. Contains:
       // int4(0x3f800000, 0x40000000, 0x40400000, 0x40800000)
       int4 i = as_type&lt;int4&gt;(f);

       int i;
       // Legal. Result is implementation-defined.
       short2 j = as_type&lt;short2&gt;(i);

       int4 i;
       // Legal. Result is implementation-defined.
       short8 j = as_type&lt;short8&gt;(i);

       float4 f;
       // Error.  Result and operand have different sizes
       double4 g = as_type&lt;double4&gt;(f);

       float4 f;
       // Legal. g.xyz will have same values as f.xyz.  g.w is
       // undefined
       float3 g = as_type&lt;float3&gt;(f);
}</code></pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="address-spaces-library">3.4. Address Spaces Library</h3>
<div class="paragraph">
<p>Unlike OpenCL C, OpenCL C++ does not require the address space qualifiers to allocate storage from global, local and constant memory pool.
The same functionality is provided using the storage and pointer classes.
These new types are designed to avoid many programming issues and it is recommended to use them for the static and program scope variables even if it is not required.</p>
</div>
<div class="sect3">
<h4 id="header-opencl_memory-synopsis">3.4.1. Header &lt;opencl_memory&gt; Synopsis</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>namespace cl
{
enum class mem_fence
{
    local,
    global,
    image
};

inline mem_fence operator ~(mem_fence flags);
inline mem_fence operator &amp;(mem_fence LHS, mem_fence RHS);
inline mem_fence operator |(mem_fence LHS, mem_fence RHS);
inline mem_fence operator ^(mem_fence LHS, mem_fence RHS);

// address space pointer classes
template&lt;class T&gt;
class global_ptr;

template&lt;class T&gt;
class local_ptr;

template&lt;class T&gt;
class private_ptr;

template&lt;class T&gt;
class constant_ptr;

template&lt;class T&gt;
using global = see 'global class' section;

template&lt;class T&gt;
using local = see 'local class' section;

template&lt;class T&gt;
using priv = see 'priv class' section;

template&lt;class T&gt;
using constant = see 'constant class' section;

// address space query functions
template&lt;class T&gt;
mem_fence get_mem_fence(T *ptr);

// address space cast functions
template&lt;class T&gt;
T dynamic_asptr_cast(T *ptr) noexcept;

template &lt;class T, class U&gt;
local_ptr&lt;T&gt; static_asptr_cast(local_ptr&lt;U&gt; const&amp; ptr) noexcept;
template &lt;class T, class U&gt;
global_ptr&lt;T&gt; static_asptr_cast(global_ptr&lt;U&gt; const&amp; ptr) noexcept;
template &lt;class T, class U&gt;
constant_ptr&lt;T&gt; static_asptr_cast(constant_ptr&lt;U&gt; const&amp; ptr) noexcept;
template &lt;class T, class U&gt;
private_ptr&lt;T&gt; static_asptr_cast(private_ptr&lt;U&gt; const&amp; ptr) noexcept;

template &lt;class T, class U&gt;
local_ptr&lt;T&gt; reinterpret_asptr_cast(local_ptr&lt;U&gt; const&amp; ptr) noexcept;
template &lt;class T, class U&gt;
global_ptr&lt;T&gt; reinterpret_asptr_cast(global_ptr&lt;U&gt; const&amp; ptr) noexcept;
template &lt;class T, class U&gt;
constant_ptr&lt;T&gt; reinterpret_asptr_cast(constant_ptr&lt;U&gt; const&amp; ptr) noexcept;
template &lt;class T, class U&gt;
private_ptr&lt;T&gt; reinterpret_asptr_cast(private_ptr&lt;U&gt; const&amp; ptr) noexcept;

template &lt;class T&gt;
T* addressof(T&amp; t) noexcept;

}</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="explicit-address-space-storage-classes">3.4.2. Explicit address space storage classes</h4>
<div class="paragraph">
<p>The explicit address space storage classes described in this section are designed to allocate memory in one of the named address spaces: global, local, constant or private.</p>
</div>
<div class="sect4">
<h5 id="global-class">global class</h5>
<div class="paragraph">
<p>The variables declared using <code>global&lt;T&gt;</code> class refer to memory objects allocated from the global memory pool (see the <a href="#global"><em>Global Memory Pool</em></a> section).
The global storage class can only be used to declare variables at program, function and class scope.
The variables at function and class scope must be declared with <code>static</code> specifier.</p>
</div>
<div class="paragraph">
<p>If <code>T</code> is a fundamental or an array type, the <code>global</code> class should meet the following requirements:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>no user provide default constructor</p>
</li>
<li>
<p>default copy and move constructors</p>
</li>
<li>
<p>default copy and move assignment operators</p>
</li>
<li>
<p>address-of operators that return a generic <code>T</code> pointer (<code>T*</code>)</p>
</li>
<li>
<p>conversion operators to a generic <code>T</code> lvalue reference type (<code>T&amp;</code>)</p>
</li>
<li>
<p>assignment <code>const T&amp;</code> operator</p>
</li>
<li>
<p><code>ptr()</code> methods that return a <code>global_ptr&lt;T&gt;</code> pointer class</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>If <code>T</code> is a class type, the <code>global</code> class should provide the following interface:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>the same public interface as <code>T</code> type including constructors and assignment operators address-of operators that return a generic <code>T</code> pointer (<code>T*</code>)</p>
</li>
<li>
<p>conversion operators to a generic <code>T</code> lvalue reference type (<code>T&amp;</code>)</p>
</li>
<li>
<p><code>ptr()</code> methods that return a <code>global_ptr&lt;T&gt;</code> pointer class</p>
</li>
</ul>
</div>
</div>
<div class="sect4">
<h5 id="local-class">local class</h5>
<div class="paragraph">
<p>The variables declared using <code>local&lt;T&gt;</code> class refer to memory objects allocated from the local memory pool (see the <a href="#local"><em>Local Memory Pool</em></a> section).
The local storage class can only be used to declare variables at program, kernel and class scope.
The variables at class scope must be declared with <code>static</code> specifier.</p>
</div>
<div class="paragraph">
<p>If <code>T</code> is a fundamental or an array type, the <code>local</code> class should meet the following requirements:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>no user provide default constructor</p>
</li>
<li>
<p>default copy and move constructors</p>
</li>
<li>
<p>default copy and move assignment operators</p>
</li>
<li>
<p>address-of operators that return a generic <code>T</code> pointer (<code>T*</code>)</p>
</li>
<li>
<p>conversion operators to a generic <code>T</code> lvalue reference type (<code>T&amp;</code>)</p>
</li>
<li>
<p>assignment <code>const T&amp;</code> operator</p>
</li>
<li>
<p><code>ptr()</code> methods that return a <code>local_ptr&lt;T&gt;</code> pointer class</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>If <code>T</code> is a class type, the <code>local</code> class should provide the following interface:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>the same public interface as <code>T</code> type including constructors
and assignment operators</p>
</li>
<li>
<p>address-of operators that return a generic <code>T</code> pointer (<code>T*</code>)</p>
</li>
<li>
<p>conversion operators to a generic <code>T</code> lvalue reference type (<code>T&amp;</code>)</p>
</li>
<li>
<p><code>ptr()</code> methods that return a <code>local_ptr&lt;T&gt;</code> pointer class</p>
</li>
</ul>
</div>
</div>
<div class="sect4">
<h5 id="priv-class">priv class</h5>
<div class="paragraph">
<p>The variables declared using the <code>priv&lt;T&gt;</code> class refer to memory objects allocated from the private memory pool.</p>
</div>
<div class="paragraph">
<p>The <code>priv</code> storage class cannot be used to declare variables in the program scope, with <code>static</code> specifier or <code>extern</code> specifier.</p>
</div>
<div class="paragraph">
<p>If <code>T</code> is a fundamental or an array type, the <code>priv</code> class should meet the following requirements:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>no user provide default constructor</p>
</li>
<li>
<p>default copy and move constructors</p>
</li>
<li>
<p>default copy and move assignment operators</p>
</li>
<li>
<p>address-of operators that return a generic <code>T</code> pointer (<code>T*</code>)</p>
</li>
<li>
<p>conversion operators to a generic <code>T</code> lvalue reference type (<code>T&amp;</code>)</p>
</li>
<li>
<p>assignment const <code>T&amp;</code> operator</p>
</li>
<li>
<p><code>ptr()</code> methods that return a <code>private_ptr&lt;T&gt;</code> pointer class</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>If <code>T</code> is a class type, the <code>priv</code> class should provide the following interface:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>the same public interface as <code>T</code> type including constructors and assignment operators</p>
</li>
<li>
<p>address-of operators that return a generic <code>T</code> pointer (<code>T*</code>)</p>
</li>
<li>
<p>conversion operators to a generic <code>T</code> lvalue reference type (<code>T&amp;</code>)</p>
</li>
<li>
<p><code>ptr()</code> methods that return a <code>private_ptr&lt;T&gt;</code> pointer class</p>
</li>
</ul>
</div>
</div>
<div class="sect4">
<h5 id="constant-class">constant class</h5>
<div class="paragraph">
<p>The variables declared using the <code>constant&lt;T&gt;</code> class refer to memory objects allocated from the global memory pool and which are accessed inside a kernel(s) as read-only variables.
The constant storage class can only be used to declare variables at program, kernel and class scope.
The variables at class scope must be declared with <code>static</code> specifier.</p>
</div>
<div class="paragraph">
<p>The <code>T</code> type must meet the following requirements:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>T</code> must be constructible at compile time</p>
</li>
<li>
<p><code>T</code> cannot have any user defined constructors, destructors, methods and operators</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>If <code>T</code> is a fundamental, array or class type, the <code>constant</code> class should meet the following requirements:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>no user provide default constructor</p>
</li>
<li>
<p>default copy and move constructors</p>
</li>
<li>
<p>copy and move assignment operators deleted</p>
</li>
<li>
<p>address-of operators that return a <code>constant_ptr&lt;T&gt;</code> pointer class</p>
</li>
<li>
<p><code>ptr()</code> methods that return a <code>constant_ptr&lt;T&gt;</code> pointer class</p>
</li>
<li>
<p>conversion operators to a constant <code>T</code> lvalue reference type (<code>add_constant_t&lt;T&gt;&amp;</code>)</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect3">
<h4 id="explicit-address-space-pointer-classes">3.4.3. Explicit address space pointer classes</h4>
<div class="paragraph">
<p>The explicit address space pointer classes are just like pointers: they can be converted to and from pointers with compatible address spaces, qualifiers and types.
Assignment or casting between explicit pointer types of incompatible address spaces is illegal.</p>
</div>
<div class="paragraph">
<p>All named address spaces are incompatible with all other address spaces, but local, global and private pointers can be converted to standard C++ pointers.</p>
</div>
<div class="sect4">
<h5 id="global_ptr-class">global_ptr class</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>namespace cl
{
template &lt;class T&gt; class global_ptr
{
public:
    //types:
    typedef T element_type;
    typedef ptrdiff_t difference_type;
    typedef add_global_t&lt;T&gt;&amp; reference;
    typedef const add_global_t&lt;T&gt;&amp; const_reference;
    typedef add_global_t&lt;T&gt;* pointer;
    typedef const add_global_t&lt;T&gt;* const_pointer;

    //constructors:
    constexpr global_ptr() noexcept;
    explicit global_ptr(pointer p) noexcept;
    global_ptr(const global_ptr &amp;r) noexcept;
    global_ptr(global_ptr &amp;&amp;r) noexcept;
    constexpr global_ptr(nullptr_t) noexcept;

    //assignment:
    global_ptr &amp;operator=(const global_ptr &amp;r) noexcept;
    global_ptr &amp;operator=(global_ptr &amp;&amp;r) noexcept;
    global_ptr &amp;operator=(pointer r) noexcept;
    global_ptr &amp;operator=(nullptr_t) noexcept;

    //observers:
    add_lvalue_reference_t&lt;add_global_t&lt;T&gt;&gt; operator*() const noexcept;
    pointer operator-&gt;() const noexcept;
    pointer get() const noexcept;
    explicit operator bool() const noexcept;

    //modifiers:
    pointer release() noexcept;
    void reset(pointer p = pointer()) noexcept;
    void swap(global_ptr&amp; r) noexcept;

    global_ptr &amp;operator++() noexcept;
    global_ptr operator++(int) noexcept;
    global_ptr &amp;operator--() noexcept;
    global_ptr operator--(int) noexcept;
    global_ptr &amp;operator+=(difference_type r) noexcept;
    global_ptr &amp;operator-=(difference_type r) noexcept;
    global_ptr operator+(difference_type r) noexcept;
    global_ptr operator-(difference_type r) noexcept;
};

template &lt;class T&gt; class global_ptr&lt;T[]&gt;
{
public:
    //types:
    typedef T element_type;
    typedef ptrdiff_t difference_type;
    typedef add_global_t&lt;T&gt;&amp; reference;
    typedef const add_global_t&lt;T&gt;&amp; const_reference;
    typedef add_global_t&lt;T&gt;* pointer;
    typedef const add_global_t&lt;T&gt;* const_pointer;

    //constructors:
    constexpr global_ptr() noexcept;
    explicit global_ptr(pointer p) noexcept;
    global_ptr(const global_ptr &amp;r) noexcept;
    global_ptr(global_ptr &amp;&amp;r) noexcept;
    constexpr global_ptr(nullptr_t) noexcept;

    //assignment:
    global_ptr &amp;operator=(const global_ptr &amp;r) noexcept;
    global_ptr &amp;operator=(global_ptr &amp;&amp;r) noexcept;
    global_ptr &amp;operator=(pointer r) noexcept;
    global_ptr &amp;operator=(nullptr_t) noexcept;

    //observers:
    reference operator[](size_t pos) const noexcept;
    pointer get() const noexcept;
    explicit operator bool() const noexcept;

    //modifiers:
    pointer release()noexcept;
    void reset(pointer p) noexcept;
    void reset(nullptr_t p = nullptr) noexcept;
    void swap(global_ptr&amp; r) noexcept;

    global_ptr &amp;operator++() noexcept;
    global_ptr operator++(int) noexcept;
    global_ptr &amp;operator--() noexcept;
    global_ptr operator--(int) noexcept;
    global_ptr &amp;operator+=(difference_type r) noexcept;
    global_ptr &amp;operator-=(difference_type r) noexcept;
    global_ptr operator+(difference_type r) noexcept;
    global_ptr operator-(difference_type r) noexcept;
};

template&lt;class T, class U&gt;
bool operator==(const global_ptr&lt;T&gt; &amp;a, const global_ptr&lt;U&gt; &amp;b) noexcept;
template&lt;class T, class U&gt;
bool operator!=(const global_ptr&lt;T&gt; &amp;a, const global_ptr&lt;U&gt; &amp;b) noexcept;
template&lt;class T, class U&gt;
bool operator&lt;(const global_ptr&lt;T&gt; &amp;a, const global_ptr&lt;U&gt; &amp;b) noexcept;
template&lt;class T, class U&gt;
bool operator&gt;(const global_ptr&lt;T&gt; &amp;a, const global_ptr&lt;U&gt; &amp;b) noexcept;
template&lt;class T, class U&gt;
bool operator&lt;=(const global_ptr&lt;T&gt; &amp;a, const global_ptr&lt;U&gt; &amp;b) noexcept;
template&lt;class T, class U&gt;
bool operator&gt;=(const global_ptr&lt;T&gt; &amp;a, const global_ptr&lt;U&gt; &amp;b) noexcept;

template&lt;class T&gt;
bool operator==(const global_ptr&lt;T&gt; &amp;x, nullptr_t) noexcept;
template&lt;class T&gt;
bool operator==(nullptr_t, const global_ptr&lt;T&gt; &amp;x) noexcept;
template&lt;class T&gt;
bool operator!=(const global_ptr&lt;T&gt; &amp;x, nullptr_t) noexcept;
template&lt;class T&gt;
bool operator!=(nullptr_t, const global_ptr&lt;T&gt; &amp;x) noexcept;
template&lt;class T&gt;
bool operator&lt;(const global_ptr&lt;T&gt; &amp;x, nullptr_t) noexcept;
template&lt;class T&gt;
bool operator&lt;(nullptr_t, const global_ptr&lt;T&gt; &amp;x) noexcept;
template&lt;class T&gt;
bool operator&gt;(const global_ptr&lt;T&gt; &amp;x, nullptr_t) noexcept;
template&lt;class T&gt;
bool operator&gt;(nullptr_t, const global_ptr&lt;T&gt; &amp;x) noexcept;
template&lt;class T&gt;
bool operator&lt;=(const global_ptr&lt;T&gt; &amp;x, nullptr_t) noexcept;
template&lt;class T&gt;
bool operator&lt;=(nullptr_t, const global_ptr&lt;T&gt; &amp;x) noexcept;
template&lt;class T&gt;
bool operator&gt;=(const global_ptr&lt;T&gt; &amp;x, nullptr_t) noexcept;
template&lt;class T&gt;
bool operator&gt;=(nullptr_t, const global_ptr&lt;T&gt; &amp;x) noexcept;

template&lt;class T&gt;
void swap(global_ptr&lt;T&gt;&amp; a, global_ptr&lt;T&gt;&amp; b) noexcept;

}</code></pre>
</div>
</div>
</div>
<div class="sect4">
<h5 id="local_ptr-class">local_ptr class</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>namespace cl
{
template &lt;class T&gt; class local_ptr
{
public:
    struct size_type
    {
        explicit constexpr size_type(size_t size);
        operator size_t();
    };

    //types:
    typedef T element_type;
    typedef ptrdiff_t difference_type;
    typedef add_local_t&lt;T&gt;&amp; reference;
    typedef const add_local_t&lt;T&gt;&amp; const_reference;
    typedef add_local_t&lt;T&gt;* pointer;
    typedef const add_local_t&lt;T&gt;* const_pointer;

    //constructors:
    constexpr local_ptr() noexcept;
    explicit local_ptr(pointer p) noexcept;
    local_ptr(const local_ptr &amp;r) noexcept;
    local_ptr(local_ptr &amp;&amp;r) noexcept;
    constexpr local_ptr(nullptr_t) noexcept;

    //assignment:
    local_ptr &amp;operator=(const local_ptr &amp;r) noexcept;
    local_ptr &amp;operator=(local_ptr &amp;&amp;r) noexcept;
    local_ptr &amp;operator=(pointer r) noexcept;
    local_ptr &amp;operator=(nullptr_t) noexcept;

    //observers:
    add_lvalue_reference_t&lt;add_local_t&lt;T&gt;&gt; operator*() const noexcept;
    pointer operator-&gt;() const noexcept;
    pointer get() const noexcept;
    explicit operator bool() const noexcept;

    //modifiers:
    pointer release() noexcept;
    void reset(pointer p = pointer()) noexcept;
    void swap(local_ptr&amp; r) noexcept;

    local_ptr &amp;operator++() noexcept;
    local_ptr operator++(int) noexcept;
    local_ptr &amp;operator--() noexcept;
    local_ptr operator--(int) noexcept;
    local_ptr &amp;operator+=(difference_type r) noexcept;
    local_ptr &amp;operator-=(difference_type r) noexcept;
    local_ptr operator+(difference_type r) noexcept;
    local_ptr operator-(difference_type r) noexcept;
};

template &lt;class T&gt; class local_ptr&lt;T[]&gt;
{
public:
    //types:
    typedef T element_type;
    typedef ptrdiff_t difference_type;
    typedef add_local_t&lt;T&gt;&amp; reference;
    typedef const add_local_t&lt;T&gt;&amp; const_reference;
    typedef add_local_t&lt;T&gt;* pointer;
    typedef const add_local_t&lt;T&gt;* const_pointer;

    //constructors:
    constexpr local_ptr() noexcept;
    explicit local_ptr(pointer p) noexcept;
    local_ptr(const local_ptr &amp;r) noexcept;
    local_ptr(local_ptr &amp;&amp;r) noexcept;
    constexpr local_ptr(nullptr_t) noexcept;

    //assignment:
    local_ptr &amp;operator=(const local_ptr &amp;r) noexcept;
    local_ptr &amp;operator=(local_ptr &amp;&amp;r) noexcept;
    local_ptr &amp;operator=(pointer r) noexcept;
    local_ptr &amp;operator=(nullptr_t) noexcept;

    //observers:
    reference operator[](size_t pos) const noexcept;
    pointer get() const noexcept;
    explicit operator bool() const noexcept;

    //modifiers:
    pointer release()noexcept;
    void reset(pointer p) noexcept;
    void reset(nullptr_t p = nullptr) noexcept;
    void swap(local_ptr&amp; r) noexcept;

    local_ptr &amp;operator++() noexcept;
    local_ptr operator++(int) noexcept;
    local_ptr &amp;operator--() noexcept;
    local_ptr operator--(int) noexcept;
    local_ptr &amp;operator+=(difference_type r) noexcept;
    local_ptr &amp;operator-=(difference_type r) noexcept;
    local_ptr operator+(difference_type r) noexcept;
    local_ptr operator-(difference_type r) noexcept;
};

template&lt;class T, class U&gt;
bool operator==(const local_ptr&lt;T&gt; &amp;a, const local_ptr&lt;U&gt; &amp;b) noexcept;
template&lt;class T, class U&gt;
bool operator!=(const local_ptr&lt;T&gt; &amp;a, const local_ptr&lt;U&gt; &amp;b) noexcept;
template&lt;class T, class U&gt;
bool operator&lt;(const local_ptr&lt;T&gt; &amp;a, const local_ptr&lt;U&gt; &amp;b) noexcept;
template&lt;class T, class U&gt;
bool operator&gt;(const local_ptr&lt;T&gt; &amp;a, const local_ptr&lt;U&gt; &amp;b) noexcept;
template&lt;class T, class U&gt;
bool operator&lt;=(const local_ptr&lt;T&gt; &amp;a, const local_ptr&lt;U&gt; &amp;b) noexcept;
template&lt;class T, class U&gt;
bool operator&gt;=(const local_ptr&lt;T&gt; &amp;a, const local_ptr&lt;U&gt; &amp;b) noexcept;

template&lt;class T&gt;
bool operator==(const local_ptr&lt;T&gt; &amp;x, nullptr_t) noexcept;
template&lt;class T&gt;
bool operator==(nullptr_t, const local_ptr&lt;T&gt; &amp;x) noexcept;
template&lt;class T&gt;
bool operator!=(const local_ptr&lt;T&gt; &amp;x, nullptr_t) noexcept;
template&lt;class T&gt;
bool operator!=(nullptr_t, const local_ptr&lt;T&gt; &amp;x) noexcept;
template&lt;class T&gt;
bool operator&lt;(const local_ptr&lt;T&gt; &amp;x, nullptr_t) noexcept;
template&lt;class T&gt;
bool operator&lt;(nullptr_t, const local_ptr&lt;T&gt; &amp;x) noexcept;
template&lt;class T&gt;
bool operator&gt;(const local_ptr&lt;T&gt; &amp;x, nullptr_t) noexcept;
template&lt;class T&gt;
bool operator&gt;(nullptr_t, const local_ptr&lt;T&gt; &amp;x) noexcept;
template&lt;class T&gt;
bool operator&lt;=(const local_ptr&lt;T&gt; &amp;x, nullptr_t) noexcept;
template&lt;class T&gt;
bool operator&lt;=(nullptr_t, const local_ptr&lt;T&gt; &amp;x) noexcept;
template&lt;class T&gt;
bool operator&gt;=(const local_ptr&lt;T&gt; &amp;x, nullptr_t) noexcept;
template&lt;class T&gt;
bool operator&gt;=(nullptr_t, const local_ptr&lt;T&gt; &amp;x) noexcept;

template&lt;class T&gt;
void swap(local_ptr&lt;T&gt;&amp; a, local_ptr&lt;T&gt;&amp; b) noexcept;

}</code></pre>
</div>
</div>
</div>
<div class="sect4">
<h5 id="private_ptr-class">private_ptr class</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>namespace cl
{
template &lt;class T&gt; class private_ptr
{
public:
    //types:
    typedef T element_type;
    typedef ptrdiff_t difference_type;
    typedef add_private_t&lt;T&gt;&amp; reference;
    typedef const add_private_t&lt;T&gt;&amp; const_reference;
    typedef add_private_t&lt;T&gt;* pointer;
    typedef const add_private_t&lt;T&gt;* const_pointer;

    //constructors:
    constexpr private_ptr() noexcept;
    explicit private_ptr(pointer p) noexcept;
    private_ptr(const private_ptr &amp;r) noexcept;
    private_ptr(private_ptr &amp;&amp;r) noexcept;
    constexpr private_ptr(nullptr_t) noexcept;

    //assignment:
    private_ptr &amp;operator=(const private_ptr &amp;r) noexcept;
    private_ptr &amp;operator=(private_ptr &amp;&amp;r) noexcept;
    private_ptr &amp;operator=(pointer r) noexcept;
    private_ptr &amp;operator=(nullptr_t) noexcept;

    //observers:
    add_lvalue_reference_t&lt;add_private_t&lt;T&gt;&gt; operator*() const noexcept;
    pointer operator-&gt;() const noexcept;
    pointer get() const noexcept;
    explicit operator bool() const noexcept;

    //modifiers:
    pointer release() noexcept;
    void reset(pointer p = pointer()) noexcept;
    void swap(private_ptr&amp; r) noexcept;

    private_ptr &amp;operator++() noexcept;
    private_ptr operator++(int) noexcept;
    private_ptr &amp;operator--() noexcept;
    private_ptr operator--(int) noexcept;
    private_ptr &amp;operator+=(difference_type r) noexcept;
    private_ptr &amp;operator-=(difference_type r) noexcept;
    private_ptr operator+(difference_type r) noexcept;
    private_ptr operator-(difference_type r) noexcept;
};

template &lt;class T&gt; class private_ptr&lt;T[]&gt; {
public:
    //types:
    typedef T element_type;
    typedef ptrdiff_t difference_type;
    typedef add_private_t&lt;T&gt;&amp; reference;
    typedef const add_private_t&lt;T&gt;&amp; const_reference;
    typedef add_private_t&lt;T&gt;* pointer;
    typedef const add_private_t&lt;T&gt;* const_pointer;

    //constructors:
    constexpr private_ptr() noexcept;
    explicit private_ptr(pointer p) noexcept;
    private_ptr(const private_ptr &amp;r) noexcept;
    private_ptr(private_ptr &amp;&amp;r) noexcept;
    constexpr private_ptr(nullptr_t) noexcept;

    //assignment:
    private_ptr &amp;operator=(const private_ptr &amp;r) noexcept;
    private_ptr &amp;operator=(private_ptr &amp;&amp;r) noexcept;
    private_ptr &amp;operator=(pointer r) noexcept;
    private_ptr &amp;operator=(nullptr_t) noexcept;

    //observers:
    reference operator[](size_t pos) const noexcept;
    pointer get() const noexcept;
    explicit operator bool() const noexcept;

    //modifiers:
    pointer release()noexcept;
    void reset(pointer p) noexcept;
    void reset(nullptr_t p = nullptr) noexcept;
    void swap(private_ptr&amp; r) noexcept;

    private_ptr &amp;operator++() noexcept;
    private_ptr operator++(int) noexcept;
    private_ptr &amp;operator--() noexcept;
    private_ptr operator--(int) noexcept;
    private_ptr &amp;operator+=(difference_type r) noexcept;
    private_ptr &amp;operator-=(difference_type r) noexcept;
    private_ptr operator+(difference_type r) noexcept;
    private_ptr operator-(difference_type r) noexcept;
};

template&lt;class T, class U&gt;
bool operator==(const private_ptr&lt;T&gt; &amp;a, const private_ptr&lt;U&gt; &amp;b) noexcept;
template&lt;class T, class U&gt;
bool operator!=(const private_ptr&lt;T&gt; &amp;a, const private_ptr&lt;U&gt; &amp;b) noexcept;
template&lt;class T, class U&gt;
bool operator&lt;(const private_ptr&lt;T&gt; &amp;a, const private_ptr&lt;U&gt; &amp;b) noexcept;
template&lt;class T, class U&gt;
bool operator&gt;(const private_ptr&lt;T&gt; &amp;a, const private_ptr&lt;U&gt; &amp;b) noexcept;
template&lt;class T, class U&gt;
bool operator&lt;=(const private_ptr&lt;T&gt; &amp;a, const private_ptr&lt;U&gt; &amp;b) noexcept;
template&lt;class T, class U&gt;
bool operator&gt;=(const private_ptr&lt;T&gt; &amp;a, const private_ptr&lt;U&gt; &amp;b) noexcept;

template&lt;class T&gt;
bool operator==(const private_ptr&lt;T&gt; &amp;x, nullptr_t) noexcept;
template&lt;class T&gt;
bool operator==(nullptr_t, const private_ptr&lt;T&gt; &amp;x) noexcept;
template&lt;class T&gt;
bool operator!=(const private_ptr&lt;T&gt; &amp;x, nullptr_t) noexcept;
template&lt;class T&gt;
bool operator!=(nullptr_t, const private_ptr&lt;T&gt; &amp;x) noexcept;
template&lt;class T&gt;
bool operator&lt;(const private_ptr&lt;T&gt; &amp;x, nullptr_t) noexcept;
template&lt;class T&gt;
bool operator&lt;(nullptr_t, const private_ptr&lt;T&gt; &amp;x) noexcept;
template&lt;class T&gt;
bool operator&gt;(const private_ptr&lt;T&gt; &amp;x, nullptr_t) noexcept;
template&lt;class T&gt;
bool operator&gt;(nullptr_t, const private_ptr&lt;T&gt; &amp;x) noexcept;
template&lt;class T&gt;
bool operator&lt;=(const private_ptr&lt;T&gt; &amp;x, nullptr_t) noexcept;
template&lt;class T&gt;
bool operator&lt;=(nullptr_t, const private_ptr&lt;T&gt; &amp;x) noexcept;
template&lt;class T&gt;
bool operator&gt;=(const private_ptr&lt;T&gt; &amp;x, nullptr_t) noexcept;
template&lt;class T&gt;
bool operator&gt;=(nullptr_t, const private_ptr&lt;T&gt; &amp;x) noexcept;

template&lt;class T&gt;
void swap(private_ptr&lt;T&gt;&amp; a, private_ptr&lt;T&gt;&amp; b) noexcept;

}</code></pre>
</div>
</div>
</div>
<div class="sect4">
<h5 id="constant_ptr-class">constant_ptr class</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>namespace cl
{
template &lt;class T&gt; class constant_ptr
{
public:
    //types:
    typedef T element_type;
    typedef ptrdiff_t difference_type;
    typedef add_constant_t&lt;T&gt;&amp; reference;
    typedef const add_constant_t&lt;T&gt;&amp; const_reference;
    typedef add_constant_t&lt;T&gt;* pointer;
    typedef const add_constant_t&lt;T&gt;* const_pointer;

    //constructors:
    constexpr constant_ptr() noexcept;
    explicit constant_ptr(pointer p) noexcept;
    constant_ptr(const constant_ptr &amp;r) noexcept;
    constant_ptr(constant_ptr &amp;&amp;r) noexcept;
    constexpr constant_ptr(nullptr_t) noexcept;

    //assignment:
    constant_ptr &amp;operator=(const constant_ptr &amp;r) noexcept;
    constant_ptr &amp;operator=(constant_ptr &amp;&amp;r) noexcept;
    constant_ptr &amp;operator=(pointer r) noexcept;
    constant_ptr &amp;operator=(nullptr_t) noexcept;

    //observers:
    add_lvalue_reference_t&lt;add_constant_t&lt;T&gt;&gt; operator*() const noexcept;
    pointer operator-&gt;() const noexcept;
    pointer get() const noexcept;
    explicit operator bool() const noexcept;

    //modifiers:
    pointer release() noexcept;
    void reset(pointer p = pointer()) noexcept;
    void swap(constant_ptr&amp; r) noexcept;

    constant_ptr &amp;operator++() noexcept;
    constant_ptr operator++(int) noexcept;
    constant_ptr &amp;operator--() noexcept;
    constant_ptr operator--(int) noexcept;
    constant_ptr &amp;operator+=(difference_type r) noexcept;
    constant_ptr &amp;operator-=(difference_type r) noexcept;
    constant_ptr operator+(difference_type r) noexcept;
    constant_ptr operator-(difference_type r) noexcept;
};

template &lt;class T&gt; class constant_ptr&lt;T[]&gt;
{
public:
    //types:
    typedef T element_type;
    typedef ptrdiff_t difference_type;
    typedef add_constant_t&lt;T&gt;&amp; reference;
    typedef const add_constant_t&lt;T&gt;&amp; const_reference;
    typedef add_constant_t&lt;T&gt;* pointer;
    typedef const add_constant_t&lt;T&gt;* const_pointer;

    //constructors:
    constexpr constant_ptr() noexcept;
    explicit constant_ptr(pointer p) noexcept;
    constant_ptr(const constant_ptr &amp;r) noexcept;
    constant_ptr(constant_ptr &amp;&amp;r) noexcept;
    constexpr constant_ptr(nullptr_t) noexcept;

    //assignment:
    constant_ptr &amp;operator=(const constant_ptr &amp;r) noexcept;
    constant_ptr &amp;operator=(constant_ptr &amp;&amp;r) noexcept;
    constant_ptr &amp;operator=(pointer r) noexcept;
    constant_ptr &amp;operator=(nullptr_t) noexcept;

    //observers:
    reference operator[](size_t pos) const noexcept;
    pointer get() const noexcept;
    explicit operator bool() const noexcept;

    //modifiers:
    pointer release()noexcept;
    void reset(pointer p) noexcept;
    void reset(nullptr_t p = nullptr) noexcept;
    void swap(constant_ptr&amp; r) noexcept;

    constant_ptr &amp;operator++() noexcept;
    constant_ptr operator++(int) noexcept;
    constant_ptr &amp;operator--() noexcept;
    constant_ptr operator--(int) noexcept;
    constant_ptr &amp;operator+=(difference_type r) noexcept;
    constant_ptr &amp;operator-=(difference_type r) noexcept;
    constant_ptr operator+(difference_type r) noexcept;
    constant_ptr operator-(difference_type r) noexcept;
};

template&lt;class T, class U&gt;
bool operator==(const constant_ptr&lt;T&gt; &amp;a, const constant_ptr&lt;U&gt; &amp;b) noexcept;
template&lt;class T, class U&gt;
bool operator!=(const constant_ptr&lt;T&gt; &amp;a, const constant_ptr&lt;U&gt; &amp;b) noexcept;
template&lt;class T, class U&gt;
bool operator&lt;(const constant_ptr&lt;T&gt; &amp;a, const constant_ptr&lt;U&gt; &amp;b) noexcept;
template&lt;class T, class U&gt;
bool operator&gt;(const constant_ptr&lt;T&gt; &amp;a, const constant_ptr&lt;U&gt; &amp;b) noexcept;
template&lt;class T, class U&gt;
bool operator&lt;=(const constant_ptr&lt;T&gt; &amp;a, const constant_ptr&lt;U&gt; &amp;b) noexcept;
template&lt;class T, class U&gt;
bool operator&gt;=(const constant_ptr&lt;T&gt; &amp;a, const constant_ptr&lt;U&gt; &amp;b) noexcept;

template&lt;class T&gt;
bool operator==(const constant_ptr&lt;T&gt; &amp;x, nullptr_t) noexcept;
template&lt;class T&gt;
bool operator==(nullptr_t, const constant_ptr&lt;T&gt; &amp;x) noexcept;
template&lt;class T&gt;
bool operator!=(const constant_ptr&lt;T&gt; &amp;x, nullptr_t) noexcept;
template&lt;class T&gt;
bool operator!=(nullptr_t, const constant_ptr&lt;T&gt; &amp;x) noexcept;
template&lt;class T&gt;
bool operator&lt;(const constant_ptr&lt;T&gt; &amp;x, nullptr_t) noexcept;
template&lt;class T&gt;
bool operator&lt;(nullptr_t, const constant_ptr&lt;T&gt; &amp;x) noexcept;
template&lt;class T&gt;
bool operator&gt;(const constant_ptr&lt;T&gt; &amp;x, nullptr_t) noexcept;
template&lt;class T&gt;
bool operator&gt;(nullptr_t, const constant_ptr&lt;T&gt; &amp;x) noexcept;
template&lt;class T&gt;
bool operator&lt;=(const constant_ptr&lt;T&gt; &amp;x, nullptr_t) noexcept;
template&lt;class T&gt;
bool operator&lt;=(nullptr_t, const constant_ptr&lt;T&gt; &amp;x) noexcept;
template&lt;class T&gt;
bool operator&gt;=(const constant_ptr&lt;T&gt; &amp;x, nullptr_t) noexcept;
template&lt;class T&gt;
bool operator&gt;=(nullptr_t, const constant_ptr&lt;T&gt; &amp;x) noexcept;

template&lt;class T&gt;
void swap(constant_ptr&lt;T&gt;&amp; a, constant_ptr&lt;T&gt;&amp; b) noexcept;

}</code></pre>
</div>
</div>
</div>
<div class="sect4">
<h5 id="constructors">Constructors</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>constexpr global_ptr() noexcept;
constexpr local_ptr() noexcept;
constexpr private_ptr() noexcept;
constexpr constant_ptr() noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Constructs an object which points to nothing.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>explicit global_ptr(pointer p) noexcept;
explicit local_ptr(pointer p) noexcept;
explicit private_ptr(pointer p) noexcept;
explicit constant_ptr(pointer p) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Constructs an object which points to <code>p</code>.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>global_ptr(const global_ptr &amp;) noexcept;
local_ptr(const local_ptr &amp;) noexcept;
private_ptr(const private_ptr &amp;) noexcept;
constant_ptr(const constant_ptr &amp;) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Copy constructor.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>global_ptr(global_ptr &amp;&amp;r) noexcept;
local_ptr(local_ptr &amp;&amp;r) noexcept;
private_ptr(private_ptr &amp;&amp;r) noexcept;
constant_ptr(constant_ptr &amp;&amp;r) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Move constructor.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>constexpr global_ptr(nullptr_t) noexcept;
constexpr local_ptr(nullptr_t) noexcept;
constexpr private_ptr(nullptr_t) noexcept;
constexpr constant_ptr(nullptr_t) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Constructs an object initialized with <code>nullptr</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="assignment-operators">Assignment operators</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>global_ptr &amp;operator=(const global_ptr &amp;r) noexcept;
local_ptr &amp;operator=(const local_ptr &amp;r) noexcept;
private_ptr &amp;operator=(const private_ptr &amp;r) noexcept;
constant_ptr &amp;operator=(const constant_ptr &amp;r) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Copy assignment operator</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>global_ptr &amp;operator=(global_ptr &amp;&amp;r) noexcept;
local_ptr &amp;operator=(local_ptr &amp;&amp;r) noexcept;
private_ptr &amp;operator=(private_ptr &amp;&amp;r) noexcept;
constant_ptr &amp;operator=(constant_ptr &amp;&amp;r) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Move assignment operator</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>global_ptr &amp;operator=(pointer r) noexcept;
local_ptr &amp;operator=(pointer r) noexcept;
private_ptr &amp;operator=(pointer r) noexcept;
constant_ptr &amp;operator=(pointer r) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Assigns <code>r</code> pointer to the stored pointer</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>global_ptr &amp;operator=(nullptr_t) noexcept;
local_ptr &amp;operator=(nullptr_t) noexcept;
private_ptr &amp;operator=(nullptr_t) noexcept;
constant_ptr &amp;operator=(nullptr_t) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Assigns <code>nullptr</code> to the stored pointer</p>
</div>
</div>
<div class="sect4">
<h5 id="observers">Observers</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>add_lvalue_reference_t&lt;add_global_t&lt;T&gt;&gt; operator*() const noexcept;
add_lvalue_reference_t&lt;add_local_t&lt;T&gt;&gt; operator*() const noexcept;
add_lvalue_reference_t&lt;add_private_t&lt;T&gt;&gt; operator*() const noexcept;
add_lvalue_reference_t&lt;add_constant_t&lt;T&gt;&gt; operator*() const noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns <code>*get()</code>. It is only defined in single object version of the explicit address space pointer class.
The result of this operator is undefined if <code>get() == nullptr</code>.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>pointer operator-&gt;() const noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns <code>get()</code>. It is only defined in single object version of the explicit address space pointer class.
The result of this operator is undefined if <code>get() == nullptr</code>.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>reference operator[](size_t pos) const noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns <code>get()[pos]</code>. The subscript operator is only defined in specialized <code>global_ptr&lt;T[]&gt;</code>, <code>local_ptr&lt;T[]&gt;</code>, <code>private_ptr&lt;T[]&gt;</code> and <code>constant_ptr&lt;T[]&gt;</code> version for array types.
The result of this operator is undefined if <code>pos &gt;=</code> the number of elements in the array to which the stored pointer points.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>pointer get() const noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns the stored pointer.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>explicit operator bool() const noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns <code>get() != nullptr</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="modifiers">Modifiers</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>pointer release() noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Assigns <code>nullptr</code> to the stored pointer and returns the value <code>get()</code> had at the start of the call to release.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>void reset(pointer p = pointer()) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Assigned <code>p</code> to the stored pointer.
It is only defined in single object version of the explicit address space pointer class</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>void reset(pointer p) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Assigned <code>p</code> to the stored pointer.
It is only defined in specialized <code>global_ptr&lt;T[]&gt;</code>, <code>local_ptr&lt;T[]&gt;</code>, <code>private_ptr&lt;T[]&gt;</code> and <code>constant_ptr&lt;T[]&gt;</code> version for array types.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>void reset(nullptr_t p = nullptr) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Equivalent to <code>reset(pointer())</code>.
It is only defined in specialized <code>global_ptr&lt;T[]&gt;</code>, <code>local_ptr&lt;T[]&gt;</code>, <code>private_ptr&lt;T[]&gt;</code> and <code>constant_ptr&lt;T[]&gt;</code> version for array types.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>void swap(global_ptr&amp; r) noexcept;
void swap(local_ptr&amp; r) noexcept;
void swap(private_ptr&amp; r) noexcept;
void swap(constant_ptr&amp; r) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Invokes swap on the stored pointers.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>global_ptr &amp;operator++() noexcept;
local_ptr &amp;operator++() noexcept;
private_ptr &amp;operator++() noexcept;
constant_ptr &amp;operator++() noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Prefix increment operator.
Increments the stored pointer by one.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>global_ptr operator++(int) noexcept;
local_ptr operator++(int) noexcept;
private_ptr operator++(int) noexcept;
constant_ptr operator++(int) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Postfix increment operator.
Increments the stored pointer by one.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>global_ptr &amp;operator--() noexcept;
local_ptr &amp;operator--() noexcept;
private_ptr &amp;operator--() noexcept;
constant_ptr &amp;operator--() noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Prefix decrement operator.
Decrements the stored pointer by one.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>global_ptr operator--(int) noexcept;
local_ptr operator--(int) noexcept;
private_ptr operator--(int) noexcept;
constant_ptr operator--(int) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Postfix decrement operator.
Decrements the stored pointer by one.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>global_ptr &amp;operator+=(difference_type r) noexcept;
local_ptr &amp;operator+=(difference_type r) noexcept;
private_ptr &amp;operator+=(difference_type r) noexcept;
constant_ptr &amp;operator+=(difference_type r) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Adds <code>r</code> to the stored pointer and returns <code>*this</code>.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>global_ptr &amp;operator-=(difference_type r) noexcept;
local_ptr &amp;operator-=(difference_type r) noexcept;
private_ptr &amp;operator-=(difference_type r) noexcept;
constant_ptr &amp;operator-=(difference_type r) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Subtracts <code>r</code> to the stored pointer and returns <code>*this</code>.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>global_ptr operator+(difference_type r) noexcept;
local_ptr operator+(difference_type r) noexcept;
private_ptr operator+(difference_type r) noexcept;
constant_ptr operator+(difference_type r) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Adds <code>r</code> to the stored pointer and returns the value <code>*this</code> has at the start of <code>operator+</code>.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>global_ptr operator-(difference_type r) noexcept;
local_ptr operator-(difference_type r) noexcept;
private_ptr operator-(difference_type r) noexcept;
constant_ptr operator-(difference_type r) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Subtracts <code>r</code> to the stored pointer and returns the value <code>*this</code> has at the start of <code>operator-</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="non-member-functions">Non-member functions</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template&lt;class T, class U&gt;
bool operator==(const global_ptr&lt;T&gt; &amp;a, const global_ptr&lt;U&gt; &amp;b) noexcept;
template&lt;class T, class U&gt;
bool operator==(const local_ptr&lt;T&gt; &amp;a, const local_ptr&lt;U&gt; &amp;b) noexcept;
template&lt;class T, class U&gt;
bool operator==(const private_ptr&lt;T&gt; &amp;a, const private_ptr&lt;U&gt; &amp;b) noexcept;
template&lt;class T, class U&gt;
bool operator==(const constant_ptr&lt;T&gt; &amp;a, const constant_ptr&lt;U&gt; &amp;b) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Comparison <code>operator==</code> for the explicit address space pointer classes.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template&lt;class T&gt;
bool operator==(nullptr_t, const global_ptr&lt;T&gt; &amp;x) noexcept;
template&lt;class T&gt;
bool operator==(const global_ptr&lt;T&gt; &amp;x, nullptr_t) noexcept;

template&lt;class T&gt;
bool operator==(nullptr_t, const local_ptr&lt;T&gt; &amp;x) noexcept;
template&lt;class T&gt;
bool operator==(const local_ptr&lt;T&gt; &amp;x, nullptr_t) noexcept;

template&lt;class T&gt;
bool operator==(nullptr_t, const private_ptr&lt;T&gt; &amp;x) noexcept;
template&lt;class T&gt;
bool operator==(const private_ptr&lt;T&gt; &amp;x, nullptr_t) noexcept;

template&lt;class T&gt;
bool operator==(nullptr_t, const constant_ptr&lt;T&gt; &amp;x) noexcept;
template&lt;class T&gt;
bool operator==(const constant_ptr&lt;T&gt; &amp;x, nullptr_t) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Comparison <code>operator==</code> for the explicit address space pointer classes with a <code>nullptr_t</code>.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template&lt;class T, class U&gt;
bool operator!=(const global_ptr&lt;T&gt; &amp;a, const global_ptr&lt;U&gt; &amp;b) noexcept;
template&lt;class T, class U&gt;
bool operator!=(const local_ptr&lt;T&gt; &amp;a, const local_ptr&lt;U&gt; &amp;b) noexcept;
template&lt;class T, class U&gt;
bool operator!=(const private_ptr&lt;T&gt; &amp;a, const private_ptr&lt;U&gt; &amp;b) noexcept;
template&lt;class T, class U&gt;
bool operator!=(const constant_ptr&lt;T&gt; &amp;a, const constant_ptr&lt;U&gt; &amp;b) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Comparison <code>operator!=</code> for the explicit address space pointer classes.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template&lt;class T&gt;
bool operator!=(nullptr_t, const global_ptr&lt;T&gt; &amp;x) noexcept;
template&lt;class T&gt;
bool operator!=(const global_ptr&lt;T&gt; &amp;x, nullptr_t) noexcept;

template&lt;class T&gt;
bool operator!=(nullptr_t, const local_ptr&lt;T&gt; &amp;x) noexcept;
template&lt;class T&gt;
bool operator!=(const local_ptr&lt;T&gt; &amp;x, nullptr_t) noexcept;

template&lt;class T&gt;
bool operator!=(nullptr_t, const private_ptr&lt;T&gt; &amp;x) noexcept;
template&lt;class T&gt;
bool operator!=(const private_ptr&lt;T&gt; &amp;x, nullptr_t) noexcept;

template&lt;class T&gt;
bool operator!=(nullptr_t, const constant_ptr&lt;T&gt; &amp;x) noexcept;
template&lt;class T&gt;
bool operator!=(const constant_ptr&lt;T&gt; &amp;x, nullptr_t) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Comparison <code>operator!=</code> for the explicit address space pointer classes with a <code>nullptr_t</code>.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template&lt;class T, class U&gt;
bool operator&lt;(const global_ptr&lt;T&gt; &amp;a, const global_ptr&lt;U&gt; &amp;b) noexcept;
template&lt;class T, class U&gt;
bool operator&lt;(const local_ptr&lt;T&gt; &amp;a, const local_ptr&lt;U&gt; &amp;b) noexcept;
template&lt;class T, class U&gt;
bool operator&lt;(const private_ptr&lt;T&gt; &amp;a, const private_ptr&lt;U&gt; &amp;b) noexcept;
template&lt;class T, class U&gt;
bool operator&lt;(const constant_ptr&lt;T&gt; &amp;a, const constant_ptr&lt;U&gt; &amp;b) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Comparison <code>operator&lt;</code> for the explicit address space pointer classes.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template&lt;class T&gt;
bool operator&lt;(nullptr_t, const global_ptr&lt;T&gt; &amp;x) noexcept;
template&lt;class T&gt;
bool operator&lt;(const global_ptr&lt;T&gt; &amp;x, nullptr_t) noexcept;

template&lt;class T&gt;
bool operator&lt;(nullptr_t, const local_ptr&lt;T&gt; &amp;x) noexcept;
template&lt;class T&gt;
bool operator&lt;(const local_ptr&lt;T&gt; &amp;x, nullptr_t) noexcept;

template&lt;class T&gt;
bool operator&lt;(nullptr_t, const private_ptr&lt;T&gt; &amp;x) noexcept;
template&lt;class T&gt;
bool operator&lt;(const private_ptr&lt;T&gt; &amp;x, nullptr_t) noexcept;

template&lt;class T&gt;
bool operator&lt;(nullptr_t, const constant_ptr&lt;T&gt; &amp;x) noexcept;
template&lt;class T&gt;
bool operator&lt;(const constant_ptr&lt;T&gt; &amp;x, nullptr_t) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Comparison <code>operator&lt;</code> for the explicit address space pointer classes with a <code>nullptr_t</code>.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template&lt;class T, class U&gt;
bool operator&gt;(const global_ptr&lt;T&gt; &amp;a, const global_ptr&lt;U&gt; &amp;b) noexcept;
template&lt;class T, class U&gt;
bool operator&gt;(const local_ptr&lt;T&gt; &amp;a, const local_ptr&lt;U&gt; &amp;b) noexcept;
template&lt;class T, class U&gt;
bool operator&gt;(const private_ptr&lt;T&gt; &amp;a, const private_ptr&lt;U&gt; &amp;b) noexcept;
template&lt;class T, class U&gt;
bool operator&gt;(const constant_ptr&lt;T&gt; &amp;a, const constant_ptr&lt;U&gt; &amp;b) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Comparison <code>operator&gt;</code> for the explicit address space pointer classes.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template&lt;class T&gt;
bool operator&gt;(nullptr_t, const global_ptr&lt;T&gt; &amp;x) noexcept;
template&lt;class T&gt;
bool operator&gt;(const global_ptr&lt;T&gt; &amp;x, nullptr_t) noexcept;

template&lt;class T&gt;
bool operator&gt;(nullptr_t, const local_ptr&lt;T&gt; &amp;x) noexcept;
template&lt;class T&gt;
bool operator&gt;(const local_ptr&lt;T&gt; &amp;x, nullptr_t) noexcept;

template&lt;class T&gt;
bool operator&gt;(nullptr_t, const private_ptr&lt;T&gt; &amp;x) noexcept;
template&lt;class T&gt;
bool operator&gt;(const private_ptr&lt;T&gt; &amp;x, nullptr_t) noexcept;

template&lt;class T&gt;
bool operator&gt;(nullptr_t, const constant_ptr&lt;T&gt; &amp;x) noexcept;
template&lt;class T&gt;
bool operator&gt;(const constant_ptr&lt;T&gt; &amp;x, nullptr_t) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Comparison <code>operator&gt;</code> for the explicit address space pointer classes with a <code>nullptr_t</code>.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template&lt;class T, class U&gt;
bool operator&lt;=(const global_ptr&lt;T&gt; &amp;a, const global_ptr&lt;U&gt; &amp;b) noexcept;
template&lt;class T, class U&gt;
bool operator&lt;=(const local_ptr&lt;T&gt; &amp;a, const local_ptr&lt;U&gt; &amp;b) noexcept;
template&lt;class T, class U&gt;
bool operator&lt;=(const private_ptr&lt;T&gt; &amp;a, const private_ptr&lt;U&gt; &amp;b) noexcept;
template&lt;class T, class U&gt;
bool operator&lt;=(const constant_ptr&lt;T&gt; &amp;a, const constant_ptr&lt;U&gt; &amp;b) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Comparison <code>operator&lt;=</code> for the explicit address space pointer classes.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template&lt;class T&gt;
bool operator&lt;=(nullptr_t, const global_ptr&lt;T&gt; &amp;x) noexcept;
template&lt;class T&gt;
bool operator&lt;=(const global_ptr&lt;T&gt; &amp;x, nullptr_t) noexcept;

template&lt;class T&gt;
bool operator&lt;=(nullptr_t, const local_ptr&lt;T&gt; &amp;x) noexcept;
template&lt;class T&gt;
bool operator&lt;=(const local_ptr&lt;T&gt; &amp;x, nullptr_t) noexcept;

template&lt;class T&gt;
bool operator&lt;=(nullptr_t, const private_ptr&lt;T&gt; &amp;x) noexcept;
template&lt;class T&gt;
bool operator&lt;=(const private_ptr&lt;T&gt; &amp;x, nullptr_t) noexcept;

template&lt;class T&gt;
bool operator&lt;=(nullptr_t, const constant_ptr&lt;T&gt; &amp;x) noexcept;
template&lt;class T&gt;
bool operator&lt;=(const constant_ptr&lt;T&gt; &amp;x, nullptr_t) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Comparison <code>operator&lt;=</code> for the explicit address space pointer classes with a <code>nullptr_t</code>.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template&lt;class T, class U&gt;
bool operator&gt;=(const global_ptr&lt;T&gt; &amp;a, const global_ptr&lt;U&gt; &amp;b) noexcept;
template&lt;class T, class U&gt;
bool operator&gt;=(const local_ptr&lt;T&gt; &amp;a, const local_ptr&lt;U&gt; &amp;b) noexcept;
template&lt;class T, class U&gt;
bool operator&gt;=(const private_ptr&lt;T&gt; &amp;a, const private_ptr&lt;U&gt; &amp;b) noexcept;
template&lt;class T, class U&gt;
bool operator&gt;=(const constant_ptr&lt;T&gt; &amp;a, const constant_ptr&lt;U&gt; &amp;b) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Comparison <code>operator&gt;=</code> for the explicit address space pointer classes.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template&lt;class T&gt;
bool operator&gt;=(nullptr_t, const global_ptr&lt;T&gt; &amp;x) noexcept;
template&lt;class T&gt;
bool operator&gt;=(const global_ptr&lt;T&gt; &amp;x, nullptr_t) noexcept;

template&lt;class T&gt;
bool operator&gt;=(nullptr_t, const local_ptr&lt;T&gt; &amp;x) noexcept;
template&lt;class T&gt;
bool operator&gt;=(const local_ptr&lt;T&gt; &amp;x, nullptr_t) noexcept;

template&lt;class T&gt;
bool operator&gt;=(nullptr_t, const private_ptr&lt;T&gt; &amp;x) noexcept;
template&lt;class T&gt;
bool operator&gt;=(const private_ptr&lt;T&gt; &amp;x, nullptr_t) noexcept;

template&lt;class T&gt;
bool operator&gt;=(nullptr_t, const constant_ptr&lt;T&gt; &amp;x) noexcept;
template&lt;class T&gt;
bool operator&gt;=(const constant_ptr&lt;T&gt; &amp;x, nullptr_t) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Comparison <code>operator&gt;=</code> for the explicit address space pointer classes with a <code>nullptr_t</code>.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template&lt;class T&gt;
void swap(global_ptr&lt;T&gt;&amp; a, global_ptr&lt;T&gt;&amp; b) noexcept;
template&lt;class T&gt;
void swap(local_ptr&lt;T&gt;&amp; a, local_ptr&lt;T&gt;&amp; b) noexcept;
template&lt;class T&gt;
void swap(private_ptr&lt;T&gt;&amp; a, private_ptr&lt;T&gt;&amp; b) noexcept;
template&lt;class T&gt;
void swap(constant_ptr&lt;T&gt;&amp; a, constant_ptr&lt;T&gt;&amp; b) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Calls <code>a.swap(b)</code></p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="other-functions">3.4.4. Other functions</h4>
<div class="paragraph">
<p>The OpenCL C++ address space library implements the address space query and cast functions.
The cast function that allows to explicitly convert from a pointer in the generic address space to a pointer in the global, local and private address space.</p>
</div>
<div class="sect4">
<h5 id="get_mem_fence">get_mem_fence</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template &lt;class T&gt;
mem_fence get_mem_fence (T *ptr);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns the <code>mem_fence</code> value for <code>ptr</code>.
<code>ptr</code> must be the generic pointer and it cannot be the explicit address space pointer (<code>global_ptr&lt;&gt;</code>, <code>local_ptr&lt;&gt;</code>, <code>private_ptr&lt;&gt;</code> and <code>constant_ptr&lt;&gt;</code>) or pointer to address space storage class (<code>global&lt;&gt;*</code>, <code>local&lt;&gt;*</code>, <code>priv&lt;&gt;*</code> and <code>constant&lt;&gt;*</code>).</p>
</div>
</div>
<div class="sect4">
<h5 id="dynamic_asptr_cast">dynamic_asptr_cast</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template&lt;class T, class U&gt;
T dynamic_asptr_cast(U *ptr);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns a pointer that points to a region in the address space pointer class specified in <code>T</code> if <code>dynamic_asptr_cast</code> can cast <code>ptr</code> to the specified address space.
Otherwise it returns <code>nullptr</code>.
Only <code>global_ptr&lt;U&gt;</code>, <code>local_ptr&lt;U&gt;</code> and <code>private_ptr&lt;U&gt;</code> are valid <code>T</code> template arguments.
<code>ptr</code> must be the generic pointer and it cannot be the explicit address space pointer (<code>global_ptr&lt;&gt;</code>, <code>local_ptr&lt;&gt;</code>, <code>private_ptr&lt;&gt;</code> and <code>constant_ptr&lt;&gt;</code>) or pointer to address space storage class (<code>global&lt;&gt;*</code>, <code>local&lt;&gt;*</code>, <code>priv&lt;&gt;*</code> and <code>constant&lt;&gt;*</code>).</p>
</div>
</div>
<div class="sect4">
<h5 id="static_asptr_cast">static_asptr_cast</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template &lt;class T, class U&gt;
local_ptr&lt;T&gt; static_asptr_cast(local_ptr&lt;U&gt; const&amp; ptr) noexcept;
template &lt;class T, class U&gt;
global_ptr&lt;T&gt; static_asptr_cast(global_ptr&lt;U&gt; const&amp; ptr) noexcept;
template &lt;class T, class U&gt;
constant_ptr&lt;T&gt; static_asptr_cast(constant_ptr&lt;U&gt; const&amp; ptr) noexcept;
template &lt;class T, class U&gt;
private_ptr&lt;T&gt; static_asptr_cast(private_ptr&lt;U&gt; const&amp; ptr) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>The expression <code>static_cast(r.get())</code> shall be well formed.</p>
</div>
</div>
<div class="sect4">
<h5 id="reinterpret_asptr_cast">reinterpret_asptr_cast</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template &lt;class T, class U&gt;
local_ptr&lt;T&gt; reinterpret_asptr_cast(local_ptr&lt;U&gt; const&amp; ptr) noexcept;
template &lt;class T, class U&gt;
global_ptr&lt;T&gt; reinterpret_asptr_cast(global_ptr&lt;U&gt; const&amp; ptr) noexcept;
template &lt;class T, class U&gt;
constant_ptr&lt;T&gt; reinterpret_asptr_cast(constant_ptr&lt;U&gt; const&amp; ptr) noexcept;
template &lt;class T, class U&gt;
private_ptr&lt;T&gt; reinterpret_asptr_cast(private_ptr&lt;U&gt; const&amp; ptr) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>The expression <code>reinterpret_cast(r.get())</code> shall be well formed.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="restrictions-2">3.4.5. Restrictions</h4>
<div class="paragraph">
<p>1.
The objects allocated using <code>global</code>, <code>local</code> and <code>constant</code> storage classes can be passed to a function only by reference or pointer</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#include &lt;opencl_memory&gt;
#include &lt;opencl_array&gt;
using namespace cl;

kernel void foo(global&lt;array&lt;int, 5&gt;&gt; val) {
    // Error: variable in the global
    //        address space passed by value
    //...
}

kernel void bar(global&lt;array&lt;int, 5&gt;&gt; &amp;val) { // OK
    //...
}

kernel void foobar(global_ptr&lt;int&gt; val) { // OK
    //...
}

kernel void barfoo(global_ptr&lt;int[]&gt; val) { // OK
    //...
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>2.
The <code>global</code>, <code>local</code>, <code>priv</code> and <code>constant</code> storage classes cannot be used as a return type of function</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#include &lt;opencl_memory&gt;
#include &lt;opencl_array&gt;
using namespace cl;

global&lt;array&lt;int, 5&gt;&gt; programVar;

global&lt;array&lt;int, 5&gt;&gt; foo() { // error: variable in the global
                             // address space returned by value
    return programVar;
}

global&lt;array&lt;int, 5&gt;&gt; &amp;bar() { // OK
    return programVar;
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>3.
The <code>global</code>, <code>local</code> and <code>constant</code> storage classes cannot be used to declare class members unless <code>static</code> keyword is used</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#include &lt;opencl_memory&gt;
#include &lt;opencl_array&gt;
using namespace cl;

struct Foo {
    global&lt;int&gt; a; // error: class members cannot be qualified
                   // with address space
    local&lt;array&lt;int, 5&gt;&gt; b; // error: class members cannot be
                           // qualified with address space

    static global&lt;int&gt; c; // OK
    static local&lt;array&lt;int, 5&gt;&gt; d; // OK
};</code></pre>
</div>
</div>
<div class="paragraph">
<p>4.
The <code>global</code> storage class cannot be used to declare variables at function scope unless <code>static</code> keyword is used</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#include &lt;opencl_memory&gt;
using namespace cl;

kernel void foo() {
    global&lt;int&gt; b; // error
    static global&lt;int&gt; b; // OK
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>5.
The <code>local</code> variables can be declared only at kernel function scope, program scope and with <code>static</code> keyword</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#include &lt;opencl_memory&gt;
#include &lt;opencl_array&gt;
using namespace cl;

// An array of 5 ints allocated in
// local address space.
local&lt;array&lt;int, 5&gt;&gt; a = { 10 }; // OK: program scope local
                                 // variable

kernel void foo() {
    // A single int allocated in
    // local address space
    local&lt;int&gt; b{1}; // OK
    static local&lt;int&gt; d{1}; // OK

    if(get_local_id(0) == 0) {
        // example of variable in local address space
        // but not declared at __kernel function scope.
        local&lt;int&gt; c{2}; // not allowed
  }
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>6.
The objects allocated using <code>global</code> storage class must be initialized with the constant expression arguments</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#include &lt;opencl_memory&gt;
#include &lt;opencl_work_item&gt;
using namespace cl;

kernel void foo() {
    int a = get_local_id(0);
    static global&lt;int&gt; b{a}; // undefined behavior
    static global&lt;int&gt; c{0}; // OK
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>7.
The constructors of objects allocated using <code>constant</code> storage class must be constant expression</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#include &lt;opencl_memory&gt;
#include &lt;opencl_work_item&gt;
using namespace cl;

constant&lt;int&gt; b{0}; // OK

kernel void foo() {
    int a = get_local_id(0);
    static constant&lt;int&gt; b{a}; // undefined behavior
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>8.
Constant variables must be initialized</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#include &lt;opencl_memory&gt;
using namespace cl;

constant&lt;int&gt; a{0}; // OK
constant&lt;int&gt; b; // error: constant variable must be initialized

kernel void foo() {
    static constant&lt;int&gt; c{0}; // OK
    static constant&lt;int&gt; d; // error: constant variable must be initialized
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>9.
The <code>priv</code> storage class cannot be used to declare variables in the program scope or with <code>static</code> specifier.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#include &lt;opencl_memory&gt;
using namespace cl;

priv&lt;int&gt; a{0}; // error: priv variable in program scope

kernel void foo() {
    static priv&lt;int&gt; c{0}; // error: priv variable with static specifier
    priv&lt;int&gt; d; // OK
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>10.
<code>T</code> type used in <code>constant</code> storage class cannot have any user defined constructors, destructors, operators and methods</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#include &lt;opencl_memory&gt;
using namespace cl;

struct bar {
    int get() { return 10; }
};

kernel void foo() {
    constant&lt;bar&gt; a;
    int b = a.get() // undefined behavior
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>11.
<code>T</code> type used in <code>global</code>, <code>local</code>, <code>priv</code> and <code>constant</code> storage class cannot be sealed class</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#include &lt;opencl_memory&gt;
using namespace cl;

struct bar final { };

kernel void foo() {
    local&lt;bar&gt; a; // error: bar is marked as final
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>12.
Using work-group barriers or relying on a specific work-item to be executed in constructors and destructors of global and local objects can result in undefined behavior</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#include &lt;opencl_memory&gt;
#include &lt;opencl_synchronization&gt;
using namespace cl;

struct Foo {
    Foo() {
        work_group_barrier(mem_fence::local); // not allowed
    }

    ~Foo() {
        if(get_local_id(0) != 5) { // not allowed
            while(1) {}
        }
    }
};

kernel void bar() {
    local&lt;Foo&gt; a;
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>13.
All local (address-space) variable declarations in kernel-scope shall be declared before any explicit return statement.
Declaring local variable after return statement may cause undefined behavior.
Implementation is encouraged to generate at least a warning in such cases.</p>
</div>
</div>
<div class="sect3">
<h4 id="examples-3">3.4.6. Examples</h4>
<div class="sect4">
<h5 id="example-1-3">Example 1</h5>
<div class="paragraph">
<p>Example of passing an explicit address space storage object to a kernel.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#include &lt;opencl_memory&gt;
using namespace cl;

kernel void foo(global&lt;int&gt; *arg) {
    //...
}</code></pre>
</div>
</div>
</div>
<div class="sect4">
<h5 id="example-2-2">Example 2</h5>
<div class="paragraph">
<p>Example of passing an explicit address space pointer object to a kernel.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#include &lt;opencl_memory&gt;
using namespace cl;

kernel void foo(global_ptr&lt;int&gt; arg) {
    //...
}</code></pre>
</div>
</div>
</div>
<div class="sect4">
<h5 id="example-3-1">Example 3</h5>
<div class="paragraph">
<p>Example of casting a generic pointer to an explicit address space pointer object.
This is the runtime operation and the <code>dynamic_asptr_cast</code> can fail.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#include &lt;opencl_memory&gt;
using namespace cl;

kernel void foo(global_ptr&lt;int&gt; arg) {
    int *ptr = arg;
    auto globalPtr = dynamic_asptr_cast&lt;global_ptr&lt;int&gt;&gt;(ptr);
    if(globalPtr)
    {
        //...
    }
}</code></pre>
</div>
</div>
</div>
<div class="sect4">
<h5 id="example-4">Example 4</h5>
<div class="paragraph">
<p>Example of using an array with an explicit address space storage class.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#include &lt;opencl_memory&gt;
#include &lt;opencl_array&gt;
#include &lt;opencl_work_item&gt;
using namespace cl;

kernel void foo() {
    local&lt;array&lt;int, 2&gt;&gt; localArray;
    if(get_local_id(0) == 0) {
        for(auto it = localArray.begin(); it != localArray.end(); ++it)
            *it = 0;
    }
    work_group_barrier(mem_fence::local);
    localArray[0] += 1;
}</code></pre>
</div>
</div>
</div>
<div class="sect4">
<h5 id="example-5">Example 5</h5>
<div class="paragraph">
<p>Example of using a fundamental type with an explicit address space storage class.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#include &lt;opencl_memory&gt;
#include &lt;opencl_work_item&gt;
using namespace cl;

kernel void foo() {
    local&lt;int&gt; a;
    if(get_local_id(0) == 0)
        a = 1;

    work_group_barrier(mem_fence::local);
    if(get_local_id(0) == 1)
        a += 1;
}</code></pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="specialization-constants-library">3.5. Specialization Constants Library</h3>
<div class="paragraph">
<p>The specialization constants are objects that will not have known constant values until after initial generation of a SPIR-V module.
Such objects are called specialization constants.
Application might provide values for the specialization constants that will be used when SPIR-V program is built.</p>
</div>
<div class="sect3">
<h4 id="header-opencl_spec_constant-synopsis">3.5.1. Header &lt;opencl_spec_constant&gt; Synopsis</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>namespace cl
{
template&lt;class T, unsigned int ID&gt;
struct spec_constant
{
    spec_constant() = delete;
    spec_constant(const spec_constant &amp;) = default;
    spec_constant(spec_constant&amp;&amp;) = default;

    constexpr spec_constant(const T&amp; value);

    spec_constant&amp; operator=(const spec_constant&amp;) = delete;
    spec_constant&amp; operator=(spec_constant&amp;&amp;) = delete;

    const T&amp; get() const noexcept;

    operator const T&amp;() const noexcept;
};

template&lt;class T, unsigned int ID&gt;
const T&amp; get(const spec_constant&lt;T, ID&gt; &amp;r) noexcept;

}</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="spec_constant-class-methods-and-get-function">3.5.2. spec_constant class methods and get function</h4>
<div class="sect4">
<h5 id="spec_constantspec_constant">spec_constant::spec_constant</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>constexpr spec_constant(const T&amp; value);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Constructor of spec_constant class.
The value parameter is a default value of the specialization constant that will be used if a value is not set by the host API.
It must be a literal value.</p>
</div>
</div>
<div class="sect4">
<h5 id="get">get</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>const T&amp; get() const noexcept;

operator const T&amp;() const noexcept;

template&lt;class T, unsigned int ID&gt;
const T&amp; get(const spec_constant&lt;T, ID&gt; &amp;r) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Return a value of specialization constant.
If an object is not specialized from the host, the default value will be returned.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="requirements-2">3.5.3. Requirements</h4>
<div class="paragraph">
<p>Specialization constant variables cannot be defined <code>constexpr</code>.</p>
</div>
<div class="sect4">
<h5 id="data-1">Data</h5>
<div class="paragraph">
<p>Template parameter <code>T</code> in spec_constant class template denotes the data type of specialization constant.
The type <code>T</code> must be integral or floating point type.</p>
</div>
</div>
<div class="sect4">
<h5 id="id">ID</h5>
<div class="paragraph">
<p>Template parameter <code>ID</code> in spec_constant class template denotes an unique ID of the specialization constant that can be used to set a value from the host API.
The value of <code>ID</code> must be unique within this compilation unit and across any other SPIR-V modules that it is linked with.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="examples-9">3.5.4. Examples</h4>
<div class="sect4">
<h5 id="example-1-9">Example 1</h5>
<div class="paragraph">
<p>Example of using the specialization constant in the kernel.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#include &lt;opencl_spec_constant&gt;
cl::spec_constant&lt;int, 1&gt; spec1{ 255 };
constexpr cl::spec_constant&lt;int, 2&gt; spec2{ 255 }; // error, constexpr specialization
                                                  // constant variables are not allowed

kernel void myKernel()
{
  if(cl::get(spec1) == 255)
  {
       // do something if a default value is used
  }
  else
  {
    // do something if the spec constant was specialized by the host
  }
}</code></pre>
</div>
</div>
</div>
<div class="sect4">
<h5 id="example-2-7">Example 2</h5>
<div class="paragraph">
<p>Example of specializing one of the dimensions in <code>cl::required_work_group_size</code> attribute.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#include &lt;opencl_spec_constant&gt;
cl::spec_constant&lt;int, 1&gt; spec1{ 512 };

[[cl::required_work_group_size(spec1, 1, 1)]]
kernel void myKernel()
{
   //...
}</code></pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="half-wrapper-library">3.6. Half Wrapper Library</h3>
<div class="paragraph">
<p>The OpenCL C++ programming language implements a wrapper class for the built-in half data type (see the <a href="#builtin-half-data-type"><em>Built-in Half Data Type</em></a> section).
The class methods perform implicit <code>vload_half</code> and <code>vstore_half</code> operations from the <a href="#vector-data-load-and-store-functions"><em>Vector Data Load and Store Functions</em></a> section.</p>
</div>
<div class="sect3">
<h4 id="header-opencl_half-synopsis">3.6.1. Header &lt;opencl_half&gt; Synopsis</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>namespace cl {
struct fp16
{
    fp16() = default;
    fp16(const fp16 &amp;) = default;
    fp16(fp16 &amp;&amp;) = default;
    fp16 &amp;operator=(const fp16 &amp;) = default;
    fp16 &amp;operator=(fp16 &amp;&amp;) = default;

    explicit operator bool() const noexcept;

#ifdef cl_khr_fp16
    fp16(half r) noexcept;
    fp16 &amp;operator=(half r) noexcept;
    operator half() const noexcept;
#endif

    fp16(float r) noexcept;
    fp16 &amp;operator=(float r) noexcept;
    operator float() const noexcept;

#ifdef cl_khr_fp64
    fp16(double r) noexcept;
    fp16 &amp;operator=(double r) noexcept;
    operator double() const noexcept;
#endif

    fp16 &amp;operator++() noexcept;
    fp16 operator++(int) noexcept;
    fp16 &amp;operator--() noexcept;
    fp16 operator--(int) noexcept;
    fp16 &amp;operator+=(const fp16 &amp;r) noexcept;
    fp16 &amp;operator-=(const fp16 &amp;r) noexcept;
    fp16 &amp;operator*=(const fp16 &amp;r) noexcept;
    fp16 &amp;operator/=(const fp16 &amp;r) noexcept;
};

bool operator==(const fp16&amp; lhs, const fp16&amp; rhs) noexcept;
bool operator!=(const fp16&amp; lhs, const fp16&amp; rhs) noexcept;
bool operator&lt; (const fp16&amp; lhs, const fp16&amp; rhs) noexcept;
bool operator&gt; (const fp16&amp; lhs, const fp16&amp; rhs) noexcept;
bool operator&lt;=(const fp16&amp; lhs, const fp16&amp; rhs) noexcept;
bool operator&gt;=(const fp16&amp; lhs, const fp16&amp; rhs) noexcept;
fp16 operator+(const fp16&amp; lhs, const fp16&amp; rhs) noexcept;
fp16 operator-(const fp16&amp; lhs, const fp16&amp; rhs) noexcept;
fp16 operator*(const fp16&amp; lhs, const fp16&amp; rhs) noexcept;
fp16 operator/(const fp16&amp; lhs, const fp16&amp; rhs) noexcept;

}</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="constructors-1">3.6.2. Constructors</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>fp16(const half &amp;r) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Constructs an object with a half built-in type.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>fp16(const float &amp;r) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Constructs an object with a float built-in type.
If the <strong>cl_khr_fp16</strong> extension is not supported, <code>vstore_half</code> built-in function is called with the default rounding mode.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>fp16(const double &amp;r) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Constructs an object with a double built-in type.
If the <strong>cl_khr_fp16</strong> extension is not supported, <code>vstore_half</code> built-in function is called with the default rounding mode.
The constructor is only present if the double precision support is enabled.</p>
</div>
</div>
<div class="sect3">
<h4 id="assignment-operators-1">3.6.3. Assignment operators</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>fp16 &amp;operator=(const half &amp;r) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Assigns r to the stored half type.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>fp16 &amp;operator=(const float &amp;r) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Assigns r to the stored half type.
If the <strong>cl_khr_fp16</strong> extension is not supported, <code>vstore_half</code> built-in function is called with the default rounding mode.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>fp16 &amp;operator=(const double &amp;r) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Assigns r to the stored half type.
If the <strong>cl_khr_fp16</strong> extension is not supported, <code>vstore_half</code> built-in function is called with the default rounding mode.
The operator is only present if the double precision support is enabled.</p>
</div>
</div>
<div class="sect3">
<h4 id="conversion-operators">3.6.4. Conversion operators</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>explicit operator bool() const noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns <code>m != 0.0h</code>.
If the <strong>cl_khr_fp16</strong> extension is not supported, <code>vload_half</code> built-in function is called.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>operator half() const noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Conversion operator to the built-in half type.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>operator float() const noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Conversion operator.
If the <strong>cl_khr_fp16</strong> extension is not supported, <code>vload_half</code> built-in function is called.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>operator double() const noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Conversion operator.
If the <strong>cl_khr_fp16</strong> extension is not supported, <code>vload_half</code> built-in function is called.
The operator is only present if the double precision support is enabled.</p>
</div>
</div>
<div class="sect3">
<h4 id="arithmetic-operations">3.6.5. Arithmetic operations</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>fp16 &amp;operator++() noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Pre-increment operator.
If the <strong>cl_khr_fp16</strong> extension is not supported, <code>vload_half</code> and <code>vstore_half</code> built-in functions are called.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>fp16 operator++(int) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Post-increment operator.
If the <strong>cl_khr_fp16</strong> extension is not supported, <code>vload_half</code> and <code>vstore_half</code> built-in functions are called.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>fp16 &amp;operator--() noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Pre-decrement operator.
If the <strong>cl_khr_fp16</strong> extension is not supported, <code>vload_half</code> and <code>vstore_half</code> built-in functions are called.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>fp16 operator--(int) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Pre-decrement operator.
If the <strong>cl_khr_fp16</strong> extension is not supported, <code>vload_half</code> and <code>vstore_half</code> built-in functions are called.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>fp16 &amp;operator+=(const fp16 &amp;r) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Addition operator.
If the <strong>cl_khr_fp16</strong> extension is not supported, <code>vload_half</code> and <code>vstore_half</code> built-in functions are called.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>fp16 &amp;operator-=(const fp16 &amp;r) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Subtract operator.
If the <strong>cl_khr_fp16</strong> extension is not supported, <code>vload_half</code> and <code>vstore_half</code> built-in functions are called.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>fp16 &amp;operator*=(const fp16 &amp;r) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Multiplication operator.
If the <strong>cl_khr_fp16</strong> extension is not supported, <code>vload_half</code> and <code>vstore_half</code> built-in functions are called.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>fp16 &amp;operator/=(const fp16 &amp;r) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Division operator.
If the <strong>cl_khr_fp16</strong> extension is not supported, <code>vload_half</code> and <code>vstore_half</code> built-in functions are called.</p>
</div>
</div>
<div class="sect3">
<h4 id="non-member-functions-1">3.6.6. Non-member functions</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>bool operator==(const fp16&amp; lhs, const fp16&amp; rhs) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Comparison operator ==.
If the <strong>cl_khr_fp16</strong> extension is not supported, <code>vload_half</code> built-in function is called.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>bool operator!=(const fp16&amp; lhs, const fp16&amp; rhs) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Comparison operator !=.
If the <strong>cl_khr_fp16</strong> extension is not supported, <code>vload_half</code> built-in function is called.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>bool operator&lt; (const fp16&amp; lhs, const fp16&amp; rhs) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Comparison operator &lt;.
If the <strong>cl_khr_fp16</strong> extension is not supported, <code>vload_half</code> built-in function is called.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>bool operator&gt; (const fp16&amp; lhs, const fp16&amp; rhs) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Comparison operator &gt;.
If the <strong>cl_khr_fp16</strong> extension is not supported, <code>vload_half</code> built-in function is called.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>bool operator&lt;=(const fp16&amp; lhs, const fp16&amp; rhs) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Comparison operator &#8656;.
If the <strong>cl_khr_fp16</strong> extension is not supported, <code>vload_half</code> built-in function is called.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>bool operator&gt;=(const fp16&amp; lhs, const fp16&amp; rhs) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Comparison operator &gt;=.
If the <strong>cl_khr_fp16</strong> extension is not supported, <code>vload_half</code> built-in function is called.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>fp16 operator+(const fp16&amp; lhs, const fp16&amp; rhs) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Addition operator.
If the <strong>cl_khr_fp16</strong> extension is not supported, <code>vload_half</code> and <code>vstore_half</code> built-in functions are called.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>fp16 operator-(const fp16&amp; lhs, const fp16&amp; rhs) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Subtract operator.
If the <strong>cl_khr_fp16</strong> extension is not supported, <code>vload_half</code> and <code>vstore_half</code> built-in functions are called.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>fp16 operator*(const fp16&amp; lhs, const fp16&amp; rhs) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Multiplication operator.
If the <strong>cl_khr_fp16</strong> extension is not supported, <code>vload_half</code> and <code>vstore_half</code> built-in functions are called.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>fp16 operator/(const fp16&amp; lhs, const fp16&amp; rhs) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Division operator.
If the <strong>cl_khr_fp16</strong> extension is not supported, <code>vload_half</code> and <code>vstore_half</code> built-in functions are called.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="vector-wrapper-library">3.7. Vector Wrapper Library</h3>
<div class="paragraph">
<p>The OpenCL C++ programming language implements a vector wrapper type that works efficiently on the OpenCL devices.
The vector class supports methods that allow construction of a new vector from a swizzled set of component elements or from a built-in vector type.
The vector class can be converted to a corresponding built-in vector type.</p>
</div>
<div class="paragraph">
<p>The <code>Size</code> parameter can be one of: 2, 3, 4, 8 or 16.
Any other value should produce a compilation failure.
The element type parameter <code>T</code>, must be one of the basic scalar types defined in <a href="#device_builtin_scalar_data_types">Device built-in scalar data types</a> table except void type.</p>
</div>
<div class="sect3">
<h4 id="header-opencl_vec-synopsis">3.7.1. Header &lt;opencl_vec&gt; Synopsis</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>namespace cl {
static constexpr size_t undef_channel = static_cast&lt;size_t&gt;(-1);
enum class channel : size_t { r = 0, g = 1, b = 2, a = 3, x = 0, y = 1, z = 2, w = 3, undef = undef_channel };

template&lt;class T, size_t Size&gt;
struct vec
{
    using element_type = T;
    using vector_type = make_vector_t&lt;T, Size&gt;;
    static constexpr size_t size = Size;

    vec( ) = default;
    vec(const vec &amp;) = default;
    vec(vec &amp;&amp;) = default;

    vec(const vector_type &amp;r) noexcept;
    vec(vector_type &amp;&amp;r) noexcept;

    template &lt;class... Params&gt;
    vec(Params... params) noexcept;

    vec&amp; operator=(const vec &amp;) = default;
    vec&amp; operator=(vec &amp;&amp;) = default;

    vec&amp; operator=(const vector_type &amp;r) noexcept;
    vec&amp; operator=(vector_type &amp;&amp;r) noexcept;

    operator vector_type() const noexcept;

    vec&amp; operator++() noexcept;
    vec&amp; operator++(int) noexcept;
    vec&amp; operator--() noexcept;
    vec&amp; operator--(int) noexcept;
    vec&amp; operator+=(const vec &amp;r) noexcept;
    vec&amp; operator+=(const element_type &amp;r) noexcept;
    vec&amp; operator-=(const vec &amp;r) noexcept;
    vec&amp; operator-=(const element_type &amp;r) noexcept;
    vec&amp; operator*=(const vec &amp;r) noexcept;
    vec&amp; operator*=(const element_type &amp;r) noexcept;
    vec&amp; operator/=(const vec &amp;r) noexcept;
    vec&amp; operator/=(const element_type &amp;r) noexcept;
    vec&amp; operator%=(const vec &amp;r) noexcept;
    vec&amp; operator%=(const element_type &amp;r) noexcept;

    template &lt;size_t... Sizes&gt;
    auto swizzle() noexcept;

    template &lt;size_t... Sizes&gt;
    auto swizzle() const noexcept;

#ifdef SIMPLE_SWIZZLES
    auto x() noexcept;
...
    auto xyzw() noexcept;
...
    auto zzzz() noexcept;
#endif
};

template &lt;size_t... Swizzle, class Vec&gt;
auto swizzle(Vec&amp; v);
template &lt;channel... Swizzle, class Vec&gt;
auto swizzle(Vec&amp; v);

template&lt;class T, size_t Size&gt;
make_vector_t&lt;bool, Size&gt; operator==(const vec&lt;T, Size&gt; &amp;lhs,
                                     const vec&lt;T, Size&gt; &amp;rhs) noexcept;
template&lt;class T, size_t Size&gt;
make_vector_t&lt;bool, Size&gt; operator!=(const vec&lt;T, Size&gt; &amp;lhs,
                                     const vec&lt;T, Size&gt; &amp;rhs) noexcept;
template&lt;class T, size_t Size&gt;
make_vector_t&lt;bool, Size&gt; operator&lt;(const vec&lt;T, Size&gt; &amp;lhs,
                                    const vec&lt;T, Size&gt; &amp;rhs) noexcept;
template&lt;class T, size_t Size&gt;
make_vector_t&lt;bool, Size&gt; operator&gt;(const vec&lt;T, Size&gt; &amp;lhs,
                                    const vec&lt;T, Size&gt; &amp;rhs) noexcept;
template&lt;class T, size_t Size&gt;
make_vector_t&lt;bool, Size&gt; operator&lt;=(const vec&lt;T, Size&gt; &amp;lhs,
                                     const vec&lt;T, Size&gt; &amp;rhs) noexcept;
template&lt;class T, size_t Size&gt;
make_vector_t&lt;bool, Size&gt; operator&gt;=(const vec&lt;T, Size&gt; &amp;lhs,
                                     const vec&lt;T, Size&gt; &amp;rhs) noexcept;
template&lt;class T, size_t Size&gt;
vec&lt;T, Size&gt; operator+(const vec&lt;T, Size&gt; &amp;lhs,
                       const vec&lt;T, Size&gt; &amp;rhs) noexcept;
template&lt;class T, size_t Size&gt;
vec&lt;T, Size&gt; operator+(const vec&lt;T, Size&gt; &amp;lhs, const T &amp;rhs) noexcept;
template&lt;class T, size_t Size&gt;
vec&lt;T, Size&gt; operator+(const T &amp;lhs, const vec&lt;T, Size&gt; &amp;rhs) noexcept;
template&lt;class T, size_t Size&gt;
vec&lt;T, Size&gt; operator-(const vec&lt;T, Size&gt; &amp;lhs,
                       const vec&lt;T, Size&gt; &amp;rhs) noexcept;
template&lt;class T, size_t Size&gt;
vec&lt;T, Size&gt; operator-(const vec&lt;T, Size&gt; &amp;lhs, const T &amp;rhs) noexcept;
template&lt;class T, size_t Size&gt;
vec&lt;T, Size&gt; operator-(const T &amp;lhs, const vec&lt;T, Size&gt; &amp;rhs) noexcept;
template&lt;class T, size_t Size&gt;
vec&lt;T, Size&gt; operator*(const vec&lt;T, Size&gt; &amp;lhs,
                       const vec&lt;T, Size&gt; &amp;rhs) noexcept;
template&lt;class T, size_t Size&gt;
vec&lt;T, Size&gt; operator*(const vec&lt;T, Size&gt; &amp;lhs, const T &amp;rhs) noexcept;
template&lt;class T, size_t Size&gt;
vec&lt;T, Size&gt; operator*(const T &amp;lhs, const vec&lt;T, Size&gt; &amp;rhs) noexcept;
template&lt;class T, size_t Size&gt;
vec&lt;T, Size&gt; operator/(const vec&lt;T, Size&gt; &amp;lhs,
                       const vec&lt;T, Size&gt; &amp;rhs) noexcept;
template&lt;class T, size_t Size&gt;
vec&lt;T, Size&gt; operator/(const vec&lt;T, Size&gt; &amp;lhs, const T &amp;rhs) noexcept;
template&lt;class T, size_t Size&gt;
vec&lt;T, Size&gt; operator/(const T &amp;lhs, const vec&lt;T, Size&gt; &amp;rhs) noexcept;

}</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="constructors-2">3.7.2. Constructors</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>vec(const vector_type &amp;r) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Copy constructor.
Constructs an object with the corresponding built-in vector type.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>vec(vector_type &amp;&amp;r) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Move constructor.
Constructs an object with the corresponding built-in vector type.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template &lt;class... Params&gt;
vec(Params... params) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Constructs a vector object from a swizzled set of component elements.</p>
</div>
</div>
<div class="sect3">
<h4 id="assignment-operators-2">3.7.3. Assignment operators</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>vec&amp; operator=(const vector_type &amp;r) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Copy assignment operator.
The operator assigns a corresponding built-in vector type.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>vec&amp; operator=(vector_type &amp;&amp;r) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Move assignment operator.
The operator assigns a corresponding built-in vector type.</p>
</div>
</div>
<div class="sect3">
<h4 id="conversion-operators-1">3.7.4. Conversion operators</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>operator vector_type() const noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Conversion operator.
The operator converts from the vector wrapper class to a corresponding built-in vector type.</p>
</div>
</div>
<div class="sect3">
<h4 id="arithmetic-operations-1">3.7.5. Arithmetic operations</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>vec&amp; operator++() noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Pre-increment operator.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>vec&amp; operator++(int) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Post-increment operator.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>vec&amp; operator--() noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Pre-decrement operator.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>vec&amp; operator--(int) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Post-decrement operator.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>vec&amp; operator+=(const vec &amp;r) noexcept;
vec&amp; operator+=(const element_type &amp;r) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Add each element of <code>r</code> to the respective element of the current vector in-place.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>vec&amp; operator-=(const vec &amp;r) noexcept;
vec&amp; operator-=(const element_type &amp;r) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Subtract each element of <code>r</code> from the respective element of the current vector in-place.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>vec&amp; operator*=(const vec &amp;r) noexcept;
vec&amp; operator*=(const element_type &amp;r) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Multiply each element of <code>r</code> by the respective element of the current vector in-place.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>vec&amp; operator/=(const vec &amp;r) noexcept;
vec&amp; operator/=(const element_type &amp;r) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Divide each element of the current vector in-place by the respective element of <code>r</code>.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>vec&amp; operator%=(const vec &amp;r) noexcept;
vec&amp; operator%=(const element_type &amp;r) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Remainder of each element of the current vector in-place by the respective element of <code>r</code>.</p>
</div>
</div>
<div class="sect3">
<h4 id="swizzle-methods">3.7.6. Swizzle methods</h4>
<div class="paragraph">
<p>All swizzle methods return a temporary object representing a swizzled set of the original vector&#8217;s member elements.
The swizzled vector may be used as a source (rvalue) and destination (lvalue).
In order to enable the r-value and lvalue swizzling to work, this returns an intermediate swizzled-vector class, which can be implicitly converted to a vector (rvalue evaluation) or assigned to.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template &lt;size_t... Sizes&gt;
auto swizzle() noexcept;

template &lt;size_t... Sizes&gt;
auto swizzle() const noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns a vector swizzle.
The number of template parameters specified in <code>Sizes</code> must be from <code>1</code> to <code>Size</code>.
<code>Sizes</code> parameters must be channel values: <code>channel::r</code>, <code>channel::b</code>, <code>&#8230;&#8203;</code>.
Swizzle letters may be repeated or re-ordered.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>auto x() noexcept;
...
auto xyzw() noexcept;
...
auto zzzz() noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns a swizzle.
These swizzle methods are only generated if the user defined the <code>SIMPLE_SWIZZLES</code> macro before including <em>opencl_vec</em> header.</p>
</div>
</div>
<div class="sect3">
<h4 id="non-member-functions-2">3.7.7. Non-member functions</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template &lt;size_t... Swizzle, class Vec&gt;
auto swizzle(Vec&amp; v);

template &lt;channel... Swizzle, class Vec&gt;
auto swizzle(Vec&amp; v);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns a vector swizzle.
The number of template parameters specified in <code>Sizes</code> must be from <code>1</code> to <code>Size</code>.
<code>Sizes</code> parameters must be channel values: <code>channel::r</code>, <code>channel::b</code>, <code>&#8230;&#8203;</code> .
Swizzle letters may be repeated or re-ordered.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template&lt;class T, size_t Size&gt;
make_vector_t&lt;bool, Size&gt; operator==(const vec&lt;T, Size&gt; &amp;lhs,
                                     const vec&lt;T, Size&gt; &amp;rhs) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Return <code>true</code> if all elements of <code>rhs</code> compare equal to the respective element of <code>lhs</code>.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template&lt;class T, size_t Size&gt;
make_vector_t&lt;bool, Size&gt; operator!=(const vec&lt;T, Size&gt; &amp;lhs,
                                     const vec&lt;T, Size&gt; &amp;rhs) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Return <code>true</code> if any one element of <code>rhs</code> does not compare equal to the respective element of <code>lhs</code>.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template&lt;class T, size_t Size&gt;
make_vector_t&lt;bool, Size&gt; operator&lt;(const vec&lt;T, Size&gt; &amp;lhs,
                                    const vec&lt;T, Size&gt; &amp;rhs) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Return <code>true</code> if all elements of <code>lhs</code> are less than the respective element of <code>rhs</code>.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template&lt;class T, size_t Size&gt;
make_vector_t&lt;bool, Size&gt; operator&gt;(const vec&lt;T, Size&gt; &amp;lhs,
                                    const vec&lt;T, Size&gt; &amp;rhs) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Return <code>true</code> if all elements of <code>lhs</code> are greater than the respective element of <code>rhs</code>.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template&lt;class T, size_t Size&gt;
make_vector_t&lt;bool, Size&gt; operator&lt;=(const vec&lt;T, Size&gt; &amp;lhs,
                                     const vec&lt;T, Size&gt; &amp;rhs) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Return <code>true</code> if all elements of <code>lhs</code> are less than or equal to the respective element of <code>rhs</code>.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template&lt;class T, size_t Size&gt;
make_vector_t&lt;bool, Size&gt; operator&gt;=(const vec&lt;T, Size&gt; &amp;lhs,
                                     const vec&lt;T, Size&gt; &amp;rhs) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Return <code>true</code> if all elements of <code>lhs</code> are greater than or equal to the respective element of <code>rhs</code>.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template&lt;class T, size_t Size&gt;
vec&lt;T, Size&gt; operator+(const vec&lt;T, Size&gt; &amp;lhs,
                       const vec&lt;T, Size&gt; &amp;rhs) noexcept;

template&lt;class T, size_t Size&gt;
vec&lt;T, Size&gt; operator+(const vec&lt;T, Size&gt; &amp;lhs, const T &amp;rhs) noexcept;

template&lt;class T, size_t Size&gt;
vec&lt;T, Size&gt; operator+(const T &amp;lhs, const vec&lt;T, Size&gt; &amp;rhs) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Add each element of <code>rhs</code> to the respective element of <code>lhs</code>.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template&lt;class T, size_t Size&gt;
vec&lt;T, Size&gt; operator-(const vec&lt;T, Size&gt; &amp;lhs,
                       const vec&lt;T, Size&gt; &amp;rhs) noexcept;
template&lt;class T, size_t Size&gt;
vec&lt;T, Size&gt; operator-(const vec&lt;T, Size&gt; &amp;lhs, const T &amp;rhs) noexcept;
template&lt;class T, size_t Size&gt;
vec&lt;T, Size&gt; operator-(const T &amp;lhs, const vec&lt;T, Size&gt; &amp;rhs) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Subtract each element of <code>rhs</code> from the respective element of <code>lhs</code>.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template&lt;class T, size_t Size&gt;
vec&lt;T, Size&gt; operator*(const vec&lt;T, Size&gt; &amp;lhs,
                       const vec&lt;T, Size&gt; &amp;rhs) noexcept;
template&lt;class T, size_t Size&gt;
vec&lt;T, Size&gt; operator*(const vec&lt;T, Size&gt; &amp;lhs, const T &amp;rhs) noexcept;
template&lt;class T, size_t Size&gt;
vec&lt;T, Size&gt; operator*(const T &amp;lhs, const vec&lt;T, Size&gt; &amp;rhs) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Multiply each element of <code>rhs</code> by the respective element of <code>lhs</code>.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template&lt;class T, size_t Size&gt;
vec&lt;T, Size&gt; operator/(const vec&lt;T, Size&gt; &amp;lhs,
                       const vec&lt;T, Size&gt; &amp;rhs) noexcept;
template&lt;class T, size_t Size&gt;
vec&lt;T, Size&gt; operator/(const vec&lt;T, Size&gt; &amp;lhs, const T &amp;rhs) noexcept;
template&lt;class T, size_t Size&gt;
vec&lt;T, Size&gt; operator/(const T &amp;lhs, const vec&lt;T, Size&gt; &amp;rhs) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Divide each element of <code>lhs</code> by the respective element of the <code>rhs</code>.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="range-library">3.8. Range Library</h3>
<div class="paragraph">
<p>OpenCL C++ implements small library that contains useful utilities to manipulate iterator ranges.</p>
</div>
<div class="sect3">
<h4 id="header-opencl_range-synopsis">3.8.1. Header &lt;opencl_range&gt; Synopsis</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>namespace cl
{
template &lt;class It&gt;
struct range_type
{
    constexpr range_type(It&amp; it) noexcept;
    constexpr range_type(It&amp; it, difference_type end) noexcept;
    constexpr range_type(It&amp; it, difference_type begin,
                         difference_type end) noexcept;

    constexpr auto begin( ) noexcept;
    constexpr auto end( ) noexcept;
};

template &lt;class It&gt;
constexpr auto range(It&amp; it) noexcept;

template &lt;class It&gt;
constexpr auto range(It&amp; it, difference_type end) noexcept;

template &lt;class It&gt;
constexpr auto range(It&amp; it, difference_type begin,
                     difference_type end) noexcept;

// difference_type is It::difference_type if present ptrdiff_t otherwise.

}</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="range-type">3.8.2. Range type</h4>
<div class="paragraph">
<p>Range type represents a given range over iterable type.
Depending on constructor used:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>constexpr range_type(It&amp; it) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Represents range from <code>begin(it)</code> to <code>end(it)</code>.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>constexpr range_type(It&amp; it, difference_type end) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Represents range from <code>begin(it)</code> to <code>begin(it)+end</code>.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>constexpr range_type(It&amp; it, difference_type begin,
                     difference_type end) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Represents range from <code>begin(it)+begin</code> to <code>begin(it)+end</code>.</p>
</div>
</div>
<div class="sect3">
<h4 id="range-function">3.8.3. Range function</h4>
<div class="paragraph">
<p>range function is present in three overloads matching <code>range_type</code> constructors.
It is a factory function building <code>range_type</code>.</p>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
This function main purpose is enabling the use of range based for loops on built-in vectors.
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="sect2">
<h3 id="vector-utilities-library">3.9. Vector Utilities Library</h3>
<div class="paragraph">
<p>OpenCL C++ implements vector utilities library that contains multiple helper classes to help working with built-in vectors.</p>
</div>
<div class="sect3">
<h4 id="header-opencl_vector_utility-synopsis">3.9.1. Header &lt;opencl_vector_utility&gt; Synopsis</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>namespace cl
{
template &lt;size_t Channel, class Vec&gt;
constexpr remove_attrs_t&lt;vector_element_t&lt;Vec&gt;&gt; get(Vec &amp; vector) noexcept;

template &lt;size_t Channel, class Vec&gt;
constexpr void set(Vec &amp; vector,
                   remove_attrs_t&lt;vector_element_t&lt;Vec&gt;&gt; value) noexcept;

template &lt;class Vec&gt;
struct channel_ref
{
    using type = remove_attrs_t&lt;vector_element_t&lt;Vec&gt;&gt;;

    constexpr operator type( ) noexcept;
    constexpr channel_ref&amp; operator=(type value) noexcept;
    constexpr channel_ref&amp; operator +=(type value) noexcept;
    constexpr friend type operator +(channel_ref lhs, type rhs) noexcept;
    constexpr channel_ref&amp; operator -=(type value) noexcept;
    constexpr friend type operator -(channel_ref lhs, type rhs) noexcept;
    constexpr channel_ref&amp; operator *=(type value) noexcept;
    constexpr friend type operator *(channel_ref lhs, type rhs) noexcept;
    constexpr channel_ref&amp; operator /=(type value) noexcept;
    constexpr friend type operator /(channel_ref lhs, type rhs) noexcept;
    constexpr channel_ref&amp; operator %=(type value) noexcept;
    constexpr friend type operator %(channel_ref lhs, type rhs) noexcept;
    constexpr channel_ref&amp; operator ^=(type value) noexcept;
    constexpr friend type operator ^(channel_ref lhs, type rhs) noexcept;
    constexpr channel_ref&amp; operator &amp;=(type value) noexcept;
    constexpr friend type operator &amp;(channel_ref lhs, type rhs) noexcept;
    constexpr channel_ref&amp; operator |=(type value) noexcept;
    constexpr friend type operator |(channel_ref lhs, type rhs) noexcept;
    constexpr channel_ref&amp; operator++( ) noexcept;
    constexpr channel_ref operator++(int) noexcept;
    constexpr channel_ref&amp; operator--( ) noexcept;
    constexpr channel_ref operator--(int) noexcept;
};

template &lt;&gt;
struct channel_ref&lt;floating_point_vector&gt;
{
    using type = remove_attrs_t&lt;vector_element_t&lt;Vec&gt;&gt;;

    constexpr operator type( ) noexcept;
    constexpr channel_ref&amp; operator=(type value) noexcept;
    constexpr channel_ref&amp; operator +=(type value) noexcept;
    constexpr friend type operator +(channel_ref lhs, type rhs) noexcept;
    constexpr channel_ref&amp; operator -=(type value) noexcept;
    constexpr friend type operator -(channel_ref lhs, type rhs) noexcept;
    constexpr channel_ref&amp; operator *=(type value) noexcept;
    constexpr friend type operator *(channel_ref lhs, type rhs) noexcept;
    constexpr channel_ref&amp; operator /=(type value) noexcept;
    constexpr friend type operator /(channel_ref lhs, type rhs) noexcept;
    constexpr channel_ref&amp; operator++( ) noexcept;
    constexpr channel_ref&amp; operator++(int) noexcept;
    constexpr channel_ref&amp; operator--( ) noexcept;
    constexpr channel_ref&amp; operator--(int) noexcept;
};

template &lt;&gt;
struct channel_ref&lt;boolean_vector&gt;
{
    using type = remove_attrs_t&lt;vector_element_t&lt;Vec&gt;&gt;;

    constexpr operator type( ) noexcept;
    constexpr channel_ref&amp; operator=(type value) noexcept;
    constexpr channel_ref&amp; operator +=(type value) noexcept;
    constexpr friend type operator +(channel_ref lhs, type rhs) noexcept;
    constexpr channel_ref&amp; operator -=(type value) noexcept;
    constexpr friend type operator -(channel_ref lhs, type rhs) noexcept;
    constexpr channel_ref&amp; operator *=(type value) noexcept;
    constexpr friend type operator *(channel_ref lhs, type rhs) noexcept;
    constexpr channel_ref&amp; operator /=(type value) noexcept;
    constexpr friend type operator /(channel_ref lhs, type rhs) noexcept;
    constexpr channel_ref&amp; operator %=(type value) noexcept;
    constexpr friend type operator %(channel_ref lhs, type rhs) noexcept;
    constexpr channel_ref&amp; operator ^=(type value) noexcept;
    constexpr friend type operator ^(channel_ref lhs, type rhs) noexcept;
    constexpr channel_ref&amp; operator &amp;=(type value) noexcept;
    constexpr friend type operator &amp;(channel_ref lhs, type rhs) noexcept;
    constexpr channel_ref&amp; operator |=(type value) noexcept;
    constexpr friend type operator |(channel_ref lhs, type rhs) noexcept;
    constexpr channel_ref&amp; operator++( ) noexcept;
    constexpr channel_ref&amp; operator++(int) noexcept;
};

template &lt;class Vec&gt;
struct channel_ptr
{
    constexpr channel_ptr( ) noexcept;
    constexpr channel_ptr(const channel_ref&lt;Vec&gt;&amp; ref) noexcept;
    constexpr channel_ptr(const channel_ptr&amp;) noexcept = default;
    constexpr channel_ptr(channel_ptr&amp;&amp;) noexcept = default;
    constexpr channel_ptr&amp; operator=(const channel_ptr&amp;) noexcept = default;
    constexpr channel_ptr&amp; operator=(channel_ptr&amp;&amp;) noexcept = default;

    using type = remove_attrs_t&lt;vector_element_t&lt;Vec&gt;&gt;;

    constexpr channel_ref&lt;Vec&gt;&amp; operator*( ) noexcept;
};

template &lt;class Vec&gt;
struct vector_iterator : iterator&lt;random_access_iterator_tag,
                          remove_attrs_t&lt;vector_element_t&lt;remove_attrs_t&lt;Vec&gt;&gt;&gt;,
                          ptrdiff_t,
                          channel_ptr&lt;remove_attrs_t&lt;Vec&gt;&gt;,
                          channel_ref&lt;remove_attrs_t&lt;Vec&gt;&gt;&gt;
{
    using type = remove_attrs_t&lt;Vec&gt;;

    constexpr vector_iterator(type &amp; vector, size_t offset) noexcept;
    constexpr vector_iterator( ) noexcept = default;
    constexpr vector_iterator(const vector_iterator&amp;) noexcept = default;
    constexpr vector_iterator(vector_iterator&amp;&amp;) noexcept = default;
    constexpr vector_iterator&amp; operator=(
                                     const vector_iterator&amp;) noexcept = default;
    constexpr vector_iterator&amp; operator=(vector_iterator&amp;&amp;) noexcept = default;

    constexpr vector_iterator&amp; operator+=(difference_type value) noexcept;
    constexpr friend vector_iterator operator+(const vector_iterator&amp; lhs,
                                               difference_type rhs) noexcept;
    constexpr friend vector_iterator operator+(difference_type lhs,
                                           const vector_iterator&amp; rhs) noexcept;
    constexpr vector_iterator&amp; operator-=(difference_type value) noexcept;
    constexpr friend vector_iterator operator-(const vector_iterator&amp; lhs,
                                                  difference_type rhs) noexcept;

    constexpr vector_iterator operator++(int) noexcept;
    constexpr vector_iterator&amp; operator++( ) noexcept;
    constexpr vector_iterator operator--(int) noexcept;
    constexpr vector_iterator&amp; operator--( ) noexcept;

    friend constexpr bool operator ==(const vector_iterator&amp; lhs,
                                      const vector_iterator&amp; rhs) noexcept;
    friend constexpr bool operator !=(const vector_iterator&amp; lhs,
                                      const vector_iterator&amp; rhs) noexcept;
    friend constexpr bool operator &lt;(const vector_iterator&amp; lhs,
                                     const vector_iterator&amp; rhs) noexcept;
    friend constexpr bool operator &lt;=(const vector_iterator&amp; lhs,
                                      const vector_iterator&amp; rhs) noexcept;
    friend constexpr bool operator &gt;(const vector_iterator&amp; lhs,
                                     const vector_iterator&amp; rhs) noexcept;
    friend constexpr bool operator &gt;=(const vector_iterator&amp; lhs,
                                      const vector_iterator&amp; rhs) noexcept;

    constexpr reference operator[ ](difference_type value) noexcept;
    constexpr reference operator*( ) noexcept;

    constexpr pointer operator-&gt;( ) noexcept;
};

template &lt;class Vec, class = enable_if_t&lt;is_vector_type&lt;Vec&gt;::value, void&gt;&gt;
constexpr channel_ref&lt;Vec&gt; index(Vec&amp; vector, size_t channel) noexcept;

template &lt;class Vec, class = enable_if_t&lt;is_vector_type&lt;Vec&gt;::value, void&gt;&gt;
constexpr vector_iterator&lt;Vec&gt; begin(Vec &amp; vector) noexcept;

template &lt;class Vec, class = enable_if_t&lt;is_vector_type&lt;Vec&gt;::value, void&gt;&gt;
constexpr vector_iterator&lt;Vec&gt; end(Vec &amp; vector) noexcept;

}</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="vector-iterator">3.9.2. Vector iterator</h4>
<div class="paragraph">
<p>Vector iterator is a random access iterator that allows runtime iteration over vector channels.
Meets all the requirements for random access iterator.
Iterating outside of vector bounds is an undefined behavior.</p>
</div>
<div class="paragraph">
<p>The library also exposes non member begin and end functions for vectors.</p>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
Due to the usage of argument-dependent lookup in range based for loops this functions are not available, and the new range adapter has to be used
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>There is also an <code>index</code> function present in the library that allows runtime numerical indexing of channels.
It returns a channel reference to a given channel number.
Indexing out of vector bounds results in undefined behavior.</p>
</div>
<div class="paragraph">
<p>The following example will present simple template function computing sum of channels of a given vector:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template&lt;class V&gt;
auto sum(const V&amp; v) {
    vector_element_t&lt;V&gt; temp = 0;
    for(auto e : range(v)) {
        temp += e;
    }
    return temp;
}</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="channel-reference-and-channel-pointer">3.9.3. Channel reference and channel pointer</h4>
<div class="paragraph">
<p><code>channel_ref</code> and <code>channel_ptr</code> classes provide lightweight reference and pointer wrappers for vector channels.
This is required due to the fact that vector channels can be moved across memory during execution so direct physical addressing is impossible.
Reference wrapper provides a set of binary operators (depending on vector channel type).</p>
</div>
<div class="paragraph">
<p>The following example will present a simple usage of channel reference to set first channel of given vector to 0:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template &lt;class V&gt;
void fun(V&amp; v) {
    channel_ref&lt;V&gt; r = *begin(v);
    r = 0;
}</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="get-and-set-functions">3.9.4. Get and set functions</h4>
<div class="paragraph">
<p>Get and set functions allow compile time numerical indexing of channels to substitute for normal swizzling.
Indexing out of vector range generates a compile error.
Get function returns a copy of channel value.</p>
</div>
<div class="paragraph">
<p>The following example will present how get and set functions can be used to duplicate the value of the first channel of given vector:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template &lt;class V&gt;
void fun(V&amp; v) {
    auto c = get&lt; 0 &gt;(v);
    set&lt; 0 &gt;(v, 2*c);
}</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="examples-8">3.9.5. Examples</h4>
<div class="sect4">
<h5 id="example-1-8">Example 1</h5>
<div class="paragraph">
<p>Example of using built-in vector iterators.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#include &lt;opencl_vector_utility&gt;
#include &lt;opencl_range&gt;
using namespace cl;

kernel void foo() {
    int8 v_i8;
    auto iter_begin = begin(v_i8);
    auto iter_end = end(v_i8);

    iter_begin = iter_end;

    int a = 0;
    a = *iter_begin;
    a = iter_begin[0];

    iter_begin++;
    iter_begin+=1;
    iter_begin = iter_begin + 1;

    iter_begin--;
    iter_begin-=1;
    iter_begin = iter_begin - 1;
}</code></pre>
</div>
</div>
</div>
<div class="sect4">
<h5 id="example-2-6">Example 2</h5>
<div class="paragraph">
<p>Example of iterating though built-in vector channels and using range library.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#include &lt;opencl_vector_utility&gt;
#include &lt;opencl_range&gt;

kernel void foo() {
    int16 a;

    for (auto it = cl::begin(a); it != cl::end(a); it++) {
        int b = *it;
        *it = 2;
    }

    for (auto c : cl::range(a,3,6)) {
        int b = c;
        c = 2;
    }
}</code></pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="marker-types">3.10. Marker Types</h3>
<div class="paragraph">
<p>Some types in OpenCL C++ are considered marker types.
These types are special in the manner that their usages need to be tracked by the compiler.
This results in the following set of restrictions that marker types have to follow:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Marker types have the default constructor deleted.</p>
</li>
<li>
<p>Marker types have all default copy and move assignment operators deleted.</p>
</li>
<li>
<p>Marker types have address-of operator deleted.</p>
</li>
<li>
<p>Marker types cannot be used in divergent control flow. It can result in undefined behavior.</p>
</li>
<li>
<p>Size of marker types is undefined.</p>
</li>
</ul>
</div>
<div class="sect3">
<h4 id="header-opencl_marker-synopsis">3.10.1. Header &lt;opencl_marker&gt; Synopsis</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>namespace cl
{
struct marker_type;

template&lt;class T&gt;
struct is_marker_type;

}</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="marker_type-class">3.10.2. marker_type class</h4>
<div class="paragraph">
<p>All special OpenCL C++ types must use the <code>marker_type</code> class as a base class.</p>
</div>
</div>
<div class="sect3">
<h4 id="is_marker_type-type-trait">3.10.3. is_marker_type type trait</h4>
<div class="paragraph">
<p><code>is_marker_type</code> type trait provides compile-time check if the base of a class is <code>marker_type</code>.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>namespace cl
{
template&lt;class T&gt;
struct is_marker_type : integral_constant &lt;bool, is_base_of&lt;marker_type, T&gt;::value&gt; { };

}</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="examples">3.10.4. Examples</h4>
<div class="sect4">
<h5 id="example-1">Example 1</h5>
<div class="paragraph">
<p>The examples of invalid use of <code>marker types</code>.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#include &lt;opencl_image&gt;
#include &lt;opencl_work_item&gt;
using namespace cl;

float4 bar(image1d&lt;float4&gt; img) {
    return img.read({get_global_id(0), get_global_id(1)});
}

kernel void foo(image1d&lt;float4&gt; img1, image1d&lt;float4&gt; img2) {
    image1d&lt;float4&gt; img3; //error: marker type cannot be declared
                          //       in the kernel
    img1 = img2; //error: marker type cannot be assigned
    image1d&lt;float4&gt; *imgPtr = &amp;img1; //error: taking address of
                                     //       marker type

    size_t s = sizeof(img1); //undefined behavior: size of marker
                             //               type is not defined

    float4 val = bar(get_global_id(0) ? img1: img2);
                          //undefined behavior: divergent control flow
}</code></pre>
</div>
</div>
</div>
<div class="sect4">
<h5 id="example-2">Example 2</h5>
<div class="paragraph">
<p>The examples of how to use <code>is_marker_type</code> trait.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#include &lt;opencl_image&gt;
using namespace cl;

kernel void foo(image1d&lt;float4&gt; img) {
  static_assert(is_marker_type&lt;decltype(img)&gt;(), "");
}</code></pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="images-and-samplers-library">3.11. Images and Samplers Library</h3>
<div class="paragraph">
<p>This section describes the image and sampler types and functions that can be used to read from and/or write to an image.
<code>image1d</code>, <code>image1d_buffer</code>, <code>image1d_array</code>, <code>image2d</code>, <code>image2d_array</code>, <code>image3d</code>, <code>image2d_depth</code>, <code>image2d_array_depth</code>, <code>image2d_ms</code>, <code>image2d_array_ms</code>, <code>image2d_depth_ms</code>, <code>image2d_array_depth_ms</code> <a id="ftnref13"></a> <a href="#ftn13">[13]</a> and <code>sampler</code> follow the rules for marker types (see the <a href="#marker-types"><em>Marker Types</em></a> section).
The image and sampler types can only be used if the device support images i.e. <code>CL_DEVICE_IMAGE_SUPPORT</code> as described in table 4.3 in OpenCL 2.2 specification is <code>CL_TRUE</code>.</p>
</div>
<div class="sect3">
<h4 id="image-and-sampler-host-types">3.11.1. Image and Sampler Host Types</h4>
<div class="paragraph">
<p>The below table describes the OpenCL image and sampler data types and the corresponding data type available to the application:</p>
</div>
<table class="tableblock frame-all grid-all spread">
<caption class="title">Table 10. Host image and sampler types</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Type in OpenCL C++</strong></th>
<th class="tableblock halign-left valign-top"><strong>API type for application</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>cl::image1d</code>,<br>
  <code>cl::image1d_buffer</code>,<br>
  <code>cl::image1d_array</code>,<br>
  <code>cl::image2d</code>,<br>
  <code>cl::image2d_array</code>,<br>
  <code>cl::image3d</code>,<br>
  <code>cl::image2d_depth</code>,<br>
  <code>cl::image2d_array_depth</code>,<br>
  <code>cl::image2d_ms</code>,<br>
  <code>cl::image2d_array_ms</code>,<br>
  <code>cl::image2d_depth_ms</code>,<br>
  <code>cl::image2d_array_depth_ms</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>cl_image</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>cl::sampler</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>cl_sampler</code></p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect3">
<h4 id="header-opencl_image-synopsis">3.11.2. Header &lt;opencl_image&gt; Synopsis</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>namespace cl
{
enum class image_access;
enum class image_channel_type;
enum class image_channel_order;
enum class addressing_mode;
enum class normalized_coordinates;
enum class filtering_mode;

struct sampler;

template &lt;addressing_mode A, normalized_coordinates C, filtering_mode F&gt;
constexpr sampler make_sampler();

template &lt;class T, image_access A, image_dim Dim, bool Depth, bool Array,
          bool MS&gt;
struct image;

template &lt;class T, image_access A = image_access::read&gt;
using image1d = image&lt;T, A, image_dim::image_1d, false, false, false&gt;;

template &lt;class T, image_access A = image_access::read&gt;
using image1d_buffer = image&lt;T, A, image_dim::image_buffer, false, false,
                             false&gt;;

template &lt;class T, image_access A = image_access::read&gt;
using image1d_array = image&lt;T, A, image_dim::image_1d, false, true, false&gt;;

template &lt;class T, image_access A = image_access::read&gt;
using image2d = image&lt;T, A, image_dim::image_2d, false, false, false&gt;;

template &lt;class T, image_access A = image_access::read&gt;
using image2d_depth = image&lt;T, A, image_dim::image_2d, true, false, false&gt;;

template &lt;class T, image_access A = image_access::read&gt;
using image2d_array = image&lt;T, A, image_dim::image_2d, false, true, false&gt;;

template &lt;class T, image_access A = image_access::read&gt;
using image3d = image&lt;T, A, image_dim::image_3d, false, false, false&gt;;

template &lt;class T, image_access A = image_access::read&gt;
using image2d_array_depth = image&lt;T, A, image_dim:: image_2d, true, true,
                                  false&gt;;

#if defined(cl_khr_gl_msaa_sharing) &amp;&amp; defined(cl_khr_gl_depth_images)
template &lt;class T, image_access A = image_access::read&gt;
using image2d_ms = image&lt;T, A, image_dim::image_2d, false, false, true&gt;;

template &lt;class T, image_access A = image_access::read&gt;
using image2d_array_ms = image&lt;T, A, image_dim::image_2d, false, true, true&gt;;

template &lt;class T, image_access A = image_access::read&gt;
using image2d_depth_ms = image&lt;T, A, image_dim::image_2d, true, false, true&gt;;

template &lt;class T, image_access A = image_access::read&gt;
using image2d_array_depth_ms = image&lt;T, A, image_dim::image_2d, true, true,
                                     true&gt;;
#endif

}</code></pre>
</div>
</div>
<div class="paragraph">
<p>Where <code>T</code> is the type of value returned when reading or sampling from given image or the type of color used to write to image.</p>
</div>
</div>
<div class="sect3">
<h4 id="image-class">3.11.3. image class</h4>
<div class="paragraph">
<p>Every image type has the following set of publicly available members and typedefs:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template &lt;class T, image_access A, image_dim Dim, bool Depth, bool Array,
          bool MS&gt;
struct image: marker_type
{
    static constexpr image_dim dimension = Dim;
    static constexpr size_t dimension_num = image_dim_num&lt;Dim&gt;::value;
    static constexpr size_t image_size = dimension_num + (Array? 1: 0);
    static constexpr image_access access = A;
    static constexpr bool is_array = Array;
    static constexpr bool is_depth = Depth;
#if defined(cl_khr_gl_msaa_sharing) &amp;&amp; defined(cl_khr_gl_depth_images)
    static constexpr bool is_ms = MS;
#else
    static constexpr bool is_ms = false;
#endif
    typedef element_type T;
    typedef integer_coord make_vector_t&lt;int, image_size&gt;;
    typedef float_coord make_vector_t&lt;float, image_size&gt;;

#ifdef cl_khr_mipmap_image
    typedef gradient_coord make_vector_t&lt;float, dimension_num&gt;;
#endif

    struct pixel;

    image() = delete;
    image(const image&amp;) = default;
    image(image&amp;&amp;) = default;

    image&amp; operator=(const image&amp;) = delete;
    image&amp; operator=(image&amp;&amp;) = delete;
    image* operator&amp;() = delete;
};</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="image-element-types">3.11.4. Image element types</h4>
<div class="paragraph">
<p>We can classify images into four categories: depth images which have the <code>Depth</code> template parameter set to <code>true</code>, multi-sample depth images which have the <code>Depth</code> and <code>MS</code> template parameters set to <code>true</code>, multi-sample which have the <code>MS</code> template parameter set to <code>true</code>, and the normal images which have the <code>Depth</code> and <code>MS</code> template parameters set to <code>false</code>.</p>
</div>
<div class="ulist">
<ul>
<li>
<p>For non-multisample depth images the only valid element types are: <code>float</code> and <code>half</code> <a id="ftnref14"></a> <a href="#ftn4">[4]</a></p>
</li>
<li>
<p>For normal images the only valid element types are: <code>float4</code>, <code>half4</code> <a href="#ftn4">[4]</a>, <code>int4</code> and <code>uint4</code></p>
</li>
<li>
<p>For multi-sample 2D and multi-sample 2D array images the only valid element types are: <code>float4</code>, <code>int4</code> and <code>uint4</code></p>
</li>
<li>
<p>For multi-sample 2D depth and multi-sample 2D array depth images the only valid element type is: <code>float</code></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Image type with invalid pixel type is ill formed.</p>
</div>
</div>
<div class="sect3">
<h4 id="image-dimension">3.11.5. Image dimension</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>namespace cl
{
enum class image_dim
{
    image_1d,
    image_2d,
    image_3d,
    image_buffer
};

template &lt;image_dim Dim&gt;
struct image_dim_num;

}</code></pre>
</div>
</div>
<div class="paragraph">
<p>Image types present different set of methods depending on their dimensionality and arrayness.</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Images of dimension 1 (<code>image_dim::image_1d</code> and <code>image_dim::buffer</code>) have method:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>int width() const noexcept;</code></pre>
</div>
</div>
</li>
<li>
<p>Images of dimension 2 (<code>image_dim::image_2d</code>)  have all methods of 1 dimensional images and</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>int height() const noexcept;</code></pre>
</div>
</div>
</li>
<li>
<p>Images of dimension 3 (<code>image_dim::image_3d</code>) have all methods of 2 dimensional images and</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>int depth() const noexcept;</code></pre>
</div>
</div>
</li>
<li>
<p>Arrayed images have additional method</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>int array_size() const noexcept;</code></pre>
</div>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>If the <strong>cl_khr_mipmap_image</strong> or <strong>cl_khr_mipmap_image_writes</strong> extension is enabled, then the following methods are also present:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Images of dimension 1 (<code>image_dim::image_1d</code> and <code>image_dim::buffer</code>) have method:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>int width(int lod) const noexcept;</code></pre>
</div>
</div>
</li>
<li>
<p>Images of dimension 2 (<code>image_dim::image_2d</code>) have all methods of 1 dimensional images and</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>int height(int lod) const noexcept;</code></pre>
</div>
</div>
</li>
<li>
<p>Images of dimension 3 (<code>image_dim::image_3d</code>) have all methods of 2 dimensional images and</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>int depth(int lod) const noexcept;</code></pre>
</div>
</div>
</li>
<li>
<p>Arrayed images have additional method</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>int array_size(int lod) const noexcept;</code></pre>
</div>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>If the <strong>cl_khr_gl_msaa_sharing</strong> and <strong>cl_khr_gl_depth_images</strong> extensions are enabled, then the following methods are also present:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Images of dimension 2D (<code>image_dim::image_2d</code>) have method:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>int num_samples() const noexcept;</code></pre>
</div>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>The following table describes the <code>image_dim_num</code> trait that return a number of dimensions based on <code>image_dim</code> parameter.</p>
</div>
<table class="tableblock frame-all grid-all spread">
<caption class="title">Table 11. Image_dim_num trait</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Template</strong></th>
<th class="tableblock halign-left valign-top"><strong>Value</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>template &lt;image_dim Dim&gt; struct image_dim_num;</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">If <code>Dim</code> is <code>image_dim::image_1d</code> or <code>image_dim::image_buffer</code>, image dimension is 1.<br>
  If <code>Dim</code> is <code>image_dim::image_2d</code>, image dimension is 2.<br>
  If <code>Dim</code> is <code>image_dim::image_3d</code>, image dimension is 3.</p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect3">
<h4 id="image-access">3.11.6. Image access</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>namespace cl
{
enum class image_access
{
    sample,
    read,
    write,
    read_write
};

}</code></pre>
</div>
</div>
<div class="paragraph">
<p>The non-multisample image template class specializations present different set of methods based on their access parameter.</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Images specified with <code>image_access::read</code> provide additional methods:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>element_type image::read(integer_coord coord) const noexcept;

pixel image::operator[](integer_coord coord) const noexcept;

element_type image::pixel::operator element_type() const noexcept;</code></pre>
</div>
</div>
</li>
<li>
<p>Images specified with <code>image_access::write</code> provide additional method:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>void image::write(integer_coord coord, element_type color) noexcept;

image::pixel image::operator[](integer_coord coord) noexcept;

image::pixel &amp; image::pixel::operator=(element_type color) noexcept;</code></pre>
</div>
</div>
</li>
<li>
<p>Images specified with <code>image_access::read_write</code> provide additional methods:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>element_type image::read(integer_coord coord) const noexcept;

void image::write(integer_coord coord, element_type color) noexcept;

image::pixel image::operator[](integer_coord coord) noexcept;

element_type image::pixel::operator element_type() const noexcept;

image::pixel &amp; image::pixel::operator=(element_type color) noexcept;</code></pre>
</div>
</div>
</li>
<li>
<p>Images specified with <code>image_access::sample</code> provide additional methods:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>element_type image::read(integer_coord coord) const noexcept;

element_type image::sample(const sampler &amp;s,
                           integer_coord coord) const noexcept;

element_type image::sample(const sampler &amp;s, float_coord coord) const noexcept;

image::pixel image::operator[](integer_coord coord) const noexcept;

element_type image::pixel::operator element_type() const noexcept;</code></pre>
</div>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>If the <strong>cl_khr_mipmap_image</strong> extension is enabled the following methods are added to the non-multisample image types:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Images specified with <code>image_access::sample</code> provide additional methods:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>element_type image::sample(const sampler &amp;s, float_coord coord,
                           float lod) const noexcept;

element_type image::sample(const sampler &amp;s, float_coord coord,
                           gradient_coord gradient_x,
                           gradient_coord gradient_y) const noexcept;</code></pre>
</div>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>If the <strong>cl_khr_mipmap_image_writes</strong> extension is enabled the following methods are added to the non-multisample image types:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Images specified with <code>image_access::write</code> provide additional method:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>void image::write(integer_coord coord, element_type color, int lod) noexcept;</code></pre>
</div>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>If the <strong>cl_khr_gl_msaa_sharing</strong> and <strong>cl_khr_gl_depth_images</strong> extensions are enabled and the multisample image type is used, the following method is available:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The multisample images specified with <code>image_access::read</code> provide method:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>element_type image::read(integer_coord coord, int sample) noexcept;</code></pre>
</div>
</div>
</li>
</ul>
</div>
</div>
<div class="sect3">
<h4 id="common-image-methods">3.11.7. Common image methods</h4>
<div class="paragraph">
<p>Each image type implements a set of common methods:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>image_channel_type image::data_type() const noexcept;
image_channel_order image::order() const noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>If the <strong>cl_khr_mipmap_image</strong> or <strong>cl_khr_mipmap_image_writes</strong> extension is enabled, then the following method is also present in the non-multisample image types:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>int image::miplevels() const noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>where <code>image_channel_type</code> and <code>image_channel_order</code> are defined as follows:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>namespace cl
{
enum class image_channel_type
{
    snorm_int8,
    snorm_int16,
    unorm_int8,
    unorm_int16,
    unorm_int24,
    unorm_short_565,
    unorm_short_555,
    unorm_int_101010,
    unorm_int_101010_2,
    signed_int8,
    signed_int16,
    signed_int32,
    unsigned_int8,
    unsigned_int16,
    unsigned_int32,
    fp16,
    fp32
};

enum class image_channel_order
{
    a,
    r,
    rx,
    rg,
    rgx,
    ra,
    rgb,
    rgbx,
    rgba,
    argb,
    bgra,
    intensity,
    luminance,
    abgr,
    depth,
    depth_stencil,
    srgb,
    srgbx,
    srgba,
    sbgra
};

}</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="other-image-methods">3.11.8. Other image methods</h4>
<div class="sect4">
<h5 id="imagesample">image::sample</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>element_type image::sample(const sampler &amp;s, float_coord coord) const noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Reads a color value from the non-multisample image using sampler and floating point coordinates.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>element_type image::sample(const sampler &amp;s, integer_coord coord) const noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Reads a color value from non-multisample image using sampler and integer coordinates.</p>
</div>
<div class="paragraph">
<p>A sampler must use filter mode set to <code>filtering_mode::nearest</code>, normalized coordinates and addressing mode set to <code>addressing_mode::clamp_to_edge</code>, <code>addressing_mode::clamp</code>, <code>addressing_mode::none</code>, otherwise the values returned are undefined.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>element_type image::sample(const sampler &amp;s, float_coord coord, float lod) const noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Reads a color value from non-multisample image using sampler and floating point coordinates in the mip-level specified by <code>lod</code>.</p>
</div>
<div class="paragraph">
<p>Method is present for non-multisample images if the <strong>cl_khr_mipmap_image</strong> extension is enabled.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>element_type image::sample(const sampler &amp;s, float_coord coord,
                           gradient_coord gradient_x,
                           gradient_coord gradient_y) const noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Use the gradients to compute the lod and coordinate <code>coord</code> to do an element lookup in the mip-level specified by the computed lod.</p>
</div>
<div class="paragraph">
<p>Method is present if the <strong>cl_khr_mipmap_image</strong> extension is enabled.</p>
</div>
<div class="paragraph">
<p>Based on the parameters with which image was created on host side the
function will return different ranges of values</p>
</div>
<div class="ulist">
<ul>
<li>
<p>returns floating-point values in the range [0.0, 1.0] for image objects created with <code>image_channel_type</code> set to one of the pre-defined packed formats or <code>image_channel_type::unorm_int8</code> or <code>image_channel_type::unorm_int16</code>.</p>
</li>
<li>
<p>returns floating-point values in the range [-1.0, 1.0] for image objects created with <code>image_channel_type::snorm_int8</code> or <code>image_channel_type::snorm_int16</code>.</p>
</li>
<li>
<p>returns floating-point values for image objects created with <code>image_channel_type::float16</code> or <code>image_channel_type::float32</code>.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Values returned by <code>image::sample</code> where <code>T</code> is a floating-point type for image objects with <code>image_channel_type</code> values not specified in the description above are undefined.</p>
</div>
<div class="paragraph">
<p>The <code>image::sample</code> functions that take an image object where <code>T</code> is a signed integer type can only be used with image objects created with:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>image_channel_type::sint8</code>,</p>
</li>
<li>
<p><code>image_channel_type::sint16</code> and</p>
</li>
<li>
<p><code>image_channel_type::sint32</code>.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>If the <code>image_channel_type</code> is not one of the above values, the values returned by <code>image::sample</code> are undefined.</p>
</div>
<div class="paragraph">
<p>The <code>image::sample</code> functions that take an image object where <code>T</code> is an unsigned integer type can only be used with image objects created with:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>image_channel_type::uint8</code>,</p>
</li>
<li>
<p><code>image_channel_type::uint16</code> and</p>
</li>
<li>
<p><code>image_channel_type::uint32</code>.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>If the <code>image_channel_type</code> is not one of the above values, the values returned by <code>image::sample</code> are undefined.</p>
</div>
</div>
<div class="sect4">
<h5 id="imageread">image::read</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>element_type image::read(integer_coord coord) const noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Reads a color value from non-multisample image without sampler and integral coordinates.
If the <strong>cl_khr_mipmap_image</strong> extension is present, may also perform reads from mipmap layer 0.</p>
</div>
<div class="paragraph">
<p>The image read function behaves exactly as the corresponding image sample function using a sampler
that has filter mode set to <code>filtering_mode::nearest</code>, normalized coordinates set to
<code>normalized_coordinates::unnormalized</code> and addressing mode set to  <code>addressing_mode::none</code>.
There is one execption for cases where the image sample type is <code>image_channel_type::fp32</code>.
In this exceptional case, when channel data values are denormalized, the image read function may return
the denormalized data, while the sample function may flush denormalized channel data values to zero.
The coordinates must be between 0 and image size in that dimension non inclusive.</p>
</div>
<div class="paragraph">
<p>Based on the parameters with which image was created on host side the function will return different ranges of values</p>
</div>
<div class="ulist">
<ul>
<li>
<p>returns floating-point values in the range [0.0, 1.0] for image objects created with <code>image_channel_type</code> set to one of the pre-defined packed formats or <code>image_channel_type::unorm_int8</code> or <code>image_channel_type::unorm_int16</code>.</p>
</li>
<li>
<p>returns floating-point values in the range [-1.0, 1.0] for image objects created with <code>image_channel_type::snorm_int8</code> or <code>image_channel_type::snorm_int16</code>.</p>
</li>
<li>
<p>returns floating-point values for image objects created with <code>image_channel_type::float16</code> or <code>image_channel_type::float32</code>.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Values returned by <code>image::read</code> where <code>T</code> is a floating-point type for image objects with <code>image_channel_type</code> values not specified in the description above are undefined.</p>
</div>
<div class="paragraph">
<p>The <code>image::read</code> functions that take an image object where <code>T</code> is a signed integer type can only be used with image objects created with:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>image_channel_type::sint8</code>,</p>
</li>
<li>
<p><code>image_channel_type::sint16</code> and</p>
</li>
<li>
<p><code>image_channel_type::sint32</code>.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>If the <code>image_channel_type</code> is not one of the above values, the values returned by <code>image::read</code> are undefined.</p>
</div>
<div class="paragraph">
<p>The <code>image::read</code> functions that take an image object where <code>T</code> is an unsigned integer type can only be used with image objects created with <code>image_channel_type</code> set to one of the following values:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>image_channel_type::uint8</code>,</p>
</li>
<li>
<p><code>image_channel_type::uint16</code> and</p>
</li>
<li>
<p><code>image_channel_type::uint32</code>.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>If the <code>image_channel_type</code> is not one of the above values, the values returned by <code>image::read</code> are undefined.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>element_type image::read(integer_coord coord, int sample) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Use the coordinate and sample to do an element lookup in the image object.
Method is only available in the MSAA image types, and if the <strong>cl_khr_gl_msaa_sharing</strong> and <strong>cl_khr_gl_depth_images</strong> extensions are enabled.</p>
</div>
<div class="paragraph">
<p>When a multisample image is accessed in a kernel, the access takes one vector of integers describing which pixel to fetch and an integer corresponding to the sample numbers describing which sample within the pixel to fetch.
<code>sample</code> identifies the sample position in the multi-sample image.</p>
</div>
<div class="paragraph">
<p>For best performance, we recommend that sample be a literal value so it is known at compile time and the OpenCL compiler can perform appropriate optimizations for multisample reads on the device.</p>
</div>
<div class="paragraph">
<p>No standard sampling instructions are allowed on the multisample image.
Accessing a coordinate outside the image and/or a sample that is outside the number of samples associated with each pixel in the image is undefined.</p>
</div>
</div>
<div class="sect4">
<h5 id="imagewrite">image::write</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>void image::write(integer_coord coord, element_type color) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Writes a color value to location specified by coordinates from non-multisample image.
If the <strong>cl_khr_mipmap_image_writes</strong> extension is present, may also perform writes to mipmap layer 0.
The coordinates must be between 0 and image size in that dimension non inclusive.</p>
</div>
<div class="paragraph">
<p>Based on the parameters with which image was created on host side the function will perform appropriate data format conversions before writing a color value.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>void image::write(integer_coord coord, element_type color, int lod) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Writes a color value to location specified by coordinates and lod from mipmap image.
The coordinates must be between 0 and image size in that dimension non inclusive.</p>
</div>
<div class="paragraph">
<p>Method is present if the <strong>cl_khr_mipmap_image</strong> extension is enabled.</p>
</div>
<div class="paragraph">
<p>Based on the parameters with which image was created on host side the function will perform appropriate data format conversions before writing a color value.</p>
</div>
<div class="paragraph">
<p>The <code>image::write</code> functions that take an image object where <code>T</code> is a floating-point type can only be used with image objects created with <code>image_channel_type</code> set to one of the pre-defined packed formats or set to:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>image_channel_type::snorm_int8</code></p>
</li>
<li>
<p><code>image_channel_type::unorm_int8</code></p>
</li>
<li>
<p><code>image_channel_type::snorm_int16</code></p>
</li>
<li>
<p><code>image_channel_type::unorm_int16</code></p>
</li>
<li>
<p><code>image_channel_type::float16</code></p>
</li>
<li>
<p><code>image_channel_type::float32</code></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The <code>image::write</code> functions that take an image object where <code>T</code> is a signed integer type can only be used with image objects created with:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>image_channel_type::sint8</code></p>
</li>
<li>
<p><code>image_channel_type::sint16</code></p>
</li>
<li>
<p><code>image_channel_type::sint32</code></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The <code>image::write</code> functions that take an image object where <code>T</code> is an unsigned integer type can only be used with image objects created with:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>image_channel_type::uint8</code></p>
</li>
<li>
<p><code>image_channel_type::uint16</code></p>
</li>
<li>
<p><code>image_channel_type::uint32</code></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The behavior of <code>image::write</code> for image objects created with
<code>image_channel_type</code> values not specified in the description above is undefined.</p>
</div>
</div>
<div class="sect4">
<h5 id="imageoperator">\image::operator[]</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>pixel operator[](integer_coord coord) noexcept;

pixel operator[](integer_coord coord) const noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Creates a pixel which can be used to read or/and write operation(s).
It depends on image_access specified in the image.</p>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
The pixel stores a reference to image and coordinates.
This operation can consume more private memory than <code>image::read</code> and <code>image::write</code> methods.
It can also negatively impact performance.
</td>
</tr>
</table>
</div>
</div>
<div class="sect4">
<h5 id="imagepixeloperator-element_type">image::pixel::operator element_type</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>element_type pixel::operator element_type() const noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Reads a color value from non-multisample image without sampler and integral coordinates specified in pixel.
If the <strong>cl_khr_mipmap_image</strong> extension is present, may also perform reads from mipmap layer 0.</p>
</div>
<div class="paragraph">
<p>This function is similar to <code>image::read</code> method.
Please refer to description of this method for more details.</p>
</div>
</div>
<div class="sect4">
<h5 id="imagepixeloperator">image::pixel::operator=</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>pixel &amp; pixel::operator=(element_type color) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Writes a color value to location specified by coordinates in pixel from non-multisample image.
If the <strong>cl_khr_mipmap_image_writes</strong> extension is present, may also perform writes to mipmap layer 0.
The coordinates specified in pixel must be between 0 and image size in that dimension non inclusive.</p>
</div>
<div class="paragraph">
<p>Based on the parameters with which image was created on host side the function will perform appropriate data format conversions before writing a color value.</p>
</div>
<div class="paragraph">
<p>This function is similar to <code>image::write</code> method.
Please refer to description of this method for more details.</p>
</div>
</div>
<div class="sect4">
<h5 id="imagewidth">image::width</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>int width() const noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns width of the image.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>int width(int lod) const noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns width of the mip-level specified by <code>lod</code>.</p>
</div>
<div class="paragraph">
<p>Method is present in the non-multisample image types if the <strong>cl_khr_mipmap_image</strong> extension is enabled.</p>
</div>
</div>
<div class="sect4">
<h5 id="imageheight">image::height</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>int height() const noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns height of the image.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>int height(int lod) const noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns height of the mip-level specified by <code>lod</code>.</p>
</div>
<div class="paragraph">
<p>Method is present in the non-multisample image types if the <strong>cl_khr_mipmap_image</strong> extension is enabled.</p>
</div>
</div>
<div class="sect4">
<h5 id="imagedepth">image::depth</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>int depth() const noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns depth of the image.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>int depth(int lod) const noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns depth of the mip-level specified by <code>lod</code>.</p>
</div>
<div class="paragraph">
<p>Method is present in the non-multisample image types if the <strong>cl_khr_mipmap_image</strong> extension is enabled.</p>
</div>
</div>
<div class="sect4">
<h5 id="imagearray_size">image::array_size</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>int array_size() const noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns size of the image array.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>int array_size(int lod) const noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns size of the image array specified by <code>lod</code>.</p>
</div>
<div class="paragraph">
<p>Method is present in the non-multisample image types if the <strong>cl_khr_mipmap_image</strong> extension is enabled.</p>
</div>
</div>
<div class="sect4">
<h5 id="imagesize">image::size</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>integer_coord size() const noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns appropriately sized vector, or scalar for 1 dimensional images, containing all image dimensions followed by array size.</p>
</div>
</div>
<div class="sect4">
<h5 id="imagedata_type">image::data_type</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>image_channel_type image::data_type() const noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns format of the image as specified upon its creation on host side.</p>
</div>
</div>
<div class="sect4">
<h5 id="imageorder">image::order</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>image_channel_order image::order() const noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns channel order of the image as specified upon its creation on host side.</p>
</div>
</div>
<div class="sect4">
<h5 id="imagemiplevels">image::miplevels</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>int miplevels() const noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns number of mipmaps of image.
Method is present if the <strong>cl_khr_mipmap_image</strong> or <strong>cl_khr_mipmap_image_writes</strong> extension is enabled.</p>
</div>
</div>
<div class="sect4">
<h5 id="imagenum_samples">image::num_samples</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>int num_samples() const noexcept;</code></pre>
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="sampler">3.11.9. Sampler</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>namespace cl
{
struct sampler: marker_type
{
    sampler() = delete;
    sampler(const sampler&amp;) = default;
    sampler(sampler&amp;&amp;) = default;

    sampler&amp; operator=(const sampler&amp;) = delete;
    sampler&amp; operator=(sampler&amp;&amp;) = delete;
    sampler* operator&amp;() = delete;

};

template &lt;addressing_mode A, normalized_coordinates C, filtering_mode F&gt;
constexpr sampler make_sampler();

}</code></pre>
</div>
</div>
<div class="paragraph">
<p>There are only two ways of acquiring a sampler inside of a kernel. One is to pass it as a kernel parameter from host using <code>clSetKernelArg</code>, the other one is to create one using make_sampler function in the kernel code. <code>make_sampler</code> function has three template parameters specifying behavior of sampler. Once acquired sampler can only be passed by reference as all other marker types. The sampler objects at non-program scope must be declared with static specifier.</p>
</div>
<div class="paragraph">
<p>The maximum number of samplers that can be declared in a kernel can be queried using the <code>CL_DEVICE_MAX_SAMPLERS</code> token in <code>clGetDeviceInfo</code>.</p>
</div>
</div>
<div class="sect3">
<h4 id="sampler-modes">3.11.10. Sampler Modes</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>namespace cl
{
enum class addressing_mode
{
    mirrored_repeat,
    repeat,
    clamp_to_edge,
    clamp,
    none
};

enum class normalized_coordinates
{
    normalized,
    unnormalized
};

enum class filtering_mode
{
    nearest,
    linear
};

}</code></pre>
</div>
</div>
<div class="paragraph">
<p>The following tables describe the inline sampler parameters and their behavior.</p>
</div>
<table class="tableblock frame-all grid-all spread">
<caption class="title">Table 12. Addressing modes</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Addressing mode</strong></th>
<th class="tableblock halign-left valign-top"><strong>Description</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>mirrored_repeat</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Out of range coordinates will be flipped at every integer junction. This addressing mode can only be used with normalized coordinates. If normalized coordinates are not used, this addressing mode may generate image coordinates that are undefined.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>repeat</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Out of range image coordinates are wrapped to the valid range. This addressing mode can only be used with normalized coordinates. If normalized coordinates are not used, this addressing mode may generate image coordinates that are undefined.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>clamp_to_edge</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Out of range image coordinates are clamped to the extent.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>clamp</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Out of range image coordinates will return a border color.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>none</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">For this addressing mode the programmer guarantees that the image coordinates used to sample elements of the image refer to a location inside the image; otherwise the results are undefined.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>For 1D and 2D image arrays, the addressing mode applies only to the <em>x</em> and (<em>x, y</em>) coordinates.  The addressing mode for the coordinate which specifies the array index is always clamp_to_edge.</p>
</div>
<table class="tableblock frame-all grid-all spread">
<caption class="title">Table 13. Normalized coordinates</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Normalized Coordinate Values</strong></th>
<th class="tableblock halign-left valign-top"><strong>Description</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>normalized</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Specifies whether the <em>x</em>, <em>y</em> and <em>z</em> coordinates are passed in as normalized values.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>unnormalized</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Specifies whether the <em>x</em>, <em>y</em> and <em>z</em> coordinates are passed in as unnormalized values.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>Sampling from an image with samplers that differ in specification of coordinates normalization result in undefined behavior.</p>
</div>
<table class="tableblock frame-all grid-all spread">
<caption class="title">Table 14. Coordinate filtering modes</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Filtering mode</strong></th>
<th class="tableblock halign-left valign-top"><strong>Description</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>nearest</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Chooses a color of nearest pixel.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>linear</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Performs a linear sampling of adjacent pixels.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>Refer to <em>section 4.2</em> in the OpenCL API specification for a description of these filter modes.</p>
</div>
</div>
<div class="sect3">
<h4 id="determining-the-border-color-or-value">3.11.11. Determining the border color or value</h4>
<div class="paragraph">
<p>If <code>&lt;addressing mode&gt;</code> in sampler is clamp, then out-of-range image coordinates return the border color. The border color selected depends on the image channel order and can be one of the following values:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>If the image channel order is <code>image_channel_order::a</code>, <code>image_channel_order::intensity</code>, <code>image_channel_order::rx</code>, <code>image_channel_order::ra</code>, <code>image_channel_order::rgx</code>, <code>image_channel_order::rgbx</code>, <code>image_channel_order::srgbx</code>, <code>image_channel_order::argb</code>, <code>image_channel_order::bgra</code>, <code>image_channel_order::abgr</code>, <code>image_channel_order::rgba</code>, <code>image_channel_order::srgba</code> or <code>image_channel_order::sbgra</code>, the border color is (0.0f, 0.0f, 0.0f, 0.0f).</p>
</li>
<li>
<p>If the image channel order is <code>image_channel_order::r</code>, <code>image_channel_order::rg</code>, <code>image_channel_order::rgb</code>, or <code>image_channel_order::luminance</code>, the border color is (0.0f, 0.0f, 0.0f, 1.0f).</p>
</li>
<li>
<p>If the image channel order is <code>image_channel_order::depth</code>, the border value is 0.0f.</p>
</li>
</ul>
</div>
</div>
<div class="sect3">
<h4 id="srgb-images">3.11.12. sRGB Images</h4>
<div class="paragraph">
<p>The built-in image read functions perform sRGB to linear RGB conversions if the image is an sRGB image. Writes to sRGB images from a kernel is an optional extension. The <strong>cl_khr_srgb_image_writes</strong> extension will be reported in the <code>CL_DEVICE_EXTENSIONS</code> string if a device supports writing to sRGB images using <code>image::write</code>. <code>clGetSupportedImageFormats</code> will return the supported sRGB images if <code>CL_MEM_READ_WRITE</code> or <code>CL_MEM_WRITE_ONLY</code> is specified in <code>flags</code> argument and the device supports writing to an sRGB image. If the <strong>cl_khr_srgb_image_writes</strong> extension is supported and has been enabled, the built-in image write functions perform the linear to sRGB conversion.</p>
</div>
<div class="paragraph">
<p>Only the R, G and B components are converted from linear to sRGB and vice-versa. The alpha component is returned as is.</p>
</div>
</div>
<div class="sect3">
<h4 id="reading-and-writing-to-the-same-image-in-a-kernel">3.11.13. Reading and writing to the same image in a kernel</h4>
<div class="paragraph">
<p>To read and write to the same image in a kernel, the image must be declared with the <code>image_access::read_write</code>. Only sampler-less reads and write functions can be called on an image declared with the <code>image_access::read_write</code> access qualifier. Calling the <code>image::sample</code> functions on an image declared with the <code>image_access::read_write</code> will result in a compilation error.</p>
</div>
<div class="paragraph">
<p>The <code>atomic_fence</code> function from the <a href="#fences"><em>Atomic Fences</em></a> section can be used to make sure that writes are visible to later reads by the same work-item. Without use of the <code>atomic_fence</code> function, write-read coherence on image objects is not guaranteed: if a work-item reads from an image to which it has previously written without an intervening atomic_fence, it is not guaranteed that those previous writes are visible to the work-item. Only a scope of <code>memory_order_acq_rel</code> is valid for <code>atomic_fence</code> when passed the <code>mem_fence::image</code> flag.  If multiple work-items are writing to and reading from multiple locations in an image, the <code>work_group_barrier</code> from the <a href="#synchronization-functions"><em>Synchronization Functions</em></a> section should be used.</p>
</div>
<div class="paragraph">
<p>Consider the following example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#include &lt;opencl_work_item&gt;
#include &lt;opencl_atomic&gt;
#include &lt;opencl_image&gt;
using namespace cl;

kernel void foo(image2d&lt;float4, image_access::read_write&gt; img, ... ) {
    int2 coord;
    coord.x = (int)get_global_id(0);
    coord.y = (int)get_global_id(1);

    float4 clr = img.read(coord);
    //...
    img.write(coord, clr);

    // required to ensure that following read from image at
    // location coord returns the latest color value.
    atomic_fence(mem_fence::image,
     memory_order_acq_rel,
     memory_scope_work_item);

    float4 clr_new = img.read(coord);
    //...
}</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="mapping-image-channels-to-color-values-returned-by-imagesample-imageread-and-color-values-passed-to-imagewrite-to-image-channels">3.11.14. Mapping image channels to color values returned by image::sample, image::read and color values passed to image::write to image channels</h4>
<div class="paragraph">
<p>The following table describes the mapping of the number of channels of an image element to the appropriate components in the <code>float4</code>, <code>int4</code> or <code>uint4</code> vector data type for the color values returned by <code>image::sample</code>, <code>image::read</code> or supplied to <code>image::write</code>. The unmapped components will be set to 0.0 for red, green and blue channels and will be set to 1.0 for the alpha channel.</p>
</div>
<table class="tableblock frame-all grid-all spread">
<caption class="title">Table 15. Image channel mappings</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Image Channel Order</strong></th>
<th class="tableblock halign-left valign-top"><strong>float4, int4 or uint4 components of channel data</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">r, rx</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">(r, 0.0, 0.0, 1.0)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">a</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">(0.0, 0.0, 0.0, a)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">rg, rgx</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">(r, g, 0.0, 1.0)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">ra</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">(r, 0.0, 0.0, a)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">rgb, rgbx, srgb, srgbx</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">(r, g, b, 1.0)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">rgba, bgra, argb, abgr, srgba, sbgra</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">(r, g, b, a)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">intensity</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">(I, I, I, I)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">luminance</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">(L, L, L, 1.0)</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>For <code>image_channel_order::depth</code> images, a scalar value is returned by <code>image::sample</code>, <code>image::read</code> or supplied to <code>image::write</code>.</p>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
A kernel that uses a sampler with the clamp addressing mode with multiple images may result in additional samplers being used internally by an implementation. If the same sampler is used with multiple images called via <code>image::sample</code>, then it is possible that an implementation may need to allocate an additional sampler to handle the different border color values that may be needed depending on the image formats being used.  The implementation allocated samplers will count against the maximum sampler values supported by the device and given by <code>CL_DEVICE_MAX_SAMPLERS</code>. Enqueuing a kernel that requires more samplers than the implementation can support will result in a <code>CL_OUT_OF_RESOURCES</code> error being returned.
</td>
</tr>
</table>
</div>
</div>
<div class="sect3">
<h4 id="restrictions-4">3.11.15. Restrictions</h4>
<div class="ulist">
<ul>
<li>
<p>The image and sampler types cannot be used with variables declared inside a class or union field, a pointer type, an array, global variables declared at program scope or the return type of a function.</p>
</li>
<li>
<p>The image and sampler types cannot be used with the <code>global</code>, <code>local</code>, <code>priv</code> and <code>constant</code> address space storage classes (see the <a href="#explicit-address-space-storage-classes"><em>Explicit address space storage classes</em></a> section).</p>
</li>
<li>
<p>The values returned by applying the <code>sizeof</code> operator to the image and sampler types are implementation-defined.</p>
</li>
</ul>
</div>
</div>
<div class="sect3">
<h4 id="examples-5">3.11.16. Examples</h4>
<div class="sect4">
<h5 id="example-1-5">Example 1</h5>
<div class="paragraph">
<p>The example how to use an image object with sampler-less reads.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#include &lt;opencl_image&gt;
#include &lt;opencl_work_item&gt;
using namespace cl;

kernel void foo(image2d&lt;float4, image_access::read&gt; img) {
    int2 coord;
    coord.x = get_global_id(0);
    coord.y = get_global_id(1);

    float4 val = img.read(coord);
}</code></pre>
</div>
</div>
</div>
<div class="sect4">
<h5 id="example-2-3">Example 2</h5>
<div class="paragraph">
<p>The example how to use an image object with <code>image_access::read_write</code> access and <code>atomic_fence</code> function.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#include &lt;opencl_image&gt;
#include &lt;opencl_atomic&gt;
#include &lt;opencl_work_item&gt;
using namespace cl;

kernel void foo(image2d&lt;float4, image_access::read_write&gt; img) {
    int2 coord;
    coord.x = get_global_id(0);
    coord.y = get_global_id(1);

    float4 val1{0.5f};
    img[coord] = val1;

    atomic_fence(mem_fence::image, memory_order_acq_rel,
                 memory_scope_work_item);

    float4 val2 = img[coord];
}</code></pre>
</div>
</div>
</div>
<div class="sect4">
<h5 id="example-3-2">Example 3</h5>
<div class="paragraph">
<p>The example how to use an image object with sampler passed by a kernel argument.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#include &lt;opencl_image&gt;
#include &lt;opencl_work_item&gt;
using namespace cl;

kernel void foo(image2d&lt;float4, image_access::sample&gt; img, sampler s) {
    int2 coord;
    coord.x = get_global_id(0);
    coord.y = get_global_id(1);

    float4 val = img.sample(s, coord);
}</code></pre>
</div>
</div>
</div>
<div class="sect4">
<h5 id="example-4-1">Example 4</h5>
<div class="paragraph">
<p>The example how to use an image object with sampler declared at program scope.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#include &lt;opencl_image&gt;
#include &lt;opencl_work_item&gt;
using namespace cl;

sampler s = make_sampler&lt;addressing_mode::clamp,
                         normalized_coordinates::unnormalized,
                         filtering_mode::nearest&gt;();

kernel void foo(image2d&lt;float4, image_access::sample&gt; img) {
    int2 coord;
    coord.x = get_global_id(0);
    coord.y = get_global_id(1);

    float4 val = img.sample(s, coord);
}</code></pre>
</div>
</div>
</div>
<div class="sect4">
<h5 id="example-5-1">Example 5</h5>
<div class="paragraph">
<p>The example how to use an image object with sampler declared at non-program scope.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#include &lt;opencl_image&gt;
#include &lt;opencl_work_item&gt;
using namespace cl;

kernel void foo(image2d&lt;float4, image_access::sample&gt; img) {
    int2 coord;
    coord.x = get_global_id(0);
    coord.y = get_global_id(1);

    static sampler s = make_sampler&lt;addressing_mode::clamp,
                                    normalized_coordinates::unnormalized,
                                    filtering_mode::nearest&gt;();

    float4 val = img.sample(s, coord);
}</code></pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="pipes-library">3.12. Pipes Library</h3>
<div class="paragraph">
<p>Header <em>&lt;opencl_pipe&gt;</em> defines <code>pipe</code> and <code>pipe_storage</code> template classes.
<code>pipe</code> and <code>pipe_storage</code> can be used as a communication channel between kernels.
<code>pipe</code>, <code>reservation</code> and <code>pipe_storage</code>  template classes follow all the rules for marker types as specified in the <a href="#marker-types"><em>Marker Types</em></a> section.</p>
</div>
<div class="sect3">
<h4 id="pipe-host-type">3.12.1. Pipe Host Type</h4>
<div class="paragraph">
<p>The below describes the OpenCL pipe data type and the corresponding data type available to the application:</p>
</div>
<table id="host_pipe_type" class="tableblock frame-all grid-all spread">
<caption class="title">Table 16. Host pipe type</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Type in OpenCL C++</strong></th>
<th class="tableblock halign-left valign-top"><strong>API type for application</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>cl::pipe</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>cl_pipe</code></p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect3">
<h4 id="header-opencl_pipe-synopsis">3.12.2. Header &lt;opencl_pipe&gt; Synopsis</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>namespace cl
{
enum class pipe_access { read, write };

template &lt;class T, pipe_access Access = pipe_access::read&gt;
struct pipe;

template &lt;class T, size_t N&gt;
struct pipe_storage;

template&lt;pipe_access Access = pipe_access::read, class T, size_t N&gt;
pipe&lt;T, Access&gt; make_pipe(const pipe_storage&lt;T, N&gt;&amp; ps);

}</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="pipe-class-specializations">3.12.3. pipe class specializations</h4>
<div class="paragraph">
<p><code>pipe</code> class has two distinct specializations depending on <code>pipe_access</code> parameter defined as follows:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>namespace cl
{
template &lt;class T, pipe_access Access = pipe_access::read&gt;
struct pipe: marker_type
{
    typedef T element_type;
    static constexpr pipe_access access = Access;

    template&lt;memory_scope S&gt;
    struct reservation: marker_type
    {
        reservation() = delete;
        reservation(const reservation&amp;) = default;
        reservation(reservation&amp;&amp;) = default;

        reservation&amp; operator=(const reservation&amp;) = delete;
        reservation&amp; operator=(reservation&amp;&amp;) = delete;
        reservation* operator&amp;() = delete;

        bool is_valid() const noexcept;
        bool read(uint index, T&amp; ref) const noexcept;
        void commit() noexcept;

        explicit operator bool() const noexcept;
    };

    pipe() = delete;
    pipe(const pipe&amp;) = default;
    pipe(pipe&amp;&amp;) = default;

    pipe&amp; operator=(const pipe&amp;) = delete;
    pipe&amp; operator=(pipe&amp;&amp;) = delete;
    pipe* operator&amp;() = delete;

    bool read(T&amp; ref) const noexcept;
    reservation&lt;memory_scope_work_item&gt; reserve(
                                               uint num_packets) const noexcept;
    reservation&lt;memory_scope_work_group&gt; work_group_reserve(
                                               uint num_packets) const noexcept;
    reservation&lt;memory_scope_sub_group&gt; sub_group_reserve(
                                               uint num_packets) const noexcept;

    uint num_packets() const noexcept;
    uint max_packets() const noexcept;
};

template &lt;class T&gt;
struct pipe&lt;T, pipe_access::write&gt;: marker_type
{
    typedef T element_type;
    static constexpr pipe_access access = pipe_access::write;

    template&lt;memory_scope S&gt;
    struct reservation: marker_type
    {
        reservation() = delete;
        reservation(const reservation &amp;) = default;
        reservation(reservation &amp;&amp;) = default;

        reservation&amp; operator=(const reservation &amp;) noexcept = delete;
        reservation&amp; operator=(reservation &amp;&amp;) noexcept = delete;
        reservation* operator&amp;() = delete;

        bool is_valid() const noexcept;
        bool write(uint index, const T&amp; ref) noexcept;
        void commit() noexcept;

        explicit operator bool() const noexcept;
    };

    pipe() = delete;
    pipe(const pipe&amp;) = default;
    pipe(pipe&amp;&amp;) = default;

    pipe&amp; operator=(const pipe&amp;) = delete;
    pipe&amp; operator=(pipe&amp;&amp;) = delete;
    pipe* operator&amp;() = delete;

    bool write(const T&amp; ref) noexcept;
    reservation&lt;memory_scope_work_item&gt; reserve(uint num_packets) noexcept;
    reservation&lt;memory_scope_work_group&gt; work_group_reserve(
                                                     uint num_packets) noexcept;
    reservation&lt;memory_scope_sub_group&gt; sub_group_reserve(
                                                     uint num_packets) noexcept;

    uint num_packets() const noexcept;
    uint max_packets() const noexcept;
};

}</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="pipe-class-methods">3.12.4. pipe class methods</h4>
<div class="sect4">
<h5 id="piperead">pipe::read</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>bool read(T&amp; ref) const noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Read packet from pipe into <code>ref</code>.</p>
</div>
<div class="paragraph">
<p>Returns <code>true</code> if read is successful and <code>false</code> if the pipe is empty.</p>
</div>
</div>
<div class="sect4">
<h5 id="pipewrite">pipe::write</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>bool write(const T&amp; ref) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Write packet specified by <code>ref</code> to pipe.
Returns <code>true</code> if write is successful and <code>false</code> if the pipe is full.</p>
</div>
</div>
<div class="sect4">
<h5 id="pipereserve">pipe::reserve</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>reservation reserve(uint num_packets) const noexcept;

reservation reserve(uint num_packets) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Reserve <code>num_packets</code> entries for reading/writing from/to pipe.
Returns a valid reservation if the reservation is successful.</p>
</div>
<div class="paragraph">
<p>The reserved pipe entries are referred to by indices that go from <code>0 &#8230;&#8203; num_packets - 1</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="pipework_group_reserve">pipe::work_group_reserve</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>reservation work_group_reserve(uint num_packets) const noexcept;

reservation work_group_reserve(uint num_packets) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Reserve <code>num_packets</code> entries for reading/writing from/to pipe.
Returns a valid reservation if the reservation is successful.</p>
</div>
<div class="paragraph">
<p>The reserved pipe entries are referred to by indices that go from <code>0 &#8230;&#8203; num_packets - 1</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="pipesub_group_reserve">pipe::sub_group_reserve</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>reservation sub_group_reserve(uint num_packets) const noexcept;

reservation sub_group_reserve(uint num_packets) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Reserve <code>num_packets</code> entries for reading/writing from/to pipe.
Returns a valid reservation if the reservation is successful.</p>
</div>
<div class="paragraph">
<p>The reserved pipe entries are referred to by indices that go from <code>0 &#8230;&#8203; num_packets - 1</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="pipenum_packets">pipe::num_packets</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>uint num_packets() const noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns the current number of packets that have been written to the pipe, but have not yet been read from the pipe.
The number of available entries in a pipe is a dynamic value.
The value returned should be considered immediately stale.</p>
</div>
</div>
<div class="sect4">
<h5 id="pipemax_packets">pipe::max_packets</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>uint max_packets() const noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns the maximum number of packets specified when pipe was created.</p>
</div>
</div>
<div class="sect4">
<h5 id="pipereservationread">pipe::reservation::read</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>bool pipe::reservation::read(uint index, T&amp; ref) const noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Read packet from the reserved area of the pipe referred to by <code>index</code> into <code>ref</code>.</p>
</div>
<div class="paragraph">
<p>The reserved pipe entries are referred to by indices that go from <code>0 &#8230;&#8203; num_packets - 1</code>.</p>
</div>
<div class="paragraph">
<p>Returns <code>true</code> if read is successful and <code>false</code> otherwise.</p>
</div>
</div>
<div class="sect4">
<h5 id="pipereservationwrite">pipe::reservation::write</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>bool pipe::reservation::write(uint index, const T&amp; ref) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Write packet specified by <code>ref</code> to the reserved area of the pipe referred to by <code>index</code>.</p>
</div>
<div class="paragraph">
<p>The reserved pipe entries are referred to by indices that go from <code>0 &#8230;&#8203; num_packets - 1</code>.</p>
</div>
<div class="paragraph">
<p>Returns <code>true</code> if write is successful and <code>false</code> otherwise.</p>
</div>
</div>
<div class="sect4">
<h5 id="pipereservationcommit">pipe::reservation::commit</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>void pipe::reservation::commit() const noexcept;

void pipe::reservation::commit() noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Indicates that all reads/writes to <code>num_packets</code> associated with reservation are completed.</p>
</div>
</div>
<div class="sect4">
<h5 id="pipereservationis_valid">pipe::reservation::is_valid</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>bool pipe::reservation::is_valid();</code></pre>
</div>
</div>
<div class="paragraph">
<p>Return <code>true</code> if reservation is a valid reservation and <code>false</code> otherwise.</p>
</div>
</div>
<div class="sect4">
<h5 id="pipereservationoperator-bool">pipe::reservation::operator bool</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>explicit pipe::reservation::operator bool() const noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Return <code>true</code> if reservation is a valid reservation and <code>false</code> otherwise.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="pipe_storage-class">3.12.5. pipe_storage class</h4>
<div class="paragraph">
<p>The lifetime of <code>pipe_storage</code> objects is the same as a program where they were declared.
The variables of such type are not shared across devices.</p>
</div>
<div class="paragraph">
<p><code>N</code> in the <code>pipe_storage</code> template class specifies the maximum number of packets which can be held by an object.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>namespace cl
{
template&lt;class T, size_t N&gt;
struct pipe_storage: marker_type
{
    pipe_storage();
    pipe_storage(const pipe_storage&amp;) = default;
    pipe_storage(pipe_storage&amp;&amp;) = default;

    pipe_storage&amp; operator=(const pipe_storage&amp;) = delete;
    pipe_storage&amp; operator=(pipe_storage&amp;&amp;) = delete;
    pipe_storage* operator&amp;() = delete;

    template&lt;pipe_access Access = pipe_access::read&gt;
    pipe&lt;T, Access&gt; get() const noexcept
};

template&lt;pipe_access Access = pipe_access::read, class T, size_t N&gt;
pipe&lt;T, Access&gt; make_pipe(const pipe_storage&lt;T, N&gt;&amp; ps);

}</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="pipe_storage-class-methods-and-make_pipe-function">3.12.6. pipe_storage class methods and make_pipe function</h4>
<div class="sect4">
<h5 id="pipe_storageget">pipe_storage::get</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template&lt;pipe_access Access = pipe_access::read&gt;
pipe&lt;T, Access&gt; get() noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Constructs a read only or write only pipe from <code>pipe_storage</code> object.
One kernel can have only one pipe accessor associated with one <code>pipe_storage</code> object.</p>
</div>
</div>
<div class="sect4">
<h5 id="make_pipe">make_pipe</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template&lt;pipe_access Access = pipe_access::read, class T, size_t N&gt;
pipe&lt;T, Access&gt; make_pipe(const pipe_storage&lt;T, N&gt;&amp; ps);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Constructs a read only or write only pipe from <code>pipe_storage</code> object.
One kernel can have only one pipe accessor associated with one <code>pipe_storage</code> object.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="operations-ordering-using-reservations">3.12.7. Operations ordering using reservations</h4>
<div class="paragraph">
<p>The <code>reservation::read</code> and <code>reservation::write</code> pipe functions can be used to read from or write to a packet index.
These functions can be used to read from or write to a packet index one or multiple times.
If a packet index that is reserved for writing is not written to using the <code>reservation::write</code> method, the contents of that packet in the pipe are undefined.
<code>reservation::commit</code> remove the entries reserved for reading from the pipe.
<code>reservation::commit</code> ensures that the entries reserved for writing are all added in-order as one contiguous set of packets to the pipe.</p>
</div>
<div class="paragraph">
<p>There can only be <code>CL_DEVICE_PIPE_MAX_ACTIVE_RESERVATIONS</code> (refer to <em>Table 4.3</em>) reservations active (i.e. reservations that have been reserved but not committed) per work-item or work-group for a pipe in a kernel executing on a device.</p>
</div>
<div class="paragraph">
<p>Work-item based reservations made by a work-item are ordered in the pipe as they are ordered in the program.
Reservations made by different work-items that belong to the same work-group can be ordered using the work-group barrier function.
The order of work-item based reservations that belong to different work-groups is implementation defined.</p>
</div>
<div class="paragraph">
<p>Work-group based reservations made by a work-group are ordered in the pipe as they are ordered in the program.
The order of work-group based reservations by different work-groups is implementation defined.</p>
</div>
</div>
<div class="sect3">
<h4 id="requirements">3.12.8. Requirements</h4>
<div class="sect4">
<h5 id="data">Data</h5>
<div class="paragraph">
<p>Template parameter <code>T</code> in <code>pipe</code> and <code>pipe_storage</code> class template denotes the data type stored in pipe.
The type <code>T</code> must be a POD type i.e. satisfy <code>is_pod&lt;T&gt;::value == true</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="work-group-operations">Work-group operations</h5>
<div class="paragraph">
<p>All work-group specific functions must be encountered by all work items in a work-group executing the kernel with the same argument values, otherwise the behavior is undefined.</p>
</div>
</div>
<div class="sect4">
<h5 id="sub-group-operations">Sub-group operations</h5>
<div class="paragraph">
<p>All sub-group specific functions must be encountered by all work items in a sub-group executing the kernel with the same argument values, otherwise the behavior is undefined.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="restrictions-5">3.12.9. Restrictions</h4>
<div class="sect4">
<h5 id="pipe">pipe</h5>
<div class="ulist">
<ul>
<li>
<p>The <code>pipe</code> type cannot be used with variables declared inside a class or union field, a pointer type, an array, global variables declared at program scope or the return type of a function.</p>
</li>
<li>
<p>A kernel cannot read from and write to the same pipe object.</p>
</li>
<li>
<p>The <code>pipe</code> type cannot be used with the <code>global</code>, <code>local</code>, <code>priv</code> and <code>constant</code> address space storage classes (see the <a href="#explicit-address-space-storage-classes"><em>Explicit address space storage classes</em></a> section).</p>
</li>
<li>
<p>The value returned by applying the <code>sizeof</code> operator to the <code>pipe</code> type is implementation-defined.</p>
</li>
</ul>
</div>
</div>
<div class="sect4">
<h5 id="reservation">reservation</h5>
<div class="ulist">
<ul>
<li>
<p>The <code>reservation</code> type cannot be used with variables declared inside a class or union field, a pointer type, an array, global variables declared at program scope or the return type of a function.</p>
</li>
<li>
<p>The <code>reservation</code> type cannot be used with the <code>global</code>, <code>local</code>, <code>priv</code> and <code>constant</code> address space storage classes (see the <a href="#explicit-address-space-storage-classes"><em>Explicit address space storage classes</em></a> section).</p>
</li>
<li>
<p>The value returned by applying the <code>sizeof</code> operator to the <code>reservation</code> type is implementation-defined.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The following behavior is undefined:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>A kernel calls <code>reservation::read</code> or <code>reservation::write</code> with a valid reservation but with an index that is not a value from <code>0 &#8230;&#8203; num_packets - 1</code> specified to the corresponding call to <code>pipe::reserve</code>, <code>pipe::work_group_reserve</code> or <code>pipe::sub_group_reserve</code>.</p>
</li>
<li>
<p>A kernel calls <code>reservation::read</code> or <code>reservation::write</code> with a reservation that has already been committed (i.e. a <code>reservation::commit</code> with this reservation has already been called).</p>
</li>
<li>
<p>The contents of the reserved data packets in the pipe are undefined if the kernel does not call <code>reservation::write</code> for all entries that were reserved by the corresponding call to <code>pipe::reserve</code>, <code>pipe::work_group_reserve</code> or <code>pipe::sub_group_reserve</code>.</p>
</li>
<li>
<p>Calls to <code>reservation::read</code> and <code>reservation::commit</code> or <code>reservation::write</code> and <code>reservation::commit</code> for a given reservation must be called by the same kernel that made the reservation using <code>pipe::reserve</code>, <code>pipe::work_group_reserve</code> or <code>pipe::sub_group_reserve</code>. The reservation cannot be passed to another kernel including child kernels.</p>
</li>
</ul>
</div>
</div>
<div class="sect4">
<h5 id="pipe_storage">pipe_storage</h5>
<div class="ulist">
<ul>
<li>
<p>Variables of type <code>pipe_storage</code> can only be declared at program scope or with the static specifier.</p>
</li>
<li>
<p>The <code>pipe_storage</code> type cannot be used as a class or union field, a pointer type, an array or the return type of a function.</p>
</li>
<li>
<p>The <code>pipe_storage</code> type cannot be used with the <code>global</code>, <code>local</code>, <code>priv</code> and <code>constant</code> address space storage classes (see the <a href="#explicit-address-space-storage-classes"><em>Explicit address space storage classes</em></a> section).</p>
</li>
<li>
<p>The value returned by applying the <code>sizeof</code> operator to the <code>pipe_storage</code> type is implementation-defined.</p>
</li>
<li>
<p>Variables of type <code>pipe</code> created from <code>pipe_storage</code> can only be declared inside a kernel function at kernel scope.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The following behavior is undefined:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>A kernel cannot contain more than one <code>pipe</code> accessor made from one <code>pipe_storage</code> object. Otherwise behavior is undefined.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect3">
<h4 id="examples-6">3.12.10. Examples</h4>
<div class="sect4">
<h5 id="example-1-6">Example 1</h5>
<div class="paragraph">
<p>Example of reading from a pipe object.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#include &lt;opencl_pipe&gt;
using namespace cl;

kernel void reader(pipe&lt;int&gt; p) {
    int val;
    if(p.read(val)) {
        //...
    }
}</code></pre>
</div>
</div>
</div>
<div class="sect4">
<h5 id="example-2-4">Example 2</h5>
<div class="paragraph">
<p>Example of writing to a pipe object.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#include &lt;opencl_pipe&gt;
using namespace cl;

kernel void writer(pipe&lt;int, pipe_access::write&gt; p) {
    //...
    int val;
    if(p.write(val)) {
        //...
    }
}</code></pre>
</div>
</div>
</div>
<div class="sect4">
<h5 id="example-3-3">Example 3</h5>
<div class="paragraph">
<p>Example of reading from a pipe object using reservations.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#include &lt;opencl_pipe&gt;
using namespace cl;

kernel void reader(pipe&lt;int, pipe_access::read&gt; p) {
    int val;
    auto rid = p.reserve(1);
    if(rid.read(0, val)) {
        //...
    }
    rid.commit();
}</code></pre>
</div>
</div>
</div>
<div class="sect4">
<h5 id="example-4-2">Example 4</h5>
<div class="paragraph">
<p>Example of using a pipe_storage object and how to create the pipe objects/accessors from it.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#include &lt;opencl_pipe&gt;

cl::pipe_storage &lt;int, 100&gt; myProgramPipe0;

kernel void producer() {
    cl::pipe&lt;int, cl::pipe_access::write&gt; p =
   myProgramPipe0.get&lt;cl::pipe_access::write&gt;();
    //...
    p.write(...);
}

kernel void consumer() {
    cl::pipe&lt;int, cl::pipe_access::read&gt; p =
  myProgramPipe0.get&lt;cl::pipe_access::read&gt;();
    if(p.read(...)) {
        //...
    }
}</code></pre>
</div>
</div>
</div>
<div class="sect4">
<h5 id="example-5-2">Example 5</h5>
<div class="paragraph">
<p>Example of using more than one pipe_storage object.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#include &lt;opencl_pipe&gt;
using namespace cl;

pipe_storage&lt;int2, 20&gt; myProgramPipe2;
pipe_storage&lt;float, 40&gt; myProgramPipe3;

kernel void input() {
    auto p = make_pipe&lt;pipe_access::write&gt;(myProgramPipe2);
    //...
    p.write(...);
}

kernel void processor() {
    auto p_in = make_pipe&lt;pipe_access::read&gt;(myProgramPipe2);
    auto p_out = make_pipe&lt;pipe_access::write&gt;(myProgramPipe3);
    ...
    if(p_in.read(...)) {
        //...
    }
    p_out.write(...);
}

kernel void output() {
    auto p = make_pipe&lt;pipe_access::read&gt;(myProgramPipe3);
    if(p.read(...)) {
        //...
    }
}</code></pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="device-enqueue-library">3.13. Device Enqueue Library</h3>
<div class="paragraph">
<p>OpenCL C++ device enqueue functionality allows a kernel to enqueue the same device, without host interaction.
A kernel may enqueue code represented by lambda syntax, and control execution order with event dependencies including user events and markers.
<code>device_queue</code> follows all the rules for marker types as specified in the <a href="#marker-types"><em>Marker Types</em></a> section.</p>
</div>
<div class="sect3">
<h4 id="queue-host-type">3.13.1. Queue Host Type</h4>
<div class="paragraph">
<p>The below table describes the OpenCL queue data type and the corresponding data type available to the application:</p>
</div>
<table class="tableblock frame-all grid-all spread">
<caption class="title">Table 17. Host queue type</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Type in OpenCL C++</strong></th>
<th class="tableblock halign-left valign-top"><strong>API type for application</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>cl::device_queue</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>cl_queue</code></p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect3">
<h4 id="header-opencl_device_queue-synopsis">3.13.2. Header &lt;opencl_device_queue&gt; Synopsis</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>namespace cl
{
enum class enqueue_status;
enum class enqueue_policy;
enum class event_status;
enum class event_profiling_info;

struct event
{
    event();
    event(const event&amp;) = default;
    event(event&amp;) = default;

    event&amp; operator=(const event&amp;) = default;
    event&amp; operator=(event&amp;&amp;) = default;

    bool is_valid() const noexcept;
    void retain() noexcept;
    void release() noexcept;

    explicit operator bool() const noexcept;

    void set_status(event_status status) noexcept;
    void profiling_info(event_profiling_info name,
                        global_ptr&lt;long&gt; value) noexcept;
};

event make_user_event();

struct ndrange
{
    explicit ndrange(size_t global_work_size) noexcept;
    ndrange(size_t global_work_size,
            size_t local_work_size) noexcept;
    ndrange(size_t global_work_offset,
            size_t global_work_size,
            size_t local_work_size) noexcept;

    template &lt;size_t N&gt;
    ndrange(const size_t (&amp;global_work_size)[N]) noexcept;
    template &lt;size_t N&gt;
    ndrange(const size_t (&amp;global_work_size)[N],
            const size_t (&amp;local_work_size)[N]) noexcept;
    template &lt;size_t N&gt;
    ndrange(const size_t (&amp;global_work_offset)[N],
            const size_t (&amp;global_work_size)[N],
            const size_t (&amp;local_work_size)[N]) noexcept;
};

struct device_queue: marker_type
{
    device_queue() noexcept = delete;
    device_queue(const device_queue&amp;) = default;
    device_queue(device_queue&amp;&amp;) = default;

    device_queue&amp; operator=(const device_queue&amp;) = delete;
    device_queue&amp; operator=(device_queue&amp;&amp;) = delete;
    device_queue* operator&amp;() = delete;

    template &lt;class Fun, class... Args&gt;
    enqueue_status enqueue_kernel(enqueue_policy flag,
                                  const ndrange &amp;ndrange,
                                  Fun fun,
                                  Args... args) noexcept;

    template &lt;class Fun, class... Args&gt;
    enqueue_status enqueue_kernel(enqueue_policy flag,
                                  uint num_events_in_wait_list,
                                  const event *event_wait_list,
                                  event *event_ret,
                                  const ndrange &amp;ndrange,
                                  Fun fun,
                                  Args... args) noexcept;

    enqueue_status enqueue_marker(uint num_events_in_wait_list,
                                  const event *event_wait_list,
                                  event *event_ret) noexcept;
};

device_queue get_default_device_queue();

template &lt;class Fun, class... Args&gt;
uint get_kernel_work_group_size(Fun fun, Args... args);
template &lt;class Fun, class... Args&gt;
uint get_kernel_preferred_work_group_size_multiple(Fun fun,
                                                   Args... args);
template &lt;class Fun, class... Args&gt;
uint get_kernel_sub_group_count_for_ndrange(const ndrange &amp;ndrange,
                                            Fun fun,
                                            Args... args);
template &lt;class Fun, class... Args&gt;
uint get_kernel_max_sub_group_size_for_ndrange(const ndrange &amp;ndrange,
                                               Fun fun,
                                               Args... args);
template &lt;class Fun, class... Args&gt;
uint get_kernel_local_size_for_sub_group_count(uint num_sub_groups,
                                               Fun fun,
                                               Args... args);
template &lt;class Fun, class... Args&gt;
uint get_kernel_max_num_sub_groups(Fun fun, Args... args);

}</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="device_queue-class-methods">3.13.3. device_queue class methods</h4>
<div class="paragraph">
<p><code>device_queue</code> object represents work queue of the device.
Device queue meets all requirements of the marker types as in the <a href="#marker-types"><em>Marker Types</em></a> section.</p>
</div>
<div class="sect4">
<h5 id="enqueue_kernel">device_queue::enqueue_kernel</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template &lt;class Fun, class... Args&gt;
enqueue_status enqueue_kernel(enqueue_policy policy,
                              const ndrange &amp;ndrange,
                              Fun fun,
                              Args... args) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>This method allows to enqueue functor or lambda <code>fun</code> on the device with specified <code>policy</code> over the specified <code>ndrange</code>.</p>
</div>
<div class="paragraph">
<p><code>args</code> are the arguments that will be passed to <code>fun</code> when kernel will be enqueued with the exception for <code>local_ptr</code> parameters.
For local pointers user must supply the size of local memory that will be allocated using <code>local_ptr&lt;T&gt;::size_type\{num elements}</code>.
Please see examples how to use <code>enqueue_kernel</code> are in the <a href="#examples-7"><em>Examples</em></a> section.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template &lt;class Fun, class... Args&gt;
enqueue_status enqueue_kernel(enqueue_policy policy,
                              uint num_events_in_wait_list,
                              const event *event_wait_list,
                              event *event_ret,
                              const ndrange &amp;ndrange,
                              Fun fun,
                              Args... args) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>This method enqueues functor or lambda <code>fun</code> in the same way as the overload above with the exception for the passed event list.
If an event is returned, <code>enqueue_kernel</code> performs an implicit retain on the returned event.</p>
</div>
</div>
<div class="sect4">
<h5 id="enqueue_marker">device_queue::enqueue_marker</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>enqueue_status enqueue_marker(uint num_events_in_wait_list,
                              const event *event_wait_list,
                              event *event_ret) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>This method enqueues a marker to device queue.
The marker command waits for a list of events specified by <code>event_wait_list</code> to complete before the marker completes.
<code>event_ret</code> must not be <code>nullptr</code> as otherwise this is a no-op.</p>
</div>
<div class="paragraph">
<p>If an event is returned, <code>enqueue_marker</code> performs an implicit retain on the returned event.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="event-class-methods">3.13.4. event class methods</h4>
<div class="sect4">
<h5 id="is_valid">event::is_valid</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>bool is_valid() const noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns <code>true</code> if event object is a valid event.
Otherwise returns <code>false</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="operator-bool">event::operator bool</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>explicit operator bool() const noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns <code>true</code> if event object is a valid event.
Otherwise returns <code>false</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="retain">event::retain</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>void retain() noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Increments the event reference count.
Event must be an event returned by <code>enqueue_kernel</code> or <code>enqueue_marker</code> or a user event.</p>
</div>
</div>
<div class="sect4">
<h5 id="release">event::release</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>void release() noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Decrements the event reference count.
The event object is deleted once the event reference count is zero, the specific command identified by this event has completed (or terminated) and there are no commands in any device command queue that require a wait for this event to complete.
Event must be an event returned by <code>enqueue_kernel</code>, <code>enqueue_marker</code> or a user event.</p>
</div>
</div>
<div class="sect4">
<h5 id="set_status">event::set_status</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>void set_status(event_status status) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Sets the execution status of a user event.
Event must be a user event.
<code>status</code> can be either <code>event_status::complete</code> or <code>event_status::error</code> value indicating an error.</p>
</div>
</div>
<div class="sect4">
<h5 id="profiling_info">event::profiling_info</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>void profiling_info(event_profiling_info name,
                    global_ptr&lt;long&gt; value) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Captures the profiling information for functions that are enqueued as commands.
The specific function being referred to is: <code>enqueue_kernel</code>.
These enqueued commands are identified by unique event objects.
The profiling information will be available in <code>value</code> once the command identified by event has completed.
Event must be an event returned by <code>enqueue_kernel</code>.</p>
</div>
<div class="paragraph">
<p><code>name</code> identifies which profiling information is to be queried and can be:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>event_profiling_info::exec_time</code></p>
<div class="paragraph">
<p><code>value</code> is a pointer to two 64-bit values.</p>
</div>
<div class="paragraph">
<p>The first 64-bit value describes the elapsed time <code>CL_PROFILING_COMMAND_END - CL_PROFILING_COMMAND_START</code> for the command identified by event in nanoseconds.</p>
</div>
<div class="paragraph">
<p>The second 64-bit value describes the elapsed time <code>CL_PROFILING_COMMAND_COMPLETE - CL_PROFILING_COMMAND_START</code> for the command identified by event in nanoseconds.</p>
</div>
</li>
</ul>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
<code>profiling_info</code> when called multiple times for the same event is undefined.
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="sect3">
<h4 id="other-operations">3.13.5. Other operations</h4>
<div class="sect4">
<h5 id="get_default_device_queue">get_default_device_queue</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>device_queue get_default_device_queue();</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns the default device queue.
If a default device queue has not been created, <code>device_queue::is_valid()</code> will return <code>false</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="make_user_event">make_user_event</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>event make_user_event();</code></pre>
</div>
</div>
<div class="paragraph">
<p>Creates a user event.
Returns the user event.
The execution status of the user event created is set to <code>event_status::submitted</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="get_kernel_work_group_size">get_kernel_work_group_size</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template &lt;class Fun, class... Args&gt;
uint get_kernel_work_group_size(Fun fun, Args... args);</code></pre>
</div>
</div>
<div class="paragraph">
<p>This provides a mechanism to query the maximum work-group size that can be used to execute a functor on the current device.</p>
</div>
<div class="paragraph">
<p><code>fun</code> specifies the functor representing the kernel code that would be enqueued.</p>
</div>
<div class="paragraph">
<p><code>args</code> are the arguments that will be passed to <code>fun</code> when kernel will be enqueued with the exception for <code>local_ptr</code> parameters.
For local pointers user must supply the size of local memory that will be allocated.</p>
</div>
</div>
<div class="sect4">
<h5 id="get_kernel_preferred_work_group_size_multiple">get_kernel_preferred_work_group_size_multiple</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template &lt;class Fun, class... Args&gt;
uint get_kernel_preferred_work_group_size_multiple(Fun fun,
                                                   Args... args);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns the preferred multiple of work-group size for launch.
This is a performance hint.
Specifying a work-group size that is not a multiple of the value returned by this query as the value of the local work size argument to enqueue will not fail to enqueue the functor for execution unless the work-group size specified is larger than the device maximum.</p>
</div>
<div class="paragraph">
<p><code>fun</code> specifies the functor representing the kernel code that would be enqueued.</p>
</div>
<div class="paragraph">
<p><code>args</code> are the arguments that will be passed to <code>fun</code> when kernel will be enqueued with the exception for <code>local_ptr</code> parameters.
For local pointers user must supply the size of local memory that will be allocated.</p>
</div>
</div>
<div class="sect4">
<h5 id="get_kernel_sub_group_count_for_ndrange">get_kernel_sub_group_count_for_ndrange</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template &lt;class Fun, class... Args&gt;
uint get_kernel_sub_group_count_for_ndrange(const ndrange &amp;ndrange,
                                            Fun fun,
                                            Args... args);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns the number of sub-groups in each work-group of the dispatch (except for the last in cases where the global size does not divide cleanly into work-groups) given the combination of the passed ndrange and functor.</p>
</div>
<div class="paragraph">
<p><code>fun</code> specifies the functor representing the kernel code that would be enqueued.</p>
</div>
<div class="paragraph">
<p><code>args</code> are the arguments that will be passed to <code>fun</code> when kernel will be enqueued with the exception for <code>local_ptr</code> parameters.
For local pointers user must supply the size of local memory that will be allocated.</p>
</div>
</div>
<div class="sect4">
<h5 id="get_kernel_max_sub_group_size_for_ndrange">get_kernel_max_sub_group_size_for_ndrange</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template &lt;class Fun, class... Args&gt;
uint get_kernel_max_sub_group_size_for_ndrange(const ndrange &amp;ndrange,
                                               Fun fun,
                                               Args... args);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns the maximum sub-group size for a functor.</p>
</div>
<div class="paragraph">
<p><code>fun</code> specifies the functor representing the kernel code that would be enqueued.</p>
</div>
<div class="paragraph">
<p><code>args</code> are the arguments that will be passed to <code>fun</code> when kernel will be enqueued with the exception for <code>local_ptr</code> parameters.
For local pointers user must supply the size of local memory that will be allocated.</p>
</div>
</div>
<div class="sect4">
<h5 id="get_kernel_local_size_for_sub_group_count">get_kernel_local_size_for_sub_group_count</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template &lt;class Fun, class... Args&gt;
uint get_kernel_local_size_for_sub_group_count(uint num_sub_groups,
                                               Fun fun,
                                               Args... args);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns a valid local size that would produce the requested number of sub-groups such that each sub-group is complete with no partial sub-groups.</p>
</div>
<div class="paragraph">
<p><code>fun</code> specifies the functor representing the kernel code that would be enqueued.</p>
</div>
<div class="paragraph">
<p><code>args</code> are the arguments that will be passed to <code>fun</code> when kernel will be enqueued with the exception for <code>local_ptr</code> parameters.
For local pointers user must supply the size of local memory that will be allocated.</p>
</div>
</div>
<div class="sect4">
<h5 id="get_kernel_max_num_sub_groups">get_kernel_max_num_sub_groups</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template &lt;class Fun, class... Args&gt;
uint get_kernel_max_num_sub_groups(Fun fun, Args... args);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Provides a mechanism to query the maximum number of sub-groups that can be used to execute the passed functor on the current device.</p>
</div>
<div class="paragraph">
<p><code>fun</code> specifies the functor representing the kernel code that would be enqueued.</p>
</div>
<div class="paragraph">
<p><code>args</code> are the arguments that will be passed to <code>fun</code> when kernel will be enqueued with the exception for <code>local_ptr</code> parameters.
For local pointers user must supply the size of local memory that will be allocated.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="ndrange">3.13.6. ndrange</h4>
<div class="paragraph">
<p><code>ndrange</code> type is used to represent the size of the enqueued workload.
The dimension of the workload ranges from 1 to 3.
User can specify global work size, local work size and global work offset.
Unspecified parameters are defaulted to 0.</p>
</div>
</div>
<div class="sect3">
<h4 id="enqueue-policy">3.13.7. Enqueue policy</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>enum class enqueue_policy
{
    no_wait,
    wait_kernel,
    wait_work_group
};</code></pre>
</div>
</div>
<div class="paragraph">
<p>Enqueue policy enumerable is used to specify launch policy of enqueued kernel.
It is defined as follows:</p>
</div>
<table class="tableblock frame-all grid-all spread">
<caption class="title">Table 18. Enqueue policy</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Policy</strong></th>
<th class="tableblock halign-left valign-top"><strong>Description</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>no_wait</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Indicates that the enqueued kernels do not need to wait for the parent kernel to finish execution before they begin execution.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>wait_kernel</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Indicates that all work-items of the parent kernel must finish executing and all immediate <a id="ftnref14"></a> <a href="#ftn14">[14]</a> side effects committed before the enqueued child kernel may begin execution.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>wait_work_group</code> <a id="ftnref15"></a> <a href="#ftn15">[15]</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Indicates that the enqueued kernels wait only for the work-group that enqueued the kernels to finish before they begin execution.</p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect3">
<h4 id="enqueue-status">3.13.8. Enqueue status</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>enum class enqueue_status
{
    success,
    failure,
    invalid_queue,
    invalid_ndrange,
    invalid_event_wait_list,
    queue_full,
    invalid_arg_size,
    event_allocation_failure,
    out_of_resources
};</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>enqueue_kernel</code> and <code>enqueue_marker</code> methods return <code>enqueue_status::success</code> if the command is enqueued successfully and return <code>enqueue_status::failure</code> otherwise.
If the <em>-g</em> compile option is specified in compiler options passed to <code>clBuildProgram</code>, the other errors may be returned instead of <code>enqueue_status::failure</code> to indicate why <code>enqueue_kernel</code> or <code>enqueue_marker</code> failed.
Enqueue status is defined as follows:</p>
</div>
<table class="tableblock frame-all grid-all spread">
<caption class="title">Table 19. Enqueue status</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Status</strong></th>
<th class="tableblock halign-left valign-top"><strong>Description</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>success</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>failure</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>invalid_queue</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>queue</em> is not a valid device queue.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>invalid_ndrange</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">If <code>ndrange</code> is not a valid ND-range descriptor or if the program was compiled with <em>-cl-uniform-work-group-size</em> and the local work size is specified in <code>ndrange</code> but the global work size specified in <code>ndrange</code> is not a multiple of the local work size.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>invalid_event_wait_list</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">If <code>event_wait_list</code> is <code>nullptr</code> and <code>num_events_in_wait_list</code> &gt; 0, or if <code>event_wait_list</code> is not <code>nullptr</code> and <code>num_events_in_wait_list</code> is 0, or if <code>event</code> objects in <code>event_wait_list</code> are not valid events.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>queue_full</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">If <em>queue</em> is full.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>invalid_arg_size</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">If size of local memory arguments is 0.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>event_allocation_failure</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">If <code>event_ret</code> is not <code>nullptr</code> and an event could not be allocated.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>out_of_resources</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">If there is a failure to queue the kernel in <em>queue</em> because of insufficient resources needed to execute the kernel.</p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect3">
<h4 id="event-status">3.13.9. Event status</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>enum class event_status
{
    submitted,
    complete,
    error,
};</code></pre>
</div>
</div>
<div class="paragraph">
<p>Event status enumerable is used to set a user event status.
It is defined as follows:</p>
</div>
<table class="tableblock frame-all grid-all spread">
<caption class="title">Table 20. Event status</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Status</strong></th>
<th class="tableblock halign-left valign-top"><strong>Description</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>submitted</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Initial status of a user event</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>complete</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>error</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Status indicating an error</p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect3">
<h4 id="determining-when-a-parent-kernel-has-finished-execution">3.13.10. Determining when a parent kernel has finished execution</h4>
<div class="paragraph">
<p>A parent kernel&#8217;s execution status is considered to be complete when it and all its child kernels have finished execution.
The execution status of a parent kernel will be <code>event_status::complete</code> if this kernel and all its child kernels finish execution successfully.
The execution status of the kernel will be <code>event_status::error</code> if it or any of its child kernels encounter an error, or are abnormally terminated.</p>
</div>
<div class="paragraph">
<p>For example, assume that the host enqueues a kernel <code>k</code> for execution on a device.
Kernel <code>k</code> when executing on the device enqueues kernels <code>A</code> and <code>B</code> to a device queue(s).
The <code>enqueue_kernel</code> call to enqueue kernel <code>B</code> specifies the event associated with kernel <code>A</code> in the <code>event_wait_list</code> argument i.e. wait for kernel <code>A</code> to finish execution before kernel <code>B</code> can begin execution.
Let&#8217;s assume kernel <code>A</code> enqueues kernels <code>X</code>, <code>Y</code> and <code>Z</code>.
Kernel <code>A</code> is considered to have finished execution i.e. its execution status is <code>event_status::complete</code> only after <code>A</code> and the kernels <code>A</code> enqueued (and any kernels these enqueued kernels enqueue and so on) have finished execution.</p>
</div>
</div>
<div class="sect3">
<h4 id="event-profiling-info">3.13.11. Event profiling info</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>enum class event_profiling_info
{
    exec_time,
};</code></pre>
</div>
</div>
<div class="paragraph">
<p>Event profiling info enumerable is used to determine the outcome of <code>event::profiling_info</code> function.
It is defined as follows:</p>
</div>
<table class="tableblock frame-all grid-all spread">
<caption class="title">Table 21. Event profiling info</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Status</strong></th>
<th class="tableblock halign-left valign-top"><strong>Description</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exec_time</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Identifies profiling information to be queried.
  If specified, the two 64-bit values are returned
</p><p class="tableblock">  The first 64-bit value describes the elapsed time: <code>CL_PROFILING_COMMAND_END - CL_PROFILING_COMMAND_START</code> for the command identified by event in nanoseconds.
</p><p class="tableblock">  The second 64-bit value describes the elapsed time <code>CL_PROFILING_COMMAND_COMPLETE - CL_PROFILING_COMMAND_START</code> for the command identified by event in nanoseconds.</p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect3">
<h4 id="requirements-1">3.13.12. Requirements</h4>
<div class="paragraph">
<p>Functor and lambda objects passed to <code>enqueue_kernel</code> method of device queue has to follow specific restrictions:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>It has to be trivially copyable.</p>
</li>
<li>
<p>It has to be trivially copy constructible.</p>
</li>
<li>
<p>It has to be trivially destructible.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Code enqueuing function objects that do not meet this criteria is ill-formed.</p>
</div>
<div class="sect4">
<h5 id="pointers-references-and-marker-types">Pointers, references and marker types</h5>
<div class="paragraph">
<p>Functors that are enqueued cannot have any reference and pointer fields, nor can have fields of marker types.
If object containing such fields is enqueued the behavior is undefined.</p>
</div>
<div class="paragraph">
<p>The same restrictions apply to <em>capture-list</em> variables in lambda.</p>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
This requirements are caused by the fact that kernel may be enqueued after parent kernel terminated all pointers and references will be invalidated by then.
</td>
</tr>
</table>
</div>
</div>
<div class="sect4">
<h5 id="events">Events</h5>
<div class="paragraph">
<p>Events can be used to identify commands enqueued to a command-queue from the host.
These events created by the OpenCL runtime can only be used on the host i.e. as events passed in <code>event_wait_list</code> argument to various <code>clEnqueue</code>* APIs or runtime APIs that take events as arguments such as <code>clRetainEvent</code>, <code>clReleaseEvent</code>, <code>clGetEventProfilingInfo</code>.</p>
</div>
<div class="paragraph">
<p>Similarly, events can be used to identify commands enqueued to a device queue (from a kernel).
These event objects cannot be passed to the host or used by OpenCL runtime APIs such as the <code>clEnqueue</code>* APIs or runtime APIs that take event arguments.</p>
</div>
<div class="paragraph">
<p><code>clRetainEvent</code> and <code>clReleaseEvent</code> will return <code>CL_INVALID_OPERATION</code> if event specified is an event that refers to any kernel enqueued to a device queue using <code>enqueue_kernel</code> or <code>enqueue_marker</code> or is a user event created by <code>make_user_event</code>.</p>
</div>
<div class="paragraph">
<p>Similarly, <code>clSetUserEventStatus</code> can only be used to set the execution status of events created using <code>clCreateUserEvent</code>.
User events created on the device can be set using <code>event::set_status</code> method.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="restrictions-6">3.13.13. Restrictions</h4>
<div class="ulist">
<ul>
<li>
<p>The <code>device_queue</code> type cannot be used with variables declared inside a class or union field, a pointer type, an array, global variables declared at program scope or the return type of a function.</p>
</li>
<li>
<p>The <code>event</code> type cannot be used with variables declared inside a class or union field, global variables declared at program scope or the return type of a function.</p>
</li>
<li>
<p>The <code>event</code> and <code>device_queue</code> type cannot be used with the <code>global</code>, <code>local</code>, <code>priv</code> and <code>constant</code> address space storage classes (see the <a href="#explicit-address-space-storage-classes"><em>Explicit address space storage classes</em></a> section).</p>
</li>
<li>
<p>The values returned by applying the <code>sizeof</code> operator to the <code>device_queue</code> and <code>event</code> types is implementation-defined.</p>
</li>
</ul>
</div>
</div>
<div class="sect3">
<h4 id="examples-7">3.13.14. Examples</h4>
<div class="sect4">
<h5 id="example-1-7">Example 1</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#include &lt;opencl_device_queue&gt;
#include &lt;opencl_work_item&gt;
using namespace cl;

kernel void foo() {
    auto q = get_default_device_queue();
    q.enqueue_kernel(enqueue_policy::no_wait,
                     ndrange( 1 ),
                     [](){ uint tid = get_global_id(0); } );
}</code></pre>
</div>
</div>
</div>
<div class="sect4">
<h5 id="example-2-5">Example 2</h5>
<div class="paragraph">
<p>Example of using the explicit local pointer class with <code>enqueue_kernel</code> method.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#include &lt;opencl_device_queue&gt;
#include &lt;opencl_work_item&gt;
using namespace cl;

kernel void foo(device_queue q) {
    auto lambda = [](local_ptr&lt;ushort16&gt; p) { uint tid = get_global_id(0); };
    q.enqueue_kernel(enqueue_policy::no_wait,
                     ndrange{1},
                     lambda,
                     local_ptr&lt;ushort16&gt;::size_type{1});
}</code></pre>
</div>
</div>
</div>
<div class="sect4">
<h5 id="example-3-4">Example 3</h5>
<div class="paragraph">
<p>Example of enqueuing a functor to a <code>device_queue</code> object.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#include &lt;opencl_device_queue&gt;
#include &lt;opencl_work_item&gt;
using namespace cl;

struct Lambda {
    template &lt;typename T&gt;
    void operator ()(T t) const { uint tid = get_global_id(0); }
};

kernel void foo(device_queue q) {
    auto lambda = Lambda{};
    q.enqueue_kernel(enqueue_policy::no_wait,
                     ndrange{1},
                     lambda,
                     local_ptr&lt;ushort16&gt;::size_type{1});
}</code></pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="work-item-functions">3.14. Work-Item Functions</h3>
<div class="paragraph">
<p>This section describes the library of work-item functions that can be used to query the number of dimensions, the global and local work size specified to <code>clEnqueueNDRangeKernel</code>, and the global and local identifier of each work-item when this kernel is being executed on a device.</p>
</div>
<div class="sect3">
<h4 id="header-opencl_work_item-synopsis">3.14.1. Header &lt;opencl_work_item&gt; Synopsis</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>namespace cl
{
uint get_work_dim();
size_t get_global_size(uint dimindx);
size_t get_global_id(uint dimindx);
size_t get_local_size(uint dimindx);
size_t get_enqueued_local_size(uint dimindx);
size_t get_local_id(uint dimindx);
size_t get_num_groups(uint dimindx);
size_t get_group_id(uint dimindx);
size_t get_global_offset(uint dimindx);
size_t get_global_linear_id();
size_t get_local_linear_id();
size_t get_sub_group_size();
size_t get_max_sub_group_size();
size_t get_num_sub_groups();
size_t get_enqueued_num_sub_groups();
size_t get_sub_group_id();
size_t get_sub_group_local_id();

}</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="work-item-operations">3.14.2. Work item operations</h4>
<div class="sect4">
<h5 id="get_work_dim">get_work_dim</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>uint get_work_dim()</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns the number of dimensions in use.
This is the value given to the <code>work_dim</code> argument specified in <code>clEnqueueNDRangeKernel</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="get_global_size">get_global_size</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>size_t get_global_size(uint dimindx)</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns the number of global work-items specified for dimension identified by <code>dimindx</code>.
This value is given by the <code>global_work_size</code> argument to <code>clEnqueueNDRangeKernel</code>.
Valid values of <code>dimindx</code> are <code>0</code> to <code>get_work_dim()-1</code>.
For other values of <code>dimindx</code>, <code>get_global_size()</code> returns <code>1</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="get_global_id">get_global_id</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>size_t get_global_id(uint dimindx)</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns the unique global work-item ID value for dimension identified by <code>dimindx</code>.
The global work-item ID specifies the work-item ID based on the number of global work-items specified to execute the kernel.
Valid values of <code>dimindx</code> are <code>0</code> to <code>get_work_dim()-1</code>.
For other values of <code>dimindx</code>, <code>get_global_id()</code> returns <code>0</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="get_local_size">get_local_size</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>size_t get_local_size(uint dimindx)</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns the number of local work-items specified in dimension identified by <code>dimindx</code>.
This value is at most the value given by the <code>local_work_size</code> argument to <code>clEnqueueNDRangeKernel</code> if <code>local_work_size</code> is not <code>NULL</code>; otherwise the OpenCL implementation chooses an appropriate <code>local_work_size</code> value which is returned by this function.
If the kernel is executed with a non-uniform work-group size <a id="ftnref19"></a> <a href="#ftn19">[19]</a>, calls to this built-in from some work-groups may return different values than calls to this built-in from other work-groups.</p>
</div>
<div class="paragraph">
<p>Valid values of <code>dimindx</code> are <code>0</code> to <code>get_work_dim()-1</code>.
For other values of <code>dimindx</code>, <code>get_local_size()</code> returns <code>1</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="get_enqueued_local_size">get_enqueued_local_size</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>size_t get_enqueued_local_size(uint dimindx)</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns the same value as that returned by <code>get_local_size(dimindx)</code> if the kernel is executed with a uniform work-group size.</p>
</div>
<div class="paragraph">
<p>If the kernel is executed with a non-uniform work-group size, returns the number of local work-items in each of the work-groups that make up the uniform region of the global range in the dimension identified by <code>dimindx</code>.
If the <code>local_work_size</code> argument to <code>clEnqueueNDRangeKernel</code> is not <code>NULL</code>, this value will match the value specified in <code>local_work_size[dimindx]</code>.
If <code>local_work_size</code> is <code>NULL</code>, this value will match the local size that the implementation determined would be most efficient at implementing the uniform region of the global range.</p>
</div>
<div class="paragraph">
<p>Valid values of <code>dimindx</code> are <code>0</code> to <code>get_work_dim()-1</code>.
For other values of <code>dimindx</code>, <code>get_enqueued_local_size()</code> returns <code>1</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="get_local_id">get_local_id</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>size_t get_local_id(uint dimindx)</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns the unique local work-item ID i.e. a work-item within a specific work-group for dimension identified by <code>dimindx</code>.
Valid values of <code>dimindx</code> are <code>0</code> to <code>get_work_dim()-1</code>.
For other values of <code>dimindx</code>, <code>get_local_id()</code> returns <code>0</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="get_num_groups">get_num_groups</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>size_t get_num_groups(uint dimindx)</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns the number of work-groups that will execute a kernel for dimension identified by <code>dimindx</code>.
Valid values of <code>dimindx</code> are <code>0</code> to <code>get_work_dim()-1</code>.
For other values of <code>dimindx</code>, <code>get_num_groups()</code> returns <code>1</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="get_group_id">get_group_id</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>size_t get_group_id(uint dimindx)</code></pre>
</div>
</div>
<div class="paragraph">
<p><code>get_group_id</code> returns the work-group ID which is a number from <code>0 &#8230;&#8203; get_num_groups(dimindx)-1</code>.
Valid values of <code>dimindx</code> are <code>0</code> to <code>get_work_dim()-1</code>.
For other values, <code>get_group_id()</code> returns <code>0</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="get_global_offset">get_global_offset</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>size_t get_global_offset(uint dimindx)</code></pre>
</div>
</div>
<div class="paragraph">
<p><code>get_global_offset</code> returns the offset values specified in <code>global_work_offset</code> argument to <code>clEnqueueNDRangeKernel</code>.
Valid values of <code>dimindx</code> are <code>0</code> to <code>get_work_dim()-1</code>.
For other values, <code>get_global_offset()</code> returns <code>0</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="get_global_linear_id">get_global_linear_id</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>size_t get_global_linear_id()</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns the work-items 1-dimensional global ID.</p>
</div>
<div class="paragraph">
<p>For 1D work-groups, it is computed as:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>get_global_id(0) - get_global_offset(0)</code></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>For 2D work-groups, it is computed as:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>( get_global_id(1) - get_global_offset(1)) * get_global_size(0) + (get_global_id(0) - get_global_offset(0) )</code></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>For 3D work-groups, it is computed as:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>( (get_global_id(2) - get_global_offset(2) ) * get_global_size(1) * get_global_size(0)) + ( (get_global_id(1) - get_global_offset(1) ) * get_global_size (0) ) + ( get_global_id(0) - get_global_offset(0) )</code>.</p>
</li>
</ul>
</div>
</div>
<div class="sect4">
<h5 id="get_local_linear_id">get_local_linear_id</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>size_t get_local_linear_id()</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns the work-items 1-dimensional local ID.</p>
</div>
<div class="paragraph">
<p>For 1D work-groups, it is the same value as:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>get_local_id(0)</code></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>For 2D work-groups, it is computed as:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>get_local_id(1) * get_local_size(0) + get_local_id(0)</code></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>For 3D work-groups, it is computed as:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>(get_local_id(2) * get_local_size(1) * get_local_size(0)) + (get_local_id(1) * get_local_size(0)) + get_local_id(0)</code></p>
</li>
</ul>
</div>
</div>
<div class="sect4">
<h5 id="get_sub_group_size">get_sub_group_size</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>size_t get_sub_group_size()</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns the number of work-items in the sub-group.
This value is no more than the maximum sub-group size and is implementation-defined based on a combination of the compiled kernel and the dispatch dimensions.
This will be a constant value for the lifetime of the sub-group.</p>
</div>
</div>
<div class="sect4">
<h5 id="get_max_sub_group_size">get_max_sub_group_size</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>size_t get_max_sub_group_size()</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns the maximum size of a sub-group within the dispatch.
This value will be invariant for a given set of dispatch dimensions and a kernel object compiled for a given device.</p>
</div>
</div>
<div class="sect4">
<h5 id="get_num_sub_groups">get_num_sub_groups</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>size_t get_num_sub_groups()</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns the number of sub-groups that the current work-group is divided into.</p>
</div>
<div class="paragraph">
<p>This number will be constant for the duration of a work-group&#8217;s execution.
If the kernel is executed with a non-uniform work-group size <a href="#ftn17">[17]</a> values for any dimension, calls to this built-in from some work-groups may return different values than calls to this built-in from other work-groups.</p>
</div>
</div>
<div class="sect4">
<h5 id="get_enqueued_num_sub_groups">get_enqueued_num_sub_groups</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>size_t get_enqueued_num_sub_groups()</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns the same value as that returned by <code>get_num_sub_groups()</code> if the kernel is executed with a uniform work-group size.</p>
</div>
<div class="paragraph">
<p>If the kernel is executed with a non-uniform work-group size, returns the number of sub groups in each of the work groups that make up the uniform region of the global range.</p>
</div>
</div>
<div class="sect4">
<h5 id="get_sub_group_id">get_sub_group_id</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>size_t get_sub_group_id()</code></pre>
</div>
</div>
<div class="paragraph">
<p><code>get_sub_group_id()</code> returns the sub-group ID which is a number from <code>0 &#8230;&#8203; get_num_sub_groups()-1</code>.</p>
</div>
<div class="paragraph">
<p>For <code>clEnqueueTask</code>, this returns <code>0</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="get_sub_group_local_id">get_sub_group_local_id</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>size_t get_sub_group_local_id()</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns the unique work-item ID within the current sub-group.
The mapping from <code>get_local_id(dimindx)</code> to <code>get_sub_group_local_id()</code> will be invariant for the lifetime of the work-group.</p>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="work-group-functions">3.15. Work-group Functions</h3>
<div class="paragraph">
<p>The OpenCL C++ library implements the following functions that operate on a work-group level.
These built-in functions must be encountered by all work-items in a work-group executing the kernel.</p>
</div>
<div class="paragraph">
<p>Here <code>gentype</code> matches: <code>int</code>, <code>uint</code>, <code>long</code>, <code>ulong</code>, <code>float</code>, <code>half</code> <a id="ftnref4"></a> <a href="#ftn4">[4]</a> or <code>double</code> <a id="ftnref18"></a> <a href="#ftn18">[18]</a>.</p>
</div>
<div class="sect3">
<h4 id="header-opencl_work_group-synopsis">3.15.1. Header &lt;opencl_work_group&gt; Synopsis</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>namespace cl
{
enum class work_group_op { add, min, max };

//logical operations
bool work_group_all(bool predicate);
bool work_group_any(bool predicate);
bool sub_group_all(bool predicate);
bool sub_group_any(bool predicate);

//broadcast functions
int work_group_broadcast(int a, size_t local_id);
uint work_group_broadcast(uint a, size_t local_id);
long work_group_broadcast(long a, size_t local_id);
ulong work_group_broadcast(ulong a, size_t local_id);
float work_group_broadcast(float a, size_t local_id);
#ifdef cl_khr_fp16
half work_group_broadcast(half a, size_t local_id);
#endif
#ifdef cl_khr_fp64
double work_group_broadcast(double a, size_t local_id);
#endif

int work_group_broadcast(int a, size_t local_id_x, size_t local_id_y);
uint work_group_broadcast(uint a, size_t local_id_x, size_t local_id_y);
long work_group_broadcast(long a, size_t local_id_x, size_t local_id_y);
ulong work_group_broadcast(ulong a, size_t local_id_x, size_t local_id_y);
float work_group_broadcast(float a, size_t local_id_x, size_t local_id_y);
#ifdef cl_khr_fp16
half work_group_broadcast(half a, size_t local_id_x, size_t local_id_y);
#endif
#ifdef cl_khr_fp64
double work_group_broadcast(double a, size_t local_id_x, size_t local_id_y);
#endif

int work_group_broadcast(int a, size_t local_id_x, size_t local_id_y,
                         size_t local_id_z);
uint work_group_broadcast(uint a, size_t local_id_x, size_t local_id_y,
                          size_t local_id_z);
long work_group_broadcast(long a, size_t local_id_x, size_t local_id_y,
                          size_t local_id_z);
ulong work_group_broadcast(ulong a, size_t local_id_x, size_t local_id_y,
                           size_t local_id_z);
float work_group_broadcast(float a, size_t local_id_x, size_t local_id_y,
                           size_t local_id_z);
#ifdef cl_khr_fp16
half work_group_broadcast(half a, size_t local_id_x, size_t local_id_y,
                          size_t local_id_z);
#endif
#ifdef cl_khr_fp64
double work_group_broadcast(double a, size_t local_id_x, size_t local_id_y,
                            size_t local_id_z);
#endif

int sub_group_broadcast(int a, size_t sub_group_local_id);
uint sub_group_broadcast(uint a, size_t sub_group_local_id);
long sub_group_broadcast(long a, size_t sub_group_local_id);
ulong sub_group_broadcast(ulong a, size_t sub_group_local_id);
float sub_group_broadcast(float a, size_t sub_group_local_id);
#ifdef cl_khr_fp16
half sub_group_broadcast(half a, size_t sub_group_local_id);
#endif
#ifdef cl_khr_fp64
double sub_group_broadcast(double a, size_t sub_group_local_id);
#endif

//numeric operations
template &lt;work_group_op op&gt; int work_group_reduce(int x);
template &lt;work_group_op op&gt; uint work_group_reduce(uint x);
template &lt;work_group_op op&gt; long work_group_reduce(long x);
template &lt;work_group_op op&gt; ulong work_group_reduce(ulong x);
template &lt;work_group_op op&gt; float work_group_reduce(float x);
#ifdef cl_khr_fp16
template &lt;work_group_op op&gt; half work_group_reduce(half x);
#endif
#ifdef cl_khr_fp64
template &lt;work_group_op op&gt; double work_group_reduce(double x);
#endif

template &lt;work_group_op op&gt; int work_group_scan_exclusive(int x);
template &lt;work_group_op op&gt; uint work_group_scan_exclusive(uint x);
template &lt;work_group_op op&gt; long work_group_scan_exclusive(long x);
template &lt;work_group_op op&gt; ulong work_group_scan_exclusive(ulong x);
template &lt;work_group_op op&gt; float work_group_scan_exclusive(float x);
#ifdef cl_khr_fp16
template &lt;work_group_op op&gt; half work_group_scan_exclusive(half x);
#endif
#ifdef cl_khr_fp64
template &lt;work_group_op op&gt; double work_group_scan_exclusive(double x);
#endif

template &lt;work_group_op op&gt; int work_group_scan_inclusive(int x);
template &lt;work_group_op op&gt; uint work_group_scan_inclusive(uint x);
template &lt;work_group_op op&gt; long work_group_scan_inclusive(long x);
template &lt;work_group_op op&gt; ulong work_group_scan_inclusive(ulong x);
template &lt;work_group_op op&gt; float work_group_scan_inclusive(float x);
#ifdef cl_khr_fp16
template &lt;work_group_op op&gt; half work_group_scan_inclusive(half x);
#endif
#ifdef cl_khr_fp64
template &lt;work_group_op op&gt; double work_group_scan_inclusive(double x);
#endif

template &lt;work_group_op op&gt; int sub_group_reduce(int x);
template &lt;work_group_op op&gt; uint sub_group_reduce(uint x);
template &lt;work_group_op op&gt; long sub_group_reduce(long x);
template &lt;work_group_op op&gt; ulong sub_group_reduce(ulong x);
template &lt;work_group_op op&gt; float sub_group_reduce(float x);
#ifdef cl_khr_fp16
template &lt;work_group_op op&gt; half sub_group_reduce(half x);
#endif
#ifdef cl_khr_fp64
template &lt;work_group_op op&gt; double sub_group_reduce(double x);
#endif

template &lt;work_group_op op&gt; int sub_group_scan_exclusive(int x);
template &lt;work_group_op op&gt; uint sub_group_scan_exclusive(uint x);
template &lt;work_group_op op&gt; long sub_group_scan_exclusive(long x);
template &lt;work_group_op op&gt; ulong sub_group_scan_exclusive(ulong x);
template &lt;work_group_op op&gt; float sub_group_scan_exclusive(float x);
#ifdef cl_khr_fp16
template &lt;work_group_op op&gt; half sub_group_scan_exclusive(half x);
#endif
#ifdef cl_khr_fp64
template &lt;work_group_op op&gt; double sub_group_scan_exclusive(double x);
#endif

template &lt;work_group_op op&gt; int sub_group_scan_inclusive(int x);
template &lt;work_group_op op&gt; uint sub_group_scan_inclusive(uint x);
template &lt;work_group_op op&gt; long sub_group_scan_inclusive(long x);
template &lt;work_group_op op&gt; ulong sub_group_scan_inclusive(ulong x);
template &lt;work_group_op op&gt; float sub_group_scan_inclusive(float x);
#ifdef cl_khr_fp16
template &lt;work_group_op op&gt; half sub_group_scan_inclusive(half x);
#endif
#ifdef cl_khr_fp64
template &lt;work_group_op op&gt; double sub_group_scan_inclusive(double x);
#endif

}</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="logical-operations">3.15.2. Logical operations</h4>
<div class="sect4">
<h5 id="work_group_all">work_group_all</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>bool work_group_all(bool predicate)</code></pre>
</div>
</div>
<div class="paragraph">
<p>Evaluates <code>predicate</code> for all work-items in the work-group and returns <code>true</code> if <code>predicate</code> evaluates to <code>true</code> for all work-items in the work-group.</p>
</div>
</div>
<div class="sect4">
<h5 id="work_group_any">work_group_any</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>bool work_group_any(bool predicate)</code></pre>
</div>
</div>
<div class="paragraph">
<p>Evaluates <code>predicate</code> for all work-items in the work-group and returns <code>true</code> if <code>predicate</code> evaluates to <code>true</code> for any work-items in the work-group.</p>
</div>
</div>
<div class="sect4">
<h5 id="sub_group_all">sub_group_all</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>bool sub_group_all(bool predicate)</code></pre>
</div>
</div>
<div class="paragraph">
<p>Evaluates <code>predicate</code> for all work-items in the sub-group and returns <code>true</code> value if <code>predicate</code> evaluates to <code>true</code> for all work-items in the sub-group.</p>
</div>
</div>
<div class="sect4">
<h5 id="sub_group_any">sub_group_any</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>bool sub_group_any(bool predicate)</code></pre>
</div>
</div>
<div class="paragraph">
<p>Evaluates <code>predicate</code> for all work-items in the sub-group and returns <code>true</code> value if <code>predicate</code> evaluates to <code>true</code> for any work-items in the sub-group.</p>
</div>
<div class="paragraph">
<p>Example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#include &lt;opencl_work_item&gt;
#include &lt;opencl_work_group&gt;
using namespace cl;

kernel void foo(int *p) {
    //...
    bool check = work_group_all(p[get_local_id(0)] == 0);
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>In this case <code>work_group_all</code> would return <code>true</code> for all work-items in work-group if all elements in <code>p</code>, in range specified by work-group&#8217;s size, are <code>true</code>.</p>
</div>
<div class="paragraph">
<p>One could achieve similar result by using analogical call to <code>work_group_any</code>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#include &lt;opencl_work_item&gt;
#include &lt;opencl_work_group&gt;
using namespace cl;

kernel void foo(int *p) {
    //...
    bool check = !work_group_any(p[get_local_id(0)] != 0);
}</code></pre>
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="broadcast-functions">3.15.3. Broadcast functions</h4>
<div class="sect4">
<h5 id="work_group_broadcast">work_group_broadcast</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype work_group_broadcast(gentype a,
                             size_t local_id);

gentype work_group_broadcast(gentype a,
                             size_t local_id_x,
                             size_t local_id_y);

gentype work_group_broadcast(gentype a,
                                            size_t local_id_x,
                                            size_t local_id_y,
                                            size_t local_id_z);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Broadcast the value of <code>a</code> for work-item identified by <code>local_id</code> to all work-items in the work-group.</p>
</div>
<div class="paragraph">
<p><code>local_id</code> must be the same value for all work-items in the work-group.</p>
</div>
</div>
<div class="sect4">
<h5 id="sub_group_broadcast">sub_group_broadcast</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype sub_group_broadcast(gentype a,
                                           size_t sub_group_local_id);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Broadcast the value of <code>a</code> for work-item identified by <code>sub_group_local_id</code> (value returned by <code>get_sub_group_local_id</code>) to all work-items in the sub-group.</p>
</div>
<div class="paragraph">
<p><code>sub_group_local_id</code> must be the same value for all work-items in the sub-group.</p>
</div>
<div class="paragraph">
<p>Example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#include &lt;opencl_work_item&gt;
#include &lt;opencl_work_group&gt;
using namespace cl;

kernel void foo(int *p) {
   //...
   int broadcasted_value = work_group_broadcast(p[get_local_id(0)], 0);
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>Here we are broadcasting value passed to <code>work_group_broadcast</code> function by work-item with <code>local_id = 0</code> (which is <code>p[0]</code>).
This function will return <code>p[0]</code> for all callers.
Please note that <code>local_id</code> must be the same for all work-items, therefore something like this is invalid:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#include &lt;opencl_work_item&gt;
#include &lt;opencl_work_group&gt;
using namespace cl;

kernel void foo(int *p) {
    //...
    int broadcasted_value =
      work_group_broadcast(p[get_local_id(0)], get_local_id(0));
                    //invalid: second argument has different value
                    // for different work-items in work-group
}</code></pre>
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="numeric-operations">3.15.4. Numeric operations</h4>
<div class="sect4">
<h5 id="work_group_reduce">work_group_reduce</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template &lt;work_group_op op&gt;
gentype work_group_reduce(gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Return result of reduction operation specified by <code>op</code> for all values of <code>x</code> specified by work-items in a work-group.</p>
</div>
</div>
<div class="sect4">
<h5 id="work_group_scan_exclusive">work_group_scan_exclusive</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template &lt;work_group_op op&gt;
gentype work_group_scan_exclusive(gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Do an exclusive scan operation specified by <code>op</code> of all values specified by work-items in the work-group.
The scan results are returned for each work-item.</p>
</div>
<div class="paragraph">
<p>The scan order is defined by increasing 1D linear global ID within the work-group.</p>
</div>
</div>
<div class="sect4">
<h5 id="work_group_scan_inclusive">work_group_scan_inclusive</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template &lt;work_group_op op&gt;
gentype work_group_scan_inclusive(gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Do an inclusive scan operation specified by <code>op</code> of all values specified by work-items in the work-group.
The scan results are returned for each work-item.</p>
</div>
<div class="paragraph">
<p>The scan order is defined by increasing 1D linear global ID within the work-group.</p>
</div>
</div>
<div class="sect4">
<h5 id="sub_group_reduce">sub_group_reduce</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template &lt;work_group_op op&gt;
gentype sub_group_reduce(gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Return result of reduction operation specified by <code>op</code> for all values of <code>x</code> specified by work-items in a sub-group.</p>
</div>
</div>
<div class="sect4">
<h5 id="sub_group_scan_exclusive">sub_group_scan_exclusive</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template &lt;work_group_op op&gt;
gentype sub_group_scan_exclusive(gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Do an exclusive scan operation specified by <code>op</code> of all values specified by work-items in a sub-group.
The scan results are returned for each work-item.</p>
</div>
<div class="paragraph">
<p>The scan order is defined by increasing 1D linear global ID within the sub-group.</p>
</div>
</div>
<div class="sect4">
<h5 id="sub_group_scan_inclusive">sub_group_scan_inclusive</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template &lt;work_group_op op&gt;
gentype sub_group_scan_inclusive(gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Do an inclusive scan operation specified by <code>op</code> of all values specified by work-items in a sub-group.
The scan results are returned for each work-item.</p>
</div>
<div class="paragraph">
<p>The scan order is defined by increasing 1D linear global ID within the sub-group.</p>
</div>
<div class="paragraph">
<p>The inclusive scan operation takes a binary operator <code>op</code> with an identity I and n (where n is the size of the work-group) elements [a<sub>0</sub>, a<sub>1</sub>, &#8230;&#8203; a<sub>n-1</sub>] and returns [a<sub>0</sub>, (a<sub>0</sub> <em>op</em> a<sub>1</sub>), &#8230;&#8203; (a<sub>0</sub> <em>op</em> a<sub>1</sub> <em>op</em> &#8230;&#8203; <em>op</em> a<sub>n-1</sub>)].
If <code>op</code> is <code>work_group_op::add</code>, the identity I is 0.
If <code>op</code> is <code>work_group_op::min</code>, the identity I is <code>INT_MAX</code>, <code>UINT_MAX</code>, <code>LONG_MAX</code>, <code>ULONG_MAX</code>, for <code>int</code>, <code>uint</code>, <code>long</code>, <code>ulong</code> types and is <code>+INF</code> for floating-point types.
Similarly if <code>op</code> is <code>work_group_op::max</code>, the identity I is <code>INT_MIN</code>, <code>0</code>, <code>LONG_MIN</code>, <code>0</code> and <code>-INF</code>.</p>
</div>
<div class="paragraph">
<p>Consider the following example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#include &lt;opencl_work_item&gt;
#include &lt;opencl_work_group&gt;
using namespace cl;

void foo(int *p)
{
    ...
    int prefix_sum_val =
               work_group_scan_inclusive&lt;work_group_op::add&gt;(
    p[get_local_id(0)]);
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>For the example above, let&#8217;s assume that the work-group size is 8 and p points to the following elements [3 1 7 0 4 1 6 3].
Work-item 0 calls <code>work_group_scan_inclusive&lt;work_group_op::add&gt;</code> with 3 and returns 3.
Work-item 1 calls <code>work_group_scan_inclusive&lt;work_group_op::add&gt;</code> with 1 and returns 4.
The full set of values returned by <code>work_group_scan_inclusive&lt;work_group_op::add&gt;</code> for work-items 0 &#8230;&#8203; 7 is [3 4 11 11 15 16 22 25].</p>
</div>
<div class="paragraph">
<p>The exclusive scan operation takes a binary associative operator <code>op</code> with an identity I and n (where n is the size of the work-group) elements [a<sub>0</sub>, a<sub>1</sub>, &#8230;&#8203; a<sub>n-1</sub>] and returns [I, a<sub>0</sub>, (a<sub>0</sub> <em>op</em> a<sub>1</sub>), &#8230;&#8203; (a<sub>0</sub> <em>op</em> a<sub>1</sub> <em>op</em> &#8230;&#8203; <em>op</em> a<sub>n-2</sub>)].
For the example above, the exclusive scan add operation on the ordered set [3 1 7 0 4 1 6 3] would return [0 3 4 11 11 15 16 22].</p>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
The order of floating-point operations is not guaranteed for the <code>work_group_reduce&lt;op&gt;</code>, <code>work_group_scan_inclusive&lt;op&gt;</code> and <code>work_group_scan_exclusive&lt;op&gt;</code> built-in functions that operate on <code>half</code>, <code>float</code> and <code>double</code> data types.
The order of these floating-point operations is also non-deterministic for a given work-group.
</td>
</tr>
</table>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="synchronization-functions">3.16. Synchronization Functions</h3>
<div class="paragraph">
<p>The OpenCL C++ library implements the following synchronization functions.</p>
</div>
<div class="sect3">
<h4 id="header-opencl_synchronization-synopsis">3.16.1. Header &lt;opencl_synchronization&gt; Synopsis</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>namespace cl
{
void work_group_barrier(mem_fence flags,
                        memory_scope scope = memory_scope_work_group);
void sub_group_barrier(mem_fence flags,
                       memory_scope scope = memory_scope_work_group);

#ifdef cl_khr_subgroup_named_barrier
struct work_group_named_barrier: marker_type
{
    work_group_named_barrier(uint sub_group_count);
    work_group_named_barrier() = delete;
    work_group_named_barrier(const work_group_named_barrier&amp;) = default;
    work_group_named_barrier(work_group_named_barrier&amp;&amp;) = default;

    work_group_named_barrier&amp; operator=(
                                      const work_group_named_barrier&amp;) = delete;
    work_group_named_barrier&amp; operator=(work_group_named_barrier&amp;&amp;) = delete;
    work_group_named_barrier* operator&amp;() = delete;

    void wait(mem_fence flags,
              memory_scope scope = memory_scope_work_group) const noexcept;
};

#endif

}</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="synchronization-operations">3.16.2. Synchronization operations</h4>
<div class="sect4">
<h5 id="work_group_barrier">work_group_barrier</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>void work_group_barrier(mem_fence flags,
                        memory_scope scope  = memory_scope_work_group);</code></pre>
</div>
</div>
<div class="paragraph">
<p>All work-items in a work-group executing the kernel on a processor must execute this function before any are allowed to continue execution beyond the <code>work_group_barrier</code>.
This function must be encountered by all work-items in a work-group executing the kernel.
These rules apply to ND-ranges implemented with uniform and non-uniform work-groups.</p>
</div>
<div class="paragraph">
<p>If <code>work_group_barrier</code> is inside a conditional statement, then all work-items must enter the conditional if any work-item enters the conditional statement and executes the <code>work_group_barrier</code>.</p>
</div>
<div class="paragraph">
<p>If <code>work_group_barrier</code> is inside a loop, all work-items must execute the <code>work_group_barrier</code> for each iteration of the loop before any are allowed to continue execution beyond the <code>work_group_barrier</code>.</p>
</div>
<div class="paragraph">
<p>The <code>scope</code> argument specifies whether the memory accesses of work-items in the work-group to memory address space(s) identified by <code>flags</code> become visible to all work-items in the work-group, the device or all SVM devices.</p>
</div>
<div class="paragraph">
<p>The <code>work_group_barrier</code> function can also be used to specify which memory operations i.e. to global memory, local memory or images become visible to the appropriate memory scope identified by <code>scope</code>.
The <code>flags</code> argument specifies the memory address spaces.
This is a bitfield and can be set to 0 or a combination of the following values ORed together.
When these flags are ORed together the <code>work_group_barrier</code> acts as a combined barrier for all address spaces specified by the flags ordering memory accesses both within and across the specified address spaces.</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>mem_fence::local</code> - The <code>work_group_barrier</code> function will ensure that all local memory accesses become visible to all work-items in the work-group.
Note that the value of <code>scope</code> is ignored as the memory scope is always <code>memory_scope_work_group</code>.</p>
</li>
<li>
<p><code>mem_fence::global</code> - The <code>work_group_barrier</code> function ensure that all global memory accesses become visible to the appropriate scope as given by <code>scope</code>.</p>
</li>
<li>
<p><code>mem_fence::image</code> - The <code>work_group_barrier</code> function will ensure that all image memory accesses become visible to the appropriate scope as given by <code>scope</code>.
The value of <code>scope</code> must be <code>memory_scope_work_group</code> or <code>memory_scope_device</code>.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p><code>mem_fence::image</code> cannot be used together with <code>mem_fence::local</code> or <code>mem_fence::global</code>.</p>
</div>
<div class="paragraph">
<p>The values of <code>flags</code> and <code>scope</code> must be the same for all work-items in the work-group.</p>
</div>
</div>
<div class="sect4">
<h5 id="sub_group_barrier">sub_group_barrier</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>void sub_group_barrier(mem_fence flags,
                       memory_scope scope = memory_scope_work_group);</code></pre>
</div>
</div>
<div class="paragraph">
<p>All work-items in a sub-group executing the kernel on a processor must execute this function before any are allowed to continue execution beyond the sub-group barrier.
This function must be encountered by all work-items in a sub-group executing the kernel.
These rules apply to ND-ranges implemented with uniform and non-uniform work-groups.</p>
</div>
<div class="paragraph">
<p>If <code>sub_group_barrier</code> is inside a conditional statement, then all work-items within the sub-group must enter the conditional if any work-item in the sub-group enters the conditional statement and executes the <code>sub_group_barrier</code>.</p>
</div>
<div class="paragraph">
<p>If <code>sub_group_barrier</code> is inside a loop, all work-items within the sub-group must execute the <code>sub_group_barrier</code> for each iteration of the loop before any are allowed to continue execution beyond the <code>sub_group_barrier</code>.</p>
</div>
<div class="paragraph">
<p>The <code>sub_group_barrier</code> function also queues a memory fence (reads and writes) to ensure correct ordering of memory operations to local or global memory.</p>
</div>
<div class="paragraph">
<p>The <code>flags</code> argument specifies the memory address spaces.
This is a bitfield and can be set to 0 or a combination of the following values ORed together.
When these flags are ORed together the <code>sub_group_barrier</code> acts as a combined barrier for all address spaces specified by the flags ordering memory accesses both within and across the specified address spaces.</p>
</div>
<div class="paragraph">
<p><code>mem_fence::local</code> - The <code>sub_group_barrier</code> function will ensure that all local memory accesses become visible to all work-items in the sub-group.
Note that the value of <code>scope</code> is ignored as the memory scope is always <code>memory_scope_work_group</code>.</p>
</div>
<div class="paragraph">
<p><code>mem_fence::global</code> - The <code>sub_group_barrier</code> function ensure that all global memory accesses become visible to the appropriate scope as given by <code>scope</code>.</p>
</div>
<div class="paragraph">
<p><code>mem_fence::image</code> - The <code>sub_group_barrier</code> function will ensure that all image memory accesses become visible to the appropriate scope as given by <code>scope</code>.
The value of <code>scope</code> must be <code>memory_scope_work_group</code> or <code>memory_scope_device</code>.</p>
</div>
<div class="paragraph">
<p><code>mem_fence::image</code> cannot be used together with <code>mem_fence::local</code> or <code>mem_fence::global</code>.</p>
</div>
<div class="paragraph">
<p>The values of <code>flags</code> and <code>scope</code> must be the same for all work-items in the sub-group.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="named-barriers">3.16.3. Named barriers</h4>
<div class="paragraph">
<p>This section describes the optional <strong>cl_khr_sub_group_named_barrier</strong> extension which exposes the ability to perform barrier synchronization on flexible portions of an execution domain.</p>
</div>
<div class="paragraph">
<p>If the <strong>cl_khr_sub_group_named_barrier</strong> extension is supported by a device, an application that wants to use it will need to define the <code>cl_khr_sub_group_named_barrier</code> macro before including the OpenCL C++ standard library headers or using the <em>-D</em> compiler option (<a href="#preprocessor_options"><em>Preprocessor options</em></a> section).</p>
</div>
<div class="paragraph">
<p>An implementation shall support at least 8 named barriers per work-group.
The exact maximum number can be queried using <code>clGetDeviceInfo</code> with <code>CL_DEVICE_MAX_NAMED_BARRIER_COUNT_KHR</code> from the OpenCL 2.2 Extension Specification.</p>
</div>
<div class="paragraph">
<p>Restrictions:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The <code>work_group_named_barrier</code> type cannot be used with variables declared inside a class or union field, a pointer type, an array, global variables declared at program scope or the return type of a function.</p>
</li>
<li>
<p>The <code>work_group_named_barrier</code> type cannot be used with the <code>global</code>, <code>priv</code> and <code>constant</code> address space storage classes (see the the <a href="#explicit-address-space-storage-classes"><em>Explicit address space storage classes</em></a> section).</p>
</li>
<li>
<p>The value returned by applying the <code>sizeof</code> operator to the <code>work_group_named_barrier</code> type is implementation-defined.</p>
</li>
</ul>
</div>
<div class="sect4">
<h5 id="work_group_named_barrier">work_group_named_barrier</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>work_group_named_barrier(uint sub_group_count);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Initialize a new named barrier object to synchronize <code>sub_group_count</code> sub-groups in the current work-group.
Construction of a named-barrier object is a work-group operation and hence must be called uniformly across the work-group.
<code>sub_group_count</code> must be uniform across the work-group.</p>
</div>
<div class="paragraph">
<p>Named barrier objects can be reconstructed and assigned to underlying entities by the compiler, or reused.
Reused barriers will always be the same size and act in phases such that when each participating sub-group has waited the wait count is set to 0 and the entire process can start again.
The internal wait count will cycle through the range from <code>0</code> to <code>sub_group_count</code> in each phase of use of the barrier.</p>
</div>
<div class="paragraph">
<p>Named barrier objects can only be constructed within kernels, not within arbitrary functions.</p>
</div>
</div>
<div class="sect4">
<h5 id="wait">wait</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>void wait(mem_fence flags,
          memory_scope scope = memory_scope_work_group) const noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>All work-items in a sub-group executing the kernel on a processor must execute this method before any are allowed to continue execution beyond the barrier.
This function must be encountered by all work-items in a sub-group executing the kernel.</p>
</div>
<div class="paragraph">
<p>These rules apply to ND-ranges implemented with uniform and non-uniform work-groups.</p>
</div>
<div class="paragraph">
<p>If <code>wait</code> is called inside a conditional statement, then all work-items within the sub-group must enter the conditional if any work-item in the sub-group enters the conditional statement and executes the call to wait.</p>
</div>
<div class="paragraph">
<p>If <code>wait</code> is called inside a loop, all work-items within the sub-group must execute the wait operation for each iteration of the loop before any are allowed to continue execution beyond the call to wait.
The wait function causes the entire sub-group to wait until <code>sub_group_count</code> sub-groups have waited on the named barrier, where <code>sub_group_count</code> is the initialization value passed to the call to the constructor of the named barrier.
Once the wait count equals <code>sub_group_count</code>, any sub-groups waiting at the named barrier will be released and the barrier&#8217;s wait count reset to 0.</p>
</div>
<div class="paragraph">
<p>The <code>flags</code> argument specifies the memory address spaces.
This is a bitfield and can be set to 0 or a combination of the following values ORed together.
When these flags are ORed together the wait acts as a combined wait operation for all address spaces specified by the flags ordering memory accesses both within and across the specified address spaces.</p>
</div>
<div class="paragraph">
<p><code>mem_fence::local</code> - The wait function will ensure that all local memory accesses become visible to all work-items in the sub-group.
Note that the value of <code>scope</code> is ignored as the memory scope is always <code>memory_scope_work_group</code>.</p>
</div>
<div class="paragraph">
<p><code>mem_fence::global</code> - The wait function ensure that all global memory accesses become visible to the appropriate scope as given by <code>scope</code>.</p>
</div>
<div class="paragraph">
<p><code>mem_fence::image</code> cannot be specified as a flag for this function.</p>
</div>
<div class="paragraph">
<p>The values of <code>flags</code> and <code>scope</code> must be the same for all work-items in the sub-group.</p>
</div>
<div class="paragraph">
<p>The below example shows how to use the named barriers:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#include &lt;opencl_memory&gt;
#include &lt;opencl_synchronization&gt;
#include &lt;opencl_work_item&gt;

using namespace cl;

void aFunction(work_group_named_barrier &amp;b) {
    while(...) {
        // Do something in first set
        b.wait(mem_fence::global);
    }
}

kernel void aKernel() {
    // Initialize a set of named barriers
    local&lt;work_group_named_barrier&gt; a(4);
    local&lt;work_group_named_barrier&gt; b(2);
    local&lt;work_group_named_barrier&gt; c(2);

    if(get_sub_group_id() &lt; 4) {
        a.wait(mem_fence::local);
        if(get_sub_group_id() &lt; 2) {
            // Pass one of the named barriers to a function by reference
            // Barrier cannot be constructed in a non-kernel function
            aFunction(b);
        } else {
            // Do something else
            c.wait(mem_fence::local);
            // Continue
        }

        // Wait a second time on the first barrier
        a.wait(mem_fence::global);
    }


    // Back to work-group uniform control flow,
    // we can synchronize the entire group if necessary
    work_group_barrier(mem_fence::global);
}</code></pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="common-functions">3.17. Common Functions</h3>
<div class="paragraph">
<p>This section describes the OpenCL C++ library common functions that take scalar or vector arguments.
Vector versions of common functions operate component-wise.
Descriptions are always per-component.</p>
</div>
<div class="paragraph">
<p>The built-in common functions are implemented using the round to nearest even rounding mode.</p>
</div>
<div class="paragraph">
<p>Here <code>gentype</code> matches: <code>half<em>n</em></code> <a id="ftnref4"></a> <a href="#ftn4">[4]</a>, <code>float<em>n</em></code> or <code>double<em>n</em></code> <a id="ftnref18"></a> <a href="#ftn18">[18]</a></p>
</div>
<div class="sect3">
<h4 id="header-opencl_common-synopsis">3.17.1. Header &lt;opencl_common&gt; Synopsis</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>namespace cl
{
#ifdef cl_khr_fp16
halfn clamp(halfn x, halfn min, halfn max);
halfn degrees(halfn t);
halfn max(halfn x, halfn y);
halfn min(halfn x, halfn y);
halfn mix(halfn x, halfn y, halfn a);
halfn radians(halfn t);
halfn step(halfn edge, halfn x);
halfn smoothstep(halfn edge0, halfn edge1, halfn x);
halfn sign(halfn t);
#endif

#ifdef cl_khr_fp64
doublen clamp(doublen x, doublen min, doublen max);
doublen degrees(doublen t);
doublen max(doublen x, doublen y);
doublen min(doublen x, doublen y);
doublen mix(doublen x, doublen y, doublen a);
doublen radians(doublen t);
doublen step(doublen edge, doublen x);
doublen smoothstep(doublen edge0, doublen edge1, doublen x);
doublen sign(doublen t);
#endif

floatn clamp(floatn x, floatn min, floatn max);
floatn degrees(floatn t);
floatn max(floatn x, floatn y);
floatn min(floatn x, floatn y);
floatn mix(floatn x, floatn y, floatn a);
floatn radians(floatn t);
floatn step(floatn edge, floatn x);
floatn smoothstep(floatn edge0, floatn edge1, floatn x);
floatn sign(floatn t);

}</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="common-operations">3.17.2. Common operations</h4>
<div class="sect4">
<h5 id="clamp-1">clamp</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype clamp(gentype x, gentype minval, gentype maxval);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns <code>fmin(fmax(x, minval), maxval)</code>.</p>
</div>
<div class="paragraph">
<p>Results are undefined if <code>minval &gt; maxval</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="degrees">degrees</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype degrees(gentype radians);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Converts radians to degrees, i.e. <code>(180 / π) * radians</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="max-1">max</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype max(gentype x, gentype y);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns <code>y</code> if <code>x &lt; y</code>, otherwise it returns <code>x</code>.
If <code>x</code> or <code>y</code> are <code>infinite</code> or <code>NaN</code>, the return values are undefined.</p>
</div>
</div>
<div class="sect4">
<h5 id="min-1">min</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype min(gentype x, gentype y);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns <code>y</code> if <code>y &lt; x</code>, otherwise it returns <code>x</code>.
If <code>x</code> or <code>y</code> are <code>infinite</code> or <code>NaN</code>, the return values are undefined.</p>
</div>
</div>
<div class="sect4">
<h5 id="mix">mix</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype mix(gentype x, gentype y, gentype a);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns the linear blend of <code>x</code> and <code>y</code> implemented as:</p>
</div>
<div class="paragraph">
<p><code>x + (y - x) * a</code></p>
</div>
<div class="paragraph">
<p><code>a</code> must be a value in the range 0.0 &#8230;&#8203; 1.0.
If <code>a</code> is not in the range 0.0 &#8230;&#8203; 1.0, the return values are undefined.</p>
</div>
</div>
<div class="sect4">
<h5 id="radians">radians</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype radians(gentype degrees);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Converts degrees to radians, i.e. <code>(π / 180) * degrees</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="step">step</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype step(gentype edge, gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns <code>0.0</code> if <code>x &lt; edge</code>, otherwise it returns <code>1.0</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="smoothstep">smoothstep</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype smoothstep(gentype edge0, gentype edge1, gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns <code>0.0</code> if <code>x &lt;= edge0</code> and <code>1.0</code> if <code>x &gt;= edge1</code> and performs smooth Hermite interpolation between <code>0</code> and <code>1</code> when <code>edge0 &lt; x &lt; edge1</code>.
This is useful in cases where you would want a threshold function with a smooth transition.</p>
</div>
<div class="paragraph">
<p>This is equivalent to:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype t;
t = clamp((x - edge0) / (edge1 - edge0), 0, 1);
return t * t * (3 - 2 * t);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Results are undefined if <code>edge0 &gt;= edge1</code> or if <code>x</code>, <code>edge0</code> or <code>edge1</code> is a <code>NaN</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="sign">sign</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype sign(gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns <code>1.0</code> if <code>x &gt; 0</code>, <code>-0.0</code> if <code>x = -0.0</code>, <code>+0.0</code> if <code>x = 0.0</code>, or <code>-1.0</code> if <code>x &lt; 0</code>.
Returns <code>0.0</code> if <code>x</code> is a <code>NaN</code>.</p>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="geometric-functions">3.18. Geometric Functions</h3>
<div class="paragraph">
<p>This section describes the OpenCL C++ library geometric functions that take scalar or vector arguments.
Vector versions of geometric functions operate component-wise.
Descriptions are always per-component.
The geometric functions are implemented using the round to nearest even rounding mode.</p>
</div>
<div class="paragraph">
<p><code>float<em>n</em></code> is <code>float</code>, <code>float2</code>, <code>float3</code> or <code>float4</code>.</p>
</div>
<div class="paragraph">
<p><code>half<em>n</em></code> <a id="ftnref4"></a> <a href="#ftn4">[4]</a> is <code>half</code>, <code>half2</code>, <code>half3</code> or <code>half4</code>.</p>
</div>
<div class="paragraph">
<p><code>double<em>n</em></code> <a id="ftnref18"></a> <a href="#ftn18">[18]</a> is <code>double</code>, <code>double2</code>, <code>double3</code> or <code>double4</code>.</p>
</div>
<div class="sect3">
<h4 id="header-opencl_geometric-synopsis">3.18.1. Header &lt;opencl_geometric&gt; Synopsis</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>namespace cl
{
#ifdef cl_khr_fp16
half3 cross(half3 p0, half3 p1);
half4 cross(half4 p0, half4 p1);
half dot(half p0, half p1);
half dot(half2 p0, half2 p1);
half dot(half3 p0, half3 p1);
half dot(half4 p0, half4 p1);
half distance(half p0, half p1);
half distance(half2 p0, half2 p1);
half distance(half3 p0, half3 p1;
half distance(half4 p0, half4 p1);
half length(half t);
half length(half2 t);
half length(half3 t);
half length(half4 t);
half normalize(half t);
half2 normalize(half2 t);
half3 normalize(half3 t);
half4 normalize(half4 t);
#endif

#ifdef cl_khr_fp64
double3 cross(double3 p0, double3 p1);
double4 cross(double4 p0, double4 p1);
double dot(double p0, double p1);
double dot(double2 p0, double2 p1);
double dot(double3 p0, double3 p1);
double dot(double4 p0, double4 p1);
double distance(double p0, double p1);
double distance(double2 p0, double2 p1);
double distance(double3 p0, double3 p1);
double distance(double4 p0, double4 p1);
double length(double t);
double length(double2 t);
double length(double3 t);
double length(double4 t);
double normalize(double t);
double2 normalize(double2 t);
double3 normalize(double3 t);
double4 normalize(double4 t);
#endif

float3 cross(float3 p0, float3 p1);
float4 cross(float4 p0, float4 p1);
float dot(float p0, float p1);
float dot(float2 p0, float2 p1);
float dot(float3 p0, float3 p1);
float dot(float4 p0, float4 p1);
float distance(float p0, float p1);
float distance(float2 p0, float2 p1);
float distance(float3 p0, float3 p1);
float distance(float4 p0, float4 p1);
float length(float t);
float length(float2 t);
float length(float3 t);
float length(float4 t);
float normalize(float t);
float2 normalize(float2 t);
float3 normalize(float3 t);
float4 normalize(float4 t);

float fast_distance(float p0, float p1);
float fast_distance(float2 p0, float2 p1);
float fast_distance(float3 p0, float3 p1);
float fast_distance(float4 p0, float4 p1);
float fast_length(float t);
float fast_length(float2 t);
float fast_length(float3 t);
float fast_length(float4 t);
float fast_normalize(float t);
float2 fast_normalize(float2 t);
float3 fast_normalize(float3 t);
float4 fast_normalize(float4 t);

}</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="geometric-operations">3.18.2. Geometric operations</h4>
<div class="sect4">
<h5 id="cross">cross</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>float4 cross(float4 p0, float4 p1);
float3 cross(float3 p0, float3 p1);
double4 cross(double4 p0, double4 p1);
double3 cross(double3 p0, double3 p1);
half4 cross(half4 p0, half4 p1);
half3 cross(half3 p0, half3 p1);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns the cross product of <code>p0.xyz</code> and <code>p1.xyz</code>.
The <code>w</code> component of <code>float4</code> result returned will be <code>0.0</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="dot">dot</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>float dot(floatn p0, floatn p1);
double dot(doublen p0, doublen p1);
half dot(halfn p0, halfn p1);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute dot product.</p>
</div>
</div>
<div class="sect4">
<h5 id="distance">distance</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>float distance(floatn p0, floatn p1);
double distance(doublen p0, doublen p1);
half distance(halfn p0, halfn p1);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns the distance between <code>p0</code> and <code>p1</code>.</p>
</div>
<div class="paragraph">
<p>This is calculated as <code>length(p0 - p1)</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="length">length</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>float length(floatn p);
double length(doublen p);
half length(halfn p);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Return the length of vector <code>p</code>, i.e.,
\(\sqrt{p.x^2 + p.y^2 + \ldots}\)</p>
</div>
</div>
<div class="sect4">
<h5 id="normalize">normalize</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>floatn normalize(floatn p);
doublen normalize(doublen p);
halfn normalize(halfn p);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns a vector in the same direction as <code>p</code> but with a length of <code>1</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="fast_distance">fast_distance</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>float fast_distance(floatn p0, floatn p1);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns <code>fast_length(p0 - p1)</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="fast_length">fast_length</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>float fast_length(floatn p);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns the length of vector <code>p</code> computed as:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>half_sqrt(p.x^2 + p.y^2 + ...)</code></pre>
</div>
</div>
</div>
<div class="sect4">
<h5 id="fast_normalize">fast_normalize</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>floatn fast_normalize(floatn p);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns a vector in the same direction as <code>p</code> but with a length of 1.
<code>fast_normalize</code> is computed as:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>p * half_rsqrt(p.x^2 + p.y^2 + ...)</code></pre>
</div>
</div>
<div class="paragraph">
<p>The result shall be within 8192 ulps error from the infinitely precise result of</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>if (all(p == 0.0f))
 result = p;
else
 result = p / sqrt(p.x^2 + p.y^2 + ... );</code></pre>
</div>
</div>
<div class="paragraph">
<p>with the following exceptions:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>If the sum of squares is greater than <code>FLT_MAX</code> then the value of the floating-point values in the result vector are undefined.</p>
</li>
<li>
<p>If the sum of squares is less than <code>FLT_MIN</code> then the implementation may return back <code>p</code>.</p>
</li>
<li>
<p>If the device is in &#8220;denorms are flushed to zero&#8221; mode, individual operand elements with magnitude less than <code>sqrt(FLT_MIN)</code> may be flushed to zero before proceeding with the calculation.</p>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="math-functions">3.19. Math Functions</h3>
<div class="paragraph">
<p>,The list of the OpenCL C++ library math functions is described in <a href="#trigonometric-functions"><em>Trigonometric functions</em></a>, <a href="#logarithmic-functions"><em>Logarithmic functions</em></a>, <a href="#exponential-functions"><em>Exponential functions</em></a>, <a href="#floating-point-functions"><em>Floating-point functions</em></a>, <a href="#comparison-functions"><em>Comparison functions</em></a>, and <a href="#other-functions-1"><em>Other functions</em></a> sections.</p>
</div>
<div class="paragraph">
<p>The built-in math functions are categorized into the following:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>A list of built-in functions that have scalar or vector argument versions.</p>
</li>
<li>
<p>A list of built-in functions that only take scalar float arguments.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The vector versions of the math functions operate component-wise.
The description is per-component.</p>
</div>
<div class="paragraph">
<p>The built-in math functions are not affected by the prevailing rounding mode in the calling environment, and always return the same value as they would if called with the round to nearest even rounding mode.</p>
</div>
<div class="paragraph">
<p>Here <code>gentype</code> matches: <code>half<em>n</em></code> <a id="ftnref4"></a> <a href="#ftn4">[4]</a>, <code>float<em>n</em></code> or <code>double<em>n</em></code> <a id="ftnref18"></a> <a href="#ftn18">[18]</a></p>
</div>
<div class="sect3">
<h4 id="header-opencl_math-synopsis">3.19.1. Header &lt;opencl_math&gt; Synopsis</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>namespace cl
{
//trigonometric functions
gentype acos(gentype x);
gentype acosh(gentype x);
gentype acospi(gentype x);
gentype asin(gentype x);
gentype asinh(gentype x);
gentype asinpi(gentype x);
gentype atan(gentype x);
gentype atanh(gentype x);
gentype atanpi(gentype x);
gentype atan2(gentype y, gentype x);
gentype atan2pi(gentype y, gentype x);
gentype cos(gentype x);
gentype cosh(gentype x);
gentype cospi(gentype x);
gentype sin(gentype x);
gentype sincos(gentype x, gentype * cosval);
gentype sinh(gentype x);
gentype sinpi(gentype x);
gentype tan(gentype x);
gentype tanh(gentype x);
gentype tanpi(gentype x);

//power functions
gentype cbrt(gentype x);
gentype pow(gentype x, gentype y);
gentype pown(gentype x, intn y);
gentype powr(gentype x, gentype y);
gentype rootn(gentype x, intn y);
gentype rsqrt(gentype x);
gentype sqrt(gentype x);

//logarithmic functions
intn ilogb(gentype x);
gentype lgamma(gentype x);
gentype lgamma_r(gentype x, intn* signp);
gentype log(gentype x);
gentype logb(gentype x);
gentype log2(gentype x);
gentype log10(gentype x);
gentype log1p(gentype x);

//exponential functions
gentype exp(gentype x);
gentype expm1(gentype x);
gentype exp2(gentype x);
gentype exp10(gentype x);
gentype ldexp(gentype x, intn k);

//floating-point functions
gentype ceil(gentype x);
gentype copysign(gentype x, gentype y);
gentype floor(gentype x);
gentype fma(gentype a, gentype b, gentype c);
gentype fmod(gentype x, gentype y);
gentype fract(gentype x, gentype* iptr);
gentype frexp(gentype x, intn* exp);
gentype modf(gentype x, gentype* iptr);
#ifdef cl_khr_fp16
halfn nan(ushortn nancode);
#endif
floatn nan(uintn nancode);
#ifdef cl_khr_fp64
doublen nan(ulong nancode);
#endif
gentype nextafter(gentype x, gentype y);
gentype remainder(gentype x, gentype y);
gentype remquo(gentype x, gentype y, intn* quo);
gentype rint(gentype x);
gentype round(gentype x);
gentype trunc(gentype x);

//comparison functions
gentype fdim(gentype x, gentype y);
gentype fmax(gentype x, gentype y);
gentype fmin(gentype x, gentype y);
gentype maxmag(gentype x, gentype y);
gentype minmag(gentype x, gentype y);

//other functions
gentype erf(gentype x);
gentype erfc(gentype x);
gentype fabs(gentype x);
gentype hypot(gentype x, gentype y);
gentype mad(gentype a, gentype b, gentype c);
gentype tgamma(gentype x);

//native functions
namespace native
{
floatn cos(floatn x);
floatn exp(floatn x);
floatn exp2(floatn x);
floatn exp10(floatn x);
floatn log(floatn x);
floatn log2(floatn x);
floatn log10(floatn x);
floatn recip(floatn x);
floatn rsqrt(floatn x);
floatn sin(floatn x);
floatn sqrt(floatn x);
floatn tan(floatn x);
floatn divide(floatn x, floatn y);
floatn powr(floatn x, floatn y);

}

//half_math functions
namespace half_math
{
floatn cos(floatn x);
floatn exp(floatn x);
floatn exp2(floatn x);
floatn exp10(floatn x);
floatn log(floatn x);
floatn log2(floatn x);
floatn log10(floatn x);
floatn recip(floatn x);
floatn rsqrt(floatn x);
floatn sin(floatn x);
floatn sqrt(floatn x);
floatn tan(floatn x);
floatn divide(floatn x, floatn y);
floatn powr(floatn x, floatn y);

}

}</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="trigonometric-functions">3.19.2. Trigonometric functions</h4>
<div class="sect4">
<h5 id="acos">acos</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype acos(gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Arc cosine function.
Returns an angle in radians.</p>
</div>
</div>
<div class="sect4">
<h5 id="acosh">acosh</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype acosh(gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Inverse hyperbolic cosine.
Returns an angle in radians.</p>
</div>
</div>
<div class="sect4">
<h5 id="acospi">acospi</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype acospi(gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute acos(<code>x</code>) / π.</p>
</div>
</div>
<div class="sect4">
<h5 id="asin">asin</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype asin(gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Arc sine function.
Returns an angle in radians.</p>
</div>
</div>
<div class="sect4">
<h5 id="asinh">asinh</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype asinh(gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Inverse hyperbolic sine.
Returns an angle in radians.</p>
</div>
</div>
<div class="sect4">
<h5 id="asinpi">asinpi</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype asinpi(gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute asin(<code>x</code>) / π.</p>
</div>
</div>
<div class="sect4">
<h5 id="atan">atan</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype atan(gentype y_over_x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Arc tangent function.
Returns an angle in radians.</p>
</div>
</div>
<div class="sect4">
<h5 id="atan2">atan2</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype atan2(gentype y, gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Arc tangent of <code>y / x</code>.
Returns an angle in radians.</p>
</div>
</div>
<div class="sect4">
<h5 id="atanh">atanh</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype atanh(gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Hyperbolic arc tangent.
Returns an angle in radians.</p>
</div>
</div>
<div class="sect4">
<h5 id="atanpi">atanpi</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype atanpi(gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute atan(<code>x</code>) / π.</p>
</div>
</div>
<div class="sect4">
<h5 id="atan2pi">atan2pi</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype atan2pi(gentype y, gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute atan2(<code>y</code>, <code>x</code>) / π.</p>
</div>
</div>
<div class="sect4">
<h5 id="cos">cos</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype cos(gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute cosine, where <code>x</code> is an angle in radians.</p>
</div>
</div>
<div class="sect4">
<h5 id="cosh">cosh</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype cosh(gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute hyperbolic consine, where <code>x</code> is an angle in radians.</p>
</div>
</div>
<div class="sect4">
<h5 id="cospi">cospi</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype cospi(gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute cos(π x).</p>
</div>
</div>
<div class="sect4">
<h5 id="sin">sin</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype sin(gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute sine, where <code>x</code> is an angle in radians.</p>
</div>
</div>
<div class="sect4">
<h5 id="sincos">sincos</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype sincos(gentype x, gentype *cosval);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute sine and cosine of <code>x</code>.
The computed sine is the return value and computed cosine is returned in <code>cosval</code>, where <code>x</code> is an angle in radians</p>
</div>
</div>
<div class="sect4">
<h5 id="sinh">sinh</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype sinh(gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute hyperbolic sine, where <code>x</code> is an angle in radians</p>
</div>
</div>
<div class="sect4">
<h5 id="sinpi">sinpi</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype sinpi(gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute sin(π <code>x</code>).</p>
</div>
</div>
<div class="sect4">
<h5 id="tan">tan</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype tan(gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute tangent, where <code>x</code> is an angle in radians.</p>
</div>
</div>
<div class="sect4">
<h5 id="tanh">tanh</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype tanh(gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute hyperbolic tangent, where <code>x</code> is an angle in radians.</p>
</div>
</div>
<div class="sect4">
<h5 id="tanpi">tanpi</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype tanpi(gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute tan(π <code>x</code>).</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="power-functions">3.19.3. Power function</h4>
<div class="sect4">
<h5 id="cbrt">cbrt</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype cbrt(gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute cube-root.</p>
</div>
</div>
<div class="sect4">
<h5 id="pow">pow</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype pow(gentype x, gentype y);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute <code>x</code> to the power <code>y</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="pown">pown</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>floatn pown(gentype x, intn y);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute <code>x</code> to the power <code>y</code>, where <code>y</code> is an integer.</p>
</div>
</div>
<div class="sect4">
<h5 id="powr">powr</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype powr(gentype x, gentype y);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute <code>x</code> to the power <code>y</code>, where <code>x</code> is <code>&gt;= 0</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="rootn">rootn</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype powr(gentype x, gentype y);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute <code>x</code> to the power <code>1/y</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="rsqrt">rsqrt</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype rsqrt(gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute inverse square root.</p>
</div>
</div>
<div class="sect4">
<h5 id="sqrt">sqrt</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype sqrt(gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute square root.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="logarithmic-functions">3.19.4. Logarithmic functions</h4>
<div class="sect4">
<h5 id="ilogb">ilogb</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>intn ilogb(gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Return the exponent as an integer value.</p>
</div>
</div>
<div class="sect4">
<h5 id="lgamma">lgamma</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype lgamma(gentype x);

gentype lgamma_r(gentype x, intn *signp);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Log gamma function.
Returns the natural logarithm of the absolute value of the gamma function.
The sign of the gamma function is returned in the signp argument of <code>lgamma_r</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="log">log</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype log(gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute natural logarithm.</p>
</div>
</div>
<div class="sect4">
<h5 id="log2">log2</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype log2(gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute a base 2 logarithm.</p>
</div>
</div>
<div class="sect4">
<h5 id="log10">log10</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype log10(gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute a base 10 logarithm.</p>
</div>
</div>
<div class="sect4">
<h5 id="log1p">log1p</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype log1p(gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute log<sub>e</sub>(1.0 + x).</p>
</div>
</div>
<div class="sect4">
<h5 id="logb">logb</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype logb(gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute the exponent of <code>x</code>, which is the integral part of log<sub>r</sub>|<code>x</code>|.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="exponential-functions">3.19.5. Exponential functions</h4>
<div class="sect4">
<h5 id="exp">exp</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype exp(gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute the base e exponential of <code>x</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="exp2">exp2</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype exp2(gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Exponential base 2 function.</p>
</div>
</div>
<div class="sect4">
<h5 id="exp10">exp10</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype exp10(gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Exponential base 10 function.</p>
</div>
</div>
<div class="sect4">
<h5 id="expm1">expm1</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype expm1(gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute e<sup>x</sup>- 1.0.</p>
</div>
</div>
<div class="sect4">
<h5 id="ldexp">ldexp</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype ldexp(gentype x, intn k);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Multiply <code>x</code> by 2 to the power <code>k</code>.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="floating-point-functions">3.19.6. Floating-point functions</h4>
<div class="sect4">
<h5 id="ceil">ceil</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype ceil(gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Round to integral value using the round to positive infinity rounding mode.</p>
</div>
</div>
<div class="sect4">
<h5 id="copysign">copysign</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype copysign(gentype x, gentype y);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns x with its sign changed to match the sign of y.</p>
</div>
</div>
<div class="sect4">
<h5 id="floor">floor</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype floor(gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Round to integral value using the round to negative infinity rounding mode.</p>
</div>
</div>
<div class="sect4">
<h5 id="fma">fma</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype fma(gentype a, gentype b, gentype c);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns the correctly rounded floating-point representation of the sum of <code>c</code> with the infinitely precise product of <code>a</code> and <code>b</code>.
Rounding of intermediate products shall not occur.
Edge case behavior is per the IEEE 754-2008 standard.</p>
</div>
</div>
<div class="sect4">
<h5 id="fmod">fmod</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype fmod(gentype x, gentype y);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Modulus. Returns <code>x - y * trunc (x/y)</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="fract">fract</h5>
<div class="paragraph">
<p><code>fract</code> <a id="ftnref20"></a> <a href="#ftn20">[20]</a>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype fract(gentype x, gentype *iptr);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns <code>fmin(x - floor(x), 0x1.fffffep-1f)</code>.</p>
</div>
<div class="paragraph">
<p><code>floor(x)</code> is returned in <code>iptr</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="frexp">frexp</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype frexp(gentype x, intn *exp);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Extract mantissa and exponent from <code>x</code>.
For each component the mantissa returned is a half with magnitude in the interval [1/2, 1) or 0.
Each component of <code>x</code> equals mantissa returned <code>* 2<sup>exp</sup></code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="modf">modf</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype modf(gentype x, gentype *iptr);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Decompose a floating-point number.
The modf function breaks the argument <code>x</code> into integral and fractional parts, each of which has the same sign as the argument.
It stores the integral part in the object pointed to by <code>iptr</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="nan">nan</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>floatn nan(uintn nancode);
doublen nan(ulongn nancode);
halfn nan(ushortn nancode);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns a quiet <code>NaN</code>.
The nancode may be placed in the significand of the resulting <code>NaN</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="nextafter">nextafter</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype nextafter(gentype x, gentype y);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Computes the next representable single-precision floating-point value following <code>x</code> in the direction of <code>y</code>.
Thus, if <code>y</code> is less than <code>x</code>.
<code>nextafter()</code> returns the largest representable floating-point number less than <code>x</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="remainder">remainder</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype remainder(gentype x, gentype y);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute the value <code>r</code> such that <code>r = x - n*y</code>, where <code>n</code> is the integer nearest the exact value of <code>x/y</code>.
If there are two integers closest to <code>x/y</code>, <code>n</code> shall be the even one.
If <code>r</code> is zero, it is given the same sign as <code>x</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="remquo">remquo</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype remquo(gentype x, gentype y, intn *quo);</code></pre>
</div>
</div>
<div class="paragraph">
<p>The remquo function computes the value <code>r</code> such that <code>r = x - k*y</code>, where <code>k</code> is the integer nearest the exact value of <code>x/y</code>.
If there are two integers closest to <code>x/y</code>, <code>k</code> shall be the even one.
If <code>r</code> is zero, it is given the same sign as <code>x</code>.
This is the same value that is returned by the remainder function.
<code>remquo</code> also calculates at least the seven lower bits of the integral quotient <code>x/y</code>, and gives that value the same sign as <code>x/y</code>.
It stores this signed value in the object pointed to by <code>quo</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="rint">rint</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype rint(gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Round to integral value (using round to nearest even rounding mode) in floating-point format.
Refer to the <a href="#rounding-modes"><em>Rounding Modes</em></a> section for description of rounding modes.</p>
</div>
</div>
<div class="sect4">
<h5 id="round">round</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype round(gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Return the integral value nearest to <code>x</code> rounding halfway cases away from zero, regardless of the current rounding direction.</p>
</div>
</div>
<div class="sect4">
<h5 id="trunc">trunc</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype trunc(gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Round to integral value using the round to zero rounding mode.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="comparison-functions">3.19.7. Comparison functions</h4>
<div class="sect4">
<h5 id="fdim">fdim</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype fdim(gentype x, gentype y);</code></pre>
</div>
</div>
<div class="paragraph">
<p><code>x - y</code> if <code>x &gt; y</code>, <code>+0</code> if <code>x</code> is less than or equal to <code>y</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="fmax">fmax</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype fmax(gentype x, gentype y);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns <code>y</code> if <code>x &lt; y</code>, otherwise it returns <code>x</code>.
If one argument is a <code>NaN</code>, <code>fmax()</code> returns the other argument.
If both arguments are NaNs, <code>fmax()</code> returns a <code>NaN</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="fmin">fmin</h5>
<div class="paragraph">
<p><code>fmin</code> <a id="ftnref21"></a> <a href="#ftn21">[21]</a>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype fmin(gentype x, gentype y);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns <code>y</code> if <code>y &lt; x</code>, otherwise it returns <code>x</code>.
If one argument is a NaN, <code>fmin()</code> returns the other argument.
If both arguments are NaNs, <code>fmin()</code> returns a <code>NaN</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="fmod-1">fmod</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype fmod(gentype x, gentype y);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Modulus.
Returns <code>x - y * trunc (x/y)</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="maxmag">maxmag</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype maxmag(gentype x, gentype y);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns <code>x</code> if <code>|x| &gt; |y|</code>, <code>y</code> if <code>|y| &gt; |x|</code>, otherwise <code>fmax(x, y)</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="minmag">minmag</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype minmag(gentype x, gentype y);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns <code>x</code> if <code>|x| &lt; |y|</code>, <code>y</code> if <code>|y| &lt; |x|</code>, otherwise <code>fmin(x, y)</code>.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="other-functions-1">3.19.8. Other functions</h4>
<div class="sect4">
<h5 id="erfc">erfc</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype erfc(gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Complementary error function.</p>
</div>
</div>
<div class="sect4">
<h5 id="erf">erf</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype erf(gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Error function encountered in integrating the <a href="http://mathworld.wolfram.com/NormalDistribution.html">normal distribution</a>.</p>
</div>
</div>
<div class="sect4">
<h5 id="fabs">fabs</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype fabs(gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute absolute value of a floating-point number.</p>
</div>
</div>
<div class="sect4">
<h5 id="hypot">hypot</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype hypot(gentype x, gentype y);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute the value of the square root of <code>x<sup>2</sup> + y<sup>2</sup></code> without undue overflow or underflow.</p>
</div>
</div>
<div class="sect4">
<h5 id="mad">mad</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype mad(gentype a, gentype b, gentype c);</code></pre>
</div>
</div>
<div class="paragraph">
<p><code>mad</code> computes <code>a * b + c</code>.
The function may compute <code>a * b + c</code> with reduced accuracy
    in the embedded profile.  See the SPIR-V OpenCL environment specification
    for details. On some hardware the mad instruction may provide better
    performance than expanded computation of <code>a * b + c</code>. <a id="ftnref22"></a> <a href="#ftn22">[22]</a></p>
</div>
</div>
<div class="sect4">
<h5 id="tgamma">tgamma</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype tgamma(gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute the gamma function.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="native-functions">3.19.9. Native functions</h4>
<div class="paragraph">
<p>This section describes the following functions:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>A subset of functions from previous sections that are defined in the <code>cl::native_math</code> namespace.
These functions may map to one or more native device instructions and will typically have better performance compared to the corresponding functions (without the native_math namespace) described in the <a href="#trigonometric-functions"><em>Trigonometric functions</em></a>, <a href="#logarithmic-functions"><em>Logarithmic functions</em></a>, <a href="#exponential-functions"><em>Exponential functions</em></a>, <a href="#floating-point-functions"><em>Floating-point functions</em></a>, <a href="#comparison-functions"><em>Comparison functions</em></a> and <a href="#other-functions-1"><em>Other functions</em></a> sections.
The accuracy (and in some cases the input range(s)) of these functions is implementation-defined.</p>
</li>
<li>
<p>Native functions for following basic operations: divide and reciprocal.</p>
</li>
<li>
<p>Support for denormal values is implementation-defined for native functions.</p>
</li>
</ul>
</div>
<div class="sect4">
<h5 id="native_mathcos">native_math::cos</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>floatn native_math::cos(floatn x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute cosine over an implementation-defined range, where <code>x</code> is an angle in radians.
The maximum error is implementation-defined.</p>
</div>
</div>
<div class="sect4">
<h5 id="native_mathdivide">native_math::divide</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>floatn native_math::divide(floatn x, floatn y);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute <code>x / y</code> over an implementation-defined range.
The maximum error is implementation-defined.</p>
</div>
</div>
<div class="sect4">
<h5 id="native_mathexp">native_math::exp</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>floatn native_math::exp(floatn x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute the base e exponential of <code>x</code> over an implementation-defined range.
The maximum error is implementation-defined.</p>
</div>
</div>
<div class="sect4">
<h5 id="native_mathexp2">native_math::exp2</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>floatn native_math::exp2(floatn x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute the base 2 exponential of <code>x</code> over an implementation-defined range.
The maximum error is implementation-defined.</p>
</div>
</div>
<div class="sect4">
<h5 id="native_mathexp10">native_math::exp10</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>floatn native_math::exp10(floatn x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute the base 10 exponential of <code>x</code> over an implementation-defined range.
The maximum error is implementation-defined.</p>
</div>
</div>
<div class="sect4">
<h5 id="native_mathlog">native_math::log</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>floatn native_math::log(floatn x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute natural logarithm over an implementation-defined range.
The maximum error is implementation-defined.</p>
</div>
</div>
<div class="sect4">
<h5 id="native_mathlog2">native_math::log2</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>floatn native_math::log2(floatn x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute a base 2 logarithm over an implementation-defined range.
The maximum error is implementation-defined.</p>
</div>
</div>
<div class="sect4">
<h5 id="native_mathlog10">native_math::log10</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>floatn native_math::log10(floatn x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute a base 10 logarithm over an implementation-defined range.
The maximum error is implementation-defined.</p>
</div>
</div>
<div class="sect4">
<h5 id="native_mathpowr">native_math::powr</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>floatn native_math::powr(floatn x, floatn y);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute <code>x</code> to the power <code>y</code>, where <code>x</code> is <code>&gt;= 0</code>.
The range of <code>x</code> and <code>y</code> are implementation-defined.
The maximum error is implementation-defined.</p>
</div>
</div>
<div class="sect4">
<h5 id="native_mathrecip">native_math::recip</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>floatn native_math::recip(floatn x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute reciprocal over an implementation-defined range.
The maximum error is implementation-defined.</p>
</div>
</div>
<div class="sect4">
<h5 id="native_mathrsqrt">native_math::rsqrt</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>floatn native_math::rsqrt(floatn x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute inverse square root over an implementation-defined range.
The maximum error is implementation-defined.</p>
</div>
</div>
<div class="sect4">
<h5 id="native_mathsin">native_math::sin</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>floatn native_math::sin(floatn x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute sine over an implementation-defined range, where <code>x</code> is an angle in radians.
The maximum error is implementation-defined.</p>
</div>
</div>
<div class="sect4">
<h5 id="native_mathsqrt">native_math::sqrt</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>floatn native_math::sqrt(floatn x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute square root over an implementation-defined range.
The maximum error is implementation-defined.</p>
</div>
</div>
<div class="sect4">
<h5 id="native_mathtan">native_math::tan</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>floatn native_math::tan(floatn x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute tangent over an implementation-defined range, where <code>x</code> is an angle in radians.
The maximum error is implementation-defined.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="half-functions">3.19.10. Half functions</h4>
<div class="paragraph">
<p>This section describes the following functions:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>A subset of functions from previous sections that are defined in the <code>cl::half_math</code> namespace.
These functions are implemented with a minimum of 10-bits of accuracy i.e. an ULP value &lt;= 8192 ulp.</p>
</li>
<li>
<p>half functions for following basic operations: divide and reciprocal.</p>
</li>
<li>
<p>Support for denormal values is optional for half_math:: functions. The <code>half_math::</code> functions may return any result allowed by the <a href="#edge-case-behavior-in-flush-to-zero-mode"><em>Edge Case Behavior in Flush To Zero Mode</em></a> section, even when <code>-cl-denorms-are-zero</code> is not in force.</p>
</li>
</ul>
</div>
<div class="sect4">
<h5 id="half_mathcos">half_math::cos</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>floatn half_math::cos(floatn x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute cosine.
<code>x</code> is an angle in radians and it must be in the range -2<sup>16</sup> &#8230;&#8203; +2<sup>16</sup>.</p>
</div>
</div>
<div class="sect4">
<h5 id="half_mathdivide">half_math::divide</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>floatn half_math::divide(floatn x, floatn y);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute <code>x / y</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="half_mathexp">half_math::exp</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>floatn half_math::exp(floatn x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute the base e exponential of <code>x</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="half_mathexp2">half_math::exp2</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>floatn half_math::exp2(floatn x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute the base 2 exponential of <code>x</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="half_mathexp10">half_math::exp10</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>floatn half_math::exp10(floatn x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute the base 10 exponential of <code>x</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="half_mathlog">half_math::log</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>floatn half_math::log(floatn x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute natural logarithm.</p>
</div>
</div>
<div class="sect4">
<h5 id="half_mathlog2">half_math::log2</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>floatn half_math::log2(floatn x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute a base 2 logarithm.</p>
</div>
</div>
<div class="sect4">
<h5 id="half_mathlog10">half_math::log10</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>floatn half_math::log10(floatn x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute a base 10 logarithm.</p>
</div>
</div>
<div class="sect4">
<h5 id="half_mathpowr">half_math::powr</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>floatn half_math::powr(floatn x, floatn y);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute <code>x</code> to the power <code>y</code>, where <code>x</code> is <code>&gt;= 0</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="half_mathrecip">half_math::recip</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>floatn half_math::recip(floatn x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute reciprocal.</p>
</div>
</div>
<div class="sect4">
<h5 id="half_mathrsqrt">half_math::rsqrt</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>floatn half_math::rsqrt(floatn x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute inverse square root.</p>
</div>
</div>
<div class="sect4">
<h5 id="half_mathsin">half_math::sin</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>floatn half_math::sin(floatn x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute sine.
<code>x</code> is an angle in radians and it must be in the range -2<sup>16</sup> &#8230;&#8203; +2<sup>16</sup>.</p>
</div>
</div>
<div class="sect4">
<h5 id="half_mathsqrt">half_math::sqrt</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>floatn half_math::sqrt(floatn x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute square root.</p>
</div>
</div>
<div class="sect4">
<h5 id="half_mathtan">half_math::tan</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>floatn half_math::tan(floatn x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Compute tangent.
<code>x</code> is an angle in radians and it must be in the range -2<sup>16</sup> &#8230;&#8203; +2<sup>16</sup>.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="floating-point-pragmas">3.19.11. Floating-point pragmas</h4>
<div class="paragraph">
<p>The <code>FP_CONTRACT</code> pragma can be used to allow (if the state is on) or disallow (if the state is off) the implementation to contract expressions.
Each pragma can occur either outside external declarations or preceding all explicit declarations and statements inside a compound statement.
When outside external declarations, the pragma takes effect from its occurrence until another <code>FP_CONTRACT</code> pragma is encountered, or until the end of the translation unit.
When inside a compound statement, the pragma takes effect from its occurrence until another <code>FP_CONTRACT</code> pragma is encountered (including within a nested compound statement), or until the end of the compound statement; at the end of a compound statement the state for the pragma is restored to its condition just before the compound statement.
If this pragma is used in any other context, the behavior is undefined.</p>
</div>
<div class="paragraph">
<p>The pragma definition to set <code>FP_CONTRACT</code> is:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#pragma OPENCL FP_CONTRACT on-off-switch
                          // on-off-switch is one of: ON, OFF or DEFAULT.</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>DEFAULT</code> value is <code>ON</code>.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="integer-functions">3.20. Integer Functions</h3>
<div class="paragraph">
<p>This section describes the OpenCL C++ library integer functions that take scalar or vector arguments.
Vector versions of integer functions operate component-wise.
Descriptions are always per-component.</p>
</div>
<div class="paragraph">
<p>Here <code>gentype</code> matches: <code>char<em>n</em></code>, <code>uchar<em>n</em></code>, <code>short<em>n</em></code>, <code>ushort<em>n</em></code>, <code>int<em>n</em></code>, <code>uint<em>n</em></code>, <code>long<em>n</em></code> and <code>ulong<em>n</em></code>.</p>
</div>
<div class="sect3">
<h4 id="header-opencl_integer-synopsis">3.20.1. Header &lt;opencl_integer&gt; Synopsis</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>namespace cl
{
//bitwise functions
gentype clz(gentype x);
gentype ctz(gentype x);
gentype popcount(gentype x);
gentype rotate(gentype v, gentype i);

shortn upsample(charn hi, ucharn lo);
ushortn upsample(ucharn hi, ucharn lo);
intn upsample(shortn hi, ushortn lo);
uintn upsample(ushortn hi, ushortn lo);
longn upsample(intn hi, uintn lo);
ulongn upsample(uintn hi, uintn lo);

//numeric functions
ugentype abs(gentype x);
ugentype abs_diff(gentype x, gentype y);
gentype  add_sat(gentype x, gentype y);
gentype  hadd(gentype x, gentype y);
gentype  rhadd(gentype x, gentype y);
gentype  clamp(gentype x, gentype minval, gentype maxval);
gentype  clamp(gentype x, sgentype minval, sgentype maxval);
gentype  mad_hi(gentype a, gentype b, gentype c);
gentype  mad_sat(gentype a, gentype b, gentype c);
gentype  max(gentype x, gentype y);
gentype  max(gentype x, sgentype y);
gentype  min(gentype x, gentype y);
gentype  min(gentype x, sgentype y);
gentype  mul_hi(gentype x, gentype y);
gentype  sub_sat(gentype x, gentype y);

//24-bits functions
intn mad24(intn x, intn y, intn z);
uintn mad24(uintn x, uintn y, uintn z);
intn mul24(intn x, intn y);
uintn mul24(uintn x, uintn y);

}</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="bitwise-operations">3.20.2. Bitwise operations</h4>
<div class="sect4">
<h5 id="clz">clz</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype clz(gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns the number of leading 0-bits in <code>x</code>, starting at the most significant bit position.
If <code>x</code> is <code>0</code>, returns the size in bits of the type of <code>x</code> or component type of <code>x</code>, if <code>x</code> is a vector.</p>
</div>
</div>
<div class="sect4">
<h5 id="ctz">ctz</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype ctz(gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns the count of trailing 0-bits in <code>x</code>.
If <code>x</code> is <code>0</code>, returns the size in bits of the type of <code>x</code> or component type of <code>x</code>, if <code>x</code> is a vector.</p>
</div>
</div>
<div class="sect4">
<h5 id="rotate">rotate</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype rotate(gentype v, gentype i);</code></pre>
</div>
</div>
<div class="paragraph">
<p>For each element in <code>v</code>, the bits are shifted left by the number of bits given by the corresponding element in <code>i</code> (subject to usual shift modulo rules described in the <a href="#expressions"><em>Expressions</em></a> section).
Bits shifted off the left side of the element are shifted back in from the right.</p>
</div>
</div>
<div class="sect4">
<h5 id="upsample">upsample</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>shortn upsample(charn hi, ucharn lo);
ushortn upsample(ucharn hi, ucharn lo);

intn upsample(shortn hi, ushortn lo);
uintn upsample(ushortn hi, ushortn lo);

longn upsample(intn hi, uintn lo);
ulongn upsample(uintn hi, uintn lo);</code></pre>
</div>
</div>
<div class="paragraph">
<p><code>result[i] = ((short)hi[i] &lt;&lt; 8) | lo[i]</code></p>
</div>
<div class="paragraph">
<p><code>result[i] = ((ushort)hi[i] &lt;&lt; 8) | lo[i]</code></p>
</div>
<div class="paragraph">
<p><code>result[i] = ((int)hi[i] &lt;&lt; 16) | lo[i]</code></p>
</div>
<div class="paragraph">
<p><code>result[i] = ((uint)hi[i] &lt;&lt; 16) | lo[i]</code></p>
</div>
<div class="paragraph">
<p><code>result[i] = ((long)hi[i] &lt;&lt; 32) | lo[i]</code></p>
</div>
<div class="paragraph">
<p><code>result[i] = ((ulong)hi[i] &lt;&lt; 32) | lo[i]</code></p>
</div>
</div>
<div class="sect4">
<h5 id="popcount">popcount</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype popcount(gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns the number of non-zero bits in <code>x</code>.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="numeric-functions">3.20.3. Numeric functions</h4>
<div class="sect4">
<h5 id="abs">abs</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>ugentype abs(gentype x);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns <code>|x|</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="abs_diff">abs_diff</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>ugentype abs_diff(gentype x, gentype y);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns <code>|x - y|</code> without modulo overflow.</p>
</div>
</div>
<div class="sect4">
<h5 id="add_sat">add_sat</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype add_sat(gentype x, gentype y);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns <code>x + y</code> and saturates the result.</p>
</div>
</div>
<div class="sect4">
<h5 id="hadd">hadd</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype hadd(gentype x, gentype y);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns <code>(x + y) &gt;&gt; 1</code>.
The intermediate sum does not modulo overflow.</p>
</div>
</div>
<div class="sect4">
<h5 id="rhadd">rhadd</h5>
<div class="paragraph">
<p><code>rhadd</code> <a id="ftnref23"></a> <a href="#ftn23">[23]</a>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype rhadd(gentype x, gentype y);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns <code>(x + y + 1) &gt;&gt; 1</code>.
The intermediate sum does not modulo overflow.</p>
</div>
</div>
<div class="sect4">
<h5 id="clamp">clamp</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype clamp(gentype x, gentype minval, gentype maxval);
gentype clamp(gentype x, sgentype minval, sgentype maxval);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns <code>min(max(x, minval), maxval)</code>.</p>
</div>
<div class="paragraph">
<p>Results are undefined if <code>minval &gt; maxval</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="mad_hi">mad_hi</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype mad_hi(gentype a, gentype b, gentype c);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns <code>mul_hi(a, b) + c</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="mad_sat">mad_sat</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype mad_sat(gentype a, gentype b, gentype c);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns <code>a * b + c</code> and saturates the result.</p>
</div>
</div>
<div class="sect4">
<h5 id="max">max</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype max(gentype x, gentype y);
gentype max(gentype x, sgentype y);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns <code>y</code> if <code>x &lt; y</code>, otherwise it returns <code>x</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="min">min</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype min(gentype x, gentype y);
gentype min(gentype x, sgentype y);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns <code>y</code> if <code>y &lt; x</code>, otherwise it returns <code>x</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="mul_hi">mul_hi</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype mul_hi(gentype x, gentype y);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Computes <code>x * y</code> and returns the high half of the product of <code>x</code> and <code>y</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="sub_sat">sub_sat</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype sub_sat(gentype x, gentype y);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns <code>x - y</code> and saturates the result.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="bits-operations">3.20.4. 24-bits operations</h4>
<div class="paragraph">
<p>In this section fast integer functions are described that can be used for optimizing performance of kernels.</p>
</div>
<div class="sect4">
<h5 id="mad24">mad24</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>intn mad24(intn x, intn y, intn z);
uintn mad24(uintn x, uintn y, uintn z);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Multiply two 24-bit integer values <code>x</code> and <code>y</code> and add the 32-bit integer result to the 32-bit integer <code>z</code>.
Refer to definition of mul24 to see how the 24-bit integer multiplication is performed.</p>
</div>
<div id="mul24" class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>intn mul24(intn x, intn y);
uintn mul24(uintn x, uintn y);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Multiply two 24-bit integer values <code>x</code> and <code>y</code>.
<code>x</code> and <code>y</code> are 32-bit integers but only the low 24-bits are used to perform the multiplication.
<code>mul24</code> should only be used when values in <code>x</code> and <code>y</code> are in the range [-2<sup>23</sup>, 2<sup>23</sup>-1] if <code>x</code> and <code>y</code> are signed integers and in the range [0, 2<sup>24</sup>-1] if <code>x</code> and <code>y</code> are unsigned integers.
If <code>x</code> and <code>y</code> are not in this range, the multiplication result is implementation-defined.</p>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="relational-functions">3.21. Relational Functions</h3>
<div class="paragraph">
<p>The relational and equality operators (<code>&lt;</code>, <code>&lt;=</code>, <code>&gt;</code>, <code>&gt;=</code>, <code>!=</code>, <code>==</code>) can be used with scalar and vector built-in types and produce a scalar or vector boolean result respectively as described in the <a href="#expressions"><em>Expressions</em></a> section.</p>
</div>
<div class="paragraph">
<p>Here <code>gentype</code> matches: <code>char<em>n</em></code>, <code>uchar<em>n</em></code>, <code>short<em>n</em></code>, <code>ushort<em>n</em></code>, <code>int<em>n</em></code>, <code>uint<em>n</em></code>, <code>long<em>n</em></code>, <code>ulong<em>n</em></code>, <code>half<em>n</em></code> <a id="ftnref4"></a> <a href="#ftn4">[4]</a>, <code>float<em>n</em></code> and <code>double<em>n</em></code> <a id="ftnref18"></a> <a href="#ftn18">[18]</a>.</p>
</div>
<div class="paragraph">
<p>The relational functions <code>isequal</code>, <code>isgreater</code>, <code>isgreaterequal</code>, <code>isless</code>, <code>islessequal</code>, and <code>islessgreater</code> always return <code>false</code> if either argument is not a number (NaN).
<code>isnotequal</code> returns <code>true</code> if one or both arguments are not a number (NaN).</p>
</div>
<div class="sect3">
<h4 id="header-opencl_relational-synopsis">3.21.1. Header &lt;opencl_relational&gt; Synopsis</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>namespace cl
{
#ifdef cl_khr_fp16
booln isequal(halfn x, halfn y);
booln isnotequal(halfn x, halfn y);
booln isgreater(halfn x, halfn y);
booln isgreaterequal(halfn x, halfn y);
booln isless(halfn x, halfn y);
booln islessequal(halfn x, halfn y);
booln islessgreater(halfn x, halfn y);
booln isordered(halfn x, halfn y);
booln isunordered(halfn x, halfn y);
booln isfinite(halfn t);
booln isinf(halfn t);
booln isnan(halfn t);
booln isnormal(halfn t);
booln signbit(halfn t);

#endif

#ifdef cl_khr_fp64
booln isequal(doublen x, doublen y);
booln isnotequal(doublen x, doublen y);
booln isgreater(doublen x, doublen y);
booln isgreaterequal(doublen x, doublen y);
booln isless(doublen x, doublen y);
booln islessequal(doublen x, doublen y);
booln islessgreater(doublen x, doublen y);
booln isordered(doublen x, doublen y);
booln isunordered(doublen x, doublen y);
booln isfinite(doublen t);
booln isinf(doublen t);
booln isnan(doublen t);
booln isnormal(doublen t);
booln signbit(doublen t);

#endif //cl_khr_fp64

booln isequal(floatn x, floatn y);
booln isnotequal(floatn x, floatn y);
booln isgreater(floatn x, floatn y);
booln isgreaterequal(floatn x, floatn y);
booln isless(floatn x, floatn y);
booln islessequal(floatn x, floatn y);
booln islessgreater(floatn x, floatn y);
booln isordered(floatn x, floatn y);
booln isunordered(floatn x, floatn y);
booln isfinite(floatn t);
booln isinf(floatn t);
booln isnan(floatn t);
booln isnormal(floatn t);
booln signbit(floatn t);

bool any(booln t);
bool all(booln t);

gentype bitselect(gentype a, gentype b, gentype c);
gentype select(gentype a, gentype b, booln c);

}</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="comparison-operations">3.21.2. Comparison operations</h4>
<div class="sect4">
<h5 id="isequal">isequal</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>booln isequal(gentype x, gentype y);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns the component-wise compare of <code>x == y</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="isnotequal">isnotequal</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>booln isnotequal(gentype x, gentype y);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns the component-wise compare of <code>x != y</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="isgreater">isgreater</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>booln isgreater(gentype x, gentype y);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns the component-wise compare of <code>x &gt; y</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="isgreaterequal">isgreaterequal</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>booln isgreaterequal(gentype x, gentype y);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns the component-wise compare of <code>x &gt;= y</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="isless">isless</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>booln isless(gentype x, gentype y);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns the component-wise compare of <code>x &lt; y</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="islessequal">islessequal</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>booln islessequal(gentype x, gentype y);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns the component-wise compare of <code>x &lt;= y</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="islessgreater">islessgreater</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>booln islessgreater(gentype x, gentype y);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns the component-wise compare of <code>(x &lt; y) || (x &gt; y)</code>.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="test-operations">3.21.3. Test operations</h4>
<div class="sect4">
<h5 id="isfinite">isfinite</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>booln isfinite(gentype t);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Test for finite value.</p>
</div>
</div>
<div class="sect4">
<h5 id="isinf">isinf</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>booln isinf(gentype t);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Test for infinity value (positive or negative) .</p>
</div>
</div>
<div class="sect4">
<h5 id="isnan">isnan</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>booln isnan(gentype t);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Test for a NaN.</p>
</div>
</div>
<div class="sect4">
<h5 id="isnormal">isnormal</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>booln isnormal(gentype t);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Test for a normal value.</p>
</div>
</div>
<div class="sect4">
<h5 id="isordered">isordered</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>booln isordered(gentype x, gentype y);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Test if arguments are ordered.
<code>isordered()</code> takes arguments <code>x</code> and <code>y</code>, and returns the result of <code>isequal(x, x) &amp;&amp; isequal(y, y)</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="isunordered">isunordered</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>booln isunordered(gentype x, gentype y);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Test if arguments are unordered.
<code>isunordered()</code> takes arguments <code>x</code> and <code>y</code>, returning <code>true</code> if <code>x</code> or <code>y</code> is NaN, and <code>false</code> otherwise.</p>
</div>
</div>
<div class="sect4">
<h5 id="signbit">signbit</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>booln signbit(gentype t);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Test for sign bit.
Returns a <code>true</code> if the sign bit in the float is set else returns <code>false</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="any">any</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>bool any(booln t);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns <code>true</code> if any component of <code>t</code> is <code>true</code>; otherwise returns <code>false</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="all">all</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>bool all(booln t);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Returns <code>true</code> if all components of <code>t</code> are <code>true</code>; otherwise returns <code>false</code>.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="select-operations">3.21.4. Select operations</h4>
<div class="sect4">
<h5 id="bitselect">bitselect</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype bitselect(gentype a, gentype b, gentype c);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Each bit of the result is the corresponding bit of <code>a</code> if the corresponding bit of <code>c</code> is <code>0</code>.
Otherwise it is the corresponding bit of <code>b</code>.</p>
</div>
</div>
<div class="sect4">
<h5 id="select">select</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype select(gentype a, gentype b, booln c);</code></pre>
</div>
</div>
<div class="paragraph">
<p>For each component of a vector type,</p>
</div>
<div class="paragraph">
<p><code>result[i] = c[i] ? b[i] : a[i]</code>.</p>
</div>
<div class="paragraph">
<p>For a scalar type,  <code>result = c ? b : a</code>.</p>
</div>
<div class="paragraph">
<p><code>booln</code> must have the same number of elements as <code>gentype</code>.</p>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="vector-data-load-and-store-functions">3.22. Vector Data Load and Store Functions</h3>
<div class="paragraph">
<p>Functions described in this section allow user to read and write vector types from a pointer to memory.
The results of these functions are undefined if the address being read from or written to is not correctly aligned as described in following subsections.</p>
</div>
<div class="paragraph">
<p>Here <code>gentype</code> matches: <code>char<em>n</em></code>, <code>uchar<em>n</em></code>, <code>short<em>n</em></code>, <code>ushort<em>n</em></code>, <code>int<em>n</em></code>, <code>uint<em>n</em></code>, <code>long<em>n</em></code>, <code>ulong<em>n</em></code>, <code>half<em>n</em></code> <a id="ftnref4"></a> <a href="#ftn4">[4]</a>, <code>float<em>n</em></code> and <code>double<em>n</em></code> <a id="ftnref18"></a> <a href="#ftn18">[18]</a>.</p>
</div>
<div class="sect3">
<h4 id="header-opencl_vector_load_store">3.22.1. Header &lt;opencl_vector_load_store&gt; Synopsis</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>namespace cl
{
//basic load &amp; store
template &lt;size_t N, class T&gt;
make_vector_t&lt;T, N&gt; vload(size_t offset, const T* p);

template &lt;size_t N, class T&gt;
make_vector_t&lt;T, N&gt; vload(size_t offset, const constant_ptr&lt;T&gt; p);

template &lt;class T&gt;
void vstore(T data, size_t offset, vector_element_t&lt;T&gt;* p);

//half load &amp; store
template &lt;size_t N&gt;
make_vector_t&lt;float, N&gt; vload_half(size_t offset, const half* p);

template &lt;size_t N&gt;
make_vector_t&lt;float, N&gt; vload_half(size_t offset, const constant_ptr&lt;half&gt; p);

template &lt;rounding_mode rmode = rounding_mode::rte, class T&gt;
void vstore_half(T data, size_t offset, half* p);

//half array load &amp; store
template &lt;size_t N&gt;
make_vector_t&lt;float, N&gt; vloada_half(size_t offset, const half* p);

template &lt;size_t N&gt;
make_vector_t&lt;float, N&gt; vloada_half(size_t offset, const constant_ptr&lt;half&gt; p);

template &lt;rounding_mode rmode = rounding_mode::rte, class T&gt;
void vstorea_half(T data, size_t offset, half* p);

}</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="basic-load-store">3.22.2. Basic load &amp; store</h4>
<div class="sect4">
<h5 id="vload">vload</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template &lt;size_t N, class T&gt;
make_vector_t&lt;T, N&gt; vload(size_t offset, const T* p);

template &lt;size_t N, class T&gt;
make_vector_t&lt;T, N&gt; vload(size_t offset, const constant_ptr&lt;T&gt; p);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Return <code>sizeof(make_vector_t&lt;T, N&gt;)</code> bytes of data read from address <code>(p + (offset * n))</code>.</p>
</div>
<div class="paragraph">
<p>Requirements:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The address computed as <code>(p+(offset*n))</code> must be 8-bit aligned if <code>T</code> is <code>char</code>, or <code>uchar</code>; 16-bit aligned if <code>T</code> is <code>short</code>, <code>ushort</code>, or <code>half</code> <a href="#ftn4">[4]</a>; 32-bit aligned if <code>T</code> is <code>int</code>, <code>uint</code>, or <code>float</code>; and 64-bit aligned if <code>T</code> is <code>long</code>, <code>ulong</code>, or <code>double</code> <a href="#ftn18">[18]</a>.</p>
</li>
<li>
<p><code>vload</code> function is only defined for n = 2, 3, 4, 8, 16.</p>
</li>
<li>
<p><code>half</code> version is only defined if the <strong>cl_khr_fp16</strong> extension is supported.</p>
</li>
<li>
<p><code>double</code> version is only defined if double precision is supported.</p>
</li>
</ul>
</div>
</div>
<div class="sect4">
<h5 id="vstore">vstore</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template &lt;class T&gt;
void vstore(T data, size_t offset, vector_element_t&lt;T&gt;* p);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Write <code>sizeof(T)</code> bytes given by data to address <code>(p+(offset*n))</code>.</p>
</div>
<div class="paragraph">
<p>Requirements:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The address computed as <code>(p+(offset*n))</code> must be 8-bit aligned if <code>T</code> is <code>char</code>, or <code>uchar</code>; 16-bit aligned if <code>T</code> is <code>short</code>, <code>ushort</code>, or <code>half</code> <a href="#ftn4">[4]</a>; 32-bit aligned if <code>T</code> is <code>int</code>, <code>uint</code>, or <code>float</code>; and 64-bit aligned if <code>T</code> is <code>long</code>, <code>ulong</code>, or <code>double</code> <a href="#ftn18">[18]</a>.</p>
</li>
<li>
<p><code>vstore</code> function is only defined for n = 2, 3, 4, 8, 16.</p>
</li>
<li>
<p><code>half</code> version is only defined if the <strong>cl_khr_fp16</strong> extension is supported.</p>
</li>
<li>
<p><code>double</code> version is only defined if double precision is supported.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect3">
<h4 id="half-vload-vstore">3.22.3. half vload &amp; vstore</h4>
<div class="sect4">
<h5 id="vload_half">vload_half</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template &lt;size_t N&gt;
make_vector_t&lt;float, N&gt; vload_half(size_t offset, const half* p);

template &lt;size_t N&gt;
make_vector_t&lt;float, N&gt; vload_half(size_t offset, const constant_ptr&lt;half&gt; p);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Read <code>sizeof(halfn)</code> bytes of data from address <code>(p+(offset*n))</code>.
The data read is interpreted as a <code>halfn</code> value.
The <code>halfn</code> value read is converted to a <code>float</code> value and the <code>floatn</code> value is returned.</p>
</div>
<div class="paragraph">
<p>Requirements:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The read address computed as <code>(p+(offset*n))</code> must be 16-bit aligned.</p>
</li>
<li>
<p><code>vload_half</code> function is only defined for n = 1, 2, 3, 4, 8, 16.</p>
</li>
</ul>
</div>
</div>
<div class="sect4">
<h5 id="vstore_half">vstore_half</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template &lt;rounding_mode rmode = rounding_mode::rte, class T&gt;
void vstore_half(T data, size_t offset, half* p);</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>T</code> value given by data is first converted to a <code>halfn</code> value using the appropriate rounding mode.
The <code>half</code> value is then written to address computed as <code>(p+offset)</code>.</p>
</div>
<div class="paragraph">
<p>Requirements:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The address computed as <code>(p+offset)</code> must be 16-bit aligned.</p>
</li>
<li>
<p><code>T</code> can be <code>floatn</code> or <code>doublen</code> <a href="#ftn18">[18]</a>.</p>
</li>
<li>
<p><code>double</code> version is only defined if double precision is supported.</p>
</li>
<li>
<p><code>vstore_half</code> function is only defined for n = 1, 2, 3, 4, 8, 16.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect3">
<h4 id="half-array-vload-vstore">3.22.4. half array vload &amp; vstore</h4>
<div class="sect4">
<h5 id="vloada_half">vloada_half</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template &lt;size_t N&gt;
make_vector_t&lt;float, N&gt; vloada_half(size_t offset, const half* p);

template &lt;size_t N&gt;
make_vector_t&lt;float, N&gt; vloada_half(size_t offset, const constant_ptr&lt;half&gt; p);</code></pre>
</div>
</div>
<div class="paragraph">
<p>For <code>N</code> = 2, 4, 8 and 16 read <code>sizeof(halfn)</code> bytes of data from address <code>(p+(offset*n))</code>.
The data read is interpreted as a <code>halfn</code> value.
The <code>halfn</code> value read is converted to a <code>floatn</code> value and the <code>floatn</code> value is returned.</p>
</div>
<div class="paragraph">
<p>Requirements:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The address computed as <code>(p+(offset*n))</code> must be aligned to <code>sizeof(halfn)</code> bytes.</p>
</li>
<li>
<p>For n = 3, <code>vloada_half</code> reads a <code>half3</code> from address <code>(p+(offset*4))</code> and returns a <code>float3</code>.
The address computed as <code>(p+(offset*4))</code> must be aligned to <code>sizeof(half)*4</code> bytes.</p>
</li>
<li>
<p><code>vloada_half</code> function is only defined for <code>N</code> = 2, 3, 4, 8, 16.</p>
</li>
</ul>
</div>
</div>
<div class="sect4">
<h5 id="vstorea_half">vstorea_half</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>template &lt;rounding_mode rmode = rounding_mode::rte, class T&gt;
void vstorea_half(T data, size_t offset, half* p);</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>T</code> value is converted to a <code>halfn</code> value using the appropriate rounding mode.
For n = 2, 4, 8 or 16, the halfn value is written to the address computed as <code>(p+(offset*n))</code>.
For n = 3, the <code>half3</code> value is written to the address computed as <code>(p+(offset*4))</code>.
The address computed as <code>(p+(offset*4))</code> must be aligned to <code>sizeof(half)*4</code> bytes.</p>
</div>
<div class="paragraph">
<p>Requirements:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The address computed as <code>(p+(offset* n))</code> must be aligned to <code>sizeof(halfn)</code> bytes.</p>
</li>
<li>
<p>For n = 3, the address computed as <code>(p+(offset*4))</code> must be aligned to <code>sizeof(half)*4</code> bytes.</p>
</li>
<li>
<p><code>T</code> can be <code>floatn</code> or <code>doublen</code> <a href="#ftn18">[18]</a>.</p>
</li>
<li>
<p><code>double</code> version is only defined if double precision is supported.</p>
</li>
<li>
<p><code>vstorea_half</code> function is only defined for n = 2, 3, 4, 8, 16.</p>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="printf">3.23. printf</h3>
<div class="paragraph">
<p>The OpenCL C++ programming language implements the <code>printf</code> <a id="ftnref24"></a> <a href="#ftn24">[24]</a> function.
This function is defined in header <em>&lt;opencl_printf&gt;</em>.</p>
</div>
<div class="sect3">
<h4 id="header-opencl_printf-synopsis">3.23.1. Header &lt;opencl_printf&gt; Synopsis</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>namespace cl
{
int printf(const char *format, ...);

}</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="printf-function">3.23.2. printf function</h4>
<div class="sect4">
<h5 id="printf-1">printf</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>int printf(const char *format, ...);</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>printf</code> built-in function writes output to an implementation-defined stream such as stdout under control of the string pointed to by <code>format</code> that specifies how subsequent arguments are converted for output.
If there are insufficient arguments for the format, the behavior is undefined.
If the format is exhausted while arguments remain, the excess arguments are evaluated (as always) but are otherwise ignored.
The <code>printf</code> function returns when the end of the format string is encountered.</p>
</div>
<div class="paragraph">
<p><code>printf</code> returns 0 if it was executed successfully and -1 otherwise.</p>
</div>
<div class="paragraph">
<p>Limitations:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Format must be known at compile time; otherwise it will be a compile time error.</p>
</li>
</ul>
</div>
</div>
<div class="sect4">
<h5 id="printf-output-synchronization">printf output synchronization</h5>
<div class="paragraph">
<p>When the event that is associated with a particular kernel invocation is completed, the output of all <code>printf()</code> calls executed by this kernel invocation is flushed to the implementation-defined output stream.
Calling <code>clFinish</code> on a host command queue flushes all pending output by <code>printf</code> in previously enqueued and completed commands to the implementation-defined output stream.
In the case that <code>printf</code> is executed from multiple work-items concurrently, there is no guarantee of ordering with respect to written data.
For example, it is valid for the output of a work-item with a global id (0,0,1) to appear intermixed with the output of a work-item with a global id (0,0,4) and so on.</p>
</div>
</div>
<div class="sect4">
<h5 id="printf-format-string">printf format string</h5>
<div class="paragraph">
<p>The format shall be a character sequence, beginning and ending in its initial shift state.
The format is composed of zero or more directives: ordinary characters (not <strong>%</strong>), which are copied unchanged to the output stream; and conversion specifications, each of which results in fetching zero or more subsequent arguments, converting them, if applicable, according to the corresponding conversion specifier, and then writing the result to the output stream.
The format is in the <code>constant</code> address space and must be resolvable at compile time i.e. cannot be dynamically created by the executing program, itself.</p>
</div>
<div class="paragraph">
<p>Each conversion specification is introduced by the character <strong>%</strong>.
After the <strong>%</strong>, the following appear in sequence:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Zero or more <em>flags</em> (in any order) that modify the meaning of the conversion specification.</p>
</li>
<li>
<p>An optional minimum <em>field width</em>.
If the converted value has fewer characters than the field width, it is padded with spaces (by default) on the left (or right, if the left adjustment flag, described later, has been given) to the field width.
The field width takes the form of a nonnegative decimal integer. <a id="ftnref25"></a> <a href="#ftn25">[25]</a></p>
</li>
<li>
<p>An optional <em>precision</em> that gives the minimum number of digits to appear for the <em>d</em>, <em>i</em>, <em>o</em>, <em>u</em>, <em>x</em>, and <em>X</em> conversions, the number of digits to appear after the decimal-point character for <em>a</em>, <em>A</em>, <em>e</em>, <em>E</em>, <em>f</em>, and <em>F</em> conversions, the maximum number of significant digits for the <em>g</em> and <em>G</em> conversions, or the maximum number of bytes to be written for <em>s</em> conversions.
The precision takes the form of a period (.) followed by an optional decimal integer; if only the period is specified, the precision is taken as zero.
If a precision appears with any other conversion specifier, the behavior is undefined.</p>
</li>
<li>
<p>An optional <em>vector specifier</em>.</p>
</li>
<li>
<p>A <em>length modifier</em> that specifies the size of the argument.
The <em>length modifier</em> is required with a vector specifier and together specifies the vector type.
Implicit conversions between vector types are disallowed (as per the <a href="#implicit-type-conversions"><em>Implicit Type Conversions</em></a> section).
If the <em>vector specifier</em> is not specified, the <em>length modifier</em> is optional.</p>
</li>
<li>
<p>A <em>conversion specifier</em> character that specifies the type of conversion to be applied.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The flag characters and their meanings are:</p>
</div>
<div class="hdlist">
<table>
<tr>
<td class="hdlist1">
<em>-</em>
</td>
<td class="hdlist2">
<p>The result of the conversion is left-justified within the field.
(It is right-justified if this flag is not specified.)</p>
</td>
</tr>
<tr>
<td class="hdlist1">
<em>+</em>
</td>
<td class="hdlist2">
<p>The result of a signed conversion always begins with a plus or minus sign.
(It begins with a sign only when a negative value is converted if this flag is not specified.) <a id="ftnref26"></a> <a href="#ftn26">[26]</a></p>
</td>
</tr>
<tr>
<td class="hdlist1">
<em>space</em>
</td>
<td class="hdlist2">
<p>If the first character of a signed conversion is not a sign, or if a signed conversion results in no characters, a space is prefixed to the result.
If the <em>space</em> and <em>+</em> flags both appear, the <em>space</em> flag is ignored.</p>
</td>
</tr>
<tr>
<td class="hdlist1">
<em>#</em>
</td>
<td class="hdlist2">
<p>The result is converted to an "alternative form".
For <em>o</em> conversion, it increases the precision, if and only if necessary, to force the first digit of the result to be a zero (if the value and precision are both 0, a single 0 is printed).
For <em>x</em> (or <em>X</em>) conversion, a nonzero result has <strong>0x</strong> (or <strong>0X</strong>) prefixed to it.
For <em>a</em>, <em>A</em>, <em>e</em>, <em>E</em>, <em>f</em>, <em>F</em>, <em>g</em> and <em>G</em> conversions, the result of converting a floating-point number always contains a decimal-point character, even if no digits follow it.
(Normally, a decimal-point character appears in the result of these conversions only if a digit follows it.) For <em>g</em> and <em>G</em> conversions, trailing zeros are <em>not</em> removed from the result.
For other conversions, the behavior is undefined.</p>
</td>
</tr>
<tr>
<td class="hdlist1">
<em>0</em>
</td>
<td class="hdlist2">
<p>For <em>d</em>, <em>i</em>, <em>o</em>, <em>u</em>, <em>x</em>, <em>X</em>, <em>a</em>, <em>A</em>, <em>e</em>, <em>E</em>, <em>f</em>, <em>F</em>, <em>g</em> and <em>G</em> conversions, leading zeros (following any indication of sign or base) are used to pad to the field width rather than performing space padding, except when converting an infinity or NaN.
If the <em>0</em> and <em>-</em> flags both appear, the <em>0</em> flag is ignored.
For <em>d</em>, <em>i</em>, <em>o</em>, <em>u</em>, <em>x</em>, and <em>X</em> conversions, if a precision is specified, the <em>0</em> flag is ignored.
For other conversions, the behavior is undefined.</p>
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>The vector specifier and its meaning is:</p>
</div>
<div class="hdlist">
<table>
<tr>
<td class="hdlist1">
<em>vn</em>
</td>
<td class="hdlist2">
<p>Specifies that a following <em>a</em>, <em>A</em>, <em>e</em>, <em>E</em>, <em>f</em>, <em>F</em>, <em>g</em>, <em>G</em>, <em>d</em>, <em>i</em>, <em>o</em>, <em>u</em>, <em>x</em> or <em>X</em> conversion specifier applies to a vector argument, where <em>n</em> is the size of the vector and must be 2, 3, 4, 8 or 16.</p>
<div class="paragraph">
<p>The vector value is displayed in the following general form:</p>
</div>
<div class="paragraph">
<p>value1 <em>C</em> value2 <em>C</em> &#8230;&#8203; <em>C</em> value<em>n</em></p>
</div>
<div class="paragraph">
<p>where <em>C</em> is a separator character.
The value for this separator character is a comma.</p>
</div>
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>If the vector specifier is not used, the length modifiers and their meanings are:</p>
</div>
<div class="hdlist">
<table>
<tr>
<td class="hdlist1">
<em>hh</em>
</td>
<td class="hdlist2">
<p>Specifies that a following <em>d</em>, <em>i</em>, <em>o</em>, <em>u</em>, <em>x</em>, or <em>X</em> conversion specifier applies to a <code>char</code> or <code>uchar</code> argument (the argument will have been promoted according to the integer promotions, but its value shall be converted to <code>char</code> or <code>uchar</code> before printing).</p>
</td>
</tr>
<tr>
<td class="hdlist1">
<em>h</em>
</td>
<td class="hdlist2">
<p>Specifies that a following <em>d</em>, <em>i</em>, <em>o</em>, <em>u</em>, <em>x</em> or <em>X</em> conversion specifier applies to a <code>short</code> or <code>ushort</code> argument (the argument will have been promoted according to the integer promotions, but its value shall be converted to <code>short</code> or <code>ushort</code> before printing).</p>
</td>
</tr>
<tr>
<td class="hdlist1">
<em>l</em> (ell)
</td>
<td class="hdlist2">
<p>Specifies that a following <em>d</em>, <em>i</em>, <em>o</em>, <em>u</em>, <em>x</em> or <em>X</em> conversion specifier applies to a <code>long</code> or <code>ulong</code> argument.
The <em>l</em> modifier is supported by the full profile.
For the embedded profile, the <em>l</em> modifier is supported only if 64-bit integers are supported by the device.</p>
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>If the vector specifier is used, the length modifiers and their meanings are:</p>
</div>
<div class="hdlist">
<table>
<tr>
<td class="hdlist1">
<em>hh</em>
</td>
<td class="hdlist2">
<p>Specifies that a following <em>d</em>, <em>i</em>, <em>o</em>, <em>u</em>, <em>x</em> or <em>X</em> conversion specifier applies to a <code>char<em>n</em></code> or <code>uchar<em>n</em></code> argument (the argument will not be promoted).</p>
</td>
</tr>
<tr>
<td class="hdlist1">
<em>h</em>
</td>
<td class="hdlist2">
<p>Specifies that a following <em>d</em>, <em>i</em>, <em>o</em>, <em>u</em>, <em>x</em> or <em>X</em> conversion specifier applies to a <code>short<em>n</em></code> or <code>ushort<em>n</em></code> argument (the argument will not be promoted); that a following <em>a</em>, <em>A</em>, <em>e</em>, <em>E</em>, <em>f</em>, <em>F</em>, <em>g</em> or <em>G</em> conversion specifier applies to a <code>half<em>n</em></code> argument.</p>
</td>
</tr>
<tr>
<td class="hdlist1">
<em>hl</em>
</td>
<td class="hdlist2">
<p>This modifier can only be used with the vector specifier.
Specifies that a following <em>d</em>, <em>i</em>, <em>o</em>, <em>u</em>, <em>x</em> or <em>X</em> conversion specifier applies to an <code>int<em>n</em></code> or <code>uint<em>n</em></code> argument; that a following <em>a</em>, <em>A</em>, <em>e</em>, <em>E</em>, <em>f</em>, <em>F</em>, <em>g</em> or <em>G</em> conversion specifier applies to a <code>float<em>n</em></code> argument.</p>
</td>
</tr>
<tr>
<td class="hdlist1">
<em>l</em> (ell)
</td>
<td class="hdlist2">
<p>Specifies that a following <em>d</em>, <em>i</em>, <em>o</em>, <em>u</em>, <em>x</em> or <em>X</em> conversion specifier applies to a <code>long<em>n</em></code> or <code>ulong<em>n</em></code> argument; that a following <em>a</em>, <em>A</em>, <em>e</em>, <em>E</em>, <em>f</em>, <em>F</em>, <em>g</em> or <em>G</em> conversion specifier applies to a <code>double<em>n</em></code> argument.
The <em>l</em> modifier is supported by the full profile.
For the embedded profile, the <em>l</em> modifier is supported only if 64-bit integers or double-precision floating-point are supported by the device.</p>
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>If a vector specifier appears without a length modifier, the behavior is undefined.
The vector data type described by the vector specifier and length modifier must match the data type of the argument; otherwise the behavior is undefined.</p>
</div>
<div class="paragraph">
<p>If a length modifier appears with any conversion specifier other than as specified above, the behavior is undefined.</p>
</div>
<div class="paragraph">
<p>The conversion specifiers and their meanings are:</p>
</div>
<div class="hdlist">
<table>
<tr>
<td class="hdlist1">
<em>d</em>,&#160;<em>i</em>
</td>
<td class="hdlist2">
<p>The <code>int</code>, <code>char<em>n</em></code>, <code>short<em>n</em></code>, <code>int<em>n</em></code> or <code>long<em>n</em></code> argument is converted to signed decimal in the style <em>[-]dddd</em>.
The precision specifies the minimum number of digits to appear; if the value being converted can be represented in fewer digits, it is expanded with leading zeros.
The default precision is 1. The result of converting a zero value with a precision of zero is no characters.</p>
</td>
</tr>
<tr>
<td class="hdlist1">
<em>o</em>,&#160;<em>u</em>, <em>x</em>,&#160;<em>X</em>
</td>
<td class="hdlist2">
<p>The <code>uint</code>, <code>uchar<em>n</em></code>, <code>ushort<em>n</em></code>, <code>uint<em>n</em></code> or <code>ulong<em>n</em></code> argument is converted to unsigned octal (<em>o</em>), unsigned decimal (<em>u</em>), or unsigned hexadecimal notation (<em>x</em> or <em>X</em>) in the style <em>dddd</em>; the letters <strong>abcdef</strong> are used for <em>x</em> conversion and the letters <strong>ABCDEF</strong> for <em>X</em> conversion.
The precision specifies the minimum number of digits to appear; if the value being converted can be represented in fewer digits, it is expanded with leading zeros.
The default precision is 1.
The result of converting a zero value with a precision of zero is no characters.</p>
</td>
</tr>
<tr>
<td class="hdlist1">
<em>f</em>,&#160;<em>F</em>
</td>
<td class="hdlist2">
<p>A <code>double</code>, <code>half<em>n</em></code>, <code>float<em>n</em></code> or <code>double<em>n</em></code> argument representing a floating-point number is converted to decimal notation in the style <em>[-]ddd</em><strong>.</strong><em>ddd</em>, where the number of digits after the decimal-point character is equal to the precision specification.
If the precision is missing, it is taken as 6; if the precision is zero and the <em>#</em> flag is not specified, no decimal-point character appears.
If a decimal-point character appears, at least one digit appears before it.
The value is rounded to the appropriate number of digits.
A <code>double</code>, <code>half<em>n</em></code>, <code>float<em>n</em></code> or <code>double<em>n</em></code> argument representing an infinity is converted in one of the styles <em>[-]</em><strong>inf</strong> or <em>[-]</em><strong>infinity</strong> - which style is implementation-defined.
A <code>double</code>, <code>half<em>n</em></code>, <code>float<em>n</em></code> or <code>double<em>n</em></code> argument representing a NaN is converted in one of the styles <em>[-]</em><strong>nan</strong> or <em>[-]</em><strong>nan</strong>(<em>n-char-sequence</em>) - which style, and the meaning of any <em>n-char-sequence</em>, is implementation-defined.
The <em>F</em> conversion specifier produces <strong>INF</strong>, <strong>INFINITY</strong>, or <strong>NAN</strong> instead of <strong>inf</strong>, <strong>infinity</strong>, or <strong>nan</strong>, respectively. <a id="ftnref27"></a> <a href="#ftn27">[27]</a></p>
</td>
</tr>
<tr>
<td class="hdlist1">
<em>e</em>,&#160;<em>E</em>
</td>
<td class="hdlist2">
<p>A <code>double</code>, <code>half<em>n</em></code>, <code>float<em>n</em></code> or <code>double<em>n</em></code> argument representing a floating-point number is converted in the style <em>[-]d</em><strong>.</strong><em>ddd</em><strong>e</strong><em>±dd</em>, where there is one digit (which is nonzero if the argument is nonzero) before the decimal-point character and the number of digits after it is equal to the precision; if the precision is missing, it is taken as 6; if the precision is zero and the <em>#</em> flag is not specified, no decimal-point character appears.
The value is rounded to the appropriate number of digits.
The <em>E</em> conversion specifier produces a number with <strong>E</strong> instead of <strong>e</strong> introducing the exponent.
The exponent always contains at least two digits, and only as many more digits as necessary to represent the exponent.
If the value is zero, the exponent is zero.
A <code>double</code>, <code>half<em>n</em></code>, <code>float<em>n</em></code> or <code>double<em>n</em></code> argument representing an infinity or NaN is converted in the style of an <em>f</em> or <em>F</em> conversion specifier.</p>
</td>
</tr>
<tr>
<td class="hdlist1">
<em>g</em>,&#160;<em>G</em>
</td>
<td class="hdlist2">
<p>A <code>double</code>, <code>half<em>n</em></code>, <code>float<em>n</em></code> or <code>double<em>n</em></code> argument representing a floating-point number is converted in style <em>f</em> or <em>e</em> (or in style <em>F</em> or <em>E</em> in the case of a <em>G</em> conversion specifier), depending on the value converted and the precision.
Let <em>P</em> equal the precision if nonzero, 6 if the precision is omitted, or 1 if the precision is zero.
Then, if a conversion with style <em>E</em> would have an exponent of <em>X</em>:</p>
<div class="ulist">
<ul>
<li>
<p>if <em>P &gt; X ≥ -4, the conversion is with style _f</em> (or <em>F</em>) and precision <em>P - (X + 1)</em>.</p>
</li>
<li>
<p>otherwise, the conversion is with style <em>e</em> (or <em>E</em>) and precision <em>P - 1</em>.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Finally, unless the <em>#</em> flag is used, any trailing zeros are removed from the fractional portion of the result and the decimal-point character is removed if there is no fractional portion remaining.
A <code>double</code>, <code>half<em>n</em></code>, <code>float<em>n</em></code> or <code>double<em>n</em></code> argument representing an infinity or NaN is converted in the style of an <em>f</em> or <em>F</em> conversion specifier.</p>
</div>
</td>
</tr>
<tr>
<td class="hdlist1">
<em>a</em>,&#160;<em>A</em>
</td>
<td class="hdlist2">
<p>A <code>double</code>, <code>half<em>n</em></code>, <code>float<em>n</em></code> or <code>double<em>n</em></code> argument representing a floating-point number is converted in the style <em>[-]</em><strong>0x</strong><em>h</em><strong>.</strong><em>hhhh</em><strong>p</strong><em>±d</em>, where there is one hexadecimal digit (which is nonzero if the argument is a normalized floating-point number and is otherwise unspecified) before the decimal-point character <a id="ftnref28"></a> <a href="#ftn28">[28]</a> and the number of hexadecimal digits after it is equal to the precision; if the precision is missing, then the precision is sufficient for an exact representation of the value; if the precision is zero and the <em>#</em> flag is not specified, no decimal point character appears.
The letters <strong>abcdef</strong> are used for <em>a</em> conversion and the letters <strong>ABCDEF</strong> for <em>A</em> conversion.
The <em>A</em> conversion specifier produces a number with <strong>X</strong> and <strong>P</strong> instead of <strong>x</strong> and <strong>p</strong>.
The exponent always contains at least one digit, and only as many more digits as necessary to represent the decimal exponent of 2.
If the value is zero, the exponent is zero.
A <code>double</code>, <code>half<em>n</em></code>, <code>float<em>n</em></code> or <code>double<em>n</em></code> argument representing an infinity or NaN is converted in the style of an <em>f</em> or <em>F</em> conversion specifier.</p>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
The conversion specifiers <em>e</em>, <em>E</em>, <em>g</em>, <em>G</em>, <em>a</em>, <em>A</em> convert a <code>float</code> or <code>half</code> argument that is a scalar type to a <code>double</code> only if the <code>double</code> data type is supported.
If the <code>double</code> data type is not supported, the argument will be a <code>float</code> instead of a <code>double</code> and the <code>half</code> type will be converted to a <code>float</code>.
</td>
</tr>
</table>
</div>
</td>
</tr>
<tr>
<td class="hdlist1">
<em>c</em>
</td>
<td class="hdlist2">
<p>The <code>int</code> argument is converted to an <code>uchar</code> and the resulting character is written.</p>
</td>
</tr>
<tr>
<td class="hdlist1">
<em>s</em>
</td>
<td class="hdlist2">
<p>The argument shall be a literal string. <a id="ftnref29"></a> <a href="#ftn29">[29]</a>
Characters from the literal string array are written up to (but not including) the terminating null character.
If the precision is specified, no more than that many bytes are written.
If the precision is not specified or is greater than the size of the array, the array shall contain a null character.</p>
</td>
</tr>
<tr>
<td class="hdlist1">
<em>p</em>
</td>
<td class="hdlist2">
<p>The argument shall be a pointer to <code>void</code>.
The pointer can refer to a memory region in the global, constant, local, private or generic address space.
The value of the pointer is converted to a sequence of printing characters in an implementation-defined manner.</p>
</td>
</tr>
<tr>
<td class="hdlist1">
<em>%</em>
</td>
<td class="hdlist2">
<p>A <strong>%</strong> character is written.
No argument is converted. The complete conversion specification shall be <strong>%%</strong>.</p>
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>If a conversion specification is invalid, the behavior is undefined.
If any argument is not the correct type for the corresponding conversion specification, the behavior is undefined.</p>
</div>
<div class="paragraph">
<p>In no case does a nonexistent or small field width cause truncation of a field; if the result of a conversion is wider than the field width, the field is expanded to contain the conversion result.</p>
</div>
<div class="paragraph">
<p>For <em>a</em> and <em>A</em> conversions, the value is correctly rounded to a hexadecimal floating number with the given precision.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>float4  f = float4(1.0f, 2.0f, 3.0f, 4.0f);
uchar4 uc = uchar4(0xFA, 0xFB, 0xFC, 0xFD);

printf("f4 = %2.2v4hlf\n", f);
printf("uc = %#v4hhx\n", uc);</code></pre>
</div>
</div>
<div class="paragraph">
<p>The above two <code>printf</code> calls print the following:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>f4 = 1.00,2.00,3.00,4.00
uc = 0xfa,0xfb,0xfc,0xfd</pre>
</div>
</div>
<div class="paragraph">
<p>A few examples of valid use cases of <code>printf</code> for the conversion specifier <em>s</em> are given below.
The argument value must be a pointer to a literal string.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#include &lt;opencl_printf&gt;

kernel void my_kernel( ... )
{
    cl::printf("%s\n", "this is a test string\n");
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>A few examples of invalid use cases of <code>printf</code> for the conversion specifier <em>s</em> are given below:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#include &lt;opencl_printf&gt;

kernel void my_kernel(char *s, ... )
{
    cl::printf("%s\n", s);
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>A few examples of invalid use cases of <code>printf</code> where data types given by the vector specifier and length modifier do not match the argument type are given below:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#include &lt;opencl_printf&gt;
using namespace cl;

kernel void my_kernel( ... )
{
    uint2 ui = uint2(0x12345678, 0x87654321);
    printf("unsigned short value = (%#v2hx)\n", ui);
    printf("unsigned char value = (%#v2hhx)\n", ui);
}</code></pre>
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="differences-between-opencl-c-and-c14-printf">3.23.3. Differences between OpenCL C++ and C++14 printf</h4>
<div class="ulist">
<ul>
<li>
<p>The <em>l</em> modifier followed by a <em>c</em> conversion specifier or <em>s</em> conversion specifier is not supported by OpenCL C++.</p>
</li>
<li>
<p>The <em>ll</em>, <em>j</em>, <em>z</em>, <em>t</em>, and <em>L</em> length modifiers are not supported by OpenCL C++ but are reserved.</p>
</li>
<li>
<p>The <em>n</em> conversion specifier is not supported by OpenCL C++ but is reserved.</p>
</li>
<li>
<p>OpenCL C++ adds the optional <em>vn</em> vector specifier to support printing of vector types.</p>
</li>
<li>
<p>The conversion specifiers <em>f</em>, <em>F</em>, <em>e</em>, <em>E</em>, <em>g</em>, <em>G</em>, <em>a</em>, <em>A</em> convert a float argument to a double only if the double data type is supported.
Refer to the description of <code>CL_DEVICE_DOUBLE_FP_CONFIG</code> in <em>table 4.3</em>.
If the double data type is not supported, the argument will be a float instead of a double.</p>
</li>
<li>
<p>For the embedded profile, the <em>l</em> length modifier is supported only if 64-bit integers are supported.</p>
</li>
<li>
<p>In OpenCL C++, <code>printf</code> returns 0 if it was executed successfully and -1 otherwise vs. C++14 where <code>printf</code> returns the number of characters printed or a negative value if an output or encoding error occurred.</p>
</li>
<li>
<p>In OpenCL C++, the conversion specifier <em>s</em> can only be used for arguments that are literal strings.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect2">
<h3 id="atomic-operations-library">3.24. Atomic Operations Library</h3>
<div class="paragraph">
<p>The OpenCL C++ programming language implements a subset of the C++14 atomics (refer to <em>chapter 29</em> of the C++14 specification) and synchronization operations.
These operations play a special role in making assignments in one work-item visible to another.
Please note that this chapter only presents synopsis of the atomics library and differences from C++14 specification.</p>
</div>
<div class="sect3">
<h4 id="header-opencl_atomic-synopsis">3.24.1. Header &lt;opencl_atomic&gt; Synopsis</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>namespace cl
{
enum memory_order;
enum memory_scope;

template&lt;class T&gt; struct atomic;
// specialization for scalar types T that satisfy cl::is_integral&lt;T&gt;
template&lt;&gt; struct atomic&lt;integral&gt;;
template&lt;class T&gt; struct atomic&lt;T*&gt;;

using atomic_int = atomic&lt;int&gt;;
using atomic_uint = atomic&lt;unsigned int&gt;;
#if defined(cl_khr_int64_base_atomics) &amp;&amp; defined(cl_khr_int64_extended_atomics)
using atomic_long = atomic&lt;long&gt;;
using atomic_ulong = atomic&lt;unsigned long&gt;;
#endif
using atomic_float = atomic&lt;float&gt;;
#if defined(cl_khr_fp64) &amp;&amp;
    defined(cl_khr_int64_base_atomics) &amp;&amp;
    defined(cl_khr_int64_extended_atomics)
using atomic_double = atomic&lt;double&gt;;
#endif
#if (defined(cl_khr_int64_base_atomics) &amp;&amp;
     defined(cl_khr_int64_extended_atomics) &amp;&amp;
     __INTPTR_WIDTH__ == 64) ||
    __INTPTR_WIDTH__ == 32
using atomic_intptr_t = atomic&lt;intptr_t&gt;;
using atomic_uintptr_t = atomic&lt;uintptr_t&gt;;
#endif
#if (defined(cl_khr_int64_base_atomics) &amp;&amp;
     defined(cl_khr_int64_extended_atomics) &amp;&amp;
     __SIZE_WIDTH__ == 64) ||
    __SIZE_WIDTH__ == 32
using atomic_size_t = atomic&lt;size_t&gt;;
#endif
#if (defined(cl_khr_int64_base_atomics) &amp;&amp;
     defined(cl_khr_int64_extended_atomics) &amp;&amp;
     __PTRDIFF_WIDTH__ == 64) ||
    __PTRDIFF_WIDTH__ == 32
using atomic_ptrdiff_t = atomic&lt;ptrdiff_t&gt;;
#endif

// Please note that all operations taking memory_order as a parameter have,
// in addition to cpp14 specification, additional parameter for memory_scope
template &lt;class T&gt;
bool atomic_is_lock_free(const volatile atomic&lt;T&gt;*) noexcept;
template &lt;class T&gt;
bool atomic_is_lock_free(const atomic&lt;T&gt;*) noexcept;
template &lt;class T&gt;
void atomic_init(volatile atomic&lt;T&gt;*, T) noexcept;
template &lt;class T&gt;
void atomic_init(atomic&lt;T&gt;*, T) noexcept;
template &lt;class T&gt;
void atomic_store(volatile atomic&lt;T&gt;*, T) noexcept;
template &lt;class T&gt;
void atomic_store(atomic&lt;T&gt;*, T) noexcept;
template &lt;class T&gt;
void atomic_store_explicit(volatile atomic&lt;T&gt;*, T, memory_order,
                           memory_scope) noexcept;
template &lt;class T&gt;
void atomic_store_explicit(atomic&lt;T&gt;*, T, memory_order,
                           memory_scope) noexcept;
template &lt;class T&gt;
T atomic_load(const volatile atomic&lt;T&gt;*) noexcept;
template &lt;class T&gt;
T atomic_load(const atomic&lt;T&gt;*) noexcept;
template &lt;class T&gt;
T atomic_load_explicit(const volatile atomic&lt;T&gt;*, memory_order,
                       memory_scope) noexcept;
template &lt;class T&gt;
T atomic_load_explicit(const atomic&lt;T&gt;*, memory_order, memory_scope) noexcept;
template &lt;class T&gt;
T atomic_exchange(volatile atomic&lt;T&gt;*, T) noexcept;
template &lt;class T&gt;
T atomic_exchange(atomic&lt;T&gt;*, T) noexcept;
template &lt;class T&gt;
T atomic_exchange_explicit(volatile atomic&lt;T&gt;*, T, memory_order,
                           memory_scope) noexcept;
template &lt;class T&gt;
T atomic_exchange_explicit(atomic&lt;T&gt;*, T, memory_order, memory_scope) noexcept;
template &lt;class T&gt;
bool atomic_compare_exchange_weak(volatile atomic&lt;T&gt;*, T*, T) noexcept;
template &lt;class T&gt;
bool atomic_compare_exchange_weak(atomic&lt;T&gt;*, T*, T) noexcept;
template &lt;class T&gt;
bool atomic_compare_exchange_strong(volatile atomic&lt;T&gt;*, T*, T) noexcept;
template &lt;class T&gt;
bool atomic_compare_exchange_strong(atomic&lt;T&gt;*, T*, T) noexcept;
template &lt;class T&gt;
bool atomic_compare_exchange_weak_explicit(volatile atomic&lt;T&gt;*, T*, T,
                                           memory_order, memory_order,
                                           memory_scope) noexcept;
template &lt;class T&gt;
bool atomic_compare_exchange_weak_explicit(atomic&lt;T&gt;*, T*, T, memory_order,
                                           memory_order, memory_scope) noexcept;
template &lt;class T&gt;
bool atomic_compare_exchange_strong_explicit(volatile atomic&lt;T&gt;*, T*, T,
                                             memory_order, memory_order,
                                             memory_scope) noexcept;
template &lt;class T&gt;
bool atomic_compare_exchange_strong_explicit(atomic&lt;T&gt;*, T*, T,
                                             memory_order, memory_order,
                                             memory_scope) noexcept;

// Please note that all operations taking memory_order as a parameter have
// additional overloads, in addition to cpp14 specification, taking both
// memory_order and memory_scope parameters.
template &lt;class T&gt;
T atomic_fetch_add(volatile atomic&lt;T&gt;*, T) noexcept;
template &lt;class T&gt;
T atomic_fetch_add(atomic&lt;T&gt;*, T) noexcept;
template &lt;class T&gt;
T atomic_fetch_add_explicit(volatile atomic&lt;T&gt;*, T, memory_order,
                            memory_scope) noexcept;
template &lt;class T&gt;
T atomic_fetch_add_explicit(atomic&lt;T&gt;*, T, memory_order, memory_scope) noexcept;
template &lt;class T&gt;
T atomic_fetch_sub(volatile atomic&lt;T&gt;*, T) noexcept;
template &lt;class T&gt;
T atomic_fetch_sub(atomic&lt;T&gt;*, T) noexcept;
template &lt;class T&gt;
T atomic_fetch_sub_explicit(volatile atomic&lt;T&gt;*, T, memory_order,
                            memory_scope) noexcept;
template &lt;class T&gt;
T atomic_fetch_sub_explicit(atomic&lt;T&gt;*, T, memory_order, memory_scope) noexcept;
template &lt;class T&gt;
T atomic_fetch_and(volatile atomic&lt;T&gt;*, T) noexcept;
template &lt;class T&gt;
T atomic_fetch_and(atomic&lt;T&gt;*, T) noexcept;
template &lt;class T&gt;
T atomic_fetch_and_explicit(volatile atomic&lt;T&gt;*, T, memory_order,
                            memory_scope) noexcept;
template &lt;class T&gt;
T atomic_fetch_and_explicit(atomic&lt;T&gt;*, T, memory_order, memory_scope) noexcept;
template &lt;class T&gt;
T atomic_fetch_or(volatile atomic&lt;T&gt;*, T) noexcept;
template &lt;class T&gt;
T atomic_fetch_or(atomic&lt;T&gt;*, T) noexcept;
template &lt;class T&gt;
T atomic_fetch_or_explicit(volatile atomic&lt;T&gt;*, T, memory_order,
                           memory_scope) noexcept;
template &lt;class T&gt;
T atomic_fetch_or_explicit(atomic&lt;T&gt;*, T, memory_order, memory_scope) noexcept;
template &lt;class T&gt;
T atomic_fetch_xor(volatile atomic&lt;T&gt;*, T) noexcept;
template &lt;class T&gt;
T atomic_fetch_xor(atomic&lt;T&gt;*, T) noexcept;
template &lt;class T&gt;
T atomic_fetch_xor_explicit(volatile atomic&lt;T&gt;*, T, memory_order,
                            memory_scope) noexcept;
template &lt;class T&gt;
T atomic_fetch_xor_explicit(atomic&lt;T&gt;*, T, memory_order, memory_scope) noexcept;
//OpenCL specific min/max atomics:
T atomic_fetch_min(volatile atomic&lt;T&gt;*, T) noexcept;
template &lt;class T&gt;
T atomic_fetch_min(atomic&lt;T&gt;*, T) noexcept;
template &lt;class T&gt;
T atomic_fetch_min_explicit(volatile atomic&lt;T&gt;*, T, memory_order,
                            memory_scope) noexcept;
template &lt;class T&gt;
T atomic_fetch_min_explicit(atomic&lt;T&gt;*, T, memory_order, memory_scope) noexcept;
T atomic_fetch_max(volatile atomic&lt;T&gt;*, T) noexcept;
template &lt;class T&gt;
T atomic_fetch_max(atomic&lt;T&gt;*, T) noexcept;
template &lt;class T&gt;
T atomic_fetch_max_explicit(volatile atomic&lt;T&gt;*, T, memory_order,
                            memory_scope) noexcept;
template &lt;class T&gt;
T atomic_fetch_max_explicit(atomic&lt;T&gt;*, T, memory_order, memory_scope) noexcept;

template &lt;class T&gt;
void atomic_store(atomic&lt;T&gt;* object, T value) noexcept;
template &lt;class T&gt;
void atomic_store(volatile atomic&lt;T&gt;* object, T value) noexcept;
template &lt;class T&gt;
void atomic_store_explicit(atomic&lt;T&gt;* object, T value, memory_order,
                           memory_scope) noexcept;
template &lt;class T&gt;
void atomic_store_explicit(volatile atomic&lt;T&gt;* object, T value, memory_order,
                           memory_scope) noexcept;

template &lt;class T&gt;
T atomic_load(atomic&lt;T&gt;* object) noexcept;
template &lt;class T&gt;
T atomic_load(volatile atomic&lt;T&gt;* object) noexcept;
template &lt;class T&gt;
T atomic_load_explicit(atomic&lt;T&gt;* object, memory_order, memory_scope) noexcept;
template &lt;class T&gt;
T atomic_load_explicit(volatile atomic&lt;T&gt;* object, memory_order,
                       memory_scope) noexcept;

template &lt;class T&gt;
T atomic_exchange(atomic&lt;T&gt;* object, T value) noexcept;
template &lt;class T&gt;
T atomic_exchange(volatile atomic&lt;T&gt;* object, T value) noexcept;
template &lt;class T&gt;
T atomic_exchange_explicit(atomic&lt;T&gt;* object, T value, memory_order,
                           memory_scope) noexcept;
template &lt;class T&gt;
T atomic_exchange_explicit(volatile atomic&lt;T&gt;* object, T value, memory_order,
                           memory_scope) noexcept;

template &lt;class T&gt;
bool atomic_compare_exchange_strong(atomic&lt;T&gt;* object, T* expected,
                                    T desired) noexcept;
template &lt;class T&gt;
bool atomic_compare_exchange_strong(volatile atomic&lt;T&gt;* object, T* expected,
                                    T desired) noexcept;
template &lt;class T&gt;
bool atomic_compare_exchange_strong_explicit(atomic&lt;T&gt;* object, T* expected,
                                             T desired, memory_order,
                                             memory_scope) noexcept;
template &lt;class T&gt;
bool atomic_compare_exchange_strong_explicit(volatile atomic&lt;T&gt;* object,
                                             T* expected, T desired,
                                             memory_order,
                                             memory_scope) noexcept;
template &lt;class T&gt;
bool atomic_compare_exchange_weak(atomic&lt;T&gt;* object, T* expected,
                                  T desired) noexcept;
template &lt;class T&gt;
bool atomic_compare_exchange_weak(volatile atomic&lt;T&gt;* object, T* expected,
                                  T desired) noexcept;
template &lt;class T&gt;
bool atomic_compare_exchange_weak_explicit(atomic&lt;T&gt;* object, T* expected,
                                           T desired, memory_order,
                                           memory_scope) noexcept;
template &lt;class T&gt;
bool atomic_compare_exchange_weak_explicit(volatile atomic&lt;T&gt;* object,
                                           T* expected, T desired,
                                           memory_order, memory_scope) noexcept;

template &lt;class T&gt;
T atomic_fetch_add(atomic&lt;T&gt;* object, T value) noexcept;
template &lt;class T&gt;
T atomic_fetch_add(volatile atomic&lt;T&gt;* object, T value) noexcept;
template &lt;class T&gt;
T atomic_fetch_add_explicit(atomic&lt;T&gt;* object, T value, memory_order,
                            memory_scope) noexcept;
template &lt;class T&gt;
T atomic_fetch_add_explicit(volatile atomic&lt;T&gt;* object, T value, memory_order,
                            memory_scope) noexcept;
template &lt;class T&gt;
T atomic_fetch_and(atomic&lt;T&gt;* object, T value) noexcept;
template &lt;class T&gt;
T atomic_fetch_and(volatile atomic&lt;T&gt;* object, T value) noexcept;
template &lt;class T&gt;
T atomic_fetch_and_explicit(atomic&lt;T&gt;* object, T value, memory_order,
                            memory_scope) noexcept;
template &lt;class T&gt;
T atomic_fetch_and_explicit(volatile atomic&lt;T&gt;* object, T value, memory_order,
                            memory_scope) noexcept;
template &lt;class T&gt;
T atomic_fetch_or(atomic&lt;T&gt;* object, T value) noexcept;
template &lt;class T&gt;
T atomic_fetch_or(volatile atomic&lt;T&gt;* object, T value) noexcept;
template &lt;class T&gt;
T atomic_fetch_or_explicit(atomic&lt;T&gt;* object, T value, memory_order,
                           memory_scope) noexcept;
template &lt;class T&gt;
T atomic_fetch_or_explicit(volatile atomic&lt;T&gt;* object, T value, memory_order,
                           memory_scope) noexcept;
template &lt;class T&gt;
T atomic_fetch_sub(atomic&lt;T&gt;* object, T value) noexcept;
template &lt;class T&gt;
T atomic_fetch_sub(volatile atomic&lt;T&gt;* object, T value) noexcept;
template &lt;class T&gt;
T atomic_fetch_sub_explicit(atomic&lt;T&gt;* object, T value, memory_order,
                            memory_scope) noexcept;
template &lt;class T&gt;
T atomic_fetch_sub_explicit(volatile atomic&lt;T&gt;* object, T value, memory_order,
                            memory_scope) noexcept;
template &lt;class T&gt;
T atomic_fetch_xor(atomic&lt;T&gt;* object, T value) noexcept;
template &lt;class T&gt;
T atomic_fetch_xor(volatile atomic&lt;T&gt;* object, T value) noexcept;
template &lt;class T&gt;
T atomic_fetch_xor_explicit(atomic&lt;T&gt;* object, T value, memory_order,
                            memory_scope) noexcept;
template &lt;class T&gt;
T atomic_fetch_xor_explicit(volatile atomic&lt;T&gt;* object, T value, memory_order,
                            memory_scope) noexcept;

#if (defined(cl_khr_int64_base_atomics) &amp;&amp;
     defined(cl_khr_int64_extended_atomics) &amp;&amp;
     __SIZE_WIDTH__ == 64) ||
    __SIZE_WIDTH__ == 32
template &lt;class T&gt;
T* atomic_fetch_add(atomic&lt;T*&gt;* object, ptrdiff_t value) noexcept;
template &lt;class T&gt;
T* atomic_fetch_add(volatile atomic&lt;T*&gt;* object, ptrdiff_t value) noexcept;
template &lt;class T&gt;
T* atomic_fetch_add_explicit(atomic&lt;T*&gt;* object, ptrdiff_t value, memory_order,
                             memory_scope) noexcept;
template &lt;class T&gt;
T* atomic_fetch_add_explicit(volatile atomic&lt;T*&gt;* object, ptrdiff_t value,
                             memory_order, memory_scope) noexcept;
template &lt;class T&gt;
T* atomic_fetch_and(atomic&lt;T*&gt;* object, ptrdiff_t value) noexcept;
template &lt;class T&gt;
T* atomic_fetch_and(volatile atomic&lt;T*&gt;* object, ptrdiff_t value) noexcept;
template &lt;class T&gt;
T* atomic_fetch_and_explicit(atomic&lt;T*&gt;* object, ptrdiff_t value, memory_order,
                             memory_scope) noexcept;
template &lt;class T&gt;
T* atomic_fetch_and_explicit(volatile atomic&lt;T*&gt;* object, ptrdiff_t value,
                             memory_order, memory_scope) noexcept;
template &lt;class T&gt;
T* atomic_fetch_or(atomic&lt;T*&gt;* object, ptrdiff_t value) noexcept;
template &lt;class T&gt;
T* atomic_fetch_or(volatile atomic&lt;T*&gt;* object, ptrdiff_t value) noexcept;
template &lt;class T&gt;
T* atomic_fetch_or_explicit(atomic&lt;T*&gt;* object, ptrdiff_t value, memory_order,
                            memory_scope) noexcept;
template &lt;class T&gt;
T* atomic_fetch_or_explicit(volatile atomic&lt;T*&gt;* object, ptrdiff_t value,
                            memory_order, memory_scope) noexcept;
template &lt;class T&gt;
T* atomic_fetch_sub(atomic&lt;T*&gt;* object, ptrdiff_t value) noexcept;
template &lt;class T&gt;
T* atomic_fetch_sub(volatile atomic&lt;T*&gt;* object, ptrdiff_t value) noexcept;
template &lt;class T&gt;
T* atomic_fetch_sub_explicit(atomic&lt;T*&gt;* object, ptrdiff_t value, memory_order,
                             memory_scope) noexcept;
template &lt;class T&gt;
T* atomic_fetch_sub_explicit(volatile atomic&lt;T*&gt;* object, ptrdiff_t value,
                             memory_order, memory_scope) noexcept;
template &lt;class T&gt;
T* atomic_fetch_xor(atomic&lt;T*&gt;* object, ptrdiff_t value) noexcept;
template &lt;class T&gt;
T* atomic_fetch_xor(volatile atomic&lt;T*&gt;* object, ptrdiff_t value) noexcept;
template &lt;class T&gt;
T* atomic_fetch_xor_explicit(atomic&lt;T*&gt;* object, ptrdiff_t value, memory_order,
                             memory_scope) noexcept;
template &lt;class T&gt;
T* atomic_fetch_xor_explicit(volatile atomic&lt;T*&gt;* object, ptrdiff_t value,
                             memory_order, memory_scope) noexcept;
#endif

void atomic_fence(mem_fence flags, memory_order order,
                  memory_scope scope) noexcept;

#define ATOMIC_VAR_INIT(value) as described in cpp14 specification [atomics.types.operations]

}</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="order-and-scope">3.24.2. Order and scope</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>namespace cl
{
enum memory_order
{
    memory_order_relaxed,
    memory_order_acquire,
    memory_order_release,
    memory_order_acq_rel,
    memory_order_seq_cst
};

enum memory_scope
{
    memory_scope_all_svm_devices,
    memory_scope_device,
    memory_scope_work_group,
    memory_scope_sub_group,
    memory_scope_work_item
};

}</code></pre>
</div>
</div>
<div class="paragraph">
<p>An enumeration <code>memory_order</code> is described in section [atomics.order] of C++14 specification. <a id="ftnref7"></a> <a href="#ftn7">[7]</a></p>
</div>
<div class="paragraph">
<p>The enumerated type <code>memory_scope</code> specifies whether the memory ordering constraints given by <code>memory_order</code> apply to work-items in a work-group or work-items of a kernel(s) executing on the device or across devices (in the case of shared virtual memory). Its enumeration constants are as follows:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>memory_scope_work_item</code> <a id="ftnref8"></a> <a href="#ftn8">[8]</a></p>
</li>
<li>
<p><code>memory_scope_sub_group</code></p>
</li>
<li>
<p><code>memory_scope_work_group</code></p>
</li>
<li>
<p><code>memory_scope_device</code></p>
</li>
<li>
<p><code>memory_scope_all_svm_devices</code></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The memory scope should only be used when performing atomic operations to global memory.
Atomic operations to local memory only guarantee memory ordering in the work-group not across work-groups and therefore ignore the <code>memory_scope</code> value.</p>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
With fine-grained system SVM, sharing happens at the granularity of individual loads and stores anywhere in host memory.
Memory consistency is always guaranteed at synchronization points, but to obtain finer control over consistency, the OpenCL atomics functions may be used to ensure that the updates to individual data values made by
one unit of execution are visible to other execution units.
In particular, when a host thread needs fine control over the consistency of memory that is shared with one or more OpenCL devices, it must use atomic and fence operations that are compatible with the C++14 atomic operations <a id="ftnref9"></a> <a href="#ftn9">[9]</a>.
</td>
</tr>
</table>
</div>
</div>
<div class="sect3">
<h4 id="atomic-lock-free-property">3.24.3. Atomic lock-free property</h4>
<div class="paragraph">
<p>OpenCL C++ requires all atomic types to be lock free.</p>
</div>
</div>
<div class="sect3">
<h4 id="atomic-types">3.24.4. Atomic types</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>namespace cl
{

template &lt;class T&gt;
struct atomic
{
    bool is_lock_free() const volatile noexcept;
    bool is_lock_free() const noexcept;
    void store(T, memory_order = memory_order_seq_cst,
               memory_scope = memory_scope_device) volatile noexcept;
    void store(T, memory_order = memory_order_seq_cst,
               memory_scope = memory_scope_device) noexcept;
    T load(memory_order = memory_order_seq_cst,
           memory_scope = memory_scope_device) const volatile noexcept;
    T load(memory_order = memory_order_seq_cst,
           memory_scope = memory_scope_device) const noexcept;
    operator T() const volatile noexcept;
    operator T() const noexcept;
    T exchange(T, memory_order = memory_order_seq_cst,
               memory_scope = memory_scope_device) volatile noexcept;
    T exchange(T, memory_order = memory_order_seq_cst,
               memory_scope = memory_scope_device) noexcept;
    bool compare_exchange_weak(T&amp;, T, memory_order,
                               memory_order, memory_scope) volatile noexcept;
    bool compare_exchange_weak(T&amp;, T, memory_order,
                               memory_order, memory_scope) noexcept;
    bool compare_exchange_strong(T&amp;, T, memory_order,
                                 memory_order, memory_scope) volatile noexcept;
    bool compare_exchange_strong(T&amp;, T, memory_order,
                                 memory_order, memory_scope) noexcept;
    bool compare_exchange_weak(T&amp;, T, memory_order = memory_order_seq_cst,
                          memory_scope = memory_scope_device) volatile noexcept;
    bool compare_exchange_weak(T&amp;, T, memory_order = memory_order_seq_cst,
                               memory_scope = memory_scope_device) noexcept;
    bool compare_exchange_strong(T&amp;, T, memory_order = memory_order_seq_cst,
                          memory_scope = memory_scope_device) volatile noexcept;
    bool compare_exchange_strong(T&amp;, T, memory_order = memory_order_seq_cst,
                                 memory_scope = memory_scope_device) noexcept;
    atomic() noexcept = default;
    constexpr atomic(T) noexcept;
    atomic(const atomic&amp;) = delete;
    atomic&amp; operator=(const atomic&amp;) = delete;
    atomic&amp; operator=(const atomic&amp;) volatile = delete;
    T operator=(T) volatile noexcept;
    T operator=(T) noexcept;
};

template &lt;&gt;
struct atomic&lt;integral&gt;
{
    bool is_lock_free() const volatile noexcept;
    bool is_lock_free() const noexcept;
    void store(integral, memory_order = memory_order_seq_cst,
               memory_scope = memory_scope_device) volatile noexcept;
    void store(integral, memory_order = memory_order_seq_cst,
               memory_scope = memory_scope_device) noexcept;
    integral load(memory_order = memory_order_seq_cst,
                  memory_scope = memory_scope_device) const volatile noexcept;
    integral load(memory_order = memory_order_seq_cst,
                  memory_scope = memory_scope_device) const noexcept;
    operator integral() const volatile noexcept;
    operator integral() const noexcept;
    integral exchange(integral, memory_order = memory_order_seq_cst,
                      memory_scope = memory_scope_device) volatile noexcept;
    integral exchange(integral, memory_order = memory_order_seq_cst,
                      memory_scope = memory_scope_device) noexcept;
    bool compare_exchange_weak(integral&amp;, integral, memory_order,
                               memory_order, memory_scope) volatile noexcept;
    bool compare_exchange_weak(integral&amp;, integral, memory_order, memory_order,
                               memory_scope) noexcept;
    bool compare_exchange_strong(integral&amp;, integral, memory_order,
                                 memory_order, memory_scope) volatile noexcept;
    bool compare_exchange_strong(integral&amp;, integral, memory_order,
                                 memory_order, memory_scope) noexcept;
    bool compare_exchange_weak(integral&amp;, integral,
                          memory_order = memory_order_seq_cst,
                          memory_scope = memory_scope_device) volatile noexcept;
    bool compare_exchange_weak(integral&amp;, integral,
                               memory_order = memory_order_seq_cst,
                               memory_scope = memory_scope_device) noexcept;
    bool compare_exchange_strong(integral&amp;, integral,
                          memory_order = memory_order_seq_cst,
                          memory_scope = memory_scope_device) volatile noexcept;
    bool compare_exchange_strong(integral&amp;, integral,
                                 memory_order = memory_order_seq_cst,
                                 memory_scope = memory_scope_device) noexcept;
    integral fetch_add(integral, memory_order = memory_order_seq_cst,
                       memory_scope = memory_scope_device) volatile noexcept;
    integral fetch_add(integral, memory_order = memory_order_seq_cst,
                       memory_scope = memory_scope_device) noexcept;
    integral fetch_sub(integral, memory_order = memory_order_seq_cst,
                       memory_scope = memory_scope_device) volatile noexcept;
    integral fetch_sub(integral, memory_order = memory_order_seq_cst,
                       memory_scope = memory_scope_device) noexcept;
    integral fetch_and(integral, memory_order = memory_order_seq_cst,
                       memory_scope = memory_scope_device) volatile noexcept;
    integral fetch_and(integral, memory_order = memory_order_seq_cst,
                       memory_scope = memory_scope_device) noexcept;
    integral fetch_or(integral, memory_order = memory_order_seq_cst,
                      memory_scope = memory_scope_device) volatile noexcept;
    integral fetch_or(integral, memory_order = memory_order_seq_cst,
                      memory_scope = memory_scope_device) noexcept;
    integral fetch_xor(integral, memory_order = memory_order_seq_cst,
                       memory_scope = memory_scope_device) volatile noexcept;
    integral fetch_xor(integral, memory_order = memory_order_seq_cst,
                       memory_scope = memory_scope_device) noexcept;
    integral fetch_min(integral, memory_order = memory_order_seq_cst,
                       memory_scope = memory_scope_device) volatile noexcept;
    integral fetch_min(integral, memory_order = memory_order_seq_cst,
                       memory_scope = memory_scope_device) noexcept;
    integral fetch_max(integral, memory_order = memory_order_seq_cst,
                       memory_scope = memory_scope_device) volatile noexcept;
    integral fetch_max(integral, memory_order = memory_order_seq_cst,
                       memory_scope = memory_scope_device) noexcept;
    atomic() noexcept = default;
    constexpr atomic(integral) noexcept;
    atomic(const atomic&amp;) = delete;
    atomic&amp; operator=(const atomic&amp;) = delete;
    atomic&amp; operator=(const atomic&amp;) volatile = delete;
    integral operator=(integral) volatile noexcept;
    integral operator=(integral) noexcept;
    integral operator++(int) volatile noexcept;
    integral operator++(int) noexcept;
    integral operator--(int) volatile noexcept;
    integral operator--(int) noexcept;
    integral operator++() volatile noexcept;
    integral operator++() noexcept;
    integral operator--() volatile noexcept;
    integral operator--() noexcept;
    integral operator+=(integral) volatile noexcept;
    integral operator+=(integral) noexcept;
    integral operator-=(integral) volatile noexcept;
    integral operator-=(integral) noexcept;
    integral operator&amp;=(integral) volatile noexcept;
    integral operator&amp;=(integral) noexcept;
    integral operator|=(integral) volatile noexcept;
    integral operator|=(integral) noexcept;
    integral operator^=(integral) volatile noexcept;
    integral operator^=(integral) noexcept;
};

#if (defined(cl_khr_int64_base_atomics) &amp;&amp;
     defined(cl_khr_int64_extended_atomics) &amp;&amp;
     __SIZE_WIDTH__ == 64) ||
    __SIZE_WIDTH__ == 32
template &lt;class T&gt;
struct atomic&lt;T*&gt;
{
    bool is_lock_free() const volatile noexcept;
    bool is_lock_free() const noexcept;
    void store(T*, memory_order = memory_order_seq_cst,
               memory_scope = memory_scope_device) volatile noexcept;
    void store(T*, memory_order = memory_order_seq_cst,
               memory_scope = memory_scope_device) noexcept;
    T* load(memory_order = memory_order_seq_cst,
            memory_scope = memory_scope_device) const volatile noexcept;
    T* load(memory_order = memory_order_seq_cst,
            memory_scope = memory_scope_device) const noexcept;
    operator T*() const volatile noexcept;
    operator T*() const noexcept;
    T* exchange(T*, memory_order = memory_order_seq_cst,
                memory_scope = memory_scope_device) volatile noexcept;
    T* exchange(T*, memory_order = memory_order_seq_cst,
                memory_scope = memory_scope_device) noexcept;
    bool compare_exchange_weak(T*&amp;, T*, memory_order,
                               memory_order, memory_scope) volatile noexcept;
    bool compare_exchange_weak(T*&amp;, T*, memory_order,
                               memory_order, memory_scope) noexcept;
    bool compare_exchange_strong(T*&amp;, T*, memory_order,
                                 memory_order, memory_scope) volatile noexcept;
    bool compare_exchange_strong(T*&amp;, T*, memory_order,
                                 memory_order, memory_scope) noexcept;
    bool compare_exchange_weak(T*&amp;, T*, memory_order = memory_order_seq_cst,
                          memory_scope = memory_scope_device) volatile noexcept;
    bool compare_exchange_weak(T*&amp;, T*, memory_order = memory_order_seq_cst,
                               memory_scope = memory_scope_device) noexcept;
    bool compare_exchange_strong(T*&amp;, T*, memory_order = memory_order_seq_cst,
                          memory_scope = memory_scope_device) volatile noexcept;
    bool compare_exchange_strong(T*&amp;, T*, memory_order = memory_order_seq_cst,
                                 memory_scope = memory_scope_device) noexcept;
    T* fetch_add(ptrdiff_t, memory_order = memory_order_seq_cst,
                 memory_scope = memory_scope_device) volatile noexcept;
    T* fetch_add(ptrdiff_t, memory_order = memory_order_seq_cst,
                 memory_scope = memory_scope_device) noexcept;
    T* fetch_sub(ptrdiff_t, memory_order = memory_order_seq_cst,
                 memory_scope = memory_scope_device) volatile noexcept;
    T* fetch_sub(ptrdiff_t, memory_order = memory_order_seq_cst,
                 memory_scope = memory_scope_device) noexcept;
    atomic() noexcept = default;
    constexpr atomic(T*) noexcept;
    atomic(const atomic&amp;) = delete;
    atomic&amp; operator=(const atomic&amp;) = delete;
    atomic&amp; operator=(const atomic&amp;) volatile = delete;
    T* operator=(T*) volatile noexcept;
    T* operator=(T*) noexcept;
    T* operator++(int) volatile noexcept;
    T* operator++(int) noexcept;
    T* operator--(int) volatile noexcept;
    T* operator--(int) noexcept;
    T* operator++() volatile noexcept;
    T* operator++() noexcept;
    T* operator--() volatile noexcept;
    T* operator--() noexcept;
    T* operator+=(ptrdiff_t) volatile noexcept;
    T* operator+=(ptrdiff_t) noexcept;
    T* operator-=(ptrdiff_t) volatile noexcept;
    T* operator-=(ptrdiff_t) noexcept;
};
#endif

}</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <em>opencl_atomic</em> header defines general specialization for class template <code>atomic&lt;T&gt;</code>.</p>
</div>
<div class="paragraph">
<p>There are explicit specializations for integral types.
Each of these specializations provides set of extra operators suitable for integral types.</p>
</div>
<div class="paragraph">
<p>There is an explicit specialization of the atomic template for pointer types.</p>
</div>
<div class="paragraph">
<p>All atomic classes have deleted copy constructor and deleted copy assignment operators.</p>
</div>
<div class="paragraph">
<p>There are several typedefs for atomic types specified as follows:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>namespace cl
{
using atomic_int = atomic&lt;int&gt;;
using atomic_uint = atomic&lt;uint&gt;;
#if defined(cl_khr_int64_base_atomics) &amp;&amp; defined(cl_khr_int64_extended_atomics)
using atomic_long = atomic&lt;long&gt;;
using atomic_ulong = atomic&lt;ulong&gt;;
#endif
using atomic_float = atomic&lt;float&gt;;
#if defined(cl_khr_fp64) &amp;&amp;
    defined(cl_khr_int64_base_atomics) &amp;&amp;
    defined(cl_khr_int64_extended_atomics)
using atomic_double = atomic&lt;double&gt;;
#endif
#if (defined(cl_khr_int64_base_atomics) &amp;&amp;
     defined(cl_khr_int64_extended_atomics) &amp;&amp;
     __INTPTR_WIDTH__ == 64) ||
    __INTPTR_WIDTH__ == 32
using atomic_intptr_t = atomic&lt;intptr_t&gt;;
using atomic_uintptr_t = atomic&lt;uintptr_t&gt;;
#endif
#if (defined(cl_khr_int64_base_atomics) &amp;&amp;
     defined(cl_khr_int64_extended_atomics) &amp;&amp;
     __SIZE_WIDTH__ == 64) ||
    __SIZE_WIDTH__ == 32
using atomic_size_t = atomic&lt;size_t&gt;;
#endif
#if (defined(cl_khr_int64_base_atomics) &amp;&amp;
     defined(cl_khr_int64_extended_atomics) &amp;&amp;
     __PTRDIFF_WIDTH__ == 64) ||
    __PTRDIFF_WIDTH__ == 32
using atomic_ptrdiff_t = atomic&lt;ptrdiff_t&gt;;
#endif

}</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="flag-type-and-operations">3.24.5. Flag type and operations</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>namespace cl
{
struct atomic_flag
{
    bool test_and_set(memory_order = memory_order_seq_cst,
                      memory_scope = memory_scope_device) volatile noexcept;
    bool test_and_set(memory_order = memory_order_seq_cst,
                      memory_scope = memory_scope_device) noexcept;
    void clear(memory_order = memory_order_seq_cst,
               memory_scope = memory_scope_device) volatile noexcept;
    void clear(memory_order = memory_order_seq_cst,
               memory_scope = memory_scope_device) noexcept;
    atomic_flag() noexcept = default;
    atomic_flag(const atomic_flag&amp;) = delete;
    atomic_flag&amp; operator=(const atomic_flag&amp;) = delete;
    atomic_flag&amp; operator=(const atomic_flag&amp;) volatile = delete;
};

bool atomic_flag_test_and_set(volatile atomic_flag*) noexcept;
bool atomic_flag_test_and_set(atomic_flag*) noexcept;
bool atomic_flag_test_and_set_explicit(volatile atomic_flag*, memory_order,
                                       memory_scope) noexcept;
bool atomic_flag_test_and_set_explicit(atomic_flag*, memory_order,
                                       memory_scope) noexcept;
void atomic_flag_clear(volatile atomic_flag*) noexcept;
void atomic_flag_clear(atomic_flag*) noexcept;
void atomic_flag_clear_explicit(volatile atomic_flag*, memory_order,
                                memory_scope) noexcept;
void atomic_flag_clear_explicit(atomic_flag*, memory_order,
                                memory_scope) noexcept;

#define ATOMIC_FLAG_INIT as described in cpp14 specification [atomics.flag]

}</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="fences">3.24.6. Fences</h4>
<div class="sect4">
<h5 id="atomic_fence">atomic_fence</h5>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>void atomic_fence(mem_fence flags, memory_order order, memory_scope scope) noexcept;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Orders loads or/and stores of a work-item executing a kernel.</p>
</div>
<div class="paragraph">
<p><code>flags</code> must be set to <code>mem_fence::global</code>, <code>mem_fence::local</code>, <code>mem_fence::image</code> or a combination of these values ORed together; otherwise the behavior is undefined.
The behavior of calling <code>atomic_fence</code> with <code>mem_fence::global</code> and <code>mem_fence::local</code> ORed together is equivalent to calling <code>atomic_fence</code> individually for each of the fence values set in <code>flags</code>.
<code>mem_fence::image</code> cannot be specified ORed with <code>mem_fence::global</code> and <code>mem_fence::local</code>.</p>
</div>
<div class="paragraph">
<p>Depending on the value of order, this operation:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Has no effects, if <code>order == memory_order_relaxed</code>.</p>
</li>
<li>
<p>Is an acquire fence, if <code>order == memory_order_acquire</code>.</p>
</li>
<li>
<p>Is a release fence, if <code>order == memory_order_release</code>.</p>
</li>
<li>
<p>Is both an acquire fence and a release fence, if <code>order == memory_order_acq_rel</code>.</p>
</li>
<li>
<p>Is a sequentially consistent acquire and release fence, if <code>order == memory_order_seq_cst</code>.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>For images declared with the <code>image_access::read_write</code>, the <code>atomic_fence</code> must be called to make sure that writes to the image by a work-item become visible to that work-item on subsequent reads to that image by that work-item.
Only a scope of <code>memory_order_acq_rel</code> is valid for <code>atomic_fence</code> when passed the <code>mem_fence::image</code> flag.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="bit-atomics">3.24.7. 64-bit Atomics</h4>
<div class="paragraph">
<p>The optional extensions <strong>cl_khr_int64_base_atomics</strong> and <strong>cl_khr_int64_extended_atomics</strong> implement atomic operations on 64-bit signed and unsigned integers to locations in global and local memory.</p>
</div>
<div class="paragraph">
<p>An application that wants to use 64-bit atomic types will need to define <code>cl_khr_int64_base_atomics</code> and <code>cl_khr_int64_extended_atomics</code> macros in the code before including the OpenCL C++ standard library headers or using <em>-D</em> compiler option (see the <a href="#preprocessor_options"><em>Preprocessor options</em></a> section).</p>
</div>
</div>
<div class="sect3">
<h4 id="restrictions-3">3.24.8. Restrictions</h4>
<div class="ulist">
<ul>
<li>
<p>The generic <code>atomic&lt;T&gt;</code> class template is only available if <code>T</code> is <code>int</code>, <code>uint</code>, <code>long</code>, <code>ulong</code> <a id="ftnref10"></a> <a href="#ftn10">[10]</a>, <code>float</code>, <code>double</code> <a id="ftnref11"></a> <a href="#ftn11">[11]</a>, <code>intptr_t</code> <a id="ftnref12"></a> <a href="#ftn12">[12]</a>, <code>uintptr_t</code>, <code>size_t</code>, <code>ptrdiff_t</code>.</p>
</li>
<li>
<p>The <code>atomic_bool</code>, <code>atomic_char</code>, <code>atomic_uchar</code>, <code>atomic_short</code>, <code>atomic_ushort</code>, <code>atomic_intmax_t</code> and <code>atomic_uintmax_t</code> types are not supported by OpenCL C++.</p>
</li>
<li>
<p>OpenCL C++ requires that the built-in atomic functions on atomic types are lock-free.</p>
</li>
<li>
<p>The atomic data types cannot be declared inside a kernel or non-kernel function unless they are declared as <code>static</code> keyword or in <code>local&lt;T&gt;</code> and <code>global&lt;T&gt;</code> containers.</p>
</li>
<li>
<p>The atomic operations on the private memory can result in undefined behavior.</p>
</li>
<li>
<p><code>memory_order_consume</code> is not supported by OpenCL C++.</p>
</li>
</ul>
</div>
</div>
<div class="sect3">
<h4 id="examples-4">3.24.9. Examples</h4>
<div class="sect4">
<h5 id="example-1-4">Example 1</h5>
<div class="paragraph">
<p>Examples of using atomic with and without an explicit address space
storage class.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#include &lt;opencl_memory&gt;
#include &lt;opencl_atomic&gt;
using namespace cl;

atomic&lt;int&gt; a; // OK: atomic in the global memory
local&lt;atomic&lt;int&gt;&gt; b; // OK: atomic in the local memory
global&lt;atomic&lt;int&gt;&gt; c; // OK: atomic in the global memory

kernel void foo() {
    static global&lt;atomic&lt;int&gt;&gt; d; // OK: atomic in the global memory
    atomic&lt;global&lt;int&gt;&gt; e; // error: class members cannot be
                           //        in address space
    local&lt;atomic&lt;int&gt;&gt; f; // OK: atomic in the local memory
    static atomic&lt;int&gt; g; // OK: atomic in the global memory
    atomic&lt;int&gt; h; // undefined behavior
}</code></pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="array-library">3.25. Array Library</h3>
<div class="paragraph">
<p>OpenCL C++ implements part of array library (<em>chapter 23.3.2</em>, <em>[array]</em>) from the C++14 standard.</p>
</div>
<div class="paragraph">
<p>For the detailed description please refer to C++14 standard.</p>
</div>
<div class="sect3">
<h4 id="header-opencl_array-synopsis">3.25.1. Header &lt;opencl_array&gt; Synopsis</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>namespace cl
{
template&lt;class T, size_t N&gt;
struct array
{
    //types:
    typedef T value_type;
    typedef size_t size_type;
    typedef ptrdiff_t difference_type;
    typedef T&amp; reference;
    typedef const T&amp; const_reference;
    typedef implementation-defined iterator;
    typedef implementation-defined const_iterator;
    typedef T* pointer;
    typedef const T* const_pointer;
    typedef cl::reverse_iterator&lt;iterator&gt; reverse_iterator;
    typedef cl::reverse_iterator&lt;const_iterator&gt; const_reverse_iterator;

    value_type __elems[N]; // exposition only

    // no explicit construct/copy/destroy for aggregate type

    // iterators:
    iterator begin() noexcept;
    const_iterator begin() const noexcept;
    iterator end() noexcept;
    const_iterator end() const noexcept;

    reverse_iterator rbegin() noexcept;
    const_reverse_iterator rbegin() const noexcept;
    reverse_iterator rend() noexcept;
    const_reverse_iterator rend() const;

    const_iterator cbegin() const noexcept;
    const_iterator cend() const noexcept;
    const_reverse_iterator crbegin() const noexcept;
    const_reverse_iterator crend() const noexcept;

    // capacity:
    constexpr size_type size() const noexcept;
    constexpr size_type max_size() const noexcept;
    constexpr bool empty() const noexcept;

    // element access:
    reference operator[](size_type n) noexcept;
    const_reference operator[](size_type n) const noexcept;
    reference front() noexcept;
    const_reference front() const noexcept;
    reference back() noexcept;
    const_reference back() const noexcept;

    pointer data();
    const_pointer data() const noexcept;
};

template &lt;class T&gt; class tuple_size;
template &lt;size_t I, class T&gt; class tuple_element;

template &lt;class T, size_t N&gt;
struct tuple_size&lt;array&lt;T, N&gt;&gt;;

template &lt;size_t I, class T, size_t N&gt;
struct tuple_element&lt;I, array&lt;T, N&gt;&gt;;

template &lt;size_t I, class T, size_t N&gt;
constexpr T&amp; get(array&lt;T, N&gt;&amp; a) noexcept;
template &lt;size_t I, class T, size_t N&gt;
constexpr T&amp;&amp; get(array&lt;T, N&gt;&amp;&amp; a) noexcept;
template &lt;size_t I, class T, size_t N&gt;
constexpr const T&amp; get(const array&lt;T, N&gt;&amp; a) noexcept;

}</code></pre>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="limits-library">3.26. Limits Library</h3>
<div class="paragraph">
<p>OpenCL C++ standard library implements modified version of the numeric limits library described in chapter <em>18.3 [support.limits]</em> of C++14 standard.</p>
</div>
<div class="sect3">
<h4 id="header-opencl_limits-synopsis">3.26.1. Header &lt;opencl_limits&gt; Synopsis</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>namespace cl
{

template&lt;class T&gt; class numeric_limits;

enum float_round_style;
enum float_denorm_style;

#define CHAR_BIT    8
#define CHAR_MAX    SCHAR_MAX
#define CHAR_MIN    SCHAR_MIN
#define INT_MAX     2147483647
#define INT_MIN     (-2147483647 - 1)
#define LONG_MAX    0x7fffffffffffffffL
#define LONG_MIN    (-0x7fffffffffffffffL - 1)
#define SCHAR_MAX   127
#define SCHAR_MIN   (-127 - 1)
#define SHRT_MAX    32767
#define SHRT_MIN    (-32767 - 1)
#define UCHAR_MAX   255
#define USHRT_MAX   65535
#define UINT_MAX    0xffffffff
#define ULONG_MAX   0xffffffffffffffffUL

template&lt;&gt; class numeric_limits&lt;bool&gt;;
template&lt;&gt; class numeric_limits&lt;bool2&gt;;
template&lt;&gt; class numeric_limits&lt;bool3&gt;;
template&lt;&gt; class numeric_limits&lt;bool4&gt;;
template&lt;&gt; class numeric_limits&lt;bool8&gt;;
template&lt;&gt; class numeric_limits&lt;bool16&gt;;
template&lt;&gt; class numeric_limits&lt;char&gt;;
template&lt;&gt; class numeric_limits&lt;char2&gt;;
template&lt;&gt; class numeric_limits&lt;char3&gt;;
template&lt;&gt; class numeric_limits&lt;char4&gt;;
template&lt;&gt; class numeric_limits&lt;char8&gt;;
template&lt;&gt; class numeric_limits&lt;char16&gt;;
template&lt;&gt; class numeric_limits&lt;uchar&gt;;
template&lt;&gt; class numeric_limits&lt;uchar2&gt;;
template&lt;&gt; class numeric_limits&lt;uchar3&gt;;
template&lt;&gt; class numeric_limits&lt;uchar4&gt;;
template&lt;&gt; class numeric_limits&lt;uchar8&gt;;
template&lt;&gt; class numeric_limits&lt;uchar16&gt;;
template&lt;&gt; class numeric_limits&lt;short&gt;;
template&lt;&gt; class numeric_limits&lt;short2&gt;;
template&lt;&gt; class numeric_limits&lt;short3&gt;;
template&lt;&gt; class numeric_limits&lt;short4&gt;;
template&lt;&gt; class numeric_limits&lt;short8&gt;;
template&lt;&gt; class numeric_limits&lt;short16&gt;;
template&lt;&gt; class numeric_limits&lt;ushort&gt;;
template&lt;&gt; class numeric_limits&lt;ushort2&gt;;
template&lt;&gt; class numeric_limits&lt;ushort3&gt;;
template&lt;&gt; class numeric_limits&lt;ushort4&gt;;
template&lt;&gt; class numeric_limits&lt;ushort8&gt;;
template&lt;&gt; class numeric_limits&lt;ushort16&gt;;
template&lt;&gt; class numeric_limits&lt;int&gt;;
template&lt;&gt; class numeric_limits&lt;int2&gt;;
template&lt;&gt; class numeric_limits&lt;int3&gt;;
template&lt;&gt; class numeric_limits&lt;int4&gt;;
template&lt;&gt; class numeric_limits&lt;int8&gt;;
template&lt;&gt; class numeric_limits&lt;int16&gt;;
template&lt;&gt; class numeric_limits&lt;uint&gt;;
template&lt;&gt; class numeric_limits&lt;uint2&gt;;
template&lt;&gt; class numeric_limits&lt;uint3&gt;;
template&lt;&gt; class numeric_limits&lt;uint4&gt;;
template&lt;&gt; class numeric_limits&lt;uint8&gt;;
template&lt;&gt; class numeric_limits&lt;uint16&gt;;
template&lt;&gt; class numeric_limits&lt;long&gt;;
template&lt;&gt; class numeric_limits&lt;long2&gt;;
template&lt;&gt; class numeric_limits&lt;long3&gt;;
template&lt;&gt; class numeric_limits&lt;long4&gt;;
template&lt;&gt; class numeric_limits&lt;long8&gt;;
template&lt;&gt; class numeric_limits&lt;long16&gt;;
template&lt;&gt; class numeric_limits&lt;ulong&gt;;
template&lt;&gt; class numeric_limits&lt;ulong2&gt;;
template&lt;&gt; class numeric_limits&lt;ulong3&gt;;
template&lt;&gt; class numeric_limits&lt;ulong4&gt;;
template&lt;&gt; class numeric_limits&lt;ulong8&gt;;
template&lt;&gt; class numeric_limits&lt;ulong16&gt;;

#ifdef cl_khr_fp16
#define HALF_DIG        3
#define HALF_MANT_DIG   11
#define HALF_MAX_10_EXP +4
#define HALF_MAX_EXP    +16
#define HALF_MIN_10_EXP -4
#define HALF_MIN_EXP    -13
#define HALF_RADIX      2
#define HALF_MAX        0x1.ffcp15h
#define HALF_MIN        0x1.0p-14h
#define HALF_EPSILON    0x1.0p-10h

template&lt;&gt; class numeric_limits&lt;half&gt;;
#endif

#define FLT_DIG         6
#define FLT_MANT_DIG    24
#define FLT_MAX_10_EXP  +38
#define FLT_MAX_EXP     +128
#define FLT_MIN_10_EXP  -37
#define FLT_MIN_EXP     -125
#define FLT_RADIX       2
#define FLT_MAX         0x1.fffffep127f
#define FLT_MIN         0x1.0p-126f
#define FLT_EPSILON     0x1.0p-23f
template&lt;&gt; class numeric_limits&lt;float&gt;;

#ifdef cl_khr_fp64
#define DBL_DIG         15
#define DBL_MANT_DIG    53
#define DBL_MAX_10_EXP  +308
#define DBL_MAX_EXP     +1024
#define DBL_MIN_10_EXP  -307
#define DBL_MIN_EXP     -1021
#define DBL_MAX         0x1.fffffffffffffp1023
#define DBL_MIN         0x1.0p-1022
#define DBL_EPSILON     0x1.0p-52

template&lt;&gt; class numeric_limits&lt;double&gt;;
#endif

}</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="class-numeric_limits">3.26.2. Class numeric_limits</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>namespace cl
{
template&lt;class T&gt;
class numeric_limits
{
public:
  static constexpr bool is_specialized = false;
  static constexpr T min() noexcept { return T(); }
  static constexpr T max() noexcept { return T(); }
  static constexpr T lowest() noexcept { return T(); }
  static constexpr int digits = 0;
  static constexpr int digits10 = 0;
  static constexpr int max_digits10 = 0;
  static constexpr bool is_signed = false;
  static constexpr bool is_integer = false;
  static constexpr bool is_exact = false;
  static constexpr int radix = 0;
  static constexpr T epsilon() noexcept { return T(); }
  static constexpr T round_error() noexcept { return T(); }
  static constexpr int min_exponent = 0;
  static constexpr int min_exponent10 = 0;
  static constexpr int max_exponent = 0;
  static constexpr int max_exponent10 = 0;
  static constexpr bool has_infinity = false;
  static constexpr bool has_quiet_NaN = false;
  static constexpr bool has_signaling_NaN = false;
  static constexpr float_denorm_style has_denorm = denorm_absent;
  static constexpr bool has_denorm_loss = false;
  static constexpr T infinity() noexcept { return T(); }
  static constexpr T quiet_NaN() noexcept { return T(); }
  static constexpr T signaling_NaN() noexcept { return T(); }
  static constexpr T denorm_min() noexcept { return T(); }
  static constexpr bool is_iec559 = false;
  static constexpr bool is_bounded = false;
  static constexpr bool is_modulo = false;
  static constexpr bool traps = false;
  static constexpr bool tinyness_before = false;
  static constexpr float_round_style round_style = round_toward_zero;
  static constexpr bool is_scalar = false;
  static constexpr bool is_vector = false;
};

template&lt;class T&gt; class numeric_limits&lt;const T&gt;;
template&lt;class T&gt; class numeric_limits&lt;volatile T&gt;;
template&lt;class T&gt; class numeric_limits&lt;const volatile T&gt;;

}</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="has_denorm-numeric_limits-class-member">3.26.3. has_denorm numeric_limits class member</h4>
<div class="paragraph">
<p><code>has_denorm</code> class member value depends on a macro:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>HAS_SINGLE_FP_DENORM</code> for type <code>float</code>.</p>
</li>
<li>
<p><code>HAS_HALF_FP_DENORM</code> for type <code>half</code>.</p>
</li>
<li>
<p><code>HAS_DOUBLE_FP_DENORM</code> for type <code>double</code>.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>If a macro is defined, <code>has_denorm</code> is set to <code>denorm_present</code>.
Otherwise it is <code>denorm_absent</code>.</p>
</div>
</div>
<div class="sect3">
<h4 id="floating-point-macros-and-limits">3.26.4. Floating-point macros and limits</h4>
<div class="paragraph">
<p>The macro names given in the following list must use the values specified.
These constant expressions are suitable for use in <code>#if</code> preprocessing directives.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#define FLT_DIG         6
#define FLT_MANT_DIG    24
#define FLT_MAX_10_EXP  +38
#define FLT_MAX_EXP     +128
#define FLT_MIN_10_EXP  -37
#define FLT_MIN_EXP     -125
#define FLT_RADIX       2
#define FLT_MAX         0x1.fffffep127f
#define FLT_MIN         0x1.0p-126f
#define FLT_EPSILON     0x1.0p-23f</code></pre>
</div>
</div>
<div class="paragraph">
<p>The following table describes the built-in macro names given above in the OpenCL C++ library and the corresponding macro names available to the application.</p>
</div>
<table class="tableblock frame-all grid-all spread">
<caption class="title">Table 22. Float Built-in Macros</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Macro in OpenCL C++</strong></th>
<th class="tableblock halign-left valign-top"><strong>Macro for application</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>FLT_DIG</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CL_FLT_DIG</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>FLT_MANT_DIG</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CL_FLT_MANT_DIG</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>FLT_MAX_10_EXP</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CL_FLT_MAX_10_EXP</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>FLT_MAX_EXP</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CL_FLT_MAX_EXP</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>FLT_MIN_10_EXP</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CL_FLT_MIN_10_EXP</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>FLT_MIN_EXP</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CL_FLT_MIN_EXP</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>FLT_RADIX</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CL_FLT_RADIX</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>FLT_MAX</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CL_FLT_MAX</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>FLT_MIN</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CL_FLT_MIN</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>FLT_EPSILSON</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CL_FLT_EPSILON</code></p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>The following macros shall expand to integer constant expressions whose values are returned by <code>ilogb(x)</code> if <code>x</code> is zero or NaN, respectively.
The value of <code>FP_ILOGB0</code> shall be either <code>INT_MIN</code> or <code>INT_MAX</code>. The value of <code>FP_ILOGBNAN</code> shall be either <code>INT_MAX</code> or <code>INT_MIN</code>.</p>
</div>
<div class="paragraph">
<p>If double precision is supported by the device, the following macros and constants are available:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#define DBL_DIG         15
#define DBL_MANT_DIG    53
#define DBL_MAX_10_EXP  +308
#define DBL_MAX_EXP     +1024
#define DBL_MIN_10_EXP  -307
#define DBL_MIN_EXP     -1021
#define DBL_MAX         0x1.fffffffffffffp1023
#define DBL_MIN         0x1.0p-1022
#define DBL_EPSILON     0x1.0p-52</code></pre>
</div>
</div>
<div class="paragraph">
<p>The macro names given in the following list must use the values specified.
These constant expressions are suitable for use in <code>#if</code> preprocessing directives.</p>
</div>
<div class="paragraph">
<p>The following table describes the built-in macro names given above in the OpenCL C++ library and the corresponding macro names available to the application.</p>
</div>
<table class="tableblock frame-all grid-all spread">
<caption class="title">Table 23. Double Built-in Macros</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Macro in OpenCL cpp</strong></th>
<th class="tableblock halign-left valign-top"><strong>Macro for application</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>DBL_DIG</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CL_DBL_DIG</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>DBL_MANT_DIG</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CL_DBL_MANT_DIG</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>DBL_MAX_10_EXP</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CL_DBL_MAX_10_EXP</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>DBL_MAX_EXP</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CL_DBL_MAX_EXP</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>DBL_MIN_10_EXP</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CL_DBL_MIN_10_EXP</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>DBL_MIN_EXP</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CL_DBL_MIN_EXP</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>DBL_MAX</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CL_DBL_MAX</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>DBL_MIN</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CL_DBL_MIN</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>DBL_EPSILSON</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CL_DBL_EPSILON</code></p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>If half precision arithmetic operations are supported, the following macros and constants for half precision floating-point are available:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#define HALF_DIG        3
#define HALF_MANT_DIG   11
#define HALF_MAX_10_EXP +4
#define HALF_MAX_EXP    +16
#define HALF_MIN_10_EXP -4
#define HALF_MIN_EXP    -13
#define HALF_RADIX      2
#define HALF_MAX        0x1.ffcp15h
#define HALF_MIN        0x1.0p-14h
#define HALF_EPSILON    0x1.0p-10h</code></pre>
</div>
</div>
<div class="paragraph">
<p>The macro names given in the following list must use the values specified.
These constant expressions are suitable for use in <code>#if</code> preprocessing directives.</p>
</div>
<div class="paragraph">
<p>The following table describes the built-in macro names given above in the OpenCL C++ library and the corresponding macro names available to the application.</p>
</div>
<table class="tableblock frame-all grid-all spread">
<caption class="title">Table 24. Half Built-in Macros</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Macro in OpenCL cpp</strong></th>
<th class="tableblock halign-left valign-top"><strong>Macro for application</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>HALF_DIG</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CL_HALF_DIG</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>HALF_MANT_DIG</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CL_HALF_MANT_DIG</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>HALF_MAX_10_EXP</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CL_HALF_MAX_10_EXP</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>HALF_MAX_EXP</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CL_HALF_MAX_EXP</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>HALF_MIN_10_EXP</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CL_HALF_MIN_10_EXP</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>HALF_MIN_EXP</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CL_HALF_MIN_EXP</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>HALF_RADIX</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CL_HALF_RADIX</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>HALF_MAX</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CL_HALF_MAX</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>HALF_MIN</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CL_HALF_MIN</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>HALF_EPSILSON</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CL_HALF_EPSILON</code></p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>The following symbolic constants are available.
Their values are of type float and are accurate within the precision of a single precision floating-point number.</p>
</div>
<table class="tableblock frame-all grid-all spread">
<caption class="title">Table 25. Float Symbolic Constants</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Constant Name</strong></th>
<th class="tableblock halign-left valign-top"><strong>Description</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>MAXFLOAT</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value of maximum non-infinite single-precision floating-point number.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>HUGE_VALF</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A positive float constant expression. <code>HUGE_VALF</code> evaluates to +infinity.
  Used as an error value returned by the built-in math functions.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>INFINITY</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A constant expression of type float representing positive or unsigned infinity.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>NAN</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A constant expression of type float representing a quiet NaN.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>If double precision is supported by the device, the following symbolic constant will also be available:</p>
</div>
<table class="tableblock frame-all grid-all spread">
<caption class="title">Table 26. Double Symbolic Constants</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Constant Name</strong></th>
<th class="tableblock halign-left valign-top"><strong>Description</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>HUGE_VAL</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A positive double constant expression.
  <code>HUGE_VAL</code> evaluates to +infinity.
  Used as an error value returned by the built-in math functions.</p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect3">
<h4 id="integer-macros-and-limits">3.26.5. Integer macros and limits</h4>
<div class="paragraph">
<p>The macro names given in the following list must use the values specified.
The values shall all be constant expressions suitable for use in <code>#if</code> preprocessing directives.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#define CHAR_BIT    8
#define CHAR_MAX    SCHAR_MAX
#define CHAR_MIN    SCHAR_MIN
#define INT_MAX     2147483647
#define INT_MIN     (-2147483647 - 1)
#define LONG_MAX    0x7fffffffffffffffL
#define LONG_MIN    (-0x7fffffffffffffffL - 1)
#define SCHAR_MAX   127
#define SCHAR_MIN   (-127 - 1)
#define SHRT_MAX    32767
#define SHRT_MIN    (-32767 - 1)
#define UCHAR_MAX   255
#define USHRT_MAX   65535
#define UINT_MAX    0xffffffff
#define ULONG_MAX   0xffffffffffffffffUL</code></pre>
</div>
</div>
<div class="paragraph">
<p>The following table describes the built-in macro names given above in the OpenCL C++ library and the corresponding macro names available to the application.</p>
</div>
<table class="tableblock frame-all grid-all spread">
<caption class="title">Table 27. Integer built-in macros</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Macro in OpenCL cpp</strong></th>
<th class="tableblock halign-left valign-top"><strong>Macro for application</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CHAR_BIT</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CL_CHAR_BIT</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CHAR_MAX</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CL_CHAR_MAX</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CHAR_MIN</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CL_CHAR_MIN</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>INT_MAX</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CL_INT_MAX</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>INT_MIN</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CL_INT_MIN</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>LONG_MAX</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CL_LONG_MAX</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>LONG_MIN</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CL_LONG_MIN</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>SCHAR_MAX</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CL_SCHAR_MAX</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>SCHAR_MIN</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CL_SCHAR_MIN</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>SHRT_MAX</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CL_SHRT_MAX</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>SHRT_MIN</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CL_SHRT_MIN</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>UCHAR_MAX</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CL_UCHAR_MAX</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>USHRT_MAX</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CL_USHRT_MAX</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>UINT_MAX</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CL_UINT_MAX</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>ULONG_MAX</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CL_ULONG_MAX</code></p></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="sect2">
<h3 id="math-constants-library">3.27. Math Constants Library</h3>
<div class="paragraph">
<p>OpenCL C++ implements math constant library.
The purpose of this library is to provide the commonly used constants for half, float and double data types.</p>
</div>
<div class="sect3">
<h4 id="header-opencl_math_constants-synopsis">3.27.1. Header &lt;opencl_math_constants&gt; Synopsis</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>namespace cl
{
template&lt;class T&gt; class math_constants;

#ifdef cl_khr_fp16
#define M_E_H           see below
#define M_LOG2E_H       see below
#define M_LOG10E_H      see below
#define M_LN2_H         see below
#define M_LN10_H        see below
#define M_PI_H          see below
#define M_PI_2_H        see below
#define M_PI_4_H        see below
#define M_1_PI_H        see below
#define M_2_PI_H        see below
#define M_2_SQRTPI_H    see below
#define M_SQRT2_H       see below
#define M_SQRT1_2_H     see below

template&lt;&gt; class math_constants&lt;half&gt;;
template&lt;&gt; class math_constants&lt;half2&gt;;
template&lt;&gt; class math_constants&lt;half3&gt;;
template&lt;&gt; class math_constants&lt;half4&gt;;
template&lt;&gt; class math_constants&lt;half8&gt;;
template&lt;&gt; class math_constants&lt;half16&gt;;
#endif

#define M_E_F           see below
#define M_LOG2E_F       see below
#define M_LOG10E_F      see below
#define M_LN2_F         see below
#define M_LN10_F        see below
#define M_PI_F          see below
#define M_PI_2_F        see below
#define M_PI_4_F        see below
#define M_1_PI_F        see below
#define M_2_PI_F        see below
#define M_2_SQRTPI_F    see below
#define M_SQRT2_F       see below
#define M_SQRT1_2_F     see below

template&lt;&gt; class math_constants&lt;float&gt;;
template&lt;&gt; class math_constants&lt;float2&gt;;
template&lt;&gt; class math_constants&lt;float3&gt;;
template&lt;&gt; class math_constants&lt;float4&gt;;
template&lt;&gt; class math_constants&lt;float8&gt;;
template&lt;&gt; class math_constants&lt;float16&gt;;

#ifdef cl_khr_fp64
#define M_E         see below
#define M_LOG2E     see below
#define M_LOG10E    see below
#define M_LN2       see below
#define M_LN10      see below
#define M_PI        see below
#define M_PI_2      see below
#define M_PI_4      see below
#define M_1_PI      see below
#define M_2_PI      see below
#define M_2_SQRTPI  see below
#define M_SQRT2     see below
#define M_SQRT1_2   see below

template&lt;&gt; class math_constants&lt;double&gt;;
template&lt;&gt; class math_constants&lt;double2&gt;;
template&lt;&gt; class math_constants&lt;double3&gt;;
template&lt;&gt; class math_constants&lt;double4&gt;;
template&lt;&gt; class math_constants&lt;double8&gt;;
template&lt;&gt; class math_constants&lt;double16&gt;;
#endif

template&lt;class T&gt;
constexpr T e_v = math_constants&lt;T&gt;::e();
template&lt;class T&gt;
constexpr T log2e_v = math_constants&lt;T&gt;::log2e();
template&lt;class T&gt;
constexpr T log10e_v = math_constants&lt;T&gt;::log10e();
template&lt;class T&gt;
constexpr T ln2_v = math_constants&lt;T&gt;::ln2();
template&lt;class T&gt;
constexpr T ln10_v = math_constants&lt;T&gt;::ln10();
template&lt;class T&gt;
constexpr T pi_v = math_constants&lt;T&gt;::pi();
template&lt;class T&gt;
constexpr T pi_2_v = math_constants&lt;T&gt;::pi_2();
template&lt;class T&gt;
constexpr T pi_4_v = math_constants&lt;T&gt;::pi_4();
template&lt;class T&gt;
constexpr T one_pi_v = math_constants&lt;T&gt;::one_pi();
template&lt;class T&gt;
constexpr T two_pi_v = math_constants&lt;T&gt;::two_pi();
template&lt;class T&gt;
constexpr T two_sqrtpi_v = math_constants&lt;T&gt;::two_sqrtpi();
template&lt;class T&gt;
constexpr T sqrt2_v = math_constants&lt;T&gt;::sqrt2();
template&lt;class T&gt;
constexpr T sqrt1_2_v = math_constants&lt;T&gt;::sqrt1_2();

}</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="class-math_constants">3.27.2. Class math_constants</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>namespace cl
{
template&lt;class T&gt;
class math_constants
{
public:
  static constexpr T e() noexcept { return T(); }
  static constexpr T log2e() noexcept { return T(); }
  static constexpr T log10e() noexcept { return T(); }
  static constexpr T ln2() noexcept { return T(); }
  static constexpr T ln10() noexcept { return T(); }
  static constexpr T pi() noexcept { return T(); }
  static constexpr T pi_2() noexcept { return T(); }
  static constexpr T pi_4() noexcept { return T(); }
  static constexpr T one_pi() noexcept { return T(); }
  static constexpr T two_pi() noexcept { return T(); }
  static constexpr T two_sqrtpi() noexcept { return T(); }
  static constexpr T sqrt2() noexcept { return T(); }
  static constexpr T sqrt1_2() noexcept { return T(); }
};

}</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="half-constants">3.27.3. Half Constants</h4>
<div class="paragraph">
<p>The following constants are also available.
They are of type <code>half</code> and are accurate within the precision of the <code>half</code> type.</p>
</div>
<table class="tableblock frame-all grid-all spread">
<caption class="title">Table 28. Half Constants</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Constant</strong></th>
<th class="tableblock halign-left valign-top"><strong>Description</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>e</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value of e</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>log2e</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value of log<sub>2</sub>e</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>log10e</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value of log<sub>10</sub>e</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>ln2</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value of log<sub>e</sub>2</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>ln10</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value of log<sub>e</sub>10</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>pi</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value of π</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>pi_2</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value of π / 2</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>pi_4</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value of π / 4</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>one_pi</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value of 1 / π</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>two_pi</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value of 2 / π</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>two_sqrtpi</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value of 2 / √π</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>sqrt2</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value of √2</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>sqrt1_2</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value of 1 / √2</p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect3">
<h4 id="float-constants">3.27.4. Float Constants</h4>
<div class="paragraph">
<p>The following constants are also available.
They are of type <code>float</code> and are accurate within the precision of the <code>float</code> type.</p>
</div>
<table class="tableblock frame-all grid-all spread">
<caption class="title">Table 29. Float Constants</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Constant</strong></th>
<th class="tableblock halign-left valign-top"><strong>Description</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>e</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value of e</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>log2e</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value of log<sub>2</sub>e</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>log10e</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value of log<sub>10</sub>e</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>ln2</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value of log<sub>e</sub>2</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>ln10</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value of log<sub>e</sub>10</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>pi</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value of π</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>pi_2</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value of π / 2</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>pi_4</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value of π / 4</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>one_pi</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value of 1 / π</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>two_pi</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value of 2 / π</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>two_sqrtpi</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value of 2 / √π</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>sqrt2</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value of √2</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>sqrt1_2</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value of 1 / √2</p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect3">
<h4 id="double-constants">3.27.5. Double Constants</h4>
<div class="paragraph">
<p>The following constants are also available.
They are of type <code>double</code> and are accurate within the precision of the <code>double</code> type.</p>
</div>
<table class="tableblock frame-all grid-all spread">
<caption class="title">Table 30. Double Constants</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Constant</strong></th>
<th class="tableblock halign-left valign-top"><strong>Description</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>e</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value of e</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>log2e</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value of log<sub>2</sub>e</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>log10e</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value of log<sub>10</sub>e</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>ln2</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value of log<sub>e</sub>2</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>ln10</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value of log<sub>e</sub>10</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>pi</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value of π</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>pi_2</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value of π / 2</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>pi_4</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value of π / 4</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>one_pi</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value of 1 / π</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>two_pi</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value of 2 / π</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>two_sqrtpi</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value of 2 / √π</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>sqrt2</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value of √2</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>sqrt1_2</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value of 1 / √2</p></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="sect2">
<h3 id="tuple-library">3.28. Tuple Library</h3>
<div class="paragraph">
<p>OpenCL C++ standard library implements most of the tuples described in <em>chapter 20.4 [tuple]</em> of C++14 standard.</p>
</div>
<div class="paragraph">
<p>The following parts of tuple library are not supported:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>allocator related traits (C++14 standard, <em>section 20.4.2.8</em>)</p>
</li>
</ul>
</div>
<div class="sect3">
<h4 id="header-opencl_tuple-synopsis">3.28.1. Header &lt;opencl_tuple&gt; Synopsis</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>namespace cl
{
// class template tuple:
template &lt;class... Types&gt; class tuple;

// tuple creation functions:
const unspecified ignore;
template &lt;class... Types&gt;
constexpr tuple&lt;VTypes ...&gt; make_tuple(Types&amp;&amp;...);
template &lt;class... Types&gt;
constexpr tuple&lt;Types&amp;&amp;...&gt; forward_as_tuple(Types&amp;&amp;...) noexcept;
template&lt;class... Types&gt;
constexpr tuple&lt;Types&amp;...&gt; tie(Types&amp;...) noexcept;
template &lt;class... Tuples&gt;
constexpr tuple&lt;Ctypes ...&gt; tuple_cat(Tuples&amp;&amp;...);

//  tuple helper classes:
template &lt;class T&gt; class tuple_size; // undefined
template &lt;class T&gt; class tuple_size&lt;const T&gt;;
template &lt;class T&gt; class tuple_size&lt;volatile T&gt;;
template &lt;class T&gt; class tuple_size&lt;const volatile T&gt;;
template &lt;class... Types&gt; class tuple_size&lt;tuple&lt;Types...&gt; &gt;;
template &lt;size_t I, class T&gt; class tuple_element; // undefined
template &lt;size_t I, class T&gt; class tuple_element&lt;I, const T&gt;;
template &lt;size_t I, class T&gt; class tuple_element&lt;I, volatile T&gt;;
template &lt;size_t I, class T&gt; class tuple_element&lt;I, const volatile T&gt;;
template &lt;size_t I, class... Types&gt; class tuple_element&lt;I, tuple&lt;Types...&gt; &gt;;
template &lt;size_t I, class T&gt;
using tuple_element_t = typename tuple_element&lt;I, T&gt;::type;

// element access:
template &lt;size_t I, class... Types&gt;
constexpr tuple_element_t&lt;I, tuple&lt;Types...&gt;&gt;&amp;
get(tuple&lt;Types...&gt;&amp;) noexcept;
template &lt;size_t I, class... Types&gt;
constexpr tuple_element_t&lt;I, tuple&lt;Types...&gt;&gt;&amp;&amp;
get(tuple&lt;Types...&gt;&amp;&amp;) noexcept;
template &lt;size_t I, class... Types&gt;
constexpr const tuple_element_t&lt;I, tuple&lt;Types...&gt;&gt;&amp;
get(const tuple&lt;Types...&gt;&amp;) noexcept;
template &lt;class T, class... Types&gt;
constexpr T&amp; get(tuple&lt;Types...&gt;&amp; t) noexcept;
template &lt;class T, class... Types&gt;
constexpr T&amp;&amp; get(tuple&lt;Types...&gt;&amp;&amp; t) noexcept;
template &lt;class T, class... Types&gt;
constexpr const T&amp; get(const tuple&lt;Types...&gt;&amp; t) noexcept;

// relational operators:
template&lt;class... TTypes, class... UTypes&gt;
constexpr bool operator==(const tuple&lt;TTypes...&gt;&amp;, const tuple&lt;UTypes...&gt;&amp;);
template&lt;class... TTypes, class... UTypes&gt;
constexpr bool operator&lt;(const tuple&lt;TTypes...&gt;&amp;, const tuple&lt;UTypes...&gt;&amp;);
template&lt;class... TTypes, class... UTypes&gt;
constexpr bool operator!=(const tuple&lt;TTypes...&gt;&amp;, const tuple&lt;UTypes...&gt;&amp;);
template&lt;class... TTypes, class... UTypes&gt;
constexpr bool operator&gt;(const tuple&lt;TTypes...&gt;&amp;, const tuple&lt;UTypes...&gt;&amp;);
template&lt;class... TTypes, class... UTypes&gt;
constexpr bool operator&lt;=(const tuple&lt;TTypes...&gt;&amp;, const tuple&lt;UTypes...&gt;&amp;);
template&lt;class... TTypes, class... UTypes&gt;
constexpr bool operator&gt;=(const tuple&lt;TTypes...&gt;&amp;, const tuple&lt;UTypes...&gt;&amp;);

// specialized algorithms:
template &lt;class... Types&gt;
void swap(tuple&lt;Types...&gt;&amp; x, tuple&lt;Types...&gt;&amp; y) noexcept(see cpp14 standard);

}</code></pre>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="type-traits-library">3.29. Type Traits Library</h3>
<div class="paragraph">
<p>OpenCL C++ supports type traits defined in C++14 specification with following changes:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>the <a href="#unary-type-traits"><em>Unary Type Traits</em></a> section describes additions and changes to <em>UnaryTypeTraits</em>.</p>
</li>
<li>
<p>the <a href="#binary-type-traits"><em>Binary type traits</em></a> section describes additions and changes to <em>BinaryTypeTraits</em>.</p>
</li>
<li>
<p>the <a href="#transformation-traits"><em>Transformation traits</em></a> section describes additions and changes to <em>TransformationTraits</em>.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>This section specifies only OpenCL specific type traits and modifications.
All C++ type traits are described in <em>chapter 20.10 [meta]</em> of C++14 standard.</p>
</div>
<div class="sect3">
<h4 id="header-opencl_type_traits-synopsis">3.29.1. Header &lt;opencl_type_traits&gt; Synopsis</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>namespace cl
{
// helper class:
template &lt;class T, T v&gt; struct integral_constant;
typedef integral_constant&lt;bool, true&gt; true_type;
typedef integral_constant&lt;bool, false&gt; false_type;

// primary type categories:
template &lt;class T&gt; struct is_void;
template &lt;class T&gt; struct is_null_pointer;
template &lt;class T&gt; struct is_integral;
template &lt;class T&gt; struct is_floating_point;
template &lt;class T&gt; struct is_array;
template &lt;class T&gt; struct is_pointer;
template &lt;class T&gt; struct is_lvalue_reference;
template &lt;class T&gt; struct is_rvalue_reference;
template &lt;class T&gt; struct is_member_object_pointer;
template &lt;class T&gt; struct is_member_function_pointer;
template &lt;class T&gt; struct is_enum;
template &lt;class T&gt; struct is_union;
template &lt;class T&gt; struct is_class;
template &lt;class T&gt; struct is_function;

// composite type categories:
template &lt;class T&gt; struct is_reference;
template &lt;class T&gt; struct is_arithmetic;
template &lt;class T&gt; struct is_fundamental;
template &lt;class T&gt; struct is_object;
template &lt;class T&gt; struct is_scalar;
template &lt;class T&gt; struct is_compound;
template &lt;class T&gt; struct is_member_pointer;

// type properties:
template &lt;class T&gt; struct is_const;
template &lt;class T&gt; struct is_volatile;
template &lt;class T&gt; struct is_private;
template &lt;class T&gt; struct is_local;
template &lt;class T&gt; struct is_global;
template &lt;class T&gt; struct is_constant;
template &lt;class T&gt; struct is_generic;
template &lt;class T&gt; struct is_vector;
template &lt;class T&gt; struct is_trivial;
template &lt;class T&gt; struct is_trivially_copyable;
template &lt;class T&gt; struct is_standard_layout;
template &lt;class T&gt; struct is_pod;
template &lt;class T&gt; struct is_literal_type;
template &lt;class T&gt; struct is_empty;
template &lt;class T&gt; struct is_polymorphic;
template &lt;class T&gt; struct is_abstract;
template &lt;class T&gt; struct is_final;
template &lt;class T&gt; struct is_signed;
template &lt;class T&gt; struct is_unsigned;
template &lt;class T, class... Args&gt; struct is_constructible;
template &lt;class T&gt; struct is_default_constructible;
template &lt;class T&gt; struct is_copy_constructible;
template &lt;class T&gt; struct is_move_constructible;
template &lt;class T, class U&gt; struct is_assignable;
template &lt;class T&gt; struct is_copy_assignable;
template &lt;class T&gt; struct is_move_assignable;
template &lt;class T&gt; struct is_destructible;
template &lt;class T, class... Args&gt; struct is_trivially_constructible;
template &lt;class T&gt; struct is_trivially_default_constructible;
template &lt;class T&gt; struct is_trivially_copy_constructible;
template &lt;class T&gt; struct is_trivially_move_constructible;
template &lt;class T, class U&gt; struct is_trivially_assignable;
template &lt;class T&gt; struct is_trivially_copy_assignable;
template &lt;class T&gt; struct is_trivially_move_assignable;
template &lt;class T&gt; struct is_trivially_destructible;
template &lt;class T, class... Args&gt; struct is_nothrow_constructible;
template &lt;class T&gt; struct is_nothrow_default_constructible;
template &lt;class T&gt; struct is_nothrow_copy_constructible;
template &lt;class T&gt; struct is_nothrow_move_constructible;
template &lt;class T, class U&gt; struct is_nothrow_assignable;
template &lt;class T&gt; struct is_nothrow_copy_assignable;
template &lt;class T&gt; struct is_nothrow_move_assignable;
template &lt;class T&gt; struct is_nothrow_destructible;
template &lt;class T&gt; struct has_virtual_destructor;

// type property queries:
template &lt;class T&gt; struct alignment_of;
template &lt;class T&gt; struct rank;
template &lt;class T, unsigned I = 0&gt; struct extent;
// type relations:
template &lt;class T, class U&gt; struct is_same;
template &lt;class Base, class Derived&gt; struct is_base_of;
template &lt;class From, class To&gt; struct is_convertible;

// const-volatile modifications:
template &lt;class T&gt; struct remove_const;
template &lt;class T&gt; struct remove_volatile;
template &lt;class T&gt; struct remove_cv;
template &lt;class T&gt; struct add_const;
template &lt;class T&gt; struct add_volatile;
template &lt;class T&gt; struct add_cv;
template &lt;class T&gt;
using remove_const_t = typename remove_const&lt;T&gt;::type;
template &lt;class T&gt;
using remove_volatile_t = typename remove_volatile&lt;T&gt;::type;
template &lt;class T&gt;
using remove_cv_t = typename remove_cv&lt;T&gt;::type;
template &lt;class T&gt;
using add_const_t = typename add_const&lt;T&gt;::type;
template &lt;class T&gt;
using add_volatile_t = typename add_volatile&lt;T&gt;::type;
template &lt;class T&gt;
using add_cv_t = typename add_cv&lt;T&gt;::type;

// as modifications
template &lt;class T&gt; struct remove_constant;
template &lt;class T&gt; struct remove_local;
template &lt;class T&gt; struct remove_global;
template &lt;class T&gt; struct remove_private;
template &lt;class T&gt; struct remove_generic;
template &lt;class T&gt; struct remove_as;
template &lt;class T&gt; struct remove_attrs;
template &lt;class T&gt; struct add_constant;
template &lt;class T&gt; struct add_local;
template &lt;class T&gt; struct add_global;
template &lt;class T&gt; struct add_private;
template &lt;class T&gt; struct add_generic;
template &lt;class T&gt;
using remove_constant_t = typename remove_constant&lt;T&gt;::type;
template &lt;class T&gt;
using remove_local_t = typename remove_local&lt;T&gt;::type;
template &lt;class T&gt;
using remove_global_t = typename remove_global&lt;T&gt;::type;
template &lt;class T&gt;
using remove_private_t = typename remove_private&lt;T&gt;::type;
template &lt;class T&gt;
using remove_generic_t = typename remove_generic&lt;T&gt;::type;
template &lt;class T&gt;
using remove_as_t = typename remove_as&lt;T&gt;::type;
template &lt;class T&gt;
using remove_attrs_t = typename remove_attrs&lt;T&gt;::type;
template &lt;class T&gt;
using add_constant_t = typename add_constant&lt;T&gt;::type;
template &lt;class T&gt;
using add_local_t = typename add_local&lt;T&gt;::type;
template &lt;class T&gt;
using add_global_t = typename add_global&lt;T&gt;::type;
template &lt;class T&gt;
using add_private_t = typename add_private&lt;T&gt;::type;
template &lt;class T&gt;
using add_generic_t = typename add_generic&lt;T&gt;::type;

// reference modifications:
template &lt;class T&gt; struct remove_reference;
template &lt;class T&gt; struct add_lvalue_reference;
template &lt;class T&gt; struct add_rvalue_reference;
template &lt;class T&gt;
using remove_reference_t = typename remove_reference&lt;T&gt;::type;
template &lt;class T&gt;
using add_lvalue_reference_t = typename add_lvalue_reference&lt;T&gt;::type;
template &lt;class T&gt;
using add_rvalue_reference_t = typename add_rvalue_reference&lt;T&gt;::type;

// sign modifications:
template &lt;class T&gt; struct make_signed;
template &lt;class T&gt; struct make_unsigned;
template &lt;class T&gt;
using make_signed_t = typename make_signed&lt;T&gt;::type;
template &lt;class T&gt;
using make_unsigned_t = typename make_unsigned&lt;T&gt;::type;

// array modifications:
template &lt;class T&gt; struct remove_extent;
template &lt;class T&gt; struct remove_all_extents;
template &lt;class T&gt;
using remove_extent_t = typename remove_extent&lt;T&gt;::type;
template &lt;class T&gt;
using remove_all_extents_t = typename remove_all_extents&lt;T&gt;::type;

// pointer modifications:
template &lt;class T&gt; struct remove_pointer;
template &lt;class T&gt; struct add_pointer;
template &lt;class T&gt;
using remove_pointer_t = typename remove_pointer&lt;T&gt;::type;
template &lt;class T&gt;
using add_pointer_t = typename add_pointer&lt;T&gt;::type;

// built-in vector queries
template &lt;class T&gt; struct is_vector_type;
template &lt;class T&gt; struct vector_size;

// built-in vector modifications
template &lt;class T&gt; struct vector_element;
template &lt;class T, uint DIM&gt; struct make_vector;
template &lt;class T&gt;
using vector_element_t = typename vector_element&lt;T&gt;::type;
template &lt;class T, uint DIM&gt;
using make_vector_t = typename make_vector&lt;T,DIM&gt;::type;

// other transformations:
template &lt;cl::size_t Len,
cl::size_t Align = default-alignment&gt;
struct aligned_storage;
template &lt;cl::size_t Len, class... Types&gt; struct aligned_union;
template &lt;class T&gt; struct decay;
template &lt;bool, class T = void&gt; struct enable_if;
template &lt;bool, class T, class F&gt; struct conditional;
template &lt;class... T&gt; struct common_type;
template &lt;class T&gt; struct underlying_type;
template &lt;class&gt; class result_of; // not defined
template &lt;class F, class... ArgTypes&gt; class result_of&lt;F(ArgTypes...)&gt;;
template &lt;cl::size_t Len,
cl::size_t Align = default-alignment &gt;
using aligned_storage_t = typename aligned_storage&lt;Len,Align&gt;::type;
template &lt;cl::size_t Len, class... Types&gt;
using aligned_union_t = typename aligned_union&lt;Len,Types...&gt;::type;
template &lt;class T&gt;
using decay_t = typename decay&lt;T&gt;::type;
template &lt;bool b, class T = void&gt;
using enable_if_t = typename enable_if&lt;b,T&gt;::type;
template &lt;bool b, class T, class F&gt;
using conditional_t = typename conditional&lt;b,T,F&gt;::type;
template &lt;class... T&gt;
using common_type_t = typename common_type&lt;T...&gt;::type;
template &lt;class T&gt;
using underlying_type_t = typename underlying_type&lt;T&gt;::type;
template &lt;class T&gt;
using result_of_t = typename result_of&lt;T&gt;::type;
template &lt;class...&gt;
using void_t = void;

}</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="unary-type-traits">3.29.2. Unary Type Traits</h4>
<div class="sect4">
<h5 id="additional-type-property-predicates">Additional type property predicates</h5>
<table class="tableblock frame-all grid-all spread">
<caption class="title">Table 31. Additional type property predicates</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Template</strong></th>
<th class="tableblock halign-left valign-top"><strong>Condition</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>template &lt;class T&gt; struct is_private;</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implementation defined.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>template &lt;class T&gt; struct is_local;</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implementation defined.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>template &lt;class T&gt; struct is_global;</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implementation defined.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>template &lt;class T&gt; struct is_constant;</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implementation defined.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>template &lt;class T&gt; struct is_generic;</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implementation defined.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>template &lt;class T&gt; struct is_vector;</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>T</code> is built-in vector type.</p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect4">
<h5 id="additional-type-property-queries">Additional type property queries</h5>
<table class="tableblock frame-all grid-all spread">
<caption class="title">Table 32. Additional type property queries</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Template</strong></th>
<th class="tableblock halign-left valign-top"><strong>Value</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>template &lt;class T&gt; struct vector_size;</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">If <code>T</code> names a built-in vector type, an integer value representing number of <code>T</code>'s components; otherwise <code>1</code>.</p></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="sect3">
<h4 id="binary-type-traits">3.29.3. Binary type traits</h4>
<div class="sect4">
<h5 id="changed-relationships-traits">Changed relationships traits</h5>
<table class="tableblock frame-all grid-all spread">
<caption class="title">Table 33. Changed relationship traits</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Template</strong></th>
<th class="tableblock halign-left valign-top"><strong>Condition</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>template &lt;class T, class U&gt; struct is_same;</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>T</code> and <code>U</code> name the same type with the same <em>cv qualifications</em>.</p></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="sect3">
<h4 id="transformation-traits">3.29.4. Transformation traits</h4>
<div class="sect4">
<h5 id="address-space-and-vector-modifications">Address space and vector modifications</h5>
<table class="tableblock frame-all grid-all spread">
<caption class="title">Table 34. Address space and vector traits</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Template</strong></th>
<th class="tableblock halign-left valign-top"><strong>Comments</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>template &lt;class T&gt; Xstruct remove_private;</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implementation defined.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>template &lt;class T&gt; Xstruct remove_local;</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implementation defined.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>template &lt;class T&gt; Xstruct remove_global;</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implementation defined.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>template &lt;class T&gt; Xstruct remove_constant;</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implementation defined.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>template &lt;class T&gt; Xstruct remove_generic;</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implementation defined.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>template &lt;class T&gt; Xstruct remove_as;</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implementation defined.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>template &lt;class T&gt; Xstruct remove_attrs;</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implementation defined.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>template &lt;class T&gt; Xstruct add_private;</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implementation defined.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>template &lt;class T&gt; Xstruct add_local;</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implementation defined.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>template &lt;class T&gt; Xstruct add_global;</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implementation defined.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>template &lt;class T&gt; Xstruct add_constant;</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implementation defined.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>template &lt;class T&gt; Xstruct add_generic;</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implementation defined.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>template &lt;class T&gt; Xstruct vector_element;</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">If <code>T</code> is a built-in vector type, member typedef <code>T</code> shall name type of <code>T</code>'s component; otherwise it shall name <code>T</code>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>template &lt;class T, size_t Dim&gt; struct make_vector;</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">If type <code>U</code> exists and names a built-in vector type with <code>Dim</code> components of type <code>T</code>, member typedef type shall name <code>U</code>; otherwise it shall name <code>T</code>.</p></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="sect2">
<h3 id="iterator-library">3.30. Iterator Library</h3>
<div class="paragraph">
<p>OpenCL C++ implements part of iterator library (<em>chapter 24, [iterators]</em>) from the C++14 standard.
Primitives (C++14 standard, <em>section 24.4</em>), iterator operations (C++14 standard, <em>section 24.4.4,</em>), predefined iterators (C++14 standard, <em>section 24.5</em>) and range access (C++14 standard, <em>section 24.7</em>) are supported.</p>
</div>
<div class="paragraph">
<p>For the detailed description please refer to C++14 standard.</p>
</div>
<div class="sect3">
<h4 id="header-opencl_iterator-synopsis">3.30.1. Header &lt;opencl_iterator&gt; Synopsis</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>namespace cl
{
// primitives:
template&lt;class Iterator&gt; struct iterator_traits;
template&lt;class T&gt; struct iterator_traits&lt;T*&gt;;
template&lt;class Category, class T, class Distance = ptrdiff_t,
class Pointer = T*, class Reference = T&amp;&gt; struct iterator;

struct input_iterator_tag { };
struct output_iterator_tag { };
struct forward_iterator_tag: public input_iterator_tag { };
struct bidirectional_iterator_tag: public forward_iterator_tag { };
struct random_access_iterator_tag: public bidirectional_iterator_tag { };

// iterator operations:
template &lt;class InputIterator, class Distance&gt;
void advance(InputIterator&amp; i, Distance n);
template &lt;class InputIterator&gt;
typename iterator_traits&lt;InputIterator&gt;::difference_type
distance(InputIterator first, InputIterator last);
template &lt;class ForwardIterator&gt;
ForwardIterator next(ForwardIterator x,
typename std::iterator_traits&lt;ForwardIterator&gt;::difference_type n = 1);
template &lt;class BidirectionalIterator&gt;
BidirectionalIterator prev(BidirectionalIterator x,
typename std::iterator_traits&lt;BidirectionalIterator&gt;::difference_type n = 1);

// predefined iterators:
template &lt;class Iterator&gt; class reverse_iterator;
template &lt;class Iterator1, class Iterator2&gt;
bool operator==(
const reverse_iterator&lt;Iterator1&gt;&amp; x,
const reverse_iterator&lt;Iterator2&gt;&amp; y);
template &lt;class Iterator1, class Iterator2&gt;
bool operator&lt;(
const reverse_iterator&lt;Iterator1&gt;&amp; x,
const reverse_iterator&lt;Iterator2&gt;&amp; y);
template &lt;class Iterator1, class Iterator2&gt;
bool operator!=(
const reverse_iterator&lt;Iterator1&gt;&amp; x,
const reverse_iterator&lt;Iterator2&gt;&amp; y);
template &lt;class Iterator1, class Iterator2&gt;
bool operator&gt;(
const reverse_iterator&lt;Iterator1&gt;&amp; x,
const reverse_iterator&lt;Iterator2&gt;&amp; y);
template &lt;class Iterator1, class Iterator2&gt;
bool operator&gt;=(
const reverse_iterator&lt;Iterator1&gt;&amp; x,
const reverse_iterator&lt;Iterator2&gt;&amp; y);
template &lt;class Iterator1, class Iterator2&gt;
bool operator&lt;=(
const reverse_iterator&lt;Iterator1&gt;&amp; x,
const reverse_iterator&lt;Iterator2&gt;&amp; y);
template &lt;class Iterator1, class Iterator2&gt;
auto operator-(
const reverse_iterator&lt;Iterator1&gt;&amp; x,
const reverse_iterator&lt;Iterator2&gt;&amp; y) -&gt;decltype(y.base() - x.base());
template &lt;class Iterator&gt;
reverse_iterator&lt;Iterator&gt;
operator+(typename reverse_iterator&lt;Iterator&gt;::difference_type n,
          const reverse_iterator&lt;Iterator&gt;&amp; x);
template &lt;class Iterator&gt;
reverse_iterator&lt;Iterator&gt; make_reverse_iterator(Iterator i);
template &lt;class Container&gt; class back_insert_iterator;
template &lt;class Container&gt;
back_insert_iterator&lt;Container&gt; back_inserter(Container&amp; x);
template &lt;class Container&gt; class front_insert_iterator;
template &lt;class Container&gt;
front_insert_iterator&lt;Container&gt; front_inserter(Container&amp; x);
template &lt;class Container&gt; class insert_iterator;
template &lt;class Container&gt;
insert_iterator&lt;Container&gt; inserter(Container&amp; x,
                                    typename Container::iterator i);
template &lt;class Iterator&gt; class move_iterator;
template &lt;class Iterator1, class Iterator2&gt;
bool operator==(
const move_iterator&lt;Iterator1&gt;&amp; x, const move_iterator&lt;Iterator2&gt;&amp; y);
template &lt;class Iterator1, class Iterator2&gt;
bool operator!=(
const move_iterator&lt;Iterator1&gt;&amp; x, const move_iterator&lt;Iterator2&gt;&amp; y);
template &lt;class Iterator1, class Iterator2&gt;
bool operator&lt;(
const move_iterator&lt;Iterator1&gt;&amp; x, const move_iterator&lt;Iterator2&gt;&amp; y);
template &lt;class Iterator1, class Iterator2&gt;
bool operator&lt;=(
const move_iterator&lt;Iterator1&gt;&amp; x, const move_iterator&lt;Iterator2&gt;&amp; y);
template &lt;class Iterator1, class Iterator2&gt;
bool operator&gt;(
const move_iterator&lt;Iterator1&gt;&amp; x, const move_iterator&lt;Iterator2&gt;&amp; y);
template &lt;class Iterator1, class Iterator2&gt;
bool operator&gt;=(
const move_iterator&lt;Iterator1&gt;&amp; x, const move_iterator&lt;Iterator2&gt;&amp; y);
template &lt;class Iterator1, class Iterator2&gt;
auto operator-(
const move_iterator&lt;Iterator1&gt;&amp; x,
const move_iterator&lt;Iterator2&gt;&amp; y) -&gt; decltype(x.base() - y.base());
template &lt;class Iterator&gt;
move_iterator&lt;Iterator&gt; operator+(
                            typename move_iterator&lt;Iterator&gt;::difference_type n,
                            const move_iterator&lt;Iterator&gt;&amp; x);
template &lt;class Iterator&gt;
move_iterator&lt;Iterator&gt; make_move_iterator(Iterator i);

// range access:
template &lt;class C&gt; auto begin(C&amp; c) -&gt; decltype(c.begin());
template &lt;class C&gt; auto begin(const C&amp; c) -&gt; decltype(c.begin());
template &lt;class C&gt; auto end(C&amp; c) -&gt; decltype(c.end());
template &lt;class C&gt; auto end(const C&amp; c) -&gt; decltype(c.end());
template &lt;class T, size_t N&gt; constexpr T* begin(T (&amp;array)[N]) noexcept;
template &lt;class T, size_t N&gt; constexpr T* end(T (&amp;array)[N]) noexcept;
template &lt;class C&gt;
constexpr auto cbegin(const C&amp; c) noexcept(noexcept(std::begin(c)))
-&gt; decltype(std::begin(c));
template &lt;class C&gt;
constexpr auto cend(const C&amp; c) noexcept(noexcept(std::end(c)))
-&gt; decltype(std::end(c));
template &lt;class C&gt; auto rbegin(C&amp; c) -&gt; decltype(c.rbegin());
template &lt;class C&gt; auto rbegin(const C&amp; c) -&gt; decltype(c.rbegin());
template &lt;class C&gt; auto rend(C&amp; c) -&gt; decltype(c.rend());
template &lt;class C&gt; auto rend(const C&amp; c) -&gt; decltype(c.rend());
template &lt;class T, size_t N&gt; reverse_iterator&lt;T*&gt; rbegin(T (&amp;array)[N]);
template &lt;class T, size_t N&gt; reverse_iterator&lt;T*&gt; rend(T (&amp;array)[N]);
template &lt;class E&gt; reverse_iterator&lt;const E*&gt; rbegin(initializer_list&lt;E&gt; il);
template &lt;class E&gt; reverse_iterator&lt;const E*&gt; rend(initializer_list&lt;E&gt; il);
template &lt;class C&gt; auto crbegin(const C&amp; c) -&gt; decltype(std::rbegin(c));
template &lt;class C&gt; auto crend(const C&amp; c) -&gt; decltype(std::rend(c));

}</code></pre>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="general-utilities-library">3.31. General Utilities Library</h3>
<div class="paragraph">
<p>OpenCL C++ implements part of utility library (<em>chapter 20.2, [utilities]</em>) from the C++14 standard.</p>
</div>
<div class="paragraph">
<p>For the detailed description please refer to C++14 standard.</p>
</div>
<div class="sect3">
<h4 id="header-opencl_utility-synopsis">3.31.1. Header &lt;opencl_utility&gt; Synopsis</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>namespace cl
{
template&lt;class T&gt;
add_rvalue_reference_t&lt;T&gt; declval( );

template &lt;class T&gt;
constexpr T&amp;&amp; forward(typename remove_reference_t&amp; t) noexcept;
template &lt;class T&gt;
constexpr T&amp;&amp; forward(typename remove_reference_t&amp;&amp; t) noexcept;
template &lt;class T&gt;
constexpr typename remove_reference_t&amp;&amp; move(T&amp;&amp; t) noexcept;

template&lt;class T&gt;
void swap(T&amp; a, T&amp; b) noexcept;

template &lt;class T&gt;
  constexpr conditional_t&lt;
  !is_nothrow_move_constructible&lt;T&gt;::value &amp;&amp; is_copy_constructible&lt;T&gt;::value,
  const T&amp;, T&amp;&amp;&gt; move_if_noexcept(T&amp; x) noexcept;

}</code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="opencl-numerical-compliance">4. OpenCL Numerical Compliance</h2>
<div class="sectionbody">
<div class="paragraph">
<p>This section describes features of the C++14 and IEEE 754 standards that must be supported by all OpenCL compliant devices.</p>
</div>
<div class="paragraph">
<p>This section describes the functionality that must be supported by all OpenCL devices for single precision floating-point numbers.
Currently, only single precision and half precision floating-point is a requirement.
Double precision floating-point is an optional feature.</p>
</div>
<div class="sect2">
<h3 id="rounding-modes-1">4.1. Rounding Modes</h3>
<div class="paragraph">
<p>Floating-point calculations may be carried out internally with extra precision and then rounded to fit into the destination type.
IEEE 754 defines four possible rounding modes:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Round to nearest even.</p>
</li>
<li>
<p>Round toward +infinity.</p>
</li>
<li>
<p>Round toward -infinity.</p>
</li>
<li>
<p>Round toward zero.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p><em>Round to nearest even</em> is currently the only rounding mode required <a id="ftnref30"></a> <a href="#ftn30">[30]</a> by the OpenCL specification for single precision and double precision operations and is therefore the default rounding mode.
In addition, only static selection of rounding mode is supported.
Static and dynamic selection of rounding mode is not supported.</p>
</div>
</div>
<div class="sect2">
<h3 id="inf-nan-and-denormalized-numbers">4.2. INF, NaN and Denormalized Numbers</h3>
<div class="paragraph">
<p>INF and NaNs must be supported.
Support for signaling NaNs is not required.</p>
</div>
<div class="paragraph">
<p>Support for denormalized numbers with single precision floating-point is optional.
Denormalized single precision floating-point numbers passed as input or produced as the output of single precision floating-point operations such as add, sub, mul, divide, and the functions defined in <a href="#math-functions">Math Functions</a>, <a href="#common-functions">Common Functions</a> and <a href="#geometric-functions">Geometric Functions</a> may be flushed to zero.</p>
</div>
</div>
<div class="sect2">
<h3 id="floating-point-exceptions">4.3. Floating-Point Exceptions</h3>
<div class="paragraph">
<p>Floating-point exceptions are disabled in OpenCL.
The result of a floating-point exception must match the IEEE 754 spec for the exceptions not enabled case.
Whether and when the implementation sets floating-point flags or raises floating-point exceptions is implementation-defined.
This standard provides no method for querying, clearing or setting floating-point flags or trapping raised exceptions.
Due to non-performance, non-portability of trap mechanisms and the impracticality of servicing precise exceptions in a vector context (especially on heterogeneous hardware), such features are discouraged.</p>
</div>
<div class="paragraph">
<p>Implementations that nevertheless support such operations through an extension to the standard shall initialize with all exception flags cleared and the exception masks set so that exceptions raised by arithmetic operations do not trigger a trap to be taken.
If the underlying work is reused by the implementation, the implementation is however not responsible for reclearing the flags or resetting exception masks to default values before entering the kernel.
That is to say that kernels that do not inspect flags or enable traps are licensed to expect that their arithmetic will not trigger a trap.
Those kernels that do examine flags or enable traps are responsible for clearing flag state and disabling all traps before returning control to the implementation.
Whether or when the underlying work-item (and accompanying global floating-point state if any) is reused is implementation-defined.</p>
</div>
<div class="paragraph">
<p>The expressions math_errorhandling and MATH_ERREXCEPT are reserved for use by this standard, but not defined.
Implementations that extend this specification with support for floating-point exceptions shall define <code>math_errorhandling</code> and <code>MATH_ERREXCEPT</code> per ISO / IEC 9899 : TC2.</p>
</div>
</div>
<div class="sect2">
<h3 id="relative-error-as-ulps">4.4. Relative Error as ULPs</h3>
<div class="paragraph">
<p>In this section we discuss the maximum relative error defined as ulp (units in the last place).
Addition, subtraction, multiplication, fused multiply-add and conversion between integer and a single precision floating-point format are IEEE 754 compliant and are therefore correctly rounded.
Conversion between floating-point formats and explicit conversions specified in the <a href="#conversions-library"><em>Conversions Library</em></a> section must be correctly rounded.</p>
</div>
<div class="paragraph">
<p>The ULP is defined as follows:</p>
</div>
<div class="paragraph">
<p>If x is a real number that lies between two finite consecutive floating-point numbers a and b, without being equal to one of them, then ulp(x) = |b - a|, otherwise ulp(x) is the distance between the two non-equal finite floating-point numbers nearest x.
Moreover, ulp(NaN) is NaN.</p>
</div>
<div class="paragraph">
<p><em>Attribution: This definition was taken with consent from Jean-Michel Muller with slight clarification for behavior at zero.
Refer to <a href="ftp://ftp.inria.fr/INRIA/publication/publi-pdf/RR/RR-5504.pdf" class="bare">ftp://ftp.inria.fr/INRIA/publication/publi-pdf/RR/RR-5504.pdf</a></em></p>
</div>
<div class="paragraph">
<p><a href="#ulp_values_for_single_precision_builtin_math_functions">ULP values for single precision built-in math functions</a> <a id="ftnref31"></a> <a href="#ftn31">[31]</a> table describes the minimum accuracy of single precision floating-point arithmetic operations given as ULP values.
The reference value used to compute the ULP value of an arithmetic operation is the infinitely precise result.</p>
</div>
<table id="ulp_values_for_single_precision_builtin_math_functions" class="tableblock frame-all grid-all spread">
<caption class="title">Table 35. ULP values for single precision built-in math functions</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Function</strong></th>
<th class="tableblock halign-left valign-top"><strong>Min Accuracy - ULP values <a id="ftnref32"></a> <a href="#ftn32">[32]</a></strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>x</em> + <em>y</em></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>x</em> - <em>y</em></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>x</em> * <em>y</em></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">1.0  / <em>x</em></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2.5 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>x</em> / <em>y</em></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2.5 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">acos</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">acospi</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 5 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">asin</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">asinpi</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 5 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">atan</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 5 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">atan2</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 6 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">atanpi</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 5 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">atan2pi</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 6 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">acosh</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">asinh</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">atanh</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 5 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">cbrt</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">ceil</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">copysign</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">cos</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">cosh</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">cospi</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">erfc</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 16 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">erf</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 16 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">exp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 3 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">exp2</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 3 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">exp10</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 3 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">expm1</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 3 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">fabs</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">fdim</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">floor</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">fma</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">fmax</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">fmin</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">fmod</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">fract</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">frexp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">hypot</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">ilogb</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">ldexp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">log</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 3 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">log2</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 3 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">log10</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 3 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">log1p</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">logb</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">mad</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implemented either as a correctly rounded fma or as a multiply followed by an add both of which are correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">maxmag</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">minmag</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">modf</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">nan</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">nextafter</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">pow(x, y)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 16 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">pown(x, y)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 16 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">powr(x, y)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 16 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">remainder</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">remquo</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">rint</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">rootn</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 16 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">round</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">rsqrt</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">sin</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">sincos</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp for sine and cosine values</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">sinh</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">sinpi</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">sqrt</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 3 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">tan</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 5 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">tanh</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 5 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">tanpi</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 6 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">tgamma</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 16 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">trunc</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">native_math::cos</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implementation-defined</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">native_math::divide</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implementation-defined</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">native_math::exp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implementation-defined</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">native_math::exp2</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implementation-defined</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">native_math::exp10</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implementation-defined</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">native_math::log</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implementation-defined</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">native_math::log2</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implementation-defined</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">native_math::log10</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implementation-defined</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">native_math::powr</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implementation-defined</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">native_math::recip</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implementation-defined</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">native_math::rsqrt</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implementation-defined</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">native_math::sin</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implementation-defined</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">native_math::sqrt</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implementation-defined</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">native_math::tan</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implementation-defined</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p><a href="#ulp_values_for_single_precision_builtin_math_functions_for_embedded_profile">ULP values for single precision builtin math functions for embedded profile</a> table describes the minimum accuracy of single precision floating-point arithmetic operations given as ULP values for the embedded profile.
The reference value used to compute the ULP value of an arithmetic operation is the infinitely precise result.</p>
</div>
<table id="ulp_values_for_single_precision_builtin_math_functions_for_embedded_profile" class="tableblock frame-all grid-all spread">
<caption class="title">Table 36. ULP values for single precision built-in math functions for embedded profile</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Function</strong></th>
<th class="tableblock halign-left valign-top"><strong>Min Accuracy - ULP values <a href="#ftn32">[32]</a></strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>x</em> + <em>y</em></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>x</em> - <em>y</em></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>x</em> * <em>y</em></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">1.0  / <em>x</em></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 3 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>x</em> / <em>y</em></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 3 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">acos</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">acospi</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 5 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">asin</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">asinpi</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 5 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">atan</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 5 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">atan2</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 6 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">atanpi</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 5 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">atan2pi</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 6 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">acosh</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">asinh</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">atanh</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 5 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">cbrt</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">ceil</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">copysign</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">cos</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">cosh</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">cospi</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">erfc</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 16 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">erf</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 16 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">exp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">exp2</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">exp10</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">expm1</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">fabs</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">fdim</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">floor</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">fma</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">fmax</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">fmin</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">fmod</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">fract</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">frexp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">hypot</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">ilogb</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">ldexp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">log</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">log2</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">log10</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">log1p</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">logb</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">mad</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Any value allowed (infinite ulp)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">maxmag</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">minmag</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">modf</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">nan</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">nextafter</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">pow(x, y)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 16 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">pown(x, y)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 16 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">powr(x, y)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 16 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">remainder</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">remquo</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">rint</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">rootn</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 16 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">round</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">rsqrt</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">sin</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">sincos</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp for sine and cosine values</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">sinh</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">sinpi</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">sqrt</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">tan</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 5 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">tanh</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 5 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">tanpi</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 6 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">tgamma</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 16 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">trunc</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">half_cos</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 8192 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">half_divide</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 8192 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">half_exp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 8192 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">half_exp2</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 8192 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">half_exp10</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 8192 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">half_log</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 8192 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">half_log2</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 8192 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">half_log10</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 8192 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">half_powr</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 8192 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">half_recip</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 8192 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">half_rsqrt</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 8192 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">half_sin</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 8192 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">half_sqrt</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 8192 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">half_tan</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 8192 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">native_math::cos</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implementation-defined</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">native_math::divide</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implementation-defined</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">native_math::exp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implementation-defined</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">native_math::exp2</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implementation-defined</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">native_math::exp10</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implementation-defined</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">native_math::log</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implementation-defined</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">native_math::log2</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implementation-defined</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">native_math::log10</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implementation-defined</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">native_math::powr</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implementation-defined</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">native_math::recip</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implementation-defined</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">native_math::rsqrt</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implementation-defined</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">native_math::sin</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implementation-defined</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">native_math::sqrt</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implementation-defined</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">native_math::tan</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implementation-defined</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p><a href="#ulp_values_for_single_precision_builtin_math_functions_with_fast_relaxed_math">ULP values for single precision built-in math functions with unsafe math optimizations</a> table describes the minimum accuracy of commonly used single precision floating-point arithmetic operations given as ULP values if the <em>-cl-unsafe-math-optimizations</em> compiler option is specified when compiling or building an OpenCL program.
For derived implementations, the operations used in the derivation may themselves be relaxed according to <a href="#ulp_values_for_single_precision_builtin_math_functions_with_fast_relaxed_math">ULP values for single precision built-in math functions with unsafe math optimizations</a> table.
The minimum accuracy of math functions not defined in <a href="#ulp_values_for_single_precision_builtin_math_functions_with_fast_relaxed_math">ULP values for single precision built-in math functions with unsafe math optimizations</a> table when the <em>-cl-unsafe-math-optimizations</em> compiler option is specified is as defined in <a href="#ulp_values_for_single_precision_builtin_math_functions">ULP values for single precision built-in math functions</a> table when operating in the full profile, and as defined in <a href="#ulp_values_for_single_precision_builtin_math_functions_for_embedded_profile">ULP values for single precision built-in math functions for embedded profile</a> table when operating in the embedded profile.
The reference value used to compute the ULP value of an arithmetic operation is the infinitely precise result.</p>
</div>
<table id="ulp_values_for_single_precision_builtin_math_functions_with_fast_relaxed_math" class="tableblock frame-all grid-all spread">
<caption class="title">Table 37. ULP values for single precision built-in math functions with unsafe math optimizations in the full and embedded profiles</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Function</strong></th>
<th class="tableblock halign-left valign-top"><strong>Min Accuracy - ULP values <a href="#ftn32">[32]</a></strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">1.0  / x</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2.5 ulp for x in the domain of 2<sup>-126</sup> to 2<sup>126</sup> for the full profile, and &lt;= 3 ulp for the embedded profile.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">x / y</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2.5 ulp for x in the domain of 2<sup>-62</sup> to 2<sup>62</sup> and <em>y</em> in the domain of 2<sup>-62</sup> to 2<sup>62</sup> for the full profile, and &lt;= 3 ulp for the embedded profile.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">acos(x)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4096 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">acospi(x)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implemented as acos(x) * M_PI_F.
  For non-derived implementations, the error is &lt;= 8192 ulp.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">asin(x)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4096 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">asinpi(x)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implemented as asin(x) * M_PI_F.
  For non-derived implementations, the error is &lt;= 8192 ulp.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">atan(x)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4096 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">atan2(y, x)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implemented as atan(y/x) for x &gt; 0, atan(y/x) + M_PI_F for x &lt; 0 and y &gt; 0 and atan(y/x) - M_PI_F for x &lt; 0 and y &lt; 0.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">atanpi(x)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implemented as atan(x) * M_1_PI_F.
  For non-derived implementations, the error is &lt;= 8192 ulp.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">atan2pi(y, x)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implemented as atan2(y, x) * M_1_PI_F.
  For non-derived implementations, the error is &lt;= 8192 ulp.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">acosh(x)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implemented as log( x + sqrt(x*x - 1) ).</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">asinh(x)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implemented as log( x + sqrt(x*x + 1) ).</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">atanh(x)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Defined for x in the domain (-1, 1). For x in [-2<sup>-10</sup>, 2<sup>-10</sup>], implemented as x.
  For x outside of [-2<sup>-10</sup>, 2<sup>-10</sup>], implemented as 0.5f * log( (1.0f + x) / (1.0f - x) ).
  For non-derived implementations, the error is &lt;= 8192 ulp.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">cbrt(x)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implemented as rootn(x, 3).
  For non-derived implementations, the error is &lt;= 8192 ulp.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">cos(x)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">For x in the domain [-π, π], the maximum absolute error is &lt;= 2<sup>-11</sup> and larger otherwise.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">cosh(x)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Defined for x in the domain [-88, 88] and implemented as 0.5f * ( exp(x) + exp(-x) ).
  For non-derived implementations, the error is &lt;= 8192 ULP.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">cospi(x)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">For x in the domain [-1, 1], the maximum absolute error is &lt;= 2<sup>-11</sup> and larger otherwise.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">exp(x)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 3 + floor( fabs(2 * x) ) ulp for the full profile, and &lt;= 4 ulp for the embedded profile.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">exp2(x)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 3 + floor( fabs(2 * x) ) ulp for the full profile, and &lt;= 4 ulp for the embedded profile.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">exp10(x)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Derived implementations implement this as exp2( x * log2(10) ).
  For non-derived implementations, the error is &lt;= 8192 ulp.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">expm1(x)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Derived implementations implement this as exp(x) - 1.
  For non-derived implementations, the error is &lt;= 8192 ulp.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">log(x)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">For x in the domain [0.5, 2] the maximum absolute error is &lt;= 2<sup>-21</sup>; otherwise the maximum error is &lt;=3 ulp for the full profile and &lt;= 4 ulp for the embedded profile</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">log2(x)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">For x in the domain [0.5, 2] the maximum absolute error is &lt;= 2<sup>-21</sup>; otherwise the maximum error is &lt;=3 ulp for the full profile and &lt;= 4 ulp for the embedded profile</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">log10(x)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">For x in the domain [0.5, 2] the maximum absolute error is &lt;= 2<sup>-21</sup>; otherwise the maximum error is &lt;=3 ulp for the full profile and &lt;= 4 ulp for the embedded profile</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">log1p(x)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Derived implementations implement this as log(x + 1).
  For non-derived implementations, the error is &lt;= 8192 ulp.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">pow(x, y)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Undefined for x = 0 and y = 0.
  Undefined for x &lt; 0 and non-integer y.
  Undefined for x &lt; 0 and y outside the domain [-2<sup>24</sup>, 2<sup>24</sup>].
  For x &gt; 0 or x &lt; 0 and even y, derived implementations implement this as exp2( y * log2(x) ).
  For x &lt; 0 and odd y, derived implementations implement this as -exp2( y * log2(fabs(x) ) <a id="ftnref33"></a> <a href="#ftn33">[33]</a>.
  For x == 0 and nonzero y, derived implementations return zero.
  For non-derived implementations, the error is &lt;= 8192 ULP.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">pown(x, y)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Defined only for integer values of y.
  Undefined for x = 0 and y = 0.
  For x &gt;= 0 or x &lt; 0 and even y, derived implementations implement this as exp2( y * log2(x) ).
  For x &lt; 0 and odd y, derived implementations implement this as -exp2( y * log2( fabs(x) ) ).
  For non-derived implementations, the error is &lt;= 8192 ulp.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">powr(x, y)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Defined only for x &gt;= 0.
  Undefined for x = 0 and y = 0.
  Derived implementations implement this as exp2( y * log2(x) ).
  For non-derived implementations, the error is &lt;= 8192 ulp.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">rootn(x, y)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Defined for x &gt; 0 when y is non-zero, derived implementations implement this case as exp2( log2(x) / y ). Defined for x &lt; 0 when y is odd, derived implementations implement this case as -exp2( log2(-x) / y ).
  Defined for x = +/-0 when y &gt; 0, derived implementations will return +0 in this case.
  For non-derived implementations, the error is &lt;= 8192 ULP.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">sin(x)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">For x in the domain [-π, π], the maximum absolute error is &lt;= 2<sup>-11</sup> and larger otherwise.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">sincos(x)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ulp values as defined for sin(x) and cos(x).</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">sinh(x)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Defined for x in the domain [-88, 88].
  For x in [-2<sup>-10</sup>, 2<sup>-10</sup>], derived implementations implement as x.
  For x outside of [-2<sup>-10</sup>, 2<sup>-10</sup>], derived implement as 0.5f * ( exp(x) - exp(-x) ).
  For non-derived implementations, the error is &lt;= 8192 ULP.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">sinpi(x)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">For x in the domain [-1, 1], the maximum absolute error is &lt;= 2<sup>-11</sup> and larger otherwise.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">tan(x)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Derived implementations implement this as sin(x) * ( 1.0f / cos(x) ).
  For non-derived implementations, the error is &lt;= 8192 ulp.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">tanh</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Defined for x in the domain [-88, 88].
  For x in [-2<sup>-10</sup>, 2<sup>-10</sup>], derived implementations implement as x.
  For x outside of [-2<sup>-10</sup>, 2<sup>-10</sup>], derived implementations implement as ( exp(x) - exp(-x) ) / ( exp(x) + exp(-x) ).
  For non-derived implementations, the error is &lt;= 8192 ULP.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">tanpi(x)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Derived implementations implement this as tan(x * M_PI_F).
  For non-derived implementations, the error is &lt;= 8192 ulp for x in the domain [-1, 1].</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">x * y + z</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implemented either as a correctly rounded fma or as a multiply and an add both of which are correctly rounded.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p><a href="#ulp_values_for_double_precision_builtin_math_functions">ULP values for double precision built-in math functions</a> table describes the minimum accuracy of double precision floating-point arithmetic operations given as ULP values.
The reference value used to compute the ULP value of an arithmetic operation is the infinitely precise result.</p>
</div>
<table id="ulp_values_for_double_precision_builtin_math_functions" class="tableblock frame-all grid-all spread">
<caption class="title">Table 38. ULP values for double precision built-in math functions</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Function</strong></th>
<th class="tableblock halign-left valign-top"><strong>Min Accuracy - ULP values <a href="#ftn32">[32]</a></strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">x + y</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">x - y</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">x * y</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">1.0  / x</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">x / y</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">acos</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">acospi</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 5 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">asin</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">asinpi</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 5 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">atan</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 5 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">atan2</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 6 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">atanpi</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 5 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">atan2pi</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 6 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">acosh</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">asinh</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">atanh</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 5 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">cbrt</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">ceil</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">copysign</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">cos</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">cosh</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">cospi</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">erfc</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 16 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">erf</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 16 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">exp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 3 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">exp2</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 3 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">exp10</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 3 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">expm1</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 3 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">fabs</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">fdim</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">floor</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">fma</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">fmax</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">fmin</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">fmod</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">fract</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">frexp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">hypot</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">ilogb</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">ldexp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">log</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 3 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">log2</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 3 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">log10</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 3 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">log1p</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">logb</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">mad</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implemented either as a correctly rounded fma or as a multiply followed by an add both of which are correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">maxmag</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">minmag</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">modf</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">nan</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">nextafter</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">pow(x, y)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 16 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">pown(x, y)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 16 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">powr(x, y)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 16 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">remainder</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">remquo</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">rint</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">rootn</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 16 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">round</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">rsqrt</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">sin</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">sincos</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp for sine and cosine values</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">sinh</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">sinpi</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">sqrt</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">tan</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 5 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">tanh</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 5 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">tanpi</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 6 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">tgamma</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 16 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">trunc</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p><a href="#ulp_values_for_half_precision_builtin_math_functions">ULP values for half precision built-in math functions</a> table describes the minimum accuracy of half precision floating-point arithmetic operations given as ULP values.
The reference value used to compute the ULP value of an arithmetic operation is the infinitely precise result.</p>
</div>
<table id="ulp_values_for_half_precision_builtin_math_functions" class="tableblock frame-all grid-all spread">
<caption class="title">Table 39. ULP values for half precision built-in math functions</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Function</strong></th>
<th class="tableblock halign-left valign-top"><strong>Min Accuracy - ULP values <a href="#ftn32">[32]</a></strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">x + y</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">x - y</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">x * y</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">1.0 / x</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">x / y</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">acos</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">acospi</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">asin</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">asinpi</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">atan</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">atan2</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">atanpi</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">atan2pi</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">acosh</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">asinh</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">atanh</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">cbrt</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">ceil</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">copysign</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">cos</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">cosh</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">cospi</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">erfc</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">erf</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">exp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">exp2</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">exp10</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">expm1</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">fabs</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">fdim</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">floor</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">fma</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">fmax</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">fmin</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">fmod</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">fract</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">frexp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">hypot</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">ilogb</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">ldexp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">log</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">log2</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">log10</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">log1p</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">logb</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">mad</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implemented either as a correctly rounded fma or as a multiply followed by an add both of which are correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">maxmag</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">minmag</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">modf</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">nan</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">nextafter</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">pow(x, y)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">pown(x, y)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">powr(x, y)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">remainder</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">remquo</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">rint</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">rootn</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">round</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">rsqrt</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 1 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">sin</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">sincos</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp for sine and cosine values</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">sinh</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">sinpi</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">sqrt</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">tan</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">tanh</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">tanpi</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">tgamma</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">trunc</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect2">
<h3 id="edge-case-behavior">4.5. Edge Case Behavior</h3>
<div class="paragraph">
<p>The edge case behavior of the math functions (see the <a href="#math-functions"><em>Math Functions</em></a> section) shall conform to sections F.9 and G.6 of ISO/IEC 9899:TC 2, except where noted below in the <a href="#additional-requirements-beyond-isoiec-9899tc2"><em>Additional Requirements Beyond ISO/IEC 9899:TC2</em></a> section.</p>
</div>
<div class="sect3">
<h4 id="additional-requirements-beyond-isoiec-9899tc2">4.5.1. Additional Requirements Beyond ISO/IEC 9899:TC2</h4>
<div class="paragraph">
<p>Functions that return a NaN with more than one NaN operand shall return one of the NaN operands.
Functions that return a NaN operand may silence the NaN if it is a signaling NaN.
A non-signaling NaN shall be converted to a non-signaling NaN.
A signaling NaN shall be converted to a NaN, and should be converted to a non-signaling NaN.
How the rest of the NaN payload bits or the sign of NaN is converted is undefined.</p>
</div>
<div class="paragraph">
<p>The usual allowances for rounding error (see the <a href="#relative-error-as-ulps"><em>Relative Error as ULPs</em></a> section) or flushing behavior (see the <a href="#edge-case-behavior-in-flush-to-zero-mode"><em>Edge Case Behavior in Flush To Zero Mode</em></a> section) shall not apply for those values for which <em>section F.9</em> of ISO/IEC 9899:,TC2, or the <a href="#additional-requirements-beyond-isoiec-9899tc2"><em>Additional Requirements Beyond ISO/IEC 9899:TC2</em></a> and the <a href="#edge-case-behavior-in-flush-to-zero-mode"><em>Edge Case Behavior in Flush To Zero Mode</em></a> sections below (and similar sections for other floating-point precisions) prescribe a result (e.g. ceil( -1 &lt; x &lt; 0 ) returns -0).
Those values shall produce exactly the prescribed answers, and no other.
Where the ± symbol is used, the sign shall be preserved.
For example, sin(±0) = ±0 shall be interpreted to mean sin(+0) is +0 and sin(-0) is -0.</p>
</div>
<div class="ulist">
<ul>
<li>
<p>acospi( 1 ) = +0.</p>
</li>
<li>
<p>acospi( x ) returns a NaN for | x | &gt; 1.</p>
</li>
<li>
<p>asinpi( ±0 ) = ±0.</p>
</li>
<li>
<p>asinpi( x ) returns a NaN for | x | &gt; 1.</p>
</li>
<li>
<p>atanpi( ±0 ) = ±0.</p>
</li>
<li>
<p>atanpi ( ±∞ ) = ±0.5.</p>
</li>
<li>
<p>atan2pi ( ±0, -0 ) = ±1.</p>
</li>
<li>
<p>atan2pi ( ±0, +0 ) = ±0.</p>
</li>
<li>
<p>atan2pi ( ±0, x ) returns ±1 for x &lt; 0.</p>
</li>
<li>
<p>atan2pi ( ±0, x) returns ±0 for x &gt; 0.</p>
</li>
<li>
<p>atan2pi ( y, ±0 ) returns -0.5 for y &lt; 0.</p>
</li>
<li>
<p>atan2pi ( y, ±0 ) returns 0.5 for y &gt; 0.</p>
</li>
<li>
<p>atan2pi ( ±y, -∞ ) returns ±1 for finite y &gt; 0.</p>
</li>
<li>
<p>atan2pi ( ±y, +∞ ) returns ±0 for finite y &gt; 0.</p>
</li>
<li>
<p>atan2pi ( ±∞, x ) returns ±0.5 for finite x.</p>
</li>
<li>
<p>atan2pi ( ±∞, -∞ ) returns ±0.75.</p>
</li>
<li>
<p>atan2pi ( ±∞, +∞ ) returns ±0.25.</p>
</li>
<li>
<p>ceil( -1 &lt; x &lt; 0 ) returns -0.</p>
</li>
<li>
<p>cospi( ±0 ) returns 1</p>
</li>
<li>
<p>cospi( n + 0.5 ) is +0 for any integer n where n + 0.5 is representable.</p>
</li>
<li>
<p>cospi( ±∞ ) returns a NaN.</p>
</li>
<li>
<p>exp10( ±0 ) returns 1.</p>
</li>
<li>
<p>exp10( -∞ ) returns +0.</p>
</li>
<li>
<p>exp10( +∞ ) returns +∞.</p>
</li>
<li>
<p>distance( x, y ) calculates the distance from x to y without overflow or extraordinary precision loss due to underflow.</p>
</li>
<li>
<p>fdim( any, NaN ) returns NaN.</p>
</li>
<li>
<p>fdim( NaN, any ) returns NaN.</p>
</li>
<li>
<p>fmod( ±0, NaN ) returns NaN.</p>
</li>
<li>
<p>frexp( ±∞, exp ) returns ±∞ and stores 0 in exp.</p>
</li>
<li>
<p>frexp( NaN, exp ) returns the NaN and stores 0 in exp.</p>
</li>
<li>
<p>fract( x, iptr) shall not return a value greater than or equal to 1.0, and shall not return a value less than 0.</p>
</li>
<li>
<p>fract( +0, iptr ) returns +0 and +0 in iptr.</p>
</li>
<li>
<p>fract( -0, iptr ) returns -0 and -0 in iptr.</p>
</li>
<li>
<p>fract( +inf, iptr ) returns +0 and +inf in iptr.</p>
</li>
<li>
<p>fract( -inf, iptr ) returns -0 and -inf in iptr.</p>
</li>
<li>
<p>fract( NaN, iptr ) returns the NaN and NaN in iptr.</p>
</li>
<li>
<p>length calculates the length of a vector without overflow or extraordinary precision loss due to underflow.</p>
</li>
<li>
<p>lgamma_r( x, signp ) returns 0 in signp if x is zero or a negative integer.</p>
</li>
<li>
<p>nextafter( -0, y &gt; 0 ) returns smallest positive denormal value.</p>
</li>
<li>
<p>nextafter( +0, y &lt; 0 ) returns smallest negative denormal value.</p>
</li>
<li>
<p>normalize shall reduce the vector to unit length, pointing in the same direction without overflow or extraordinary precision loss due to underflow.</p>
</li>
<li>
<p>normalize( v ) returns v if all elements of v are zero.</p>
</li>
<li>
<p>normalize( v ) returns a vector full of NaNs if any element is a NaN.</p>
</li>
<li>
<p>normalize( v ) for which any element in v is infinite shall proceed as if the elements in v were replaced as follows:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>for( i = 0; i &lt; sizeof(v) / sizeof(v[0] ); i++ )
    v[i] = isinf(v[i] )  ?  copysign(1.0, v[i]) : 0.0 * v [i];</code></pre>
</div>
</div>
</li>
<li>
<p>pow( ±0, -∞ ) returns +∞</p>
</li>
<li>
<p>pown( x, 0 ) is 1 for any x, even zero, NaN or infinity.</p>
</li>
<li>
<p>pown( ±0, n ) is ±∞ for odd n &lt; 0.</p>
</li>
<li>
<p>pown( ±0, n ) is +∞ for even n &lt; 0.</p>
</li>
<li>
<p>pown( ±0, n ) is +0 for even n &gt; 0.</p>
</li>
<li>
<p>pown( ±0, n ) is ±0 for odd n &gt; 0.</p>
</li>
<li>
<p>powr( x, ±0 ) is 1 for finite x &gt; 0.</p>
</li>
<li>
<p>powr( ±0, y ) is +∞ for finite y &lt; 0.</p>
</li>
<li>
<p>powr( ±0, -∞) is +∞.</p>
</li>
<li>
<p>powr( ±0, y ) is +0 for y &gt; 0.</p>
</li>
<li>
<p>powr( +1, y ) is 1 for finite y.</p>
</li>
<li>
<p>powr( x, y ) returns NaN for x &lt; 0.</p>
</li>
<li>
<p>powr( ±0, ±0 ) returns NaN.</p>
</li>
<li>
<p>powr( +∞, ±0 ) returns NaN.</p>
</li>
<li>
<p>powr( +1, ±∞ ) returns NaN.</p>
</li>
<li>
<p>powr( x, NaN ) returns the NaN for x &gt;= 0.</p>
</li>
<li>
<p>powr( NaN, y ) returns the NaN.</p>
</li>
<li>
<p>rint( -0.5 &lt;= x &lt; 0 ) returns -0.</p>
</li>
<li>
<p>remquo(x, y, &amp;quo) returns a NaN and 0 in quo if x is ±∞, or if y is 0 and the other argument is non-NaN or if either argument is a NaN.</p>
</li>
<li>
<p>rootn( ±0, n ) is ±∞ for odd n &lt; 0.</p>
</li>
<li>
<p>rootn( ±0, n ) is +∞ for even n &lt; 0.</p>
</li>
<li>
<p>rootn( ±0, n ) is +0 for even n &gt; 0.</p>
</li>
<li>
<p>rootn( ±0, n ) is ±0 for odd n &gt; 0.</p>
</li>
<li>
<p>rootn( x, n ) returns a NaN for x &lt; 0 and n is even.</p>
</li>
<li>
<p>rootn( x, 0 ) returns a NaN.</p>
</li>
<li>
<p>round( -0.5 &lt; x &lt; 0 ) returns -0.</p>
</li>
<li>
<p>sinpi( ±0 ) returns ±0.</p>
</li>
<li>
<p>sinpi( +n) returns +0 for positive integers n.</p>
</li>
<li>
<p>sinpi( -n ) returns -0 for negative integers n.</p>
</li>
<li>
<p>sinpi( ±∞ ) returns a NaN.</p>
</li>
<li>
<p>tanpi( ±0 ) returns ±0.</p>
</li>
<li>
<p>tanpi( ±∞ ) returns a NaN.</p>
</li>
<li>
<p>tanpi( n ) is copysign( 0.0, n ) for even integers n.</p>
</li>
<li>
<p>tanpi( n ) is copysign( 0.0, - n) for odd integers n.</p>
</li>
<li>
<p>tanpi( n + 0.5 ) for even integer n is +∞ where n + 0.5 is representable.</p>
</li>
<li>
<p>tanpi( n + 0.5 ) for odd integer n is -∞ where n + 0.5 is representable.</p>
</li>
<li>
<p>trunc( -1 &lt; x &lt; 0 ) returns -0.</p>
</li>
</ul>
</div>
</div>
<div class="sect3">
<h4 id="changes-to-isoiec-9899-tc2-behavior">4.5.2. Changes to ISO/IEC 9899: TC2 Behavior</h4>
<div class="paragraph">
<p><code>modf</code> behaves as though implemented by:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>gentype modf( gentype value, gentype *iptr )
{
    *iptr = trunc( value );
    return copysign( isinf( value ) ? 0.0 : value - *iptr, value );
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>rint always rounds according to round to nearest even rounding mode even if the caller is in some other rounding mode.</p>
</div>
</div>
<div class="sect3">
<h4 id="edge-case-behavior-in-flush-to-zero-mode">4.5.3. Edge Case Behavior in Flush To Zero Mode</h4>
<div class="paragraph">
<p>If denormals are flushed to zero, then a function may return one of four results:</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Any conforming result for non-flush-to-zero mode.</p>
</li>
<li>
<p>If the result given by 1. is a sub-normal before rounding, it may be flushed to zero.</p>
</li>
<li>
<p>Any non-flushed conforming result for the function if one or more of its sub-normal operands are flushed to zero.</p>
</li>
<li>
<p>If the result of 3. is a sub-normal before rounding, the result may be flushed to zero.</p>
</li>
</ol>
</div>
<div class="paragraph">
<p>In each of the above cases, if an operand or result is flushed to zero, the sign of the zero is undefined.</p>
</div>
<div class="paragraph">
<p>If subnormals are flushed to zero, a device may choose to conform to the following edge cases for nextafter instead of those listed in the <a href="#additional-requirements-beyond-isoiec-9899tc2"><em>Additional Requirements Beyond ISO/IEC 9899:TC2</em></a> section:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>nextafter ( +smallest normal, y &lt; +smallest normal ) = +0.</p>
</li>
<li>
<p>nextafter ( -smallest normal, y &gt; -smallest normal ) = -0.</p>
</li>
<li>
<p>nextafter ( -0, y &gt; 0 ) returns smallest positive normal value.</p>
</li>
<li>
<p>nextafter ( +0, y &lt; 0 ) returns smallest negative normal value.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>For clarity, subnormals or denormals are defined to be the set of representable numbers in the range 0 &lt; x &lt; <code>TYPE_MIN</code> and <code>-TYPE_MIN</code> &lt; x &lt; -0.
They do not include ±0.
A non-zero number is said to be sub-normal before rounding if after normalization, its radix-2 exponent is less than <code>(TYPE_MIN_EXP - 1)</code>. <a id="ftnref35"></a> <a href="#ftn35">[35]</a></p>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="image-addressing-and-filtering">5. Image Addressing and Filtering</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Let w<sub>t</sub>, h<sub>t</sub> and d<sub>t</sub> be the width, height (or image array size for a 1D image array) and depth (or image array size for a 2D image array) of the image in pixels.
Let coord.xy also referred to as (s,t) or coord.xyz also referred to as (s,t,r) be the coordinates specified to <code>image::read</code>.
The sampler specified in <code>image::read</code> is used to determine how to sample the image and return an appropriate color.</p>
</div>
<div class="sect2">
<h3 id="image-coordinates">5.1. Image Coordinates</h3>
<div class="paragraph">
<p>This affects the interpretation of image coordinates.
If image coordinates specified to <code>image::read</code> are normalized (as specified in the sampler), the s,t, and r coordinate values are multiplied by w<sub>t</sub>, h<sub>t,</sub> and d<sub>t</sub> respectively to generate the unnormalized coordinate values.
For image arrays, the image array coordinate (i.e. t if it is a 1D image array or r if it is a 2D image array) specified to <code>image::read</code> must always be the unnormalized image coordinate value.</p>
</div>
<div class="paragraph">
<p>Let (u,v,w) represent the unnormalized image coordinate values.</p>
</div>
</div>
<div class="sect2">
<h3 id="addressing-and-filter-modes">5.2. Addressing and Filter Modes</h3>
<div class="paragraph">
<p>We first describe how the addressing and filter modes are applied to generate the appropriate sample locations to read from the image if the addressing mode is not <code>addressing_mode::repeat</code> nor <code>addressing_mode::mirrored_repeat</code>.</p>
</div>
<div class="paragraph">
<p>After generating the image coordinate (u,v,w) we apply the appropriate addressing and filter mode to generate the appropriate sample locations to read from the image.</p>
</div>
<div class="paragraph">
<p>If values in (u,v,w) are INF or NaN, the behavior of <code>image::read</code> is undefined.</p>
</div>
<div class="sect3">
<h4 id="filtering_modenearest">5.2.1. filtering_mode::nearest</h4>
<div class="paragraph">
<p>When filter mode is <code>filtering_mode::nearest</code>, the image element in the image that is nearest (in Manhattan distance) to that specified by (u,v,w) is obtained.
This means the image element at location (i,j,k) becomes the image element value, where</p>
</div>
<div class="stemblock">
<div class="content">
\[\begin{array}{rcl}
i &amp;=&amp; address\_mode((int)floor(u))\\
j &amp;=&amp; address\_mode((int)floor(v))\\
k &amp;=&amp; address\_mode((int)floor(w))
\end{array}\]
</div>
</div>
<div class="paragraph">
<p>For a 3D image, the image element at location (i, j, k) becomes the color value.
For a 2D image, the image element at location (i, j) becomes the color value.</p>
</div>
<div class="paragraph">
<p>The below table describes the <code>address_mode</code> function.</p>
</div>
<table id="addressing_modes_to_generate_texel_location" class="tableblock frame-all grid-all spread">
<caption class="title">Table 40. Addressing modes to generate texel location</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Addressing Mode</strong></th>
<th class="tableblock halign-left valign-top"><strong>Result of address_mode(coord)</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p><code>clamp_to_edge</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p>clamp (coord, 0, size - 1)</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p><code>clamp</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p>clamp (coord, -1, size)</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p><code>none</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p>Coord</p>
</div></div></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>The size term in <a href="#addressing_modes_to_generate_texel_location">Addressing modes to generate texel location</a> table is w<sub>t</sub> for u, h<sub>t</sub> for v and d<sub>t</sub> for w.</p>
</div>
<div class="paragraph">
<p>The clamp function used in <a href="#addressing_modes_to_generate_texel_location">Addressing modes to generate texel location</a> table is defined as:</p>
</div>
<div class="dlist">
<dl>
<dt class="hdlist1"></dt>
<dd>
<p>\(clamp(a, b, c) = return (a &lt; b) ? b : ((a &gt; c) ? c : a)\)</p>
</dd>
</dl>
</div>
<div class="paragraph">
<p>If the selected texel location (i,j,k) refers to a location outside the image, the border color is used as the color value for this texel.</p>
</div>
</div>
<div class="sect3">
<h4 id="filtering_modelinear">5.2.2. filtering_mode::linear</h4>
<div class="paragraph">
<p>When filter mode is <code>filtering_mode::linear</code>, a 2 x 2 square of image elements for a 2D image or a 2 x 2 x 2 cube of image elements for a 3D image is selected.
This 2 x 2 square or 2 x 2 x 2 cube is obtained as follows.</p>
</div>
<div class="paragraph">
<p>Let</p>
</div>
<div class="stemblock">
<div class="content">
\[\begin{aligned}
i0 &amp; = address\_mode((int)floor(u - 0.5))\\
j0 &amp; = address\_mode((int)floor(v - 0.5))\\
k0 &amp; = address\_mode((int)floor(w - 0.5))\\
i1 &amp; = address\_mode((int)floor(u - 0.5) + 1)\\
j1 &amp; = address\_mode((int)floor(v - 0.5) + 1)\\
k1 &amp; = address\_mode((int)floor(w - 0.5) + 1)\\
a  &amp; = frac(u - 0.5)\\
b  &amp; = frac(v - 0.5)\\
c  &amp; = frac(w - 0.5)
\end{aligned}\]
</div>
</div>
<div class="paragraph">
<p>where frac(x) denotes the fractional part of x and is computed as x - floor(x).</p>
</div>
<div class="paragraph">
<p>For a 3D image, the image element value is found as</p>
</div>
<div class="stemblock">
<div class="content">
\[\begin{array}{rcl}
T &amp;=&amp; (1 - a) * (1 - b) * (1 - c) * T_{i0j0k0}\\
  &amp; &amp; {} + a * (1 - b) * (1 - c) * T_{i1j0k0}\\
  &amp; &amp; {} + (1 - a) * b * (1 - c) * T_{i0j1k0}\\
  &amp; &amp; {} + a * b * (1 - c) * T_{i1j1k0}\\
  &amp; &amp; {} + (1 - a) * (1 - b) * c * T_{i0j0k1}\\
  &amp; &amp; {} + a * (1 - b) * c * T_{i1j0k1}\\
  &amp; &amp; {} + (1 - a) * b * c * T_{i0j1k1}\\
  &amp; &amp; {} + a * b * c * T_{i1j1k1}
\end{array}\]
</div>
</div>
<div class="paragraph">
<p>where T<sub>ijk</sub> is the image element at location (i,j,k) in the 3D image.</p>
</div>
<div class="paragraph">
<p>For a 2D image, the image element value is found as</p>
</div>
<div class="stemblock">
<div class="content">
\[\begin{array}{rcl}
T &amp;=&amp; (1 - a) * (1 - b) * T_{i0j0}\\
  &amp; &amp; {} + a * (1 - b) * T_{i1j0}\\
  &amp; &amp; {} + (1 - a) * b * T_{i0j1}\\
  &amp; &amp; {} + a * b * T_{i1j1}
\end{array}\]
</div>
</div>
<div class="paragraph">
<p>where T<sub>ij</sub> is the image element at location (i,j) in the 2D image.</p>
</div>
<div class="paragraph">
<p>If any of the selected T<sub>ijk</sub> or T<sub>ij</sub> in the above equations refers to a location outside the image, the border color is used as the color value for T<sub>ijk</sub> or T<sub>ij</sub>.</p>
</div>
<div class="paragraph">
<p>If the image channel type is <code>CL_FLOAT</code> or <code>CL_HALF_FLOAT</code> and any of the image elements T<sub>ijk</sub> or T<sub>ij</sub> is INF or NaN, the behavior of the built-in image read function is undefined.</p>
</div>
<div class="paragraph">
<p>We now discuss how the addressing and filter modes are applied to generate the appropriate sample locations to read from the image if the addressing mode is <code>addressing_mode::repeat</code>.</p>
</div>
<div class="paragraph">
<p>If values in (s,t,r) are INF or NaN, the behavior of the built-in image read functions is undefined.</p>
</div>
</div>
<div class="sect3">
<h4 id="filtering_modenearest-1">5.2.3. filtering_mode::nearest</h4>
<div class="paragraph">
<p>When filter mode is <code>filtering_mode::nearest</code>, the image element at location (i,j,k) becomes the image element value, with i, j and k computed as</p>
</div>
<div class="stemblock">
<div class="content">
\[\begin{array}{l}
u = (s - floor(s)) * w_t\\
i = (int)floor(u)\\
if\ (i &gt; w_t - 1)\\
\qquad i = i - w_t\\
v = (t - floor(t)) * h_t\\
j = (int)floor(v)\\
if\ (j &gt; h_t - 1)\\
\qquad j = j - h_t\\
w = (r - floor(r)) * d_t\\
k = (int)floor(w)\\
if\ (k &gt; d_t - 1)\\
\qquad k = k - d_t
\end{array}\]
</div>
</div>
<div class="paragraph">
<p>For a 3D image, the image element at location (i, j, k) becomes the color value.
For a 2D image, the image element at location (i, j) becomes the color value.</p>
</div>
</div>
<div class="sect3">
<h4 id="filtering_modelinear-1">5.2.4. filtering_mode::linear</h4>
<div class="paragraph">
<p>When filter mode is <code>filtering_mode::linear</code>, a 2 x 2 square of image elements for a 2D image or a 2 x 2 x 2 cube of image elements for a 3D image is selected.
This 2 x 2 square or 2 x 2 x 2 cube is obtained as follows.</p>
</div>
<div class="paragraph">
<p>Let</p>
</div>
<div class="stemblock">
<div class="content">
\[\begin{array}{l}
u = (s - floor(s)) * w_t\\
i0 = (int)floor(u - 0.5)\\
i1 = i0 + 1\\
if (i0 &lt; 0)\\
i0 = w_t + i0\\
if\ (i1 &gt; w_t - 1)\\
\qquad i1 = i1 - w_t\\
v = (t - floor(t)) * h_t\\
j0 = (int)floor(v - 0.5)\\
j1 = j0 + 1\\
if (j0 &lt; 0)\\
j0 = h_t + j0\\
if\ (j1 &gt; h_t - 1)\\
\qquad j1 = j1 - h_t\\
w = (r - floor(r)) * d_t\\
k0 = (int)floor(w - 0.5)\\
k1 = k0 + 1\\
if (k0 &lt; 0)\\
\qquad k0 = d_t + k0\\
if\ (k1 &gt; d_t - 1)\\
\qquad k1 = k1 - d_t\\
a = frac(u - 0.5)\\
b = frac(v - 0.5)\\
c = frac(w - 0.5)
\end{array}\]
</div>
</div>
<div class="paragraph">
<p>where frac(x) denotes the fractional part of x and is computed as x - floor(x).</p>
</div>
<div class="paragraph">
<p>For a 3D image, the image element value is found as</p>
</div>
<div class="stemblock">
<div class="content">
\[\begin{array}{rcl}
T &amp;=&amp; (1 - a) * (1 - b) * (1 - c) * T_{i0j0k0}\\
  &amp; &amp; {} + a * (1 - b) * (1 - c) * T_{i1j0k0}\\
  &amp; &amp; {} + (1 - a) * b * (1 - c) * T_{i0j1k0}\\
  &amp; &amp; {} + a * b * (1 - c) * T_{i1j1k0}\\
  &amp; &amp; {} + (1 - a) * (1 - b) * c * T_{i0j0k1}\\
  &amp; &amp; {} + a * (1 - b) * c * T_{i1j0k1}\\
  &amp; &amp; {} + (1 - a) * b * c * T_{i0j1k1}\\
  &amp; &amp; {} + a * b * c * T_{i1j1k1}
\end{array}\]
</div>
</div>
<div class="paragraph">
<p>where T<sub>ijk</sub> is the image element at location (i,j,k) in the 3D image.</p>
</div>
<div class="paragraph">
<p>For a 2D image, the image element value is found as</p>
</div>
<div class="stemblock">
<div class="content">
\[\begin{array}{rcl}
T &amp;=&amp; (1 - a) * (1 - b) * T_{i0j0}\\
  &amp; &amp; {} + a * (1 - b) * T_{i1j0}\\
  &amp; &amp; {} + (1 - a) * b * T_{i0j1}\\
  &amp; &amp; {} + a * b * T_{i1j1}
\end{array}\]
</div>
</div>
<div class="paragraph">
<p>where T<sub>ij</sub> is the image element at location (i,j) in the 2D image.</p>
</div>
<div class="paragraph">
<p>If the image channel type is <code>CL_FLOAT</code> or <code>CL_HALF_FLOAT</code> and any of the image elements T<sub>ijk</sub> or T<sub>ij</sub> is INF or NaN, the behavior of the built-in image read function is undefined.</p>
</div>
<div class="paragraph">
<p>We now discuss how the addressing and filter modes are applied to generate the appropriate sample locations to read from the image if the addressing mode is <code>addressing_mode::repeat</code>.
The <code>addressing_mode::mirrored_repeat</code> addressing mode causes the image to be read as if it is tiled at every integer seam with the interpretation of the image data flipped at each integer crossing.
For example, the (s,t,r) coordinates between 2 and 3 are addressed into the image as coordinates from 1 down to 0.
If values in (s,t,r) are INF or NaN, the behavior of the built-in image read functions is undefined.</p>
</div>
</div>
<div class="sect3">
<h4 id="filtering_modenearest-2">5.2.5. filtering_mode::nearest</h4>
<div class="paragraph">
<p>When filter mode is <code>filtering_mode::nearest</code>, the image element at location (i,j,k) becomes the image element value, with i,j and k computed as</p>
</div>
<div class="stemblock">
<div class="content">
\[\begin{array}{rcl}
s' &amp;=&amp; 2.0f * rint(0.5f * s)\\
s' &amp;=&amp; fabs(s - s')\\
u  &amp;=&amp; s' * w_t\\
i  &amp;=&amp; (int)floor(u)\\
i  &amp;=&amp; min(i, w_t - 1)\\
t' &amp;=&amp; 2.0f * rint(0.5f * t)\\
t' &amp;=&amp; fabs(t - t')\\
v  &amp;=&amp; t' * h_t\\
j  &amp;=&amp; (int)floor(v)\\
j  &amp;=&amp; min(j, h_t - 1)\\
r' &amp;=&amp; 2.0f * rint(0.5f * r)\\
r' &amp;=&amp; fabs(r - r')\\
w  &amp;=&amp; r' * d_t\\
k  &amp;=&amp; (int)floor(w)\\
k  &amp;=&amp; min(k, d_t - 1)
\end{array}\]
</div>
</div>
<div class="paragraph">
<p>For a 3D image, the image element at location (i, j, k) becomes the color value.
For a 2D image, the image element at location (i, j) becomes the color value.</p>
</div>
</div>
<div class="sect3">
<h4 id="filtering_modelinear-2">5.2.6. filtering_mode::linear</h4>
<div class="paragraph">
<p>When filter mode is <code>filtering_mode::linear</code>, a 2 x 2 square of image elements for a 2D image or a 2 x 2 x 2 cube of image elements for a 3D image is selected.
This 2 x 2 square or 2 x 2 x 2 cube is obtained as follows.</p>
</div>
<div class="paragraph">
<p>Let</p>
</div>
<div class="stemblock">
<div class="content">
\[\begin{array}{rcl}
s' &amp;=&amp; 2.0f * rint(0.5f * s)\\
s' &amp;=&amp; fabs(s - s')\\
u  &amp;=&amp; s' * w_t\\
i0 &amp;=&amp; (int)floor(u - 0.5f)\\
i1 &amp;=&amp; i0 + 1\\
i0 &amp;=&amp; max(i0, 0)\\
i1 &amp;=&amp; min(i1, w_t - 1)\\
t' &amp;=&amp; 2.0f * rint(0.5f * t)\\
t' &amp;=&amp; fabs(t - t')\\
v  &amp;=&amp; t' * h_t\\
j0 &amp;=&amp; (int)floor(v - 0.5f)\\
j1 &amp;=&amp; j0 + 1\\
j0 &amp;=&amp; max(j0, 0)\\
j1 &amp;=&amp; min(j1, h_t - 1)\\
r' &amp;=&amp; 2.0f * rint(0.5f * r)\\
r' &amp;=&amp; fabs(r - r')\\
w  &amp;=&amp; r' * d_t\\
k0 &amp;=&amp; (int)floor(w - 0.5f)\\
k1 &amp;=&amp; k0 + 1\\
k0 &amp;=&amp; max(k0, 0)\\
k1 &amp;=&amp; min(k1, d_t - 1)\\
a  &amp;=&amp; frac(u - 0.5)\\
b  &amp;=&amp; frac(v - 0.5)\\
c  &amp;=&amp; frac(w - 0.5)
\end{array}\]
</div>
</div>
<div class="paragraph">
<p>where frac(x) denotes the fractional part of x and is computed as x - floor(x).</p>
</div>
<div class="paragraph">
<p>For a 3D image, the image element value is found as</p>
</div>
<div class="stemblock">
<div class="content">
\[\begin{array}{rcl}
T &amp;=&amp; (1 - a) * (1 - b) * (1 - c) * T_{i0j0k0}\\
  &amp; &amp; {} + a * (1 - b) * (1 - c) * T_{i1j0k0}\\
  &amp; &amp; {} + (1 - a) * b * (1 - c) * T_{i0j1k0}\\
  &amp; &amp; {} + a * b * (1 - c) * T_{i1j1k0}\\
  &amp; &amp; {} + (1 - a) * (1 - b) * c * T_{i0j0k1}\\
  &amp; &amp; {} + a * (1 - b) * c * T_{i1j0k1}\\
  &amp; &amp; {} + (1 - a) * b * c * T_{i0j1k1}\\
  &amp; &amp; {} + a * b * c * T_{i1j1k1}
\end{array}\]
</div>
</div>
<div class="paragraph">
<p>where T<sub>ijk</sub> is the image element at location (i,j,k) in the 3D image.</p>
</div>
<div class="paragraph">
<p>For a 2D image, the image element value is found as</p>
</div>
<div class="stemblock">
<div class="content">
\[\begin{array}{rcl}
T &amp;=&amp; (1 - a) * (1 - b) * T_{i0j0}\\
  &amp; &amp; {} + a * (1 - b) * T_{i1j0}\\
  &amp; &amp; {} + (1 - a) * b * T_{i0j1}\\
  &amp; &amp; {} + a * b * T_{i1j1}
\end{array}\]
</div>
</div>
<div class="paragraph">
<p>where T<sub>ij</sub> is the image element at location (i,j) in the 2D image.</p>
</div>
<div class="paragraph">
<p>For a 1D image, the image element value is found as</p>
</div>
<div class="stemblock">
<div class="content">
\[T = (1 - a) * T_i0 + a * T_i1\]
</div>
</div>
<div class="paragraph">
<p>where T<sub>i</sub> is the image element at location (i) in the 1D image.</p>
</div>
<div class="paragraph">
<p>If the image channel type is <code>CL_FLOAT</code> or <code>CL_HALF_FLOAT</code> and any of the image elements T<sub>ijk</sub> or T<sub>ij</sub> is INF or NaN, the behavior of the built-in image read function is undefined.</p>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
If the sampler is specified as using unnormalized coordinates (floating-point or integer coordinates), filter mode set to <code>filtering_mode::nearest</code> and addressing mode set to one of the following modes - <code>addressing_mode::none</code>, <code>addressing_mode::clamp_to_edge</code> or <code>addressing_mode::clamp</code>, the location of the image element in the image given by (i, j, k) will be computed without any loss of precision.
For all other sampler combinations of normalized or unnormalized coordinates, filter and addressing modes, the relative error or precision of the addressing mode calculations and the image filter operation are not defined by this revision of the OpenCL specification.
To ensure a minimum precision of image addressing and filter calculations across any OpenCL device, for these sampler combinations, developers should unnormalize the image coordinate in the kernel and implement the linear filter in the kernel with appropriate calls to <code>image::read</code> with a sampler that uses unnormalized coordinates, filter mode set to <code>filtering_mode::nearest</code>, addressing mode set to <code>addressing_mode::none</code>, <code>addressing_mode::clamp_to_edge</code> or <code>addressing_mode::clamp</code> and finally performing the interpolation of color values read from the image to generate the filtered color value.
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="sect2">
<h3 id="conversion-rules">5.3. Conversion Rules</h3>
<div class="paragraph">
<p>In this section we discuss conversion rules that are applied when reading and writing images in a kernel.</p>
</div>
<div class="sect3">
<h4 id="conversion-rules-for-normalized-integer-channel-data-types">5.3.1. Conversion rules for normalized integer</h4>
<div class="paragraph">
<p>In this section we discuss converting normalized integer channel data types to half-precision and single-precision floating-point values and vice-versa.</p>
</div>
<div class="sect4">
<h5 id="converting-normalized-integer-channel-data-types-to-half-precision-floating-point-values">Converting normalized integer channel data types to half precision floating-point values</h5>
<div class="paragraph">
<p>For images created with image channel data type of <code>CL_UNORM_INT8</code> and <code>CL_UNORM_INT16</code>, <code>image::read</code> will convert the channel values from an 8-bit or 16-bit unsigned integer to normalized half precision floating-point values in the range [0.0h &#8230;&#8203; 1.0h].</p>
</div>
<div class="paragraph">
<p>For images created with image channel data type of <code>CL_SNORM_INT8</code> and <code>CL_SNORM_INT16</code>, <code>image::read</code> will convert the channel values from an 8-bit or 16-bit signed integer to normalized half precision floating-point values in the range [-1.0h &#8230;&#8203; 1.0h].</p>
</div>
<div class="paragraph">
<p>These conversions are performed as follows:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>CL_UNORM_INT8</code> (8-bit unsigned integer) &#8594; <code>half</code></p>
<div class="stemblock">
<div class="content">
\[normalized\_half\_value(x)=round\_to\_half(\frac{x}{255})\]
</div>
</div>
</li>
<li>
<p><code>CL_UNORM_INT_101010</code> (10-bit unsigned integer) &#8594; <code>half</code></p>
<div class="stemblock">
<div class="content">
\[normalized\_half\_value(x)=round\_to\_half(\frac{x}{1023})\]
</div>
</div>
</li>
<li>
<p><code>CL_UNORM_INT16</code> (16-bit unsigned integer) &#8594; <code>half</code></p>
<div class="stemblock">
<div class="content">
\[normalized\_half\_value(x)=round\_to\_half(\frac{x}{65535})\]
</div>
</div>
</li>
<li>
<p><code>CL_SNORM_INT8</code> (8-bit signed integer) &#8594; <code>half</code></p>
<div class="stemblock">
<div class="content">
\[normalized\_half\_value(x)=max(-1.0h, round\_to\_half(\frac{x}{127}))\]
</div>
</div>
</li>
<li>
<p><code>CL_SNORM_INT16</code> (16-bit signed integer) &#8594; <code>half</code></p>
<div class="stemblock">
<div class="content">
\[normalized\_half\_value(x)=max(-1.0h, round\_to\_half(\frac{x}{32767}))\]
</div>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>The precision of the above conversions is &lt;= 1.5 ulp except for the following cases.</p>
</div>
<div class="paragraph">
<p>For <code>CL_UNORM_INT8</code>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>0 must convert to 0.0h and</p>
</li>
<li>
<p>255 must convert to 1.0h</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>For <code>CL_UNORM_INT_101010</code>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>0 must convert to 0.0h and</p>
</li>
<li>
<p>1023 must convert to 1.0h</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>For <code>CL_UNORM_INT16</code>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>0 must convert to 0.0h and</p>
</li>
<li>
<p>65535 must convert to 1.0h</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>For <code>CL_SNORM_INT8</code>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>-128 and -127 must convert to -1.0h,</p>
</li>
<li>
<p>0 must convert to 0.0h and</p>
</li>
<li>
<p>127 must convert to 1.0h</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>For <code>CL_SNORM_INT16</code>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>-32768 and -32767 must convert to -1.0h,</p>
</li>
<li>
<p>0 must convert to 0.0h and</p>
</li>
<li>
<p>32767 must convert to 1.0h</p>
</li>
</ul>
</div>
</div>
<div class="sect4">
<h5 id="converting-half-precision-floating-point-values-to-normalized-integer-channel-data-types">Converting half precision floating-point values to normalized integer channel data types</h5>
<div class="paragraph">
<p>For images created with image channel data type of <code>CL_UNORM_INT8</code> and <code>CL_UNORM_INT16</code>, <code>image::write</code> will convert the half precision floating-point color value to an 8-bit or 16-bit unsigned integer.</p>
</div>
<div class="paragraph">
<p>For images created with image channel data type of <code>CL_SNORM_INT8</code> and <code>CL_SNORM_INT16</code>, <code>image::write</code> will convert the half precision floating-point color value to an 8-bit or 16-bit signed integer.</p>
</div>
<div class="paragraph">
<p>OpenCL implementations may choose to approximate the rounding mode used in the conversions described below.
When approximate rounding is used instead of the preferred rounding, the result of the conversion must satisfy the bound given below.</p>
</div>
<div class="paragraph">
<p>The conversions from half precision floating-point values to normalized integer values are performed is as follows:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>half</code> &#8594; <code>CL_UNORM_INT8</code> (8-bit unsigned integer)</p>
<div class="stemblock">
<div class="content">
\[\begin{aligned}
f(x)=max(0,min(255,255 \times x))\\
\\
f_{preferred}(x) =
\begin{cases}
 round\_to\_nearest\_even\_uint8(f(x)) &amp; x \neq \infty \text{ and } x \neq NaN\\
 \text{implementation-defined} &amp; x = \infty \text{ or } x = NaN
\end{cases}\\
f_{approx}(x) =
\begin{cases}
 round\_to\_impl\_uint8(f(x)) &amp; x \neq \infty \text{ and } x \neq NaN\\
 \text{implementation-defined} &amp; x = \infty \text{ or } x = NaN
\end{cases}\\
\\
|f(x) - f_{approx}(x)|\leq 0.6, x \neq \infty \text{ and } x \neq NaN
\end{aligned}\]
</div>
</div>
</li>
<li>
<p><code>half</code> &#8594; <code>CL_UNORM_INT16</code> (16-bit unsigned integer)</p>
<div class="stemblock">
<div class="content">
\[\begin{aligned}
f(x)=max(0,min(65535,65535 \times x))\\
\\
f_{preferred}(x) =
\begin{cases}
 round\_to\_nearest\_even\_uint16(f(x)) &amp; \quad x \neq \infty \text{ and } x \neq NaN\\
 \text{implementation-defined} &amp; \quad x = \infty \text{ or } x = NaN
\end{cases}\\
f_{approx}(x) =
\begin{cases}
 round\_to\_impl\_uint16(f(x)) &amp; \quad x \neq \infty \text{ and } x \neq NaN\\
 \text{implementation-defined} &amp; \quad x = \infty \text{ or } x = NaN
\end{cases}\\
\\
|f(x) - f_{approx}(x)|\leq 0.6, x \neq \infty \text{ and } x \neq NaN
\end{aligned}\]
</div>
</div>
</li>
<li>
<p><code>half</code> &#8594; <code>CL_SNORM_INT8</code> (8-bit signed integer)</p>
<div class="stemblock">
<div class="content">
\[\begin{aligned}
f(x)=max(-128,min(127,127 \times x))\\
\\
f_{preferred}(x) =
\begin{cases}
 round\_to\_nearest\_even\_uint8(f(x)) &amp; \quad x \neq \infty \text{ and } x \neq NaN\\
 \text{implementation-defined} &amp; \quad x = \infty \text{ or } x = NaN
\end{cases}\\
f_{approx}(x) =
\begin{cases}
 round\_to\_impl\_uint8(f(x)) &amp; \quad x \neq \infty \text{ and } x \neq NaN\\
 \text{implementation-defined} &amp; \quad x = \infty \text{ or } x = NaN
\end{cases}\\
\\
|f(x) - f_{approx}(x)|\leq 0.6, x \neq \infty \text{ and } x \neq NaN
\end{aligned}\]
</div>
</div>
</li>
<li>
<p><code>half</code> &#8594; <code>CL_SNORM_INT16</code> (16-bit signed integer)</p>
<div class="stemblock">
<div class="content">
\[\begin{aligned}
f(x)=max(-32768,min(32767,32767 \times x))\\
\\
f_{preferred}(x) =
\begin{cases}
 round\_to\_nearest\_even\_uint16(f(x)) &amp; \quad x \neq \infty \text{ and } x \neq NaN\\
 \text{implementation-defined} &amp; \quad x = \infty \text{ or } x = NaN
\end{cases}\\
f_{approx}(x) =
\begin{cases}
 round\_to\_impl\_uint16(f(x)) &amp; \quad x \neq \infty \text{ and } x \neq NaN\\
 \text{implementation-defined} &amp; \quad x = \infty \text{ or } x = NaN
\end{cases}\\
\\
|f(x) - f_{approx}(x)|\leq 0.6, x \neq \infty \text{ and } x \neq NaN
\end{aligned}\]
</div>
</div>
</li>
</ul>
</div>
</div>
<div class="sect4">
<h5 id="converting-normalized-integer-channel-data-types-to-floating-point-values">Converting normalized integer channel data types to floating-point values</h5>
<div class="paragraph">
<p>For images created with image channel data type of <code>CL_UNORM_INT8</code> and <code>CL_UNORM_INT16</code>, <code>image::read</code> will convert the channel values from an 8-bit or 16-bit unsigned integer to normalized floating-point values in the range [0.0f &#8230;&#8203; 1.0f].</p>
</div>
<div class="paragraph">
<p>For images created with image channel data type of <code>CL_SNORM_INT8</code> and <code>CL_SNORM_INT16</code>, <code>image::read</code> will convert the channel values from an 8-bit or 16-bit signed integer to normalized floating-point values in the range [-1.0f &#8230;&#8203; 1.0f].</p>
</div>
<div class="paragraph">
<p>These conversions are performed as follows:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>CL_UNORM_INT8</code> (8-bit unsigned integer) &#8594; <code>float</code></p>
<div class="stemblock">
<div class="content">
\[normalized\_float\_value(x)=round\_to\_float(\frac{x}{255})\]
</div>
</div>
</li>
<li>
<p><code>CL_UNORM_INT_101010</code> (10-bit unsigned integer) &#8594; <code>float</code></p>
<div class="stemblock">
<div class="content">
\[normalized\_float\_value(x)=round\_to\_float(\frac{x}{1023})\]
</div>
</div>
</li>
<li>
<p><code>CL_UNORM_INT16</code> (16-bit unsigned integer) &#8594; <code>float</code></p>
<div class="stemblock">
<div class="content">
\[normalized\_float\_value(x)=round\_to\_float(\frac{x}{65535})\]
</div>
</div>
</li>
<li>
<p><code>CL_SNORM_INT8</code> (8-bit signed integer) &#8594; <code>float</code></p>
<div class="stemblock">
<div class="content">
\[normalized\_float\_value(x)=max(-1.0f, round\_to\_float(\frac{x}{127}))\]
</div>
</div>
</li>
<li>
<p><code>CL_SNORM_INT16</code> (16-bit signed integer) &#8594; <code>float</code></p>
<div class="stemblock">
<div class="content">
\[normalized\_float\_value(x)=max(-1.0f, round\_to\_float(\frac{x}{32767}))\]
</div>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>The precision of the above conversions is &lt;= 1.5 ulp except for the following cases.</p>
</div>
<div class="paragraph">
<p>For <code>CL_UNORM_INT8</code>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>0 must convert to 0.0f and</p>
</li>
<li>
<p>255 must convert to 1.0f</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>For <code>CL_UNORM_INT_101010</code>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>0 must convert to 0.0f and</p>
</li>
<li>
<p>1023 must convert to 1.0f</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>For <code>CL_UNORM_INT16</code>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>0 must convert to 0.0f and</p>
</li>
<li>
<p>65535 must convert to 1.0f</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>For <code>CL_SNORM_INT8</code>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>-128 and -127 must convert to -1.0f,</p>
</li>
<li>
<p>0 must convert to 0.0f and</p>
</li>
<li>
<p>127 must convert to 1.0f</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>For <code>CL_SNORM_INT16</code>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>-32768 and -32767 must convert to -1.0f,</p>
</li>
<li>
<p>0 must convert to 0.0f and</p>
</li>
<li>
<p>32767 must convert to 1.0f</p>
</li>
</ul>
</div>
</div>
<div class="sect4">
<h5 id="converting-floating-point-values-to-normalized-integer-channel-data-types">Converting floating-point values to normalized integer channel data types</h5>
<div class="paragraph">
<p>For images created with image channel data type of <code>CL_UNORM_INT8</code> and <code>CL_UNORM_INT16</code>, <code>image::write</code> will convert the floating-point color value to an 8-bit or 16-bit unsigned integer.</p>
</div>
<div class="paragraph">
<p>For images created with image channel data type of <code>CL_SNORM_INT8</code> and <code>CL_SNORM_INT16</code>, <code>image::write</code> will convert the floating-point color value to an 8-bit or 16-bit signed integer.</p>
</div>
<div class="paragraph">
<p>OpenCL implementations may choose to approximate the rounding mode used in the conversions described below.
When approximate rounding is used instead of the preferred rounding, the result of the conversion must satisfy the bound given below.</p>
</div>
<div class="paragraph">
<p>The conversions from half precision floating-point values to normalized integer values are performed is as follows:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>float</code> &#8594; <code>CL_UNORM_INT8</code> (8-bit unsigned integer)</p>
<div class="stemblock">
<div class="content">
\[\begin{aligned}
f(x)=max(0,min(255,255 \times x))\\
\\
f_{preferred}(x) =
\begin{cases}
 round\_to\_nearest\_even\_uint8(f(x)) &amp; \quad x \neq \infty \text{ and } x \neq NaN\\
 \text{implementation-defined} &amp; \quad x = \infty \text{ or } x = NaN
\end{cases}\\
f_{approx}(x) =
\begin{cases}
 round\_to\_impl\_uint8(f(x)) &amp; \quad x \neq \infty \text{ and } x \neq NaN\\
 \text{implementation-defined} &amp; \quad x = \infty \text{ or } x = NaN
\end{cases}\\
\\
|f(x) - f_{approx}(x)|\leq 0.6, x \neq \infty \text{ and } x \neq NaN
\end{aligned}\]
</div>
</div>
</li>
<li>
<p><code>float</code> &#8594; <code>CL_UNORM_INT_101010</code> (10-bit unsigned integer)</p>
<div class="stemblock">
<div class="content">
\[\begin{aligned}
f(x)=max(0,min(1023,1023 \times x))\\
\\
f_{preferred}(x) =
\begin{cases}
 round\_to\_nearest\_even\_uint10(f(x)) &amp; \quad x \neq \infty \text{ and } x \neq NaN\\
 \text{implementation-defined} &amp; \quad x = \infty \text{ or } x = NaN
\end{cases}\\
f_{approx}(x) =
\begin{cases}
 round\_to\_impl\_uint10(f(x)) &amp; \quad x \neq \infty \text{ and } x \neq NaN\\
 \text{implementation-defined} &amp; \quad x = \infty \text{ or } x = NaN
\end{cases}\\
\\
|f(x) - f_{approx}(x)|\leq 0.6, x \neq \infty \text{ and } x \neq NaN
\end{aligned}\]
</div>
</div>
</li>
<li>
<p><code>float</code> &#8594; <code>CL_UNORM_INT16</code> (16-bit unsigned integer)</p>
<div class="stemblock">
<div class="content">
\[\begin{aligned}
f(x)=max(0,min(65535,65535 \times x))\\
\\
f_{preferred}(x) =
\begin{cases}
 round\_to\_nearest\_even\_uint16(f(x)) &amp; \quad x \neq \infty \text{ and } x \neq NaN\\
 \text{implementation-defined} &amp; \quad x = \infty \text{ or } x = NaN
\end{cases}\\
f_{approx}(x) =
\begin{cases}
 round\_to\_impl\_uint16(f(x)) &amp; \quad x \neq \infty \text{ and } x \neq NaN\\
 \text{implementation-defined} &amp; \quad x = \infty \text{ or } x = NaN
\end{cases}\\
\\
|f(x) - f_{approx}(x)|\leq 0.6, x \neq \infty \text{ and } x \neq NaN
\end{aligned}\]
</div>
</div>
</li>
<li>
<p><code>float</code> &#8594; <code>CL_SNORM_INT8</code> (8-bit signed integer)</p>
<div class="stemblock">
<div class="content">
\[\begin{aligned}
f(x)=max(-128,min(127,127 \times x))\\
\\
f_{preferred}(x) =
\begin{cases}
 round\_to\_nearest\_even\_uint8(f(x)) &amp; \quad x \neq \infty \text{ and } x \neq NaN\\
 \text{implementation-defined} &amp; \quad x = \infty \text{ or } x = NaN
\end{cases}\\
f_{approx}(x) =
\begin{cases}
 round\_to\_impl\_uint8(f(x)) &amp; \quad x \neq \infty \text{ and } x \neq NaN\\
 \text{implementation-defined} &amp; \quad x = \infty \text{ or } x = NaN
\end{cases}\\
\\
|f(x) - f_{approx}(x)|\leq 0.6, x \neq \infty \text{ and } x \neq NaN
\end{aligned}\]
</div>
</div>
</li>
<li>
<p><code>float</code> &#8594; <code>CL_SNORM_INT16</code> (16-bit signed integer)</p>
<div class="stemblock">
<div class="content">
\[\begin{aligned}
f(x)=max(-32768,min(32767,32767 \times x))\\
\\
f_{preferred}(x) =
\begin{cases}
 round\_to\_nearest\_even\_uint16(f(x)) &amp; \quad x \neq \infty \text{ and } x \neq NaN\\
 \text{implementation-defined} &amp; \quad x = \infty \text{ or } x = NaN
\end{cases}\\
f_{approx}(x) =
\begin{cases}
 round\_to\_impl\_uint16(f(x)) &amp; \quad x \neq \infty \text{ and } x \neq NaN\\
 \text{implementation-defined} &amp; \quad x = \infty \text{ or } x = NaN
\end{cases}\\
\\
|f(x) - f_{approx}(x)|\leq 0.6, x \neq \infty \text{ and } x \neq NaN
\end{aligned}\]
</div>
</div>
</li>
</ul>
</div>
</div>
</div>
<div class="sect3">
<h4 id="conversion-rules-for-half-precision-floating-point-channel-data-type">5.3.2. Conversion rules for half precision floating-point channel data type</h4>
<div class="paragraph">
<p>For images created with a channel data type of <code>CL_HALF_FLOAT</code>, the conversions of half to float and half to half are lossless (as described in the <a href="#builtin-half-data-type"><em>Built-in Half Data Type</em></a> section).
Conversions from float to half round the mantissa using the round to nearest even or round to zero rounding mode.
Denormalized numbers for the half data type which may be generated when converting a float to a half  may be flushed to zero.
A float NaN must be converted to an appropriate NaN in the half type.
A float INF must be converted to an appropriate INF in the half type.</p>
</div>
</div>
<div class="sect3">
<h4 id="conversion-rules-for-floating-point-channel-data-type">5.3.3. Conversion rules for floating-point channel data type</h4>
<div class="paragraph">
<p>The following rules apply for reading and writing images created with channel data type of <code>CL_FLOAT</code>.</p>
</div>
<div class="ulist">
<ul>
<li>
<p>NaNs may be converted to a NaN value(s) supported by the device.</p>
</li>
<li>
<p>Denorms can be flushed to zero.</p>
</li>
<li>
<p>All other values must be preserved.</p>
</li>
</ul>
</div>
</div>
<div class="sect3">
<h4 id="conversion-rules-for-signed-and-unsigned-8-bit-16-bit-and-32-bit-integer-channel-data-types">5.3.4. Conversion rules for signed and unsigned 8-bit, 16-bit and 32-bit integer channel data types</h4>
<div class="paragraph">
<p>Calls to <code>image::read</code> with channel data type values of <code>CL_SIGNED_INT8</code>, <code>CL_SIGNED_INT16</code> and <code>CL_SIGNED_INT32</code> return the unmodified integer values stored in the image at specified location.</p>
</div>
<div class="paragraph">
<p>Calls to <code>image::read</code> with channel data type values of <code>CL_UNSIGNED_INT8</code>, <code>CL_UNSIGNED_INT16</code> and <code>CL_UNSIGNED_INT32</code> return the unmodified integer values stored in the image at specified location.</p>
</div>
<div class="paragraph">
<p>Calls to <code>image::write</code> will perform one of the following conversions:</p>
</div>
<div class="paragraph">
<p>32 bit signed integer &#8594; 8-bit signed integer</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>convert_cast&lt;char,saturate::on&gt;(i)</code></pre>
</div>
</div>
<div class="paragraph">
<p>32 bit signed integer &#8594; 16-bit signed integer</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>convert_cast&lt;short,saturate::on&gt;(i)</code></pre>
</div>
</div>
<div class="paragraph">
<p>32 bit signed integer &#8594; 32-bit signed integer</p>
</div>
<div class="listingblock">
<div class="content">
<pre>no conversion is performed</pre>
</div>
</div>
<div class="paragraph">
<p>Calls to image::write will perform one of the following conversions:</p>
</div>
<div class="paragraph">
<p>32 bit unsigned integer &#8594; 8-bit unsigned integer</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>convert_cast&lt;uchar,saturate::on&gt;(i)</code></pre>
</div>
</div>
<div class="paragraph">
<p>32 bit unsigned integer &#8594; 16-bit unsigned integer</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>convert_cast&lt;ushort,saturate::on&gt;(i)</code></pre>
</div>
</div>
<div class="paragraph">
<p>32 bit unsigned integer &#8594; 32-bit unsigned integer</p>
</div>
<div class="listingblock">
<div class="content">
<pre>no conversion is performed</pre>
</div>
</div>
<div class="paragraph">
<p>The conversions described in this section must be correctly saturated.</p>
</div>
</div>
<div class="sect3">
<h4 id="conversion-rules-for-srgba-and-sbgra-images">5.3.5. Conversion rules for sRGBA and sBGRA images</h4>
<div class="paragraph">
<p>Standard RGB data, which roughly displays colors in a linear ramp of luminosity levels such that an average observer, under average viewing conditions, can view them as perceptually equal steps on an average display.
All 0&#8217;s maps to 0.0f, and all 1&#8217;s maps to 1.0f.
The sequence of unsigned integer encodings between all 0&#8217;s and all 1&#8217;s represent a nonlinear progression in the floating-point interpretation of the numbers between 0.0f to 1.0f.
For more detail, see the <a href="#sRGB-spec">SRGB color standard</a>.</p>
</div>
<div class="paragraph">
<p>Conversion from sRGB space is automatically done by image::read built-in functions if the image channel order is one of the sRGB values described above.
When reading from an sRGB image, the conversion from sRGB to linear RGB is performed before the filter specified in the sampler specified to image::sample is applied.
If the format has an alpha channel, the alpha data is stored in linear color space.
Conversion to sRGB space is automatically done by image::write built-in functions if the image channel order is one of the sRGB values described above and the device supports writing to sRGB images.</p>
</div>
<div class="paragraph">
<p>If the format has an alpha channel, the alpha data is stored in linear color space.</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>The following process is used by image::read and image::sample to convert a normalized 8-bit unsigned integer sRGB color value x to a floating-point linear RGB color value y:</p>
<div class="olist loweralpha">
<ol class="loweralpha" type="a">
<li>
<p>Convert a normalized 8-bit unsigned integer sRGB value x to a floating-point sRGB value r as per rules described in the <a href="#converting-floating-point-values-to-normalized-integer-channel-data-types"><em>Converting floating-point values to normalized integer channel data types</em></a> section.</p>
<div class="stemblock">
<div class="content">
\[r=normalized\_float\_value(x)\]
</div>
</div>
</li>
<li>
<p>Convert a floating-point sRGB value r to a floating-point linear RGB color value y:</p>
<div class="stemblock">
<div class="content">
\[\begin{aligned}
c_{linear}(x) =
\begin{cases}
 \frac{r}{12.92} &amp; \quad r \geq 0 \text{ and } r \leq 0.04045\\[1em]
 (\frac{r + 0.055}{1.055})^{2.4} &amp; \quad r &gt; 0.04045 \text{ and } \leq 1
\end{cases}\\
\\
y = c_{linear}(r)
\end{aligned}\]
</div>
</div>
</li>
</ol>
</div>
</li>
<li>
<p>The following process is used by <code>image::write</code> to convert a linear RGB floating-point color value y to a normalized 8-bit unsigned integer sRGB value x:</p>
<div class="olist loweralpha">
<ol class="loweralpha" type="a">
<li>
<p>Convert a floating-point linear RGB value y to a normalized floating point sRGB value r:</p>
<div class="stemblock">
<div class="content">
\[\begin{aligned}
c_{linear}(x) =
\begin{cases}
 0 &amp; \quad y \geq NaN \text{ or } y &lt; 0\\
 12.92 \times y &amp; \quad y \geq 0 \text{ and } y &lt; 0.0031308\\
 1.055 \times y^{(\frac{1}{2.4})} &amp; \quad y \geq 0.0031308 \text{ and } y \leq 1\\
 1 &amp; \quad y &gt; 1
\end{cases}\\
\\
r = c_{sRGB}(y)
\end{aligned}\]
</div>
</div>
</li>
<li>
<p>Convert a normalized floating-point sRGB value r to a normalized 8-bit unsigned integer sRGB value x as per rules described in <a href="#converting-normalized-integer-channel-data-types-to-half-precision-floating-point-values">Converting normalized integer channel data types to half precision floating-point values</a> section.</p>
<div class="stemblock">
<div class="content">
\[\begin{aligned}
g(r) =
\begin{cases}
 f_{preferred}(r) &amp; \quad \text{if rounding mode is round to even}\\
 f_{approx}(r) &amp; \quad \text{if implementation-defined rounding mode}
\end{cases}\\
\\
x = g(r)
\end{aligned}\]
</div>
</div>
</li>
</ol>
</div>
</li>
</ol>
</div>
<div class="paragraph">
<p>The accuracy required of using <code>image::read</code> and <code>image::sample</code> to convert a normalized 8-bit unsigned integer sRGB color value x to a floating-point linear RGB color value y is given by:</p>
</div>
<div class="stemblock">
<div class="content">
\[|x-255 \times c_{sRGB}(y)|\leq 0.5\]
</div>
</div>
<div class="paragraph">
<p>The accuracy required of using <code>image::write</code> to convert a linear RGB floating-point color value y to a normalized 8-bit unsigned integer sRGB value x is given by:</p>
</div>
<div class="stemblock">
<div class="content">
\[|x-255 \times c_{sRGB}(y)|\leq 0.6\]
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="selecting-an-image-from-an-image-array">5.4. Selecting an Image from an Image Array</h3>
<div class="paragraph">
<p>Let (u,v,w)  represent the unnormalized image coordinate values for reading from and/or writing to a 2D image in a 2D image array.</p>
</div>
<div class="paragraph">
<p>When read using a sampler, the 2D image layer selected is computed as:</p>
</div>
<div class="stemblock">
<div class="content">
\[layer = clamp(rint(w), 0, d_t - 1)\]
</div>
</div>
<div class="paragraph">
<p>otherwise the layer selected is computed as:</p>
</div>
<div class="stemblock">
<div class="content">
\[layer = w\]
</div>
</div>
<div class="paragraph">
<p>(since w is already an integer) and the result is undefined if w is not one of the integers 0, 1, &#8230;&#8203; d<sub>t</sub> - 1.</p>
</div>
<div class="paragraph">
<p>Let (u,v)  represent the unnormalized image coordinate values for reading from and/or writing to a 1D image in a 1D image array.</p>
</div>
<div class="paragraph">
<p>When read using a sampler, the 1D image layer selected is computed as:</p>
</div>
<div class="stemblock">
<div class="content">
\[layer = clamp(rint(v), 0, h_t - 1)\]
</div>
</div>
<div class="paragraph">
<p>otherwise the layer selected is computed as:</p>
</div>
<div class="stemblock">
<div class="content">
\[layer = v\]
</div>
</div>
<div class="paragraph">
<p>(since v is already an integer) and the result is undefined if v is not one of the integers 0, 1, &#8230;&#8203; h<sub>t</sub> - 1.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="compiler_options">6. Compiler options</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The compiler options are categorized as preprocessor options, options for controlling the OpenCL C++ version, options that control FP16 and FP64 support.
This specification defines a standard set of options that must be supported by the compiler when building program executables online or offline from OpenCL C++ to an IL.
These may be extended by a set of vendor or platform specific options.</p>
</div>
<div class="sect2">
<h3 id="preprocessor_options">6.1. Preprocessor options</h3>
<div class="paragraph">
<p>These options control the OpenCL C++ preprocessor which is run on each program source before actual compilation.</p>
</div>
<div class="listingblock">
<div class="content">
<pre>-D name</pre>
</div>
</div>
<div class="paragraph">
<p>Predefine name as a macro, with definition 1.</p>
</div>
<div class="listingblock">
<div class="content">
<pre>-D name=definition</pre>
</div>
</div>
<div class="paragraph">
<p>The contents of definition are tokenized and processed as if they appeared during translation phase three in a <code>#define</code> directive.
In particular, the definition will be truncated by embedded newline characters.</p>
</div>
</div>
<div class="sect2">
<h3 id="options-controlling_the-opencl_c_version">6.2. Options Controlling the OpenCL C++ version</h3>
<div class="paragraph">
<p>The following option controls the version of OpenCL C++ that the compiler accepts.</p>
</div>
<div class="listingblock">
<div class="content">
<pre>-cl-std=</pre>
</div>
</div>
<div class="paragraph">
<p>Determine the OpenCL C++ language version to use.
A value for this option must be provided.
Valid values are:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>c++ - Support all OpenCL C++ programs that use the OpenCL C++ language features defined in the <a href="#openclcpp-programming-language"><em>OpenCL C++ Programming Language</em></a> section.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="fp16_and_fp64_options">6.3. Double and half-precision floating-point options</h3>
<div class="paragraph">
<p>The following option controls the double and half floating-point support that the compiler accepts.</p>
</div>
<div class="listingblock">
<div class="content">
<pre>-cl-fp16-enable</pre>
</div>
</div>
<div class="paragraph">
<p>This option enables full half data type support.
The option defines <code>cl_khr_fp16</code> macro.
The default is disabled.</p>
</div>
<div class="listingblock">
<div class="content">
<pre>-cl-fp64-enable</pre>
</div>
</div>
<div class="paragraph">
<p>This option enables double data type support.
The option defines <code>cl_khr_fp64</code> macro.
The default is disabled.</p>
</div>
</div>
<div class="sect2">
<h3 id="other_options">6.4. Other options</h3>
<div class="listingblock">
<div class="content">
<pre>-cl-zero-init-local-mem-vars</pre>
</div>
</div>
<div class="paragraph">
<p>This option enables software zero-initialization of variables allocated in local memory.</p>
</div>
<div style="page-break-after: always;"></div>
<hr>
<div id="ftn2" class="paragraph">
<p><a href="#ftnref2">[2]</a> The <code>double</code> data type is an optional type that is supported if <code>CL_DEVICE_DOUBLE_FP_CONFIG</code> in table 4.3 for a device is not zero.</p>
</div>
<div id="ftn3" class="paragraph">
<p><a href="#ftnref3">[3]</a> The question mark ? in numerical selector refers to special undefined component of vector; reading from it results in undefined value, writing to it is discarded.</p>
</div>
<div id="ftn4" class="paragraph">
<p><a href="#ftnref4">[4]</a> Only if the <strong>cl_khr_fp16</strong> extension is enabled and has been supported</p>
</div>
<div id="ftn5" class="paragraph">
<p><a href="#ftnref5">[5]</a> For conversions to floating-point format, when a finite source value exceeds the maximum representable finite floating-point destination value, the rounding mode will affect whether the result is the maximum finite floating-point value or infinity of same sign as the source value, per IEEE-754 rules for rounding.</p>
</div>
<div id="ftn6" class="paragraph">
<p><a href="#ftnref6">[6]</a> The <code>as_type&lt;T&gt;</code> function is intended to reflect the organization of data in register.
The <code>as_type&lt;T&gt;</code> construct is intended to compile to no instructions on devices that use a shared register file designed to operate on both the operand and result types.
Note that while differences in memory organization are expected to largely be limited to those arising from endianness, the register based representation may also differ due to size of the element in register.
(For example, an architecture may load a char into a 32-bit register, or a char vector into a SIMD vector register with fixed 32-bit element size.)
If the element count does not match, then the implementation should pick a data representation that most closely matches what would happen if an appropriate result type operator was applied to a register containing data of the source type.
So, for example if an implementation stores all single precision data as double in register, it should implement <code>as_type&lt;int&gt;(float)</code> by first downconverting the double to single precision and then (if necessary) moving the single precision bits to a register suitable for operating on integer data.
If data stored in different address spaces do not have the same endianness, then the "dominant endianness" of the device should prevail.</p>
</div>
<div id="ftn7" class="paragraph">
<p><a href="#ftnref7">[7]</a> <code>memory_order_consume</code> is not supported in OpenCL C++</p>
</div>
<div id="ftn8" class="paragraph">
<p><a href="#ftnref8">[8]</a> This value for <code>memory_scope</code> can only be used with <code>atomic_fence</code> with flags set to <code>mem_fence::image</code>.</p>
</div>
<div id="ftn9" class="paragraph">
<p><a href="#ftnref9">[9]</a> We can&#8217;t require C++14 atomics since host programs can be implemented in other programming languages and versions of C or C++, but we do require that the host programs use atomics and that those atomics be compatible with those in C++14.</p>
</div>
<div id="ftn10" class="paragraph">
<p><a href="#ftnref10">[10]</a> The <code>atomic_long</code> and <code>atomic_ulong</code> types are supported if the <strong>cl_khr_int64_base_atomics</strong> and <strong>cl_khr_int64_extended_atomics</strong> extensions are supported and have been enabled.</p>
</div>
<div id="ftn11" class="paragraph">
<p><a href="#ftnref11">[11]</a> The <code>atomic_double</code> type is only supported if double precision is supported and the <strong>cl_khr_int64_base_atomics</strong> and <strong>cl_khr_int64_extended_atomics</strong> extensions are supported and have been enabled.</p>
</div>
<div id="ftn12" class="paragraph">
<p><a href="#ftnref12">[12]</a> If the device address space is 64-bits, the data types <code>atomic_intptr_t</code>, <code>atomic_uintptr_t</code>, <code>atomic_size_t</code> and <code>atomic_ptrdiff_t</code> are supported only if the <strong>cl_khr_int64_base_atomics</strong> and <strong>cl_khr_int64_extended_atomics</strong> extensions are supported and have been enabled.</p>
</div>
<div id="ftn13" class="paragraph">
<p><a href="#ftnref13">[13]</a> The <code>*_ms</code> types are supported only if the *cl_khr_gl_msaa_sharing* and <strong>cl_khr_gl_depth_images</strong> extensions are supported and have been enabled.</p>
</div>
<div id="ftn14" class="paragraph">
<p><a href="#ftnref14">[14]</a> Immediate meaning not side effects resulting from child kernels. The side effects would include stores to global memory and pipe reads and writes.</p>
</div>
<div id="ftn15" class="paragraph">
<p><a href="#ftnref15">[15]</a> This acts as a memory synchronization point between work-items in a work-group and child kernels enqueued by work-items in the work-group.</p>
</div>
<div id="ftn17" class="paragraph">
<p><a href="#ftnref17">[17]</a> i.e. the <code>global_work_size</code> values specified to <code>clEnqueueNDRangeKernel</code> are not evenly divisible by the <code>local_work_size</code> values for each dimension.</p>
</div>
<div id="ftn18" class="paragraph">
<p><a href="#ftnref18">[18]</a> Only if double precision is supported and has been enabled.</p>
</div>
<div id="ftn19" class="paragraph">
<p><a href="#ftnref19">[19]</a> Refer to the <a href="#order-and-scope"><em>Memory order and scope</em></a> section for description of <code>memory_scope</code>.</p>
</div>
<div id="ftn20" class="paragraph">
<p><a href="#ftnref20">[20]</a> The <code>min()</code> operator is there to prevent <code>fract(-small)</code> from returning 1.0.
It returns the largest positive floating-point number less than 1.0.</p>
</div>
<div id="ftn21" class="paragraph">
<p><a href="#ftnref21">[21]</a> fmin and fmax behave as defined by C++14 and may not match the IEEE 754-2008 definition for minNum and maxNum with regard to signaling NaNs.
Specifically, signaling NaNs may behave as quiet NaNs.</p>
</div>
<div id="ftn22" class="paragraph">
<p><a href="#ftnref22">[22]</a> The user is cautioned that for some usages, e.g. <code>mad(a, b, -a*b)</code>, the definition of <code>mad()</code> in the embedded profile is loose enough that almost any result is allowed from <code>mad()</code> for some values of <code>a</code> and <code>b</code>.</p>
</div>
<div id="ftn23" class="paragraph">
<p><a href="#ftnref23">[23]</a> Frequently vector operations need n + 1 bits temporarily to calculate a result.
The rhadd instruction gives you an extra bit without needing to upsample and downsample. This can be a profound performance win.</p>
</div>
<div id="ftn24" class="paragraph">
<p><a href="#ftnref24">[24]</a> The primary purpose of the printf function is to help in debugging OpenCL kernels.</p>
</div>
<div id="ftn25" class="paragraph">
<p><a href="#ftnref25">[25]</a> Note that <em>0</em> is taken as a flag, not as the beginning of a field width.</p>
</div>
<div id="ftn26" class="paragraph">
<p><a href="#ftnref26">[26]</a> The results of all floating conversions of a negative zero, and of negative values that round to zero, include a minus sign.</p>
</div>
<div id="ftn27" class="paragraph">
<p><a href="#ftnref27">[27]</a> When applied to infinite and NaN values, the -, +, and space flag characters have their usual meaning; the # and <em>0</em> flag characters have no effect.</p>
</div>
<div id="ftn28" class="paragraph">
<p><a href="#ftnref28">[28]</a> Binary implementations can choose the hexadecimal digit to the left of the decimal-point character so that subsequent digits align to nibble (4-bit) boundaries.</p>
</div>
<div id="ftn29" class="paragraph">
<p><a href="#ftnref29">[29]</a> No special provisions are made for multibyte characters.
The behavior of printf with the <em>s</em> conversion specifier is undefined if the argument value is not a pointer to a literal string.</p>
</div>
<div id="ftn30" class="paragraph">
<p><a href="#ftnref30">[30]</a> Except for the embedded profile whether either round to zero or round to nearest rounding mode may be supported for single precision floating-point.</p>
</div>
<div id="ftn31" class="paragraph">
<p><a href="#ftnref31">[31]</a> The ULP values for built-in math functions <code>lgamma</code> and <code>lgamma_r</code> is currently undefined.</p>
</div>
<div id="ftn32" class="paragraph">
<p><a href="#ftnref32">[32]</a> 0 ulp is used for math functions that do not require rounding.</p>
</div>
<div id="ftn33" class="paragraph">
<p><a href="#ftnref33">[33]</a> On some implementations, <code>powr()</code> or <code>pown()</code> may perform faster than <code>pow()</code>.
If <code>x</code> is known to be <code>&gt;= 0</code>, consider using <code>powr()</code> in place of <code>pow()</code>, or if <code>y</code> is known to be an integer, consider using <code>pown()</code> in place of <code>pow()</code>.</p>
</div>
<div id="ftn35" class="paragraph">
<p><a href="#ftnref35">[35]</a> Here <code>TYPE_MIN</code> and <code>TYPE_MIN_EXP</code> should be substituted by constants appropriate to the floating-point type under consideration, such as <code>FLT_MIN</code> and <code>FLT_MIN_EXP</code> for float.</p>
</div>
</div>
</div>
</div>
</div>
<div id="footer">
<div id="footer-text">
Version 2.2-8<br>
Last updated 2018-09-24 21:35:08 PDT
</div>
</div>


</body>
</html>